@marimo-team/frontend 0.14.17-dev50 → 0.14.17-dev51

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 (110) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-Ce0TC-tZ.js → ConnectedDataExplorerComponent-DKw6KrX_.js} +1 -1
  2. package/dist/assets/{ImageComparisonComponent-DwSOwXhh.js → ImageComparisonComponent-DAPG8gPk.js} +1 -1
  3. package/dist/assets/{VegaLite-DvsYftTu.js → VegaLite-kpaj3jnh.js} +1 -1
  4. package/dist/assets/_baseEach-DgKJ_yh2.js +1 -0
  5. package/dist/assets/_baseMap-_qjAB773.js +1 -0
  6. package/dist/assets/_baseUniq-DsEmgZj4.js +1 -0
  7. package/dist/assets/{_createAggregator-CSBoqMlf.js → _createAggregator-0VsbCMQy.js} +1 -1
  8. package/dist/assets/{any-language-editor-BQlzQXKx.js → any-language-editor-XYuree7L.js} +1 -1
  9. package/dist/assets/{architectureDiagram-SUXI7LT5-B9Wxsw8t.js → architectureDiagram-SUXI7LT5-Bh9Z8-nA.js} +1 -1
  10. package/dist/assets/{blockDiagram-6J76NXCF-yXpuPCJ9.js → blockDiagram-6J76NXCF-yF4TXxi-.js} +1 -1
  11. package/dist/assets/{c4Diagram-6F6E4RAY-B0u0AKt2.js → c4Diagram-6F6E4RAY-BwpAvqdA.js} +1 -1
  12. package/dist/assets/channel-Cw6AEncD.js +1 -0
  13. package/dist/assets/{chunk-353BL4L5-Bx2Tp8dL.js → chunk-353BL4L5-DMTfIREf.js} +1 -1
  14. package/dist/assets/{chunk-67H74DCK-DT5zwdot.js → chunk-67H74DCK-BRE_KCf1.js} +1 -1
  15. package/dist/assets/{chunk-AACKK3MU-CS4IlaFm.js → chunk-AACKK3MU-CVrqgt5L.js} +1 -1
  16. package/dist/assets/{chunk-BFAMUDN2-C6afvyCK.js → chunk-BFAMUDN2-CXdFTjp4.js} +1 -1
  17. package/dist/assets/{chunk-E2GYISFI-xz1MYNbG.js → chunk-E2GYISFI-Bs9UZyZq.js} +1 -1
  18. package/dist/assets/{chunk-OW32GOEJ-C-bwAx0F.js → chunk-OW32GOEJ-C0bSrD3h.js} +1 -1
  19. package/dist/assets/{chunk-SKB7J2MH-IkNjP7aw.js → chunk-SKB7J2MH-BDH2f5qw.js} +1 -1
  20. package/dist/assets/{chunk-SZ463SBG-DeR9mZtM.js → chunk-SZ463SBG-Cd1qqD6j.js} +1 -1
  21. package/dist/assets/{circle-play-OPSOZUSJ.js → circle-play-ClFywCWK.js} +1 -1
  22. package/dist/assets/classDiagram-M3E45YP4-BZuQEW-x.js +1 -0
  23. package/dist/assets/classDiagram-v2-YAWTLIQI-BZuQEW-x.js +1 -0
  24. package/dist/assets/clone-D0U_4Foz.js +1 -0
  25. package/dist/assets/{compile-DPgtA4Er.js → compile-J4o3SSt8.js} +5 -5
  26. package/dist/assets/{dagre-JOIXM2OF-CzDN_bfy.js → dagre-JOIXM2OF-Cgr-ekQp.js} +1 -1
  27. package/dist/assets/{data-grid-overlay-editor-BEStKz7e.js → data-grid-overlay-editor-BFMjRfym.js} +1 -1
  28. package/dist/assets/{diagram-5UYTHUR4-TyPhhbg4.js → diagram-5UYTHUR4-C9sEDAJt.js} +1 -1
  29. package/dist/assets/{diagram-VMROVX33-B_yxodJs.js → diagram-VMROVX33-CGOvHRlz.js} +1 -1
  30. package/dist/assets/{diagram-ZTM2IBQH-CXiAslA1.js → diagram-ZTM2IBQH-Bz4gykiz.js} +1 -1
  31. package/dist/assets/edit-page-D5gsQ3AR.js +148 -0
  32. package/dist/assets/{erDiagram-3M52JZNH-BNCrTAQ9.js → erDiagram-3M52JZNH-BhaX3GHb.js} +1 -1
  33. package/dist/assets/{flowDiagram-KYDEHFYC-Ba_c9EPm.js → flowDiagram-KYDEHFYC-DPoEQUTq.js} +1 -1
  34. package/dist/assets/{ganttDiagram-EK5VF46D-DnIuKw2R.js → ganttDiagram-EK5VF46D-CLgJbKxE.js} +4 -4
  35. package/dist/assets/{gitGraphDiagram-GW3U2K7C-1QmaE2WA.js → gitGraphDiagram-GW3U2K7C-DY_b362V.js} +1 -1
  36. package/dist/assets/{glide-data-editor-d6grwpew.js → glide-data-editor-DOqNa5NG.js} +11 -11
  37. package/dist/assets/{graph-0uy08CRw.js → graph-BqHJo60z.js} +1 -1
  38. package/dist/assets/home-page-DePHQhvN.js +9 -0
  39. package/dist/assets/{index-ukteXaqC.js → index-B68QxZ4j.js} +1 -1
  40. package/dist/assets/{index-C2R0lChn.js → index-BEyze6er.js} +1 -1
  41. package/dist/assets/{index-CG-OzDYE.js → index-BIqVhCGI.js} +1 -1
  42. package/dist/assets/{index-CJtYacYk.js → index-BIv4gd5k.js} +1 -1
  43. package/dist/assets/{index-DMmdMuSp.js → index-BvsboPlP.js} +1 -1
  44. package/dist/assets/{index-DTGFFGrU.js → index-C6tN7Sd5.js} +1 -1
  45. package/dist/assets/{index-BRsKX55I.js → index-CSPyN4cW.js} +336 -336
  46. package/dist/assets/{index-8gVzrL6y.js → index-CX90WBn3.js} +1 -1
  47. package/dist/assets/{index-BspvY5k3.js → index-CXXB4K2m.js} +1 -1
  48. package/dist/assets/{index-D6I0WKad.js → index-CcmN_7Ri.js} +1 -1
  49. package/dist/assets/{index-DdZuv69w.js → index-ChwnRmyU.js} +1 -1
  50. package/dist/assets/{index-HJI8bjV4.js → index-CmbEuD_J.js} +1 -1
  51. package/dist/assets/{index-DTou-2SI.js → index-CpDzU4a4.js} +1 -1
  52. package/dist/assets/{index-Cp8m6mju.js → index-CwT8oLaJ.js} +1 -1
  53. package/dist/assets/{index-B7vzVfNW.js → index-D0hmgAd4.js} +1 -1
  54. package/dist/assets/{index-CD-N3MY0.js → index-D3oH_ISv.js} +1 -1
  55. package/dist/assets/index-DmaoBTfT.css +1 -0
  56. package/dist/assets/{index-C4qMdaWk.js → index-DoJNd5TO.js} +1 -1
  57. package/dist/assets/{index-CH-KhRgU.js → index-OpfXYM03.js} +1 -1
  58. package/dist/assets/{index-DU5V1UXh.js → index-bQahjypS.js} +1 -1
  59. package/dist/assets/infoDiagram-LHK5PUON-D4kH3IO6.js +2 -0
  60. package/dist/assets/{journeyDiagram-EWQZEKCU-JatEjWMR.js → journeyDiagram-EWQZEKCU-BHYscvV9.js} +1 -1
  61. package/dist/assets/{kanban-definition-ZSS6B67P-CWf3jJz4.js → kanban-definition-ZSS6B67P-DwjByFqu.js} +1 -1
  62. package/dist/assets/{layout-DSIdkdp6.js → layout-BBBTcalD.js} +1 -1
  63. package/dist/assets/{linear-5RI6BcLf.js → linear-CRzT0Y7Z.js} +1 -1
  64. package/dist/assets/links-BNeucPnM.js +17 -0
  65. package/dist/assets/{mermaid-BFX9YpwT.js → mermaid-CBWSg5mK.js} +4 -4
  66. package/dist/assets/{min-BEQ0qmNL.js → min-D0cY_cmP.js} +1 -1
  67. package/dist/assets/{mindmap-definition-6CBA2TL7-BwwGh_xX.js → mindmap-definition-6CBA2TL7-Bp8ZUhrl.js} +1 -1
  68. package/dist/assets/{number-overlay-editor-CzV-HwJ1.js → number-overlay-editor-Dns19i7x.js} +2 -2
  69. package/dist/assets/{pieDiagram-NIOCPIFQ-CvOXeZeg.js → pieDiagram-NIOCPIFQ-BSdUjCxL.js} +1 -1
  70. package/dist/assets/{quadrantDiagram-2OG54O6I-DWctHQ5M.js → quadrantDiagram-2OG54O6I-BN7rcYOZ.js} +1 -1
  71. package/dist/assets/{react-plotly-7rSO6_pO.js → react-plotly-Cwm_Zws7.js} +1 -1
  72. package/dist/assets/{requirementDiagram-QOLK2EJ7-E5ILV_jW.js → requirementDiagram-QOLK2EJ7-Z0LaSHDM.js} +1 -1
  73. package/dist/assets/run-page-e5zqdLNb.js +1 -0
  74. package/dist/assets/{sankeyDiagram-4UZDY2LN-BbQXWZt4.js → sankeyDiagram-4UZDY2LN-URGiryWU.js} +1 -1
  75. package/dist/assets/{sequenceDiagram-SKLFT4DO-DN-Qt_J3.js → sequenceDiagram-SKLFT4DO-Do-YLmj0.js} +1 -1
  76. package/dist/assets/{slides-component-DhafDKo1.js → slides-component-DaklX30G.js} +1 -1
  77. package/dist/assets/{sortBy-ByqiSfmy.js → sortBy-CyFp7E_N.js} +1 -1
  78. package/dist/assets/{stateDiagram-MI5ZYTHO-C3voiVpG.js → stateDiagram-MI5ZYTHO-BxhxWedO.js} +1 -1
  79. package/dist/assets/stateDiagram-v2-5AN5P6BG-D1pJlR6r.js +1 -0
  80. package/dist/assets/{storage-BwdfKb3e.js → storage-Dr_iHaXY.js} +6 -6
  81. package/dist/assets/{terminal-DnEiY_Di.js → terminal-C_Y6lZQe.js} +1 -1
  82. package/dist/assets/time-BOg6M-VK.js +1 -0
  83. package/dist/assets/{timeline-definition-MYPXXCX6-D2ZXeK1N.js → timeline-definition-MYPXXCX6-GoOe2GO2.js} +1 -1
  84. package/dist/assets/timer-BwIYMJWC.js +1 -0
  85. package/dist/assets/tracing-CSH0Hox7.js +2 -0
  86. package/dist/assets/{transform-CDNfLgV5.js → transform-B8bpuzxV.js} +1 -1
  87. package/dist/assets/{trash-Crss8VH4.js → trash-Dpszkgwx.js} +1 -1
  88. package/dist/assets/{treemap-75Q7IDZK-Cn9k8at_.js → treemap-75Q7IDZK-Dr0M6FZV.js} +1 -1
  89. package/dist/assets/{vega-component-wMB3EDRs.js → vega-component-DeXvh_Gw.js} +1 -1
  90. package/dist/assets/{xychartDiagram-H2YORKM3-qkBu9yox.js → xychartDiagram-H2YORKM3-6T7dRn7U.js} +1 -1
  91. package/dist/index.html +2 -2
  92. package/package.json +1 -1
  93. package/dist/assets/_baseEach-Bt_hy8p5.js +0 -1
  94. package/dist/assets/_baseMap-wg3_pLeD.js +0 -1
  95. package/dist/assets/_baseUniq-LUPmCTek.js +0 -1
  96. package/dist/assets/channel-B5GewZ-i.js +0 -1
  97. package/dist/assets/classDiagram-M3E45YP4-UOaLNaLd.js +0 -1
  98. package/dist/assets/classDiagram-v2-YAWTLIQI-UOaLNaLd.js +0 -1
  99. package/dist/assets/clone-BNsKcv3n.js +0 -1
  100. package/dist/assets/edit-page-Dem5AQ2A.js +0 -148
  101. package/dist/assets/home-page-BtKVarMy.js +0 -9
  102. package/dist/assets/index-BdR5uFJr.css +0 -1
  103. package/dist/assets/infoDiagram-LHK5PUON-CMztT734.js +0 -2
  104. package/dist/assets/links-DhS7HdtO.js +0 -17
  105. package/dist/assets/run-page-CiJgXbRq.js +0 -1
  106. package/dist/assets/stateDiagram-v2-5AN5P6BG-Ct72fLIl.js +0 -1
  107. package/dist/assets/time-DKizHULL.js +0 -1
  108. package/dist/assets/timer-Bqd5yn_a.js +0 -1
  109. package/dist/assets/tracing-Bvs8Nv6U.js +0 -2
  110. package/dist/assets/worker-Bma4sWEs.js +0 -1
@@ -1,10 +1,10 @@
1
- import{cx as qs,h2 as Vh,h3 as Vb,h4 as Yb,h5 as Ul,h6 as bt,h7 as In,h8 as J,h9 as tt,ha as Me,cH as T,hb as P,hc as Us,hd as Be,he as ka,hf as V,hg as Xb,hh as Jb,hi as xt,hj as Yh,hk as en,hl as Wn,hm as ko,hn as ze,ho as kr,cG as Xh,hp as Kb,hq as Qb,hr as Zb,hs as tx,ht as Bt,hu as Jh,hv as Kh,by as nx,hw as ei,hx as ex,hy as Il,hz as Do,hA as Qh,hB as Zh,hC as tp,hD as rx,hE as ix,cD as ax,cy as a6,y as o6,hF as s6,bz as u6,bP as l6,bQ as c6,hG as f6,bS as d6,bT as h6,bU as p6,hH as Dr,cI as Q,hI as $t,cJ as Z,hJ as ox,hK as Oi,hL as Is,hM as np,hN as Wl,hO as ep,hP as rp,hQ as G,bH as sx,hR as Da,hS as Fo,hT as ux,hU as lx,hV as cx,hW as fx,hX as dx,hY as hx,hZ as px,h_ as mx,h$ as gx,i0 as yx,i1 as vx,i2 as bx,i3 as xx,i4 as wx,i5 as Ax,i6 as _x,i7 as kx,i8 as Dx,i9 as Fx,ia as Cx,ib as Ex,ic as $x,id as ip,cL as Fa,ie as Sx,ig as Mx,cK as Hl,ih as Ni,ii as m6,ij as g6,ik as y6,il as v6,im as b6,io as x6,ip as w6,iq as A6,ir as _6,is as k6,it as D6,iu as F6,iv as C6,iw as Bx,ix as E6,iy as $6,iz as S6,aK as M6,iA as B6,iB as z6,iC as O6,iD as N6,iE as R6,iF as T6,iG as P6,cM as ap}from"./index-BRsKX55I.js";import{m as op,a as Ca,d as j6,r as L6,l as sp,i as q6,h as U6,n as I6,c as W6,u as H6,b as G6,t as V6,e as Y6}from"./time-DKizHULL.js";import{n as X6,b as J6,i as Ws,d as K6,e as Q6,f as Z6,o as t8,g as Gl,h as zx,j as Co,t as up,a as lp,k as Ri,m as Ea,l as n8,p as e8,q as r8}from"./linear-5RI6BcLf.js";import{r as xe}from"./range-CtcPcB_L.js";import{R as Ox,r as i8,d as a8,e as o8,m as Nx,o as Rx,C as s8,h as cp,p as fp,n as Oe,q as u8,s as l8,i as c8,a as f8,u as d8,v as h8,b as p8,k as m8,j as g8,w as Vl,T as y8,l as v8,t as b8,g as x8}from"./timer-Bqd5yn_a.js";import{i as w8}from"./zoom-COrs4lFh.js";import{i as $a,a as Ti}from"./init-DLRA0X12.js";import{I as Yl,o as Tx,i as A8}from"./ordinal-DDUp3AbE.js";import{c as Fr}from"./colors-bszWmPJw.js";import{w as Px,n as _8,z as jx,a as Hn,J as k8,K as D8,l as Lx,b as F8,t as C8,p as E8,o as $8,q as S8,r as M8,u as B8,x as z8,v as O8,y as N8,B as R8,C as T8,A as P8,F as j8,E as L8,D as q8,G as U8,H as I8,I as W8,k as H8,L as dp}from"./step-BwsUM5iJ.js";import{d as G8}from"./arc-ZB5pDULS.js";import{o as Xl,c as qx,a as V8,r as Y8,b as Jl,N as Ux,d as X8,e as hp,s as J8,p as K8,h as Q8,t as Z8,f as t9}from"./index-BEQfoZiP.js";class Gn{constructor(){this._partials=new Float64Array(32),this._n=0}add(n){const e=this._partials;let r=0;for(let i=0;i<this._n&&i<32;i++){const a=e[i],o=n+a,s=Math.abs(n)<Math.abs(a)?n-(o-a):a-(o-n);s&&(e[r++]=s),n=o}return e[r]=n,this._n=r+1,this}valueOf(){const n=this._partials;let e,r,i,a=this._n,o=0;if(a>0){for(o=n[--a];a>0&&(e=o,r=n[--a],o=e+r,i=r-(o-e),!i););a>0&&(i<0&&n[a-1]<0||i>0&&n[a-1]>0)&&(r=2*i,e=o+r,r==e-o&&(o=e))}return o}}function Ix(t,n){return(t==null||!(t>=t))-(n==null||!(n>=n))||(t<n?-1:t>n?1:0)}function Wx(t,n,e=0,r=1/0,i){if(n=Math.floor(n),e=Math.floor(Math.max(0,e)),r=Math.floor(Math.min(t.length-1,r)),!(e<=n&&n<=r))return t;for(i=i===void 0?Ix:function(a=qs){if(a===qs)return Ix;if(typeof a!="function")throw new TypeError("compare is not a function");return(o,s)=>{const u=a(o,s);return u||u===0?u:(a(s,s)===0)-(a(o,o)===0)}}(i);r>e;){if(r-e>600){const u=r-e+1,l=n-e+1,c=Math.log(u),f=.5*Math.exp(2*c/3),d=.5*Math.sqrt(c*f*(u-f)/u)*(l-u/2<0?-1:1);Wx(t,n,Math.max(e,Math.floor(n-l*f/u+d)),Math.min(r,Math.floor(n+(u-l)*f/u+d)),i)}const a=t[n];let o=e,s=r;for(Hs(t,e,n),i(t[r],a)>0&&Hs(t,e,r);o<s;){for(Hs(t,o,s),++o,--s;i(t[o],a)<0;)++o;for(;i(t[s],a)>0;)--s}i(t[e],a)===0?Hs(t,e,s):(++s,Hs(t,s,r)),s<=n&&(e=s+1),n<=s&&(r=s-1)}return t}function Hs(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function pp(t,n,e){if((r=(t=Float64Array.from(X6(t,e))).length)&&!isNaN(n=+n)){if(n<=0||r<2)return op(t);if(n>=1)return Ca(t);var r,i=(r-1)*n,a=Math.floor(i),o=Ca(Wx(t,a).subarray(0,a+1));return o+(op(t.subarray(a+1))-o)*(i-a)}}function Hx(t,n,e=J6){if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,a=Math.floor(i),o=+e(t[a],a,t);return o+(+e(t[a+1],a+1,t)-o)*(i-a)}}function Gx(t,n){return pp(t,.5,n)}function Vx(t){return Array.from(function*(n){for(const e of n)yield*e}(t))}function Yx(t,n){let e=0;for(let r of t)(r=+r)&&(e+=r);return e}function n9(t){return t instanceof Yl?t:new Yl(t)}function Kl(t){const n=t||Me,e=[],r={};return e.add=i=>{const a=n(i);return r[a]||(r[a]=1,e.push(i)),e},e.remove=i=>{const a=n(i);if(r[a]){r[a]=0;const o=e.indexOf(i);o>=0&&e.splice(o,1)}return e},e}async function Ql(t,n){try{await n(t)}catch(e){t.error(e)}}const Xx=Symbol("vega_id");let e9=1;function Zl(t){return!(!t||!st(t))}function st(t){return t[Xx]}function Jx(t,n){return t[Xx]=n,t}function St(t){const n=t===Object(t)?t:{data:t};return st(n)?n:Jx(n,e9++)}function mp(t){return tc(t,St({}))}function tc(t,n){for(const e in t)n[e]=t[e];return n}function Kx(t,n){return Jx(n,st(t))}function Sa(t,n){return t?n?(e,r)=>t(e,r)||st(n(e))-st(n(r)):(e,r)=>t(e,r)||st(e)-st(r):null}function Qx(t){return t&&t.constructor===Ma}function Ma(){const t=[],n=[],e=[],r=[],i=[];let a=null,o=!1;return{constructor:Ma,insert(s){const u=J(s),l=u.length;for(let c=0;c<l;++c)t.push(u[c]);return this},remove(s){const u=bt(s)?r:n,l=J(s),c=l.length;for(let f=0;f<c;++f)u.push(l[f]);return this},modify(s,u,l){const c={field:u,value:In(l)};return bt(s)?(c.filter=s,i.push(c)):(c.tuple=s,e.push(c)),this},encode(s,u){return bt(s)?i.push({filter:s,field:u}):e.push({tuple:s,field:u}),this},clean(s){return a=s,this},reflow(){return o=!0,this},pulse(s,u){const l={},c={};let f,d,h,p,m,g;for(f=0,d=u.length;f<d;++f)l[st(u[f])]=1;for(f=0,d=n.length;f<d;++f)m=n[f],l[st(m)]=-1;for(f=0,d=r.length;f<d;++f)p=r[f],u.forEach(v=>{p(v)&&(l[st(v)]=-1)});for(f=0,d=t.length;f<d;++f)m=t[f],g=st(m),l[g]?l[g]=1:s.add.push(St(t[f]));for(f=0,d=u.length;f<d;++f)m=u[f],l[st(m)]<0&&s.rem.push(m);function y(v,x,b){b?v[x]=b(v):s.encode=x,o||(c[st(v)]=v)}for(f=0,d=e.length;f<d;++f)h=e[f],m=h.tuple,p=h.field,g=l[st(m)],g>0&&(y(m,p,h.value),s.modifies(p));for(f=0,d=i.length;f<d;++f)h=i[f],p=h.filter,u.forEach(v=>{p(v)&&l[st(v)]>0&&y(v,h.field,h.value)}),s.modifies(h.field);if(o)s.mod=n.length||r.length?u.filter(v=>l[st(v)]>0):u.slice();else for(g in c)s.mod.push(c[g]);return(a||a==null&&(n.length||r.length))&&s.clean(!0),s}}}const nc="_:mod:_";function ec(){Object.defineProperty(this,nc,{writable:!0,value:{}})}ec.prototype={set(t,n,e,r){const i=this,a=i[t],o=i[nc];return n!=null&&n>=0?(a[n]!==e||r)&&(a[n]=e,o[n+":"+t]=-1,o[t]=-1):(a!==e||r)&&(i[t]=e,o[t]=T(e)?1+e.length:-1),i},modified(t,n){const e=this[nc];if(!arguments.length){for(const r in e)if(e[r])return!0;return!1}if(T(t)){for(let r=0;r<t.length;++r)if(e[t[r]])return!0;return!1}return n!=null&&n>=0?n+1<e[t]||!!e[n+":"+t]:!!e[t]},clear(){return this[nc]={},this}};let r9=0;const i9=new ec;function Ut(t,n,e,r){this.id=++r9,this.value=t,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,n&&(this._update=n),e&&this.parameters(e,r)}function Zx(t){return function(n){const e=this.flags;return arguments.length===0?!!(e&t):(this.flags=n?e|t:e&~t,this)}}Ut.prototype={targets(){return this._targets||(this._targets=Kl(Us))},set(t){return this.value!==t?(this.value=t,1):0},skip:Zx(1),modified:Zx(2),parameters(t,n,e){n=n!==!1;const r=this._argval=this._argval||new ec,i=this._argops=this._argops||[],a=[];let o,s,u,l;const c=(f,d,h)=>{h instanceof Ut?(h!==this&&(n&&h.targets().add(this),a.push(h)),i.push({op:h,name:f,index:d})):r.set(f,d,h)};for(o in t)if(s=t[o],o==="pulse")J(s).forEach(f=>{f instanceof Ut?f!==this&&(f.targets().add(this),a.push(f)):P("Pulse parameters must be operator instances.")}),this.source=s;else if(T(s))for(r.set(o,-1,Array(u=s.length)),l=0;l<u;++l)c(o,l,s[l]);else c(o,-1,s);return this.marshall().clear(),e&&(i.initonly=!0),a},marshall(t){const n=this._argval||i9,e=this._argops;let r,i,a,o;if(e){const s=e.length;for(i=0;i<s;++i)r=e[i],a=r.op,o=a.modified()&&a.stamp===t,n.set(r.name,r.index,a.value,o);if(e.initonly){for(i=0;i<s;++i)r=e[i],r.op.targets().remove(this);this._argops=null,this._update=null}}return n},detach(){const t=this._argops;let n,e,r,i;if(t)for(n=0,e=t.length;n<e;++n)r=t[n],i=r.op,i._targets&&i._targets.remove(this);this.pulse=null,this.source=null},evaluate(t){const n=this._update;if(n){const e=this.marshall(t.stamp),r=n.call(this,e,t);if(e.clear(),r!==this.value)this.value=r;else if(!this.modified())return t.StopPropagation}},run(t){if(t.stamp<this.stamp)return t.StopPropagation;let n;return this.skip()?(this.skip(!1),n=0):n=this.evaluate(t),this.pulse=n||t}};let a9=0;function rc(t,n,e){this.id=++a9,this.value=null,e&&(this.receive=e),t&&(this._filter=t),n&&(this._apply=n)}function Pi(t,n,e){return new rc(t,n,e)}rc.prototype={_filter:Be,_apply:Me,targets(){return this._targets||(this._targets=Kl(Us))},consume(t){return arguments.length?(this._consume=!!t,this):!!this._consume},receive(t){if(this._filter(t)){const n=this.value=this._apply(t),e=this._targets,r=e?e.length:0;for(let i=0;i<r;++i)e[i].receive(n);this._consume&&(t.preventDefault(),t.stopPropagation())}},filter(t){const n=Pi(t);return this.targets().add(n),n},apply(t){const n=Pi(null,t);return this.targets().add(n),n},merge(){const t=Pi();this.targets().add(t);for(let n=0,e=arguments.length;n<e;++n)arguments[n].targets().add(t);return t},throttle(t){let n=-1;return this.filter(()=>{const e=Date.now();return e-n>t?(n=e,1):0})},debounce(t){const n=Pi();return this.targets().add(Pi(null,null,Yh(t,e=>{const r=e.dataflow;n.receive(e),r&&r.run&&r.run()}))),n},between(t,n){let e=!1;return t.targets().add(Pi(null,null,()=>e=!0)),n.targets().add(Pi(null,null,()=>e=!1)),this.filter(()=>e)},detach(){this._filter=Be,this._targets=null}};const o9={skip:!0};function s9(t,n,e,r,i,a){const o=xt({},a,o9);let s,u;bt(e)||(e=In(e)),r===void 0?s=l=>t.touch(e(l)):bt(r)?(u=new Ut(null,r,i,!1),s=l=>{u.evaluate(l);const c=e(l),f=u.value;Qx(f)?t.pulse(c,f,a):t.update(c,f,o)}):s=l=>t.update(e(l),r,o),n.apply(s)}function u9(t,n,e,r,i,a){if(r===void 0)n.targets().add(e);else{const o=a||{},s=new Ut(null,function(u,l){return l=bt(l)?l:In(l),u?function(c,f){const d=l(c,f);return u.skip()||(u.skip(d!==this.value).value=d),d}:l}(e,r),i,!1);s.modified(o.force),s.rank=n.rank,n.targets().add(s),e&&(s.skip(!0),s.value=e.value,s.targets().add(e),t.connect(e,[s]))}}const ic={};function ji(t,n,e){this.dataflow=t,this.stamp=n??-1,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=e||null}function gp(t,n){const e=[];return ka(t,n,r=>e.push(r)),e}function t2(t,n){const e={};return t.visit(n,r=>{e[st(r)]=1}),r=>e[st(r)]?null:r}function ac(t,n){return t?(e,r)=>t(e,r)&&n(e,r):n}function yp(t,n,e,r){const i=this;let a=0;this.dataflow=t,this.stamp=n,this.fields=null,this.encode=r||null,this.pulses=e;for(const o of e)if(o.stamp===n){if(o.fields){const s=i.fields||(i.fields={});for(const u in o.fields)s[u]=1}o.changed(i.ADD)&&(a|=i.ADD),o.changed(i.REM)&&(a|=i.REM),o.changed(i.MOD)&&(a|=i.MOD)}this.changes=a}function n2(t){return t.error("Dataflow already running. Use runAsync() to chain invocations."),t}ji.prototype={StopPropagation:ic,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(t){return new ji(this.dataflow).init(this,t)},clone(){const t=this.fork(7);return t.add=t.add.slice(),t.rem=t.rem.slice(),t.mod=t.mod.slice(),t.source&&(t.source=t.source.slice()),t.materialize(23)},addAll(){let t=this;return!t.source||t.add===t.rem||!t.rem.length&&t.source.length===t.add.length||(t=new ji(this.dataflow).init(this),t.add=t.source,t.rem=[]),t},init(t,n){const e=this;return e.stamp=t.stamp,e.encode=t.encode,!t.fields||64&n||(e.fields=t.fields),1&n?(e.addF=t.addF,e.add=t.add):(e.addF=null,e.add=[]),2&n?(e.remF=t.remF,e.rem=t.rem):(e.remF=null,e.rem=[]),4&n?(e.modF=t.modF,e.mod=t.mod):(e.modF=null,e.mod=[]),32&n?(e.srcF=null,e.source=null):(e.srcF=t.srcF,e.source=t.source,t.cleans&&(e.cleans=t.cleans)),e},runAfter(t){this.dataflow.runAfter(t)},changed(t){const n=t||7;return 1&n&&this.add.length||2&n&&this.rem.length||4&n&&this.mod.length},reflow(t){if(t)return this.fork(7).reflow();const n=this.add.length,e=this.source&&this.source.length;return e&&e!==n&&(this.mod=this.source,n&&this.filter(4,t2(this,1))),this},clean(t){return arguments.length?(this.cleans=!!t,this):this.cleans},modifies(t){const n=this.fields||(this.fields={});return T(t)?t.forEach(e=>n[e]=!0):n[t]=!0,this},modified(t,n){const e=this.fields;return!(!n&&!this.mod.length||!e)&&(arguments.length?T(t)?t.some(r=>e[r]):e[t]:!!e)},filter(t,n){const e=this;return 1&t&&(e.addF=ac(e.addF,n)),2&t&&(e.remF=ac(e.remF,n)),4&t&&(e.modF=ac(e.modF,n)),16&t&&(e.srcF=ac(e.srcF,n)),e},materialize(t){const n=this;return 1&(t=t||7)&&n.addF&&(n.add=gp(n.add,n.addF),n.addF=null),2&t&&n.remF&&(n.rem=gp(n.rem,n.remF),n.remF=null),4&t&&n.modF&&(n.mod=gp(n.mod,n.modF),n.modF=null),16&t&&n.srcF&&(n.source=n.source.filter(n.srcF),n.srcF=null),n},visit(t,n){const e=this,r=n;if(16&t)return ka(e.source,e.srcF,r),e;1&t&&ka(e.add,e.addF,r),2&t&&ka(e.rem,e.remF,r),4&t&&ka(e.mod,e.modF,r);const i=e.source;if(8&t&&i){const a=e.add.length+e.mod.length;a===i.length||ka(i,a?t2(e,5):e.srcF,r)}return e}},V(yp,ji,{fork(t){const n=new ji(this.dataflow).init(this,t&this.NO_FIELDS);return t!==void 0&&(t&n.ADD&&this.visit(n.ADD,e=>n.add.push(e)),t&n.REM&&this.visit(n.REM,e=>n.rem.push(e)),t&n.MOD&&this.visit(n.MOD,e=>n.mod.push(e))),n},changed(t){return this.changes&t},modified(t){const n=this,e=n.fields;return e&&n.changes&n.MOD?T(t)?t.some(r=>e[r]):e[t]:0},filter(){P("MultiPulse does not support filtering.")},materialize(){P("MultiPulse does not support materialization.")},visit(t,n){const e=this,r=e.pulses,i=r.length;let a=0;if(t&e.SOURCE)for(;a<i;++a)r[a].visit(t,n);else for(;a<i;++a)r[a].stamp===e.stamp&&r[a].visit(t,n);return e}});const vp={skip:!1,force:!1};function l9(t){let n=[];return{clear:()=>n=[],size:()=>n.length,peek:()=>n[0],push:e=>(n.push(e),e2(n,0,n.length-1,t)),pop:()=>{const e=n.pop();let r;return n.length?(r=n[0],n[0]=e,function(i,a,o){const s=a,u=i.length,l=i[a];let c,f=1+(a<<1);for(;f<u;)c=f+1,c<u&&o(i[f],i[c])>=0&&(f=c),i[a]=i[f],f=1+((a=f)<<1);i[a]=l,e2(i,s,a,o)}(n,0,t)):r=e,r}}}function e2(t,n,e,r){let i,a;const o=t[e];for(;e>n&&(a=e-1>>1,i=t[a],r(o,i)<0);)t[e]=i,e=a;return t[e]=o}function Eo(){this.logger(Vh()),this.logLevel(Vb),this._clock=0,this._rank=0,this._locale=Yb();try{this._loader=Ul()}catch{}this._touched=Kl(Us),this._input={},this._pulse=null,this._heap=l9((t,n)=>t.qrank-n.qrank),this._postrun=[]}function Gs(t){return function(){return this._log[t].apply(this,arguments)}}function O(t,n){Ut.call(this,t,null,n)}Eo.prototype={stamp(){return this._clock},loader(t){return arguments.length?(this._loader=t,this):this._loader},locale(t){return arguments.length?(this._locale=t,this):this._locale},logger(t){return arguments.length?(this._log=t,this):this._log},error:Gs("error"),warn:Gs("warn"),info:Gs("info"),debug:Gs("debug"),logLevel:Gs("level"),cleanThreshold:1e4,add:function(t,n,e,r){let i,a=1;return t instanceof Ut?i=t:t&&t.prototype instanceof Ut?i=new t:bt(t)?i=new Ut(null,t):(a=0,i=new Ut(t,n)),this.rank(i),a&&(r=e,e=n),e&&this.connect(i,i.parameters(e,r)),this.touch(i),i},connect:function(t,n){const e=t.rank,r=n.length;for(let i=0;i<r;++i)if(e<n[i].rank)return void this.rerank(t)},rank:function(t){t.rank=++this._rank},rerank:function(t){const n=[t];let e,r,i;for(;n.length;)if(this.rank(e=n.pop()),r=e._targets)for(i=r.length;--i>=0;)n.push(e=r[i]),e===t&&P("Cycle detected in dataflow graph.")},pulse:function(t,n,e){this.touch(t,e||vp);const r=new ji(this,this._clock+(this._pulse?0:1)),i=t.pulse&&t.pulse.source||[];return r.target=t,this._input[t.id]=n.pulse(r,i),this},touch:function(t,n){const e=n||vp;return this._pulse?this._enqueue(t):this._touched.add(t),e.skip&&t.skip(!0),this},update:function(t,n,e){const r=e||vp;return(t.set(n)||r.force)&&this.touch(t,r),this},changeset:Ma,ingest:function(t,n,e){return n=this.parse(n,e),this.pulse(t,this.changeset().insert(n))},parse:function(t,n){const e=this.locale();return Jb(t,n,e.timeParse,e.utcParse)},preload:async function(t,n,e){const r=this,i=r._pending||function(o){let s;const u=new Promise(l=>s=l);return u.requests=0,u.done=()=>{--u.requests===0&&(o._pending=null,s(o))},o._pending=u}(r);i.requests+=1;const a=await r.request(n,e);return r.pulse(t,r.changeset().remove(Be).insert(a.data||[])),i.done(),a},request:async function(t,n){const e=this;let r,i=0;try{r=await e.loader().load(t,{context:"dataflow",response:Xb(n&&n.type)});try{r=e.parse(r,n)}catch(a){i=-2,e.warn("Data ingestion failed",t,a)}}catch(a){i=-1,e.warn("Loading failed",t,a)}return{data:r,status:i}},events:function(t,n,e,r){const i=this,a=Pi(e,r),o=function(l){l.dataflow=i;try{a.receive(l)}catch(c){i.error(c)}finally{i.run()}};let s;s=typeof t=="string"&&typeof document<"u"?document.querySelectorAll(t):J(t);const u=s.length;for(let l=0;l<u;++l)s[l].addEventListener(n,o);return a},on:function(t,n,e,r,i){return(t instanceof Ut?u9:s9)(this,t,n,e,r,i),this},evaluate:async function(t,n,e){const r=this,i=[];if(r._pulse)return n2(r);if(r._pending&&await r._pending,n&&await Ql(r,n),!r._touched.length)return r.debug("Dataflow invoked, but nothing to do."),r;const a=++r._clock;r._pulse=new ji(r,a,t),r._touched.forEach(c=>r._enqueue(c,!0)),r._touched=Kl(Us);let o,s,u,l=0;try{for(;r._heap.size()>0;)o=r._heap.pop(),o.rank===o.qrank?(s=o.run(r._getPulse(o,t)),s.then?s=await s:s.async&&(i.push(s.async),s=ic),s!==ic&&o._targets&&o._targets.forEach(c=>r._enqueue(c)),++l):r._enqueue(o,!0)}catch(c){r._heap.clear(),u=c}if(r._input={},r._pulse=null,r.debug(`Pulse ${a}: ${l} operators`),u&&(r._postrun=[],r.error(u)),r._postrun.length){const c=r._postrun.sort((f,d)=>d.priority-f.priority);r._postrun=[];for(let f=0;f<c.length;++f)await Ql(r,c[f].callback)}return e&&await Ql(r,e),i.length&&Promise.all(i).then(c=>r.runAsync(null,()=>{c.forEach(f=>{try{f(r)}catch(d){r.error(d)}})})),r},run:function(t,n,e){return this._pulse?n2(this):(this.evaluate(t,n,e),this)},runAsync:async function(t,n,e){for(;this._running;)await this._running;const r=()=>this._running=null;return(this._running=this.evaluate(t,n,e)).then(r,r),this._running},runAfter:function(t,n,e){if(this._pulse||n)this._postrun.push({priority:e||0,callback:t});else try{t(this)}catch(r){this.error(r)}},_enqueue:function(t,n){const e=t.stamp<this._clock;e&&(t.stamp=this._clock),(e||n)&&(t.qrank=t.rank,this._heap.push(t))},_getPulse:function(t,n){const e=t.source,r=this._clock;return e&&T(e)?new yp(this,r,e.map(i=>i.pulse),n):this._input[t.id]||function(i,a){return a&&a.stamp===i.stamp?a:(i=i.fork(),a&&a!==ic&&(i.source=a.source),i)}(this._pulse,e&&e.pulse)}},V(O,Ut,{run(t){if(t.stamp<this.stamp)return t.StopPropagation;let n;return this.skip()?this.skip(!1):n=this.evaluate(t),n=n||t,n.then?n=n.then(e=>this.pulse=e):n!==t.StopPropagation&&(this.pulse=n),n},evaluate(t){const n=this.marshall(t.stamp),e=this.transform(n,t);return n.clear(),e},transform(){}});const $o={};function r2(t){const n=i2(t);return n&&n.Definition||null}function i2(t){return t=t&&t.toLowerCase(),tt($o,t)?$o[t]:null}function*a2(t,n){if(n==null)for(let e of t)e!=null&&e!==""&&(e=+e)>=e&&(yield e);else{let e=-1;for(let r of t)r=n(r,++e,t),r!=null&&r!==""&&(r=+r)>=r&&(yield r)}}function bp(t,n,e){const r=Float64Array.from(a2(t,e));return r.sort(qs),n.map(i=>Hx(r,i))}function xp(t,n){return bp(t,[.25,.5,.75],n)}function wp(t,n){const e=t.length,r=function(o,s){const u=function(l,c){let f,d=0,h=0,p=0;if(c===void 0)for(let m of l)m!=null&&(m=+m)>=m&&(f=m-h,h+=f/++d,p+=f*(m-h));else{let m=-1;for(let g of l)(g=c(g,++m,l))!=null&&(g=+g)>=g&&(f=g-h,h+=f/++d,p+=f*(g-h))}if(d>1)return p/(d-1)}(o,s);return u&&Math.sqrt(u)}(t,n),i=xp(t,n),a=(i[2]-i[0])/1.34;return 1.06*(Math.min(r,a)||r||Math.abs(i[0])||1)*Math.pow(e,-.2)}function o2(t){const n=t.maxbins||20,e=t.base||10,r=Math.log(e),i=t.divide||[5,2];let a,o,s,u,l,c,f=t.extent[0],d=t.extent[1];const h=t.span||d-f||Math.abs(f)||1;if(t.step)a=t.step;else if(t.steps){for(u=h/n,l=0,c=t.steps.length;l<c&&t.steps[l]<u;++l);a=t.steps[Math.max(0,l-1)]}else{for(o=Math.ceil(Math.log(n)/r),s=t.minstep||0,a=Math.max(s,Math.pow(e,Math.round(Math.log(h)/r)-o));Math.ceil(h/a)>n;)a*=e;for(l=0,c=i.length;l<c;++l)u=a/i[l],u>=s&&h/u<=n&&(a=u)}u=Math.log(a);const p=u>=0?0:1+~~(-u/r),m=Math.pow(e,-p-1);return(t.nice||t.nice===void 0)&&(u=Math.floor(f/a+m)*a,f=f<u?u-a:u,d=Math.ceil(d/a)*a),{start:f,stop:d===f?f+a:d,step:a}}var Ne=Math.random;function s2(t,n,e,r){if(!t.length)return[void 0,void 0];const i=Float64Array.from(a2(t,r)),a=i.length,o=n;let s,u,l,c;for(l=0,c=Array(o);l<o;++l){for(s=0,u=0;u<a;++u)s+=i[~~(Ne()*a)];c[l]=s/a}return c.sort(qs),[pp(c,e/2),pp(c,1-e/2)]}function u2(t,n,e,r){r=r||(d=>d);const i=t.length,a=new Float64Array(i);let o,s=0,u=1,l=r(t[0]),c=l,f=l+n;for(;u<i;++u){if(o=r(t[u]),o>=f){for(c=(l+c)/2;s<u;++s)a[s]=c;f=o+n,l=o}c=o}for(c=(l+c)/2;s<u;++s)a[s]=c;return e?function(d,h){const p=d.length;let m,g,y=0,v=1;for(;d[y]===d[v];)++v;for(;v<p;){for(m=v+1;d[v]===d[m];)++m;if(d[v]-d[v-1]<h){for(g=v+(y+m-v-v>>1);g<v;)d[g++]=d[v];for(;g>v;)d[g--]=d[y]}y=v,v=m}return d}(a,n+n/4):a}const l2=Math.sqrt(2*Math.PI),c9=Math.SQRT2;let Vs=NaN;function oc(t,n){t=t||0,n=n??1;let e,r,i=0,a=0;if(Vs==Vs)i=Vs,Vs=NaN;else{do i=2*Ne()-1,a=2*Ne()-1,e=i*i+a*a;while(e===0||e>1);r=Math.sqrt(-2*Math.log(e)/e),i*=r,Vs=a*r}return t+i*n}function Ap(t,n,e){const r=(t-(n||0))/(e=e??1);return Math.exp(-.5*r*r)/(e*l2)}function sc(t,n,e){const r=(t-(n=n||0))/(e=e??1),i=Math.abs(r);let a;if(i>37)a=0;else{const o=Math.exp(-i*i/2);let s;i<7.07106781186547?(s=.0352624965998911*i+.700383064443688,s=s*i+6.37396220353165,s=s*i+33.912866078383,s=s*i+112.079291497871,s=s*i+221.213596169931,s=s*i+220.206867912376,a=o*s,s=.0883883476483184*i+1.75566716318264,s=s*i+16.064177579207,s=s*i+86.7807322029461,s=s*i+296.564248779674,s=s*i+637.333633378831,s=s*i+793.826512519948,s=s*i+440.413735824752,a/=s):(s=i+.65,s=i+4/s,s=i+3/s,s=i+2/s,s=i+1/s,a=o/s/2.506628274631)}return r>0?1-a:a}function uc(t,n,e){return t<0||t>1?NaN:(n||0)+(e??1)*c9*function(r){let i,a=-Math.log((1-r)*(1+r));return a<6.25?(a-=3.125,i=-364441206401782e-35,i=i*a-16850591381820166e-35,i=128584807152564e-32+i*a,i=11157877678025181e-33+i*a,i=i*a-1333171662854621e-31,i=20972767875968562e-33+i*a,i=6637638134358324e-30+i*a,i=i*a-4054566272975207e-29,i=i*a-8151934197605472e-29,i=26335093153082323e-28+i*a,i=i*a-12975133253453532e-27,i=i*a-5415412054294628e-26,i=10512122733215323e-25+i*a,i=i*a-4112633980346984e-24,i=i*a-29070369957882005e-24,i=42347877827932404e-23+i*a,i=i*a-13654692000834679e-22,i=i*a-13882523362786469e-21,i=.00018673420803405714+i*a,i=i*a-.000740702534166267,i=i*a-.006033670871430149,i=.24015818242558962+i*a,i=1.6536545626831027+i*a):a<16?(a=Math.sqrt(a)-3.25,i=22137376921775787e-25,i=9075656193888539e-23+i*a,i=i*a-27517406297064545e-23,i=18239629214389228e-24+i*a,i=15027403968909828e-22+i*a,i=i*a-4013867526981546e-21,i=29234449089955446e-22+i*a,i=12475304481671779e-21+i*a,i=i*a-47318229009055734e-21,i=6828485145957318e-20+i*a,i=24031110387097894e-21+i*a,i=i*a-.0003550375203628475,i=.0009532893797373805+i*a,i=i*a-.0016882755560235047,i=.002491442096107851+i*a,i=i*a-.003751208507569241,i=.005370914553590064+i*a,i=1.0052589676941592+i*a,i=3.0838856104922208+i*a):Number.isFinite(a)?(a=Math.sqrt(a)-5,i=-27109920616438573e-27,i=i*a-2555641816996525e-25,i=15076572693500548e-25+i*a,i=i*a-3789465440126737e-24,i=761570120807834e-23+i*a,i=i*a-1496002662714924e-23,i=2914795345090108e-23+i*a,i=i*a-6771199775845234e-23,i=22900482228026655e-23+i*a,i=i*a-99298272942317e-20,i=4526062597223154e-21+i*a,i=i*a-1968177810553167e-20,i=7599527703001776e-20+i*a,i=i*a-.00021503011930044477,i=i*a-.00013871931833623122,i=1.0103004648645344+i*a,i=4.849906401408584+i*a):i=1/0,i*r}(2*t-1)}function _p(t,n){let e,r;const i={mean(a){return arguments.length?(e=a||0,i):e},stdev(a){return arguments.length?(r=a??1,i):r},sample:()=>oc(e,r),pdf:a=>Ap(a,e,r),cdf:a=>sc(a,e,r),icdf:a=>uc(a,e,r)};return i.mean(t).stdev(n)}function kp(t,n){const e=_p();let r=0;const i={data(a){return arguments.length?(t=a,r=a?a.length:0,i.bandwidth(n)):t},bandwidth(a){return arguments.length?(!(n=a)&&t&&(n=wp(t)),i):n},sample:()=>t[~~(Ne()*r)]+n*e.sample(),pdf(a){let o=0,s=0;for(;s<r;++s)o+=e.pdf((a-t[s])/n);return o/n/r},cdf(a){let o=0,s=0;for(;s<r;++s)o+=e.cdf((a-t[s])/n);return o/r},icdf(){throw Error("KDE icdf not supported.")}};return i.data(t)}function Dp(t,n){return t=t||0,n=n??1,Math.exp(t+oc()*n)}function Fp(t,n,e){if(t<=0)return 0;n=n||0,e=e??1;const r=(Math.log(t)-n)/e;return Math.exp(-.5*r*r)/(e*l2*t)}function Cp(t,n,e){return sc(Math.log(t),n,e)}function Ep(t,n,e){return Math.exp(uc(t,n,e))}function c2(t,n){let e,r;const i={mean(a){return arguments.length?(e=a||0,i):e},stdev(a){return arguments.length?(r=a??1,i):r},sample:()=>Dp(e,r),pdf:a=>Fp(a,e,r),cdf:a=>Cp(a,e,r),icdf:a=>Ep(a,e,r)};return i.mean(t).stdev(n)}function f2(t,n){let e,r=0;const i={weights(a){return arguments.length?(e=function(o){const s=[];let u,l=0;for(u=0;u<r;++u)l+=s[u]=o[u]==null?1:+o[u];for(u=0;u<r;++u)s[u]/=l;return s}(n=a||[]),i):n},distributions(a){return arguments.length?(a?(r=a.length,t=a):(r=0,t=[]),i.weights(n)):t},sample(){const a=Ne();let o=t[r-1],s=e[0],u=0;for(;u<r-1;s+=e[++u])if(a<s){o=t[u];break}return o.sample()},pdf(a){let o=0,s=0;for(;s<r;++s)o+=e[s]*t[s].pdf(a);return o},cdf(a){let o=0,s=0;for(;s<r;++s)o+=e[s]*t[s].cdf(a);return o},icdf(){throw Error("Mixture icdf not supported.")}};return i.distributions(t).weights(n)}function $p(t,n){return n==null&&(n=t??1,t=0),t+(n-t)*Ne()}function Sp(t,n,e){return e==null&&(e=n??1,n=0),t>=n&&t<=e?1/(e-n):0}function Mp(t,n,e){return e==null&&(e=n??1,n=0),t<n?0:t>e?1:(t-n)/(e-n)}function Bp(t,n,e){return e==null&&(e=n??1,n=0),t>=0&&t<=1?n+t*(e-n):NaN}function d2(t,n){let e,r;const i={min(a){return arguments.length?(e=a||0,i):e},max(a){return arguments.length?(r=a??1,i):r},sample:()=>$p(e,r),pdf:a=>Sp(a,e,r),cdf:a=>Mp(a,e,r),icdf:a=>Bp(a,e,r)};return n==null&&(n=t??1,t=0),i.min(t).max(n)}function zp(t,n,e){let r=0,i=0;for(const a of t){const o=e(a);n(a)==null||o==null||isNaN(o)||(r+=(o-r)/++i)}return{coef:[r],predict:()=>r,rSquared:0}}function Ys(t,n,e,r){const i=r-t*t,a=Math.abs(i)<1e-24?0:(e-t*n)/i;return[n-a*t,a]}function lc(t,n,e,r){t=t.filter(h=>{let p=n(h),m=e(h);return p!=null&&(p=+p)>=p&&m!=null&&(m=+m)>=m}),r&&t.sort((h,p)=>n(h)-n(p));const i=t.length,a=new Float64Array(i),o=new Float64Array(i);let s,u,l,c=0,f=0,d=0;for(l of t)a[c]=s=+n(l),o[c]=u=+e(l),++c,f+=(s-f)/c,d+=(u-d)/c;for(c=0;c<i;++c)a[c]-=f,o[c]-=d;return[a,o,f,d]}function Xs(t,n,e,r){let i,a,o=-1;for(const s of t)i=n(s),a=e(s),i!=null&&(i=+i)>=i&&a!=null&&(a=+a)>=a&&r(i,a,++o)}function So(t,n,e,r,i){let a=0,o=0;return Xs(t,n,e,(s,u)=>{const l=u-i(s),c=u-r;a+=l*l,o+=c*c}),1-a/o}function Op(t,n,e){let r=0,i=0,a=0,o=0,s=0;Xs(t,n,e,(c,f)=>{++s,r+=(c-r)/s,i+=(f-i)/s,a+=(c*f-a)/s,o+=(c*c-o)/s});const u=Ys(r,i,a,o),l=c=>u[0]+u[1]*c;return{coef:u,predict:l,rSquared:So(t,n,e,i,l)}}function h2(t,n,e){let r=0,i=0,a=0,o=0,s=0;Xs(t,n,e,(c,f)=>{++s,c=Math.log(c),r+=(c-r)/s,i+=(f-i)/s,a+=(c*f-a)/s,o+=(c*c-o)/s});const u=Ys(r,i,a,o),l=c=>u[0]+u[1]*Math.log(c);return{coef:u,predict:l,rSquared:So(t,n,e,i,l)}}function p2(t,n,e){const[r,i,a,o]=lc(t,n,e);let s,u,l,c=0,f=0,d=0,h=0,p=0;Xs(t,n,e,(v,x)=>{s=r[p++],u=Math.log(x),l=s*x,c+=(x*u-c)/p,f+=(l-f)/p,d+=(l*u-d)/p,h+=(s*l-h)/p});const[m,g]=Ys(f/o,c/o,d/o,h/o),y=v=>Math.exp(m+g*(v-a));return{coef:[Math.exp(m-g*a),g],predict:y,rSquared:So(t,n,e,o,y)}}function m2(t,n,e){let r=0,i=0,a=0,o=0,s=0,u=0;Xs(t,n,e,(f,d)=>{const h=Math.log(f),p=Math.log(d);++u,r+=(h-r)/u,i+=(p-i)/u,a+=(h*p-a)/u,o+=(h*h-o)/u,s+=(d-s)/u});const l=Ys(r,i,a,o),c=f=>l[0]*Math.pow(f,l[1]);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:So(t,n,e,s,c)}}function Np(t,n,e){const[r,i,a,o]=lc(t,n,e),s=r.length;let u,l,c,f,d=0,h=0,p=0,m=0,g=0;for(u=0;u<s;)l=r[u],c=i[u++],f=l*l,d+=(f-d)/u,h+=(f*l-h)/u,p+=(f*f-p)/u,m+=(l*c-m)/u,g+=(f*c-g)/u;const y=p-d*d,v=d*y-h*h,x=(g*d-m*h)/v,b=(m*y-g*h)/v,w=-x*d,A=_=>x*(_-=a)*_+b*_+w+o;return{coef:[w-b*a+x*a*a+o,b-2*x*a,x],predict:A,rSquared:So(t,n,e,o,A)}}function g2(t,n,e,r){if(r===0)return zp(t,n,e);if(r===1)return Op(t,n,e);if(r===2)return Np(t,n,e);const[i,a,o,s]=lc(t,n,e),u=i.length,l=[],c=[],f=r+1;let d,h,p,m,g;for(d=0;d<f;++d){for(p=0,m=0;p<u;++p)m+=Math.pow(i[p],d)*a[p];for(l.push(m),g=new Float64Array(f),h=0;h<f;++h){for(p=0,m=0;p<u;++p)m+=Math.pow(i[p],d+h);g[h]=m}c.push(g)}c.push(l);const y=function(x){const b=x.length-1,w=[];let A,_,k,D,C;for(A=0;A<b;++A){for(D=A,_=A+1;_<b;++_)Math.abs(x[A][_])>Math.abs(x[A][D])&&(D=_);for(k=A;k<b+1;++k)C=x[k][A],x[k][A]=x[k][D],x[k][D]=C;for(_=A+1;_<b;++_)for(k=b;k>=A;k--)x[k][_]-=x[k][A]*x[A][_]/x[A][A]}for(_=b-1;_>=0;--_){for(C=0,k=_+1;k<b;++k)C+=x[k][_]*w[k];w[_]=(x[b][_]-C)/x[_][_]}return w}(c),v=x=>{x-=o;let b=s+y[0]+y[1]*x+y[2]*x*x;for(d=3;d<f;++d)b+=y[d]*Math.pow(x,d);return b};return{coef:f9(f,y,-o,s),predict:v,rSquared:So(t,n,e,s,v)}}function f9(t,n,e,r){const i=Array(t);let a,o,s,u;for(a=0;a<t;++a)i[a]=0;for(a=t-1;a>=0;--a)for(s=n[a],u=1,i[a]+=s,o=1;o<=a;++o)u*=(a+1-o)/o,i[a-o]+=s*Math.pow(e,o)*u;return i[0]+=r,i}function y2(t,n,e,r){const[i,a,o,s]=lc(t,n,e,!0),u=i.length,l=Math.max(2,~~(r*u)),c=new Float64Array(u),f=new Float64Array(u),d=new Float64Array(u).fill(1);for(let h=-1;++h<=2;){const p=[0,l-1];for(let g=0;g<u;++g){const y=i[g],v=p[0],x=p[1],b=y-i[v]>i[x]-y?v:x;let w=0,A=0,_=0,k=0,D=0;const C=1/Math.abs(i[b]-y||1);for(let $=v;$<=x;++$){const M=i[$],S=a[$],B=d9(Math.abs(y-M)*C)*d[$],z=M*B;w+=B,A+=z,_+=S*B,k+=S*z,D+=M*z}const[F,E]=Ys(A/w,_/w,k/w,D/w);c[g]=F+E*y,f[g]=Math.abs(a[g]-c[g]),h9(i,g+1,p)}if(h===2)break;const m=Gx(f);if(Math.abs(m)<1e-12)break;for(let g,y,v=0;v<u;++v)g=f[v]/(6*m),d[v]=g>=1?1e-12:(y=1-g*g)*y}return function(h,p,m,g){const y=h.length,v=[];let x,b=0,w=0,A=[];for(;b<y;++b)x=h[b]+m,A[0]===x?A[1]+=(p[b]-A[1])/++w:(w=0,A[1]+=g,A=[x,p[b]],v.push(A));return A[1]+=g,v}(i,c,o,s)}function d9(t){return(t=1-t*t*t)*t*t}function h9(t,n,e){const r=t[n];let i=e[0],a=e[1]+1;if(!(a>=t.length))for(;n>i&&t[a]-r<=r-t[i];)e[0]=++i,e[1]=a,++a}const p9=.5*Math.PI/180;function cc(t,n,e,r){e=e||25,r=Math.max(e,r||200);const i=m=>[m,t(m)],a=n[0],o=n[1],s=o-a,u=s/r,l=[i(a)],c=[];if(e===r){for(let m=1;m<r;++m)l.push(i(a+m/e*s));return l.push(i(o)),l}c.push(i(o));for(let m=e;--m>0;)c.push(i(a+m/e*s));let f=l[0],d=c[c.length-1];const h=1/s,p=function(m,g){let y=m,v=m;const x=g.length;for(let b=0;b<x;++b){const w=g[b][1];w<y&&(y=w),w>v&&(v=w)}return 1/(v-y)}(f[1],c);for(;d;){const m=i((f[0]+d[0])/2);m[0]-f[0]>=u&&m9(f,m,d,h,p)>p9?c.push(m):(f=d,l.push(d),c.pop()),d=c[c.length-1]}return l}function m9(t,n,e,r,i){const a=Math.atan2(i*(e[1]-t[1]),r*(e[0]-t[0])),o=Math.atan2(i*(n[1]-t[1]),r*(n[0]-t[0]));return Math.abs(a-o)}function Rp(t){return t&&t.length?t.length===1?t[0]:(n=t,e=>{const r=n.length;let i=1,a=String(n[0](e));for(;i<r;++i)a+="|"+n[i](e);return a}):function(){return""};var n}function v2(t,n,e){return e||t+(n?"_"+n:"")}const Tp=()=>{},g9={init:Tp,add:Tp,rem:Tp,idx:0},Js={values:{init:t=>t.cell.store=!0,value:t=>t.cell.data.values(),idx:-1},count:{value:t=>t.cell.num},__count__:{value:t=>t.missing+t.valid},missing:{value:t=>t.missing},valid:{value:t=>t.valid},sum:{init:t=>t.sum=0,value:t=>t.valid?t.sum:void 0,add:(t,n)=>t.sum+=+n,rem:(t,n)=>t.sum-=n},product:{init:t=>t.product=1,value:t=>t.valid?t.product:void 0,add:(t,n)=>t.product*=n,rem:(t,n)=>t.product/=n},mean:{init:t=>t.mean=0,value:t=>t.valid?t.mean:void 0,add:(t,n)=>(t.mean_d=n-t.mean,t.mean+=t.mean_d/t.valid),rem:(t,n)=>(t.mean_d=n-t.mean,t.mean-=t.valid?t.mean_d/t.valid:t.mean)},average:{value:t=>t.valid?t.mean:void 0,req:["mean"],idx:1},variance:{init:t=>t.dev=0,value:t=>t.valid>1?t.dev/(t.valid-1):void 0,add:(t,n)=>t.dev+=t.mean_d*(n-t.mean),rem:(t,n)=>t.dev-=t.mean_d*(n-t.mean),req:["mean"],idx:1},variancep:{value:t=>t.valid>1?t.dev/t.valid:void 0,req:["variance"],idx:2},stdev:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:t=>t.valid>1?Math.sqrt(t.dev/t.valid):void 0,req:["variance"],idx:2},stderr:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid*(t.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:t=>t.cell.data.distinct(t.get),req:["values"],idx:3},ci0:{value:t=>t.cell.data.ci0(t.get),req:["values"],idx:3},ci1:{value:t=>t.cell.data.ci1(t.get),req:["values"],idx:3},median:{value:t=>t.cell.data.q2(t.get),req:["values"],idx:3},q1:{value:t=>t.cell.data.q1(t.get),req:["values"],idx:3},q3:{value:t=>t.cell.data.q3(t.get),req:["values"],idx:3},min:{init:t=>t.min=void 0,value:t=>t.min=Number.isNaN(t.min)?t.cell.data.min(t.get):t.min,add:(t,n)=>{(n<t.min||t.min===void 0)&&(t.min=n)},rem:(t,n)=>{n<=t.min&&(t.min=NaN)},req:["values"],idx:4},max:{init:t=>t.max=void 0,value:t=>t.max=Number.isNaN(t.max)?t.cell.data.max(t.get):t.max,add:(t,n)=>{(n>t.max||t.max===void 0)&&(t.max=n)},rem:(t,n)=>{n>=t.max&&(t.max=NaN)},req:["values"],idx:4},argmin:{init:t=>t.argmin=void 0,value:t=>t.argmin||t.cell.data.argmin(t.get),add:(t,n,e)=>{n<t.min&&(t.argmin=e)},rem:(t,n)=>{n<=t.min&&(t.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:t=>t.argmax=void 0,value:t=>t.argmax||t.cell.data.argmax(t.get),add:(t,n,e)=>{n>t.max&&(t.argmax=e)},rem:(t,n)=>{n>=t.max&&(t.argmax=void 0)},req:["max","values"],idx:3},exponential:{init:(t,n)=>{t.exp=0,t.exp_r=n},value:t=>t.valid?t.exp*(1-t.exp_r)/(1-t.exp_r**t.valid):void 0,add:(t,n)=>t.exp=t.exp_r*t.exp+n,rem:(t,n)=>t.exp=(t.exp-n/t.exp_r**(t.valid-1))/t.exp_r},exponentialb:{value:t=>t.valid?t.exp*(1-t.exp_r):void 0,req:["exponential"],idx:1}},Ks=Object.keys(Js).filter(t=>t!=="__count__");function b2(t,n,e){return Js[t](e,n)}function x2(t,n){return t.idx-n.idx}function y9(){this.valid=0,this.missing=0,this._ops.forEach(t=>t.aggregate_param==null?t.init(this):t.init(this,t.aggregate_param))}function v9(t,n){t!=null&&t!==""?t==t&&(++this.valid,this._ops.forEach(e=>e.add(this,t,n))):++this.missing}function b9(t,n){t!=null&&t!==""?t==t&&(--this.valid,this._ops.forEach(e=>e.rem(this,t,n))):--this.missing}function x9(t){return this._out.forEach(n=>t[n.out]=n.value(this)),t}function w2(t,n){const e=n||Me,r=function(o){const s={};o.forEach(l=>s[l.name]=l);const u=l=>{l.req&&l.req.forEach(c=>{s[c]||u(s[c]=Js[c]())})};return o.forEach(u),Object.values(s).sort(x2)}(t),i=t.slice().sort(x2);function a(o){this._ops=r,this._out=i,this.cell=o,this.init()}return a.prototype.init=y9,a.prototype.add=v9,a.prototype.rem=b9,a.prototype.set=x9,a.prototype.get=e,a.fields=t.map(o=>o.out),a}function Pp(t){this._key=t?ei(t):st,this.reset()}[...Ks,"__count__"].forEach(t=>{Js[t]=function(n,e){return(r,i)=>xt({name:n,aggregate_param:i,out:r||n},g9,e)}(t,Js[t])});const kn=Pp.prototype;function Li(t){O.call(this,null,t),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}kn.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},kn.add=function(t){this._add.push(t)},kn.rem=function(t){this._rem.push(t)},kn.values=function(){if(this._get=null,this._rem.length===0)return this._add;const t=this._add,n=this._rem,e=this._key,r=t.length,i=n.length,a=Array(r-i),o={};let s,u,l;for(s=0;s<i;++s)o[e(n[s])]=1;for(s=0,u=0;s<r;++s)o[e(l=t[s])]?o[e(l)]=0:a[u++]=l;return this._rem=[],this._add=a},kn.distinct=function(t){const n=this.values(),e={};let r,i=n.length,a=0;for(;--i>=0;)r=t(n[i])+"",tt(e,r)||(e[r]=1,++a);return a},kn.extent=function(t){if(this._get!==t||!this._ext){const n=this.values(),e=rx(n,t);this._ext=[n[e[0]],n[e[1]]],this._get=t}return this._ext},kn.argmin=function(t){return this.extent(t)[0]||{}},kn.argmax=function(t){return this.extent(t)[1]||{}},kn.min=function(t){const n=this.extent(t)[0];return n!=null?t(n):void 0},kn.max=function(t){const n=this.extent(t)[1];return n!=null?t(n):void 0},kn.quartile=function(t){return this._get===t&&this._q||(this._q=xp(this.values(),t),this._get=t),this._q},kn.q1=function(t){return this.quartile(t)[0]},kn.q2=function(t){return this.quartile(t)[1]},kn.q3=function(t){return this.quartile(t)[2]},kn.ci=function(t){return this._get===t&&this._ci||(this._ci=s2(this.values(),1e3,.05,t),this._get=t),this._ci},kn.ci0=function(t){return this.ci(t)[0]},kn.ci1=function(t){return this.ci(t)[1]},Li.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Ks},{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"}]},V(Li,O,{transform(t,n){const e=this,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=t.modified();return e.stamp=r.stamp,e.value&&(i||n.modified(e._inputs,!0))?(e._prev=e.value,e.value=i?e.init(t):Object.create(null),n.visit(n.SOURCE,a=>e.add(a))):(e.value=e.value||e.init(t),n.visit(n.REM,a=>e.rem(a)),n.visit(n.ADD,a=>e.add(a))),r.modifies(e._outputs),e._drop=t.drop!==!1,t.cross&&e._dims.length>1&&(e._drop=!1,e.cross()),n.clean()&&e._drop&&r.clean(!0).runAfter(()=>this.clean()),e.changes(r)},cross(){const t=this,n=t.value,e=t._dnames,r=e.map(()=>({})),i=e.length;function a(o){let s,u,l,c;for(s in o)for(l=o[s].tuple,u=0;u<i;++u)r[u][c=l[e[u]]]=c}a(t._prev),a(n),function o(s,u,l){const c=e[l],f=r[l++];for(const d in f){const h=s?s+"|"+d:d;u[c]=f[d],l<i?o(h,u,l):n[h]||t.cell(h,u)}}("",{},0)},init(t){const n=this._inputs=[],e=this._outputs=[],r={};function i(v){const x=J(Wn(v)),b=x.length;let w,A=0;for(;A<b;++A)r[w=x[A]]||(r[w]=1,n.push(w))}this._dims=J(t.groupby),this._dnames=this._dims.map(v=>{const x=en(v);return i(v),e.push(x),x}),this.cellkey=t.key?t.key:Rp(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const a=t.fields||[null],o=t.ops||["count"],s=t.aggregate_params||[null],u=t.as||[],l=a.length,c={};let f,d,h,p,m,g,y;for(l!==o.length&&P("Unmatched number of fields and aggregate ops."),y=0;y<l;++y)f=a[y],d=o[y],h=s[y]||null,f==null&&d!=="count"&&P("Null aggregate field specified."),m=en(f),g=v2(d,m,u[y]),e.push(g),d!=="count"?(p=c[m],p||(i(f),p=c[m]=[],p.field=f,this._measures.push(p)),d!=="count"&&(this._countOnly=!1),p.push(b2(d,h,g))):this._counts.push(g);return this._measures=this._measures.map(v=>w2(v,v.field)),Object.create(null)},cellkey:Rp(),cell(t,n){let e=this.value[t];return e?e.num===0&&this._drop&&e.stamp<this.stamp?(e.stamp=this.stamp,this._adds[this._alen++]=e):e.stamp<this.stamp&&(e.stamp=this.stamp,this._mods[this._mlen++]=e):(e=this.value[t]=this.newcell(t,n),this._adds[this._alen++]=e),e},newcell(t,n){const e={key:t,num:0,agg:null,tuple:this.newtuple(n,this._prev&&this._prev[t]),stamp:this.stamp,store:!1};if(!this._countOnly){const r=this._measures,i=r.length;e.agg=Array(i);for(let a=0;a<i;++a)e.agg[a]=new r[a](e)}return e.store&&(e.data=new Pp),e},newtuple(t,n){const e=this._dnames,r=this._dims,i=r.length,a={};for(let o=0;o<i;++o)a[e[o]]=r[o](t);return n?Kx(n.tuple,a):St(a)},clean(){const t=this.value;for(const n in t)t[n].num===0&&delete t[n]},add(t){const n=this.cellkey(t),e=this.cell(n,t);if(e.num+=1,this._countOnly)return;e.store&&e.data.add(t);const r=e.agg;for(let i=0,a=r.length;i<a;++i)r[i].add(r[i].get(t),t)},rem(t){const n=this.cellkey(t),e=this.cell(n,t);if(e.num-=1,this._countOnly)return;e.store&&e.data.rem(t);const r=e.agg;for(let i=0,a=r.length;i<a;++i)r[i].rem(r[i].get(t),t)},celltuple(t){const n=t.tuple,e=this._counts;t.store&&t.data.values();for(let r=0,i=e.length;r<i;++r)n[e[r]]=t.num;if(!this._countOnly){const r=t.agg;for(let i=0,a=r.length;i<a;++i)r[i].set(n)}return n},changes(t){const n=this._adds,e=this._mods,r=this._prev,i=this._drop,a=t.add,o=t.rem,s=t.mod;let u,l,c,f;if(r)for(l in r)u=r[l],i&&!u.num||o.push(u.tuple);for(c=0,f=this._alen;c<f;++c)a.push(this.celltuple(n[c])),n[c]=null;for(c=0,f=this._mlen;c<f;++c)u=e[c],(u.num===0&&i?o:s).push(this.celltuple(u)),e[c]=null;return this._alen=this._mlen=0,this._prev=null,t}});function jp(t){O.call(this,null,t)}function A2(t,n,e){const r=t;let i=n||[],a=e||[],o={},s=0;return{add:u=>a.push(u),remove:u=>o[r(u)]=++s,size:()=>i.length,data:(u,l)=>(s&&(i=i.filter(c=>!o[r(c)]),o={},s=0),l&&u&&i.sort(u),a.length&&(i=u?ex(u,i,a.sort(u)):i.concat(a),a=[]),i)}}function Lp(t){O.call(this,[],t)}function _2(t){Ut.call(this,null,w9,t)}function w9(t){return this.value&&!t.modified()?this.value:Qh(t.fields,t.orders)}function qp(t){O.call(this,null,t)}function Up(t){O.call(this,null,t)}jp.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"]}]},V(jp,O,{transform(t,n){const e=t.interval!==!1,r=this._bins(t),i=r.start,a=r.step,o=t.as||["bin0","bin1"],s=o[0],u=o[1];let l;return l=t.modified()?(n=n.reflow(!0)).SOURCE:n.modified(Wn(t.field))?n.ADD_MOD:n.ADD,n.visit(l,e?c=>{const f=r(c);c[s]=f,c[u]=f==null?null:i+a*(1+(f-i)/a)}:c=>c[s]=r(c)),n.modifies(e?o:s)},_bins(t){if(this.value&&!t.modified())return this.value;const n=t.field,e=o2(t),r=e.step;let i,a,o=e.start,s=o+Math.ceil((e.stop-o)/r)*r;(i=t.anchor)!=null&&(a=i-(o+r*Math.floor((i-o)/r)),o+=a,s+=a);const u=function(l){let c=ze(n(l));return c==null?null:c<o?-1/0:c>s?1/0:(c=Math.max(o,Math.min(c,s-r)),o+r*Math.floor(1e-14+(c-o)/r))};return u.start=o,u.stop=e.stop,u.step=r,this.value=ko(u,Wn(n),t.name||"bin_"+en(n))}}),Lp.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},V(Lp,O,{transform(t,n){const e=n.fork(n.ALL),r=A2(st,this.value,e.materialize(e.ADD).add),i=t.sort,a=n.changed()||i&&(t.modified("sort")||n.modified(i.fields));return e.visit(e.REM,r.remove),this.modified(a),this.value=e.source=r.data(Sa(i),a),n.source&&n.source.root&&(this.value.root=n.source.root),e}}),V(_2,Ut),qp.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"]}]},V(qp,O,{transform(t,n){const e=f=>d=>{for(var h,p=function(y,v,x){switch(v){case"upper":y=y.toUpperCase();break;case"lower":y=y.toLowerCase()}return y.match(x)}(s(d),t.case,a)||[],m=0,g=p.length;m<g;++m)o.test(h=p[m])||f(h)},r=this._parameterCheck(t,n),i=this._counts,a=this._match,o=this._stop,s=t.field,u=t.as||["text","count"],l=e(f=>i[f]=1+(i[f]||0)),c=e(f=>i[f]-=1);return r?n.visit(n.SOURCE,l):(n.visit(n.ADD,l),n.visit(n.REM,c)),this._finish(n,u)},_parameterCheck(t,n){let e=!1;return!t.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(t.stopwords||"")+"$","i"),e=!0),!t.modified("pattern")&&this._match||(this._match=new RegExp(t.pattern||"[\\w']+","g"),e=!0),(t.modified("field")||n.modified(t.field.fields))&&(e=!0),e&&(this._counts={}),e},_finish(t,n){const e=this._counts,r=this._tuples||(this._tuples={}),i=n[0],a=n[1],o=t.fork(t.NO_SOURCE|t.NO_FIELDS);let s,u,l;for(s in e)u=r[s],l=e[s]||0,!u&&l?(r[s]=u=St({}),u[i]=s,u[a]=l,o.add.push(u)):l===0?(u&&o.rem.push(u),e[s]=null,r[s]=null):u[a]!==l&&(u[a]=l,o.mod.push(u));return o.modifies(n)}}),Up.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},V(Up,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.as||["a","b"],i=r[0],a=r[1],o=!this.value||n.changed(n.ADD_REM)||t.modified("as")||t.modified("filter");let s=this.value;return o?(s&&(e.rem=s),s=n.materialize(n.SOURCE).source,e.add=this.value=function(u,l,c,f){for(var d,h,p=[],m={},g=u.length,y=0;y<g;++y)for(m[l]=h=u[y],d=0;d<g;++d)m[c]=u[d],f(m)&&(p.push(St(m)),(m={})[l]=h);return p}(s,i,a,t.filter||Be)):e.mod=s,e.source=this.value,e.modifies(r)}});const k2={kde:kp,mixture:f2,normal:_p,lognormal:c2,uniform:d2},D2="function";function F2(t,n){const e=t[D2];tt(k2,e)||P("Unknown distribution function: "+e);const r=k2[e]();for(const i in t)i==="field"?r.data((t.from||n()).map(t[i])):i==="distributions"?r[i](t[i].map(a=>F2(a,n))):typeof r[i]===D2&&r[i](t[i]);return r}function Ip(t){O.call(this,null,t)}const C2=[{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}]}],A9={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:C2},{name:"weights",type:"number",array:!0}]};function E2(t,n){return t?t.map((e,r)=>n[r]||en(e)):null}function Wp(t,n,e){const r=[],i=f=>f(u);let a,o,s,u,l,c;if(n==null)r.push(t.map(e));else for(a={},o=0,s=t.length;o<s;++o)u=t[o],l=n.map(i),c=a[l],c||(a[l]=c=[],c.dims=l,r.push(c)),c.push(e(u));return r}Ip.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:C2.concat(A9)},{name:"as",type:"string",array:!0,default:["value","density"]}]},V(Ip,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=F2(t.distribution,function(l){return()=>l.materialize(l.SOURCE).source}(n)),i=t.steps||t.minsteps||25,a=t.steps||t.maxsteps||200;let o=t.method||"pdf";o!=="pdf"&&o!=="cdf"&&P("Invalid density method: "+o),t.extent||r.data||P("Missing density extent parameter."),o=r[o];const s=t.as||["value","density"],u=cc(o,t.extent||kr(r.data()),i,a).map(l=>{const c={};return c[s[0]]=l[0],c[s[1]]=l[1],St(c)});this.value&&(e.rem=this.value),this.value=e.add=e.source=u}return e}});function Hp(t){O.call(this,null,t)}Hp.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 $2(t){Ut.call(this,null,_9,t),this.modified(!0)}function _9(t){const n=t.expr;return this.value&&!t.modified("expr")?this.value:ko(e=>n(e,t),Wn(n),en(n))}function Gp(t){O.call(this,[void 0,void 0],t)}function Vp(t,n){Ut.call(this,t),this.parent=n,this.count=0}function fc(t){O.call(this,{},t),this._keys=Do();const n=this._targets=[];n.active=0,n.forEach=e=>{for(let r=0,i=n.active;r<i;++r)e(n[r],r,n)}}function S2(t){Ut.call(this,null,k9,t)}function k9(t){return this.value&&!t.modified()?this.value:T(t.name)?J(t.name).map(n=>ei(n)):ei(t.name,t.as)}function Yp(t){O.call(this,Do(),t)}function Xp(t){O.call(this,[],t)}function Jp(t){O.call(this,[],t)}function Kp(t){O.call(this,null,t)}function M2(t){O.call(this,[],t)}V(Hp,O,{transform(t,n){if(this.value&&!t.modified()&&!n.changed())return n;const e=n.materialize(n.SOURCE).source,r=Wp(n.source,t.groupby,Me),i=t.smooth||!1,a=t.field,o=t.step||((p,m)=>Il(kr(p,m))/30)(e,a),s=Sa((p,m)=>a(p)-a(m)),u=t.as||"bin",l=r.length;let c,f=1/0,d=-1/0,h=0;for(;h<l;++h){const p=r[h].sort(s);c=-1;for(const m of u2(p,o,i,a))m<f&&(f=m),m>d&&(d=m),p[++c][u]=m}return this.value={start:f,stop:d,step:o},n.reflow(!0).modifies(u)}}),V($2,Ut),Gp.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},V(Gp,O,{transform(t,n){const e=this.value,r=t.field,i=n.changed()||n.modified(r.fields)||t.modified("field");let a=e[0],o=e[1];if((i||a==null)&&(a=1/0,o=-1/0),n.visit(i?n.SOURCE:n.ADD,s=>{const u=ze(r(s));u!=null&&(u<a&&(a=u),u>o&&(o=u))}),!Number.isFinite(a)||!Number.isFinite(o)){let s=en(r);s&&(s=` for field "${s}"`),n.dataflow.warn(`Infinite extent${s}: [${a}, ${o}]`),a=o=void 0}this.value=[a,o]}}),V(Vp,Ut,{connect(t){return this.detachSubflow=t.detachSubflow,this.targets().add(t),t.source=this},add(t){this.count+=1,this.value.add.push(t)},rem(t){this.count-=1,this.value.rem.push(t)},mod(t){this.value.mod.push(t)},init(t){this.value.init(t,t.NO_SOURCE)},evaluate(){return this.value}}),V(fc,O,{activate(t){this._targets[this._targets.active++]=t},subflow(t,n,e,r){const i=this.value;let a,o,s=tt(i,t)&&i[t];return s?s.value.stamp<e.stamp&&(s.init(e),this.activate(s)):(o=r||(o=this._group[t])&&o.tuple,a=e.dataflow,s=new Vp(e.fork(e.NO_SOURCE),this),a.add(s).connect(n(a,t,o)),i[t]=s,this.activate(s)),s},clean(){const t=this.value;let n=0;for(const e in t)if(t[e].count===0){const r=t[e].detachSubflow;r&&r(),delete t[e],++n}if(n){const e=this._targets.filter(r=>r&&r.count>0);this.initTargets(e)}},initTargets(t){const n=this._targets,e=n.length,r=t?t.length:0;let i=0;for(;i<r;++i)n[i]=t[i];for(;i<e&&n[i]!=null;++i)n[i]=null;n.active=r},transform(t,n){const e=n.dataflow,r=t.key,i=t.subflow,a=this._keys,o=t.modified("key"),s=u=>this.subflow(u,i,n);return this._group=t.group||{},this.initTargets(),n.visit(n.REM,u=>{const l=st(u),c=a.get(l);c!==void 0&&(a.delete(l),s(c).rem(u))}),n.visit(n.ADD,u=>{const l=r(u);a.set(st(u),l),s(l).add(u)}),o||n.modified(r.fields)?n.visit(n.MOD,u=>{const l=st(u),c=a.get(l),f=r(u);c===f?s(f).mod(u):(a.set(l,f),s(c).rem(u),s(f).add(u))}):n.changed(n.MOD)&&n.visit(n.MOD,u=>{s(a.get(st(u))).mod(u)}),o&&n.visit(n.REFLOW,u=>{const l=st(u),c=a.get(l),f=r(u);c!==f&&(a.set(l,f),s(c).rem(u),s(f).add(u))}),n.clean()?e.runAfter(()=>{this.clean(),a.clean()}):a.empty>e.cleanThreshold&&e.runAfter(a.clean),n}}),V(S2,Ut),Yp.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},V(Yp,O,{transform(t,n){const e=n.dataflow,r=this.value,i=n.fork(),a=i.add,o=i.rem,s=i.mod,u=t.expr;let l=!0;function c(f){const d=st(f),h=u(f,t),p=r.get(d);h&&p?(r.delete(d),a.push(f)):h||p?l&&h&&!p&&s.push(f):(r.set(d,1),o.push(f))}return n.visit(n.REM,f=>{const d=st(f);r.has(d)?r.delete(d):o.push(f)}),n.visit(n.ADD,f=>{u(f,t)?a.push(f):r.set(st(f),1)}),n.visit(n.MOD,c),t.modified()&&(l=!1,n.visit(n.REFLOW,c)),r.empty>e.cleanThreshold&&e.runAfter(r.clean),i}}),Xp.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}]},V(Xp,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.fields,i=E2(r,t.as||[]),a=t.index||null,o=i.length;return e.rem=this.value,n.visit(n.SOURCE,s=>{const u=r.map(p=>p(s)),l=u.reduce((p,m)=>Math.max(p,m.length),0);let c,f,d,h=0;for(;h<l;++h){for(f=mp(s),c=0;c<o;++c)f[i[c]]=(d=u[c][h])==null?null:d;a&&(f[a]=h),e.add.push(f)}}),this.value=e.source=e.add,a&&e.modifies(a),e.modifies(i)}}),Jp.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"]}]},V(Jp,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.fields,i=r.map(en),a=t.as||["key","value"],o=a[0],s=a[1],u=r.length;return e.rem=this.value,n.visit(n.SOURCE,l=>{for(let c,f=0;f<u;++f)c=mp(l),c[o]=i[f],c[s]=r[f](l),e.add.push(c)}),this.value=e.source=e.add,e.modifies(a)}}),Kp.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},V(Kp,O,{transform(t,n){const e=t.expr,r=t.as,i=t.modified(),a=t.initonly?n.ADD:i?n.SOURCE:n.modified(e.fields)||n.modified(r)?n.ADD_MOD:n.ADD;return i&&(n=n.materialize().reflow(!0)),t.initonly||n.modifies(r),n.visit(a,o=>o[r]=e(o,t))}}),V(M2,O,{transform(t,n){const e=n.fork(n.ALL),r=t.generator;let i,a,o,s=this.value,u=t.size-s.length;if(u>0){for(i=[];--u>=0;)i.push(o=St(r(t))),s.push(o);e.add=e.add.length?e.materialize(e.ADD).add.concat(i):i}else a=s.slice(0,-u),e.rem=e.rem.length?e.materialize(e.REM).rem.concat(a):a,s=s.slice(-u);return e.source=this.value=s,e}});const dc={value:"value",median:Gx,mean:function(t,n){let e=0,r=0;if(n===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++e,r+=i);else{let i=-1;for(let a of t)(a=n(a,++i,t))!=null&&(a=+a)>=a&&(++e,r+=a)}if(e)return r/e},min:op,max:Ca},D9=[];function Qp(t){O.call(this,[],t)}function Zp(t){Li.call(this,t)}function tm(t){O.call(this,null,t)}function B2(t){Ut.call(this,null,F9,t)}function F9(t){return this.value&&!t.modified()?this.value:Zh(t.fields,t.flat)}function z2(t){O.call(this,[],t),this._pending=null}function nm(t,n,e){e.forEach(St);const r=n.fork(n.NO_FIELDS&n.NO_SOURCE);return r.rem=t.value,t.value=r.source=r.add=e,t._pending=null,r.rem.length&&r.clean(!0),r}function em(t){O.call(this,{},t)}function O2(t){Ut.call(this,null,C9,t)}function C9(t){if(this.value&&!t.modified())return this.value;const n=t.extents,e=n.length;let r,i,a=1/0,o=-1/0;for(r=0;r<e;++r)i=n[r],i[0]<a&&(a=i[0]),i[1]>o&&(o=i[1]);return[a,o]}function N2(t){Ut.call(this,null,E9,t)}function E9(t){return this.value&&!t.modified()?this.value:t.values.reduce((n,e)=>n.concat(e),[])}function R2(t){O.call(this,null,t)}function rm(t){Li.call(this,t)}function T2(t){fc.call(this,t)}function im(t){O.call(this,null,t)}function P2(t){O.call(this,null,t)}function am(t){O.call(this,null,t)}Qp.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}]},V(Qp,O,{transform(t,n){var e,r,i,a,o,s,u,l,c,f,d=n.fork(n.ALL),h=function(A){var _,k=A.method||dc.value;if(dc[k]!=null)return k===dc.value?(_=A.value!==void 0?A.value:0,()=>_):dc[k];P("Unrecognized imputation method: "+k)}(t),p=function(A){const _=A.field;return k=>k?_(k):NaN}(t),m=en(t.field),g=en(t.key),y=(t.groupby||[]).map(en),v=function(A,_,k,D){var C,F,E,$,M,S,B,z,j=ot=>ot(z),W=[],K=D?D.slice():[],q={},at={};for(K.forEach((ot,it)=>q[ot]=it+1),$=0,B=A.length;$<B;++$)S=k(z=A[$]),M=q[S]||(q[S]=K.push(S)),(E=at[F=(C=_?_.map(j):D9)+""])||(E=at[F]=[],W.push(E),E.values=C),E[M-1]=z;return W.domain=K,W}(n.source,t.groupby,t.key,t.keyvals),x=[],b=this.value,w=v.domain.length;for(o=0,l=v.length;o<l;++o)for(i=(e=v[o]).values,r=NaN,u=0;u<w;++u)if(e[u]==null){for(a=v.domain[u],f={_impute:!0},s=0,c=i.length;s<c;++s)f[y[s]]=i[s];f[g]=a,f[m]=Number.isNaN(r)?r=h(e,p):r,x.push(St(f))}return x.length&&(d.add=d.materialize(d.ADD).add.concat(x)),b.length&&(d.rem=d.materialize(d.REM).rem.concat(b)),this.value=x,d}}),Zp.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:Ks},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},V(Zp,Li,{transform(t,n){const e=this,r=t.modified();let i;return e.value&&(r||n.modified(e._inputs,!0))?(i=e.value=r?e.init(t):{},n.visit(n.SOURCE,a=>e.add(a))):(i=e.value=e.value||this.init(t),n.visit(n.REM,a=>e.rem(a)),n.visit(n.ADD,a=>e.add(a))),e.changes(),n.visit(n.SOURCE,a=>{xt(a,i[e.cellkey(a)].tuple)}),n.reflow(r).modifies(this._outputs)},changes(){const t=this._adds,n=this._mods;let e,r;for(e=0,r=this._alen;e<r;++e)this.celltuple(t[e]),t[e]=null;for(e=0,r=this._mlen;e<r;++e)this.celltuple(n[e]),n[e]=null;this._alen=this._mlen=0}}),tm.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"]}]},V(tm,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=n.materialize(n.SOURCE).source,i=Wp(r,t.groupby,t.field),a=(t.groupby||[]).map(en),o=t.bandwidth,s=t.cumulative?"cdf":"pdf",u=t.as||["value","density"],l=[];let c=t.extent,f=t.steps||t.minsteps||25,d=t.steps||t.maxsteps||200;s!=="pdf"&&s!=="cdf"&&P("Invalid density method: "+s),t.resolve==="shared"&&(c||(c=kr(r,t.field)),f=d=t.steps||d),i.forEach(h=>{const p=kp(h,o)[s],m=t.counts?h.length:1;cc(p,c||kr(h),f,d).forEach(g=>{const y={};for(let v=0;v<a.length;++v)y[a[v]]=h.dims[v];y[u[0]]=g[0],y[u[1]]=g[1]*m,l.push(St(y))})}),this.value&&(e.rem=this.value),this.value=e.add=e.source=l}return e}}),V(B2,Ut),V(z2,O,{transform(t,n){const e=n.dataflow;return this._pending?nm(this,n,this._pending):function(r){return r.modified("async")&&!(r.modified("values")||r.modified("url")||r.modified("format"))}(t)?n.StopPropagation:t.values?nm(this,n,e.parse(t.values,t.format)):t.async?{async:e.request(t.url,t.format).then(i=>(this._pending=J(i.data),a=>a.touch(this)))}:e.request(t.url,t.format).then(r=>nm(this,n,J(r.data)))}}),em.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}]},V(em,O,{transform(t,n){const e=t.fields,r=t.index,i=t.values,a=t.default==null?null:t.default,o=t.modified(),s=e.length;let u,l,c,f=o?n.SOURCE:n.ADD,d=n,h=t.as;return i?(l=i.length,s>1&&!h&&P('Multi-field lookup requires explicit "as" parameter.'),h&&h.length!==s*l&&P('The "as" parameter has too few output field names.'),h=h||i.map(en),u=function(p){for(var m,g,y=0,v=0;y<s;++y)if((g=r.get(e[y](p)))==null)for(m=0;m<l;++m,++v)p[h[v]]=a;else for(m=0;m<l;++m,++v)p[h[v]]=i[m](g)}):(h||P("Missing output field names."),u=function(p){for(var m,g=0;g<s;++g)m=r.get(e[g](p)),p[h[g]]=m??a}),o?d=n.reflow(!0):(c=e.some(p=>n.modified(p.fields)),f|=c?n.MOD:0),n.visit(f,u),d.modifies(h)}}),V(O2,Ut),V(N2,Ut),V(R2,O,{transform(t,n){return this.modified(t.modified()),this.value=t,n.fork(n.NO_SOURCE|n.NO_FIELDS)}}),rm.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:Ks,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},V(rm,Li,{_transform:Li.prototype.transform,transform(t,n){return this._transform(function(e,r){const i=e.field,a=e.value,o=(e.op==="count"?"__count__":e.op)||"sum",s=Wn(i).concat(Wn(a)),u=function(l,c,f){const d={},h=[];return f.visit(f.SOURCE,p=>{const m=l(p);d[m]||(d[m]=1,h.push(m))}),h.sort(Xh),c?h.slice(0,c):h}(i,e.limit||0,r);return r.changed()&&e.set("__pivot__",null,null,!0),{key:e.key,groupby:e.groupby,ops:u.map(()=>o),fields:u.map(l=>function(c,f,d,h){return ko(p=>f(p)===c?d(p):NaN,h,c+"")}(l,i,a,s)),as:u.map(l=>l+""),modified:e.modified.bind(e)}}(t,n),n)}}),V(T2,fc,{transform(t,n){const e=t.subflow,r=t.field,i=a=>this.subflow(st(a),e,n,a);return(t.modified("field")||r&&n.modified(Wn(r)))&&P("PreFacet does not support field modification."),this.initTargets(),r?(n.visit(n.MOD,a=>{const o=i(a);r(a).forEach(s=>o.mod(s))}),n.visit(n.ADD,a=>{const o=i(a);r(a).forEach(s=>o.add(St(s)))}),n.visit(n.REM,a=>{const o=i(a);r(a).forEach(s=>o.rem(s))})):(n.visit(n.MOD,a=>i(a).mod(a)),n.visit(n.ADD,a=>i(a).add(a)),n.visit(n.REM,a=>i(a).rem(a))),n.clean()&&n.runAfter(()=>this.clean()),n}}),im.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},V(im,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.fields,i=E2(t.fields,t.as||[]),a=r?(s,u)=>function(l,c,f,d){for(let h=0,p=f.length;h<p;++h)c[d[h]]=f[h](l);return c}(s,u,r,i):tc;let o;return this.value?o=this.value:(n=n.addAll(),o=this.value={}),n.visit(n.REM,s=>{const u=st(s);e.rem.push(o[u]),o[u]=null}),n.visit(n.ADD,s=>{const u=a(s,St({}));o[st(s)]=u,e.add.push(u)}),n.visit(n.MOD,s=>{e.mod.push(a(s,o[st(s)]))}),e}}),V(P2,O,{transform(t,n){return this.value=t.value,t.modified("value")?n.fork(n.NO_SOURCE|n.NO_FIELDS):n.StopPropagation}}),am.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 j2(t){O.call(this,null,t)}function om(t){O.call(this,[],t),this.count=0}function sm(t){O.call(this,null,t)}function L2(t){O.call(this,null,t),this.modified(!0)}function um(t){O.call(this,null,t)}V(am,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS),r=t.as||["prob","value"];if(this.value&&!t.modified()&&!n.changed())return e.source=this.value,e;const i=Wp(n.materialize(n.SOURCE).source,t.groupby,t.field),a=(t.groupby||[]).map(en),o=[],s=t.step||.01,u=t.probs||xe(s/2,1-1e-14,s),l=u.length;return i.forEach(c=>{const f=bp(c,u);for(let d=0;d<l;++d){const h={};for(let p=0;p<a.length;++p)h[a[p]]=c.dims[p];h[r[0]]=u[d],h[r[1]]=f[d],o.push(St(h))}}),this.value&&(e.rem=this.value),this.value=e.add=e.source=o,e}}),V(j2,O,{transform(t,n){let e,r;return this.value?r=this.value:(e=n=n.addAll(),r=this.value={}),t.derive&&(e=n.fork(n.NO_SOURCE),n.visit(n.REM,i=>{const a=st(i);e.rem.push(r[a]),r[a]=null}),n.visit(n.ADD,i=>{const a=mp(i);r[st(i)]=a,e.add.push(a)}),n.visit(n.MOD,i=>{const a=r[st(i)];for(const o in i)a[o]=i[o],e.modifies(o);e.mod.push(a)})),e}}),om.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},V(om,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.modified("size"),i=t.size,a=this.value.reduce((c,f)=>(c[st(f)]=1,c),{});let o=this.value,s=this.count,u=0;function l(c){let f,d;o.length<i?o.push(c):(d=~~((s+1)*Ne()),d<o.length&&d>=u&&(f=o[d],a[st(f)]&&e.rem.push(f),o[d]=c)),++s}if(n.rem.length&&(n.visit(n.REM,c=>{const f=st(c);a[f]&&(a[f]=-1,e.rem.push(c)),--s}),o=o.filter(c=>a[st(c)]!==-1)),(n.rem.length||r)&&o.length<i&&n.source&&(u=s=o.length,n.visit(n.SOURCE,c=>{a[st(c)]||l(c)}),u=-1),r&&o.length>i){const c=o.length-i;for(let f=0;f<c;++f)a[st(o[f])]=-1,e.rem.push(o[f]);o=o.slice(c)}return n.mod.length&&n.visit(n.MOD,c=>{a[st(c)]&&e.mod.push(c)}),n.add.length&&n.visit(n.ADD,l),(n.add.length||u<0)&&(e.add=o.filter(c=>!a[st(c)])),this.count=s,this.value=e.source=o,e}}),sm.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"}]},V(sm,O,{transform(t,n){if(this.value&&!t.modified())return;const e=n.materialize().fork(n.MOD),r=t.as||"data";return e.rem=this.value?n.rem.concat(this.value):n.rem,this.value=xe(t.start,t.stop,t.step||1).map(i=>{const a={};return a[r]=i,St(a)}),e.add=n.add.concat(this.value),e}}),V(L2,O,{transform(t,n){return this.value=n.source,n.changed()?n.fork(n.NO_SOURCE|n.NO_FIELDS):n.StopPropagation}});const q2=["unit0","unit1"];function U2(t){O.call(this,Do(),t)}function I2(t){O.call(this,null,t)}um.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:ix,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:q2}]},V(um,O,{transform(t,n){const e=t.field,r=t.interval!==!1,i=t.timezone==="utc",a=this._floor(t,n),o=(i?Jh:Kh)(a.unit).offset,s=t.as||q2,u=s[0],l=s[1],c=a.step;let f=a.start||1/0,d=a.stop||-1/0,h=n.ADD;return(t.modified()||n.changed(n.REM)||n.modified(Wn(e)))&&(h=(n=n.reflow(!0)).SOURCE,f=1/0,d=-1/0),n.visit(h,p=>{const m=e(p);let g,y;m==null?(p[u]=null,r&&(p[l]=null)):(p[u]=g=y=a(m),r&&(p[l]=y=o(g,c)),g<f&&(f=g),y>d&&(d=y))}),a.start=f,a.stop=d,n.modifies(r?s:u)},_floor(t,n){const e=t.timezone==="utc",{units:r,step:i}=t.units?{units:t.units,step:t.step||1}:Kb({extent:t.extent||kr(n.materialize(n.SOURCE).source,t.field),maxbins:t.maxbins}),a=Qb(r),o=this.value||{},s=(e?Zb:tx)(a,i);return s.unit=Bt(a),s.units=a,s.step=i,s.start=o.start,s.stop=o.stop,this.value=s}}),V(U2,O,{transform(t,n){const e=n.dataflow,r=t.field,i=this.value,a=s=>i.set(r(s),s);let o=!0;return t.modified("field")||n.modified(r.fields)?(i.clear(),n.visit(n.SOURCE,a)):n.changed()?(n.visit(n.REM,s=>i.delete(r(s))),n.visit(n.ADD,a)):o=!1,this.modified(o),i.empty>e.cleanThreshold&&e.runAfter(i.clean),n.fork()}}),V(I2,O,{transform(t,n){(!this.value||t.modified("field")||t.modified("sort")||n.changed()||t.sort&&n.modified(t.sort.fields))&&(this.value=(t.sort?n.source.slice().sort(Sa(t.sort)):n.source).map(t.field))}});const Qs={row_number:function(){return{next:t=>t.index+1}},rank:function(){let t;return{init:()=>t=1,next:n=>{const e=n.index,r=n.data;return e&&n.compare(r[e-1],r[e])?t=e+1:t}}},dense_rank:function(){let t;return{init:()=>t=1,next:n=>{const e=n.index,r=n.data;return e&&n.compare(r[e-1],r[e])?++t:t}}},percent_rank:function(){const t=Qs.rank(),n=t.next;return{init:t.init,next:e=>(n(e)-1)/(e.data.length-1)}},cume_dist:function(){let t;return{init:()=>t=0,next:n=>{const e=n.data,r=n.compare;let i=n.index;if(t<i){for(;i+1<e.length&&!r(e[i],e[i+1]);)++i;t=i}return(1+t)/e.length}}},ntile:function(t,n){(n=+n)>0||P("ntile num must be greater than zero.");const e=Qs.cume_dist(),r=e.next;return{init:e.init,next:i=>Math.ceil(n*r(i))}},lag:function(t,n){return n=+n||1,{next:e=>{const r=e.index-n;return r>=0?t(e.data[r]):null}}},lead:function(t,n){return n=+n||1,{next:e=>{const r=e.index+n,i=e.data;return r<i.length?t(i[r]):null}}},first_value:function(t){return{next:n=>t(n.data[n.i0])}},last_value:function(t){return{next:n=>t(n.data[n.i1-1])}},nth_value:function(t,n){return(n=+n)>0||P("nth_value nth must be greater than zero."),{next:e=>{const r=e.i0+(n-1);return r<e.i1?t(e.data[r]):null}}},prev_value:function(t){let n;return{init:()=>n=null,next:e=>{const r=t(e.data[e.index]);return r!=null?n=r:n}}},next_value:function(t){let n,e;return{init:()=>(n=null,e=-1),next:r=>{const i=r.data;return r.index<=e?n:(e=function(a,o,s){for(let u=o.length;s<u;++s)if(a(o[s])!=null)return s;return-1}(t,i,r.index))<0?(e=i.length,n=null):n=t(i[e])}}}},$9=Object.keys(Qs);function W2(t){const n=J(t.ops),e=J(t.fields),r=J(t.params),i=J(t.aggregate_params),a=J(t.as),o=this.outputs=[],s=this.windows=[],u={},l={},c=[],f=[];let d=!0;function h(p){J(Wn(p)).forEach(m=>u[m]=1)}h(t.sort),n.forEach((p,m)=>{const g=e[m],y=r[m],v=i[m]||null,x=en(g),b=v2(p,x,a[m]);if(h(g),o.push(b),tt(Qs,p))s.push(function(w,A,_,k){const D=Qs[w](A,_);return{init:D.init||tp,update:function(C,F){F[k]=D.next(C)}}}(p,g,y,b));else{if(g==null&&p!=="count"&&P("Null aggregate field specified."),p==="count")return void c.push(b);d=!1;let w=l[x];w||(w=l[x]=[],w.field=g,f.push(w)),w.push(b2(p,v,b))}}),(c.length||f.length)&&(this.cell=function(p,m,g){p=p.map(A=>w2(A,A.field));const y={num:0,agg:null,store:!1,count:m};if(!g)for(var v=p.length,x=y.agg=Array(v),b=0;b<v;++b)x[b]=new p[b](y);if(y.store)var w=y.data=new Pp;return y.add=function(A){if(y.num+=1,!g){w&&w.add(A);for(let _=0;_<v;++_)x[_].add(x[_].get(A),A)}},y.rem=function(A){if(y.num-=1,!g){w&&w.rem(A);for(let _=0;_<v;++_)x[_].rem(x[_].get(A),A)}},y.set=function(A){let _,k;for(w&&w.values(),_=0,k=m.length;_<k;++_)A[m[_]]=y.num;if(!g)for(_=0,k=x.length;_<k;++_)x[_].set(A)},y.init=function(){y.num=0,w&&w.reset();for(let A=0;A<v;++A)x[A].init()},y}(f,c,d)),this.inputs=Object.keys(u)}const H2=W2.prototype;function lm(t){O.call(this,{},t),this._mlen=0,this._mods=[]}function S9(t,n,e,r){const i=r.sort,a=i&&!r.ignorePeers,o=r.frame||[null,0],s=t.data(e),u=s.length,l=a?nx(i):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:s,compare:i||In(-1)};n.init();for(let f=0;f<u;++f)M9(c,o,f,u),a&&B9(c,l),n.update(c,s[f])}function M9(t,n,e,r){t.p0=t.i0,t.p1=t.i1,t.i0=n[0]==null?0:Math.max(0,e-Math.abs(n[0])),t.i1=n[1]==null?r:Math.min(r,e+Math.abs(n[1])+1),t.index=e}function B9(t,n){const e=t.i0,r=t.i1-1,i=t.compare,a=t.data,o=a.length-1;e>0&&!i(a[e],a[e-1])&&(t.i0=n.left(a,a[e])),r<o&&!i(a[r],a[r+1])&&(t.i1=n.right(a,a[r]))}H2.init=function(){this.windows.forEach(t=>t.init()),this.cell&&this.cell.init()},H2.update=function(t,n){const e=this.cell,r=this.windows,i=t.data,a=r&&r.length;let o;if(e){for(o=t.p0;o<t.i0;++o)e.rem(i[o]);for(o=t.p1;o<t.i1;++o)e.add(i[o]);e.set(n)}for(o=0;o<a;++o)r[o].update(t,n)},lm.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:$9.concat(Ks)},{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}]},V(lm,O,{transform(t,n){this.stamp=n.stamp;const e=t.modified(),r=Sa(t.sort),i=Rp(t.groupby),a=s=>this.group(i(s));let o=this.state;o&&!e||(o=this.state=new W2(t)),e||n.modified(o.inputs)?(this.value={},n.visit(n.SOURCE,s=>a(s).add(s))):(n.visit(n.REM,s=>a(s).remove(s)),n.visit(n.ADD,s=>a(s).add(s)));for(let s=0,u=this._mlen;s<u;++s)S9(this._mods[s],o,r,t);return this._mlen=0,this._mods=[],n.reflow(e).modifies(o.outputs)},group(t){let n=this.value[t];return n||(n=this.value[t]=A2(st),n.stamp=-1),n.stamp<this.stamp&&(n.stamp=this.stamp,this._mods[this._mlen++]=n),n}});const z9=Object.freeze(Object.defineProperty({__proto__:null,aggregate:Li,bin:jp,collect:Lp,compare:_2,countpattern:qp,cross:Up,density:Ip,dotbin:Hp,expression:$2,extent:Gp,facet:fc,field:S2,filter:Yp,flatten:Xp,fold:Jp,formula:Kp,generate:M2,impute:Qp,joinaggregate:Zp,kde:tm,key:B2,load:z2,lookup:em,multiextent:O2,multivalues:N2,params:R2,pivot:rm,prefacet:T2,project:im,proxy:P2,quantile:am,relay:j2,sample:om,sequence:sm,sieve:L2,subflow:Vp,timeunit:um,tupleindex:U2,values:I2,window:lm},Symbol.toStringTag,{value:"Module"}));function G2(t,n,e){var r=null,i=Hn(!0),a=null,o=jx,s=null,u=Px(l);function l(f){var d,h,p,m,g,y=(f=_8(f)).length,v=!1,x=new Array(y),b=new Array(y);for(a==null&&(s=o(g=u())),d=0;d<=y;++d){if(!(d<y&&i(m=f[d],d,f))===v)if(v=!v)h=d,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),p=d-1;p>=h;--p)s.point(x[p],b[p]);s.lineEnd(),s.areaEnd()}v&&(x[d]=+t(m,d,f),b[d]=+n(m,d,f),s.point(r?+r(m,d,f):x[d],e?+e(m,d,f):b[d]))}if(g)return s=null,g+""||null}function c(){return Lx().defined(i).curve(o).context(a)}return t=typeof t=="function"?t:t===void 0?k8:Hn(+t),n=typeof n=="function"?n:Hn(n===void 0?0:+n),e=typeof e=="function"?e:e===void 0?D8:Hn(+e),l.x=function(f){return arguments.length?(t=typeof f=="function"?f:Hn(+f),r=null,l):t},l.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Hn(+f),l):t},l.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Hn(+f),l):r},l.y=function(f){return arguments.length?(n=typeof f=="function"?f:Hn(+f),e=null,l):n},l.y0=function(f){return arguments.length?(n=typeof f=="function"?f:Hn(+f),l):n},l.y1=function(f){return arguments.length?(e=f==null?null:typeof f=="function"?f:Hn(+f),l):e},l.lineX0=l.lineY0=function(){return c().x(t).y(n)},l.lineY1=function(){return c().x(t).y(e)},l.lineX1=function(){return c().x(r).y(n)},l.defined=function(f){return arguments.length?(i=typeof f=="function"?f:Hn(!!f),l):i},l.curve=function(f){return arguments.length?(o=f,a!=null&&(s=o(a)),l):o},l.context=function(f){return arguments.length?(f==null?a=s=null:s=o(a=f),l):a},l}const O9={draw(t,n){const e=F8(n/E8);t.moveTo(e,0),t.arc(0,0,e,0,C8)}};function qi(t,n){if(typeof document<"u"&&document.createElement){const e=document.createElement("canvas");if(e&&e.getContext)return e.width=t,e.height=n,e}return null}const N9=()=>typeof Image<"u"?Image:null;var V2=-.14861,cm=1.78277,fm=-.29227,hc=-.90649,Zs=1.97294,Y2=Zs*hc,X2=Zs*cm,J2=cm*fm-hc*V2;function dm(t,n,e,r){return arguments.length===1?function(i){if(i instanceof Ba)return new Ba(i.h,i.s,i.l,i.opacity);i instanceof Ox||(i=i8(i));var a=i.r/255,o=i.g/255,s=i.b/255,u=(J2*s+Y2*a-X2*o)/(J2+Y2-X2),l=s-u,c=(Zs*(o-u)-fm*l)/hc,f=Math.sqrt(c*c+l*l)/(Zs*u*(1-u)),d=f?Math.atan2(c,l)*j6-120:NaN;return new Ba(d<0?d+360:d,f,u,i.opacity)}(t):new Ba(t,n,e,r??1)}function Ba(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function K2(t){return function(n,e){var r=t((n=fp(n)).h,(e=fp(e)).h),i=Oe(n.s,e.s),a=Oe(n.l,e.l),o=Oe(n.opacity,e.opacity);return function(s){return n.h=r(s),n.s=i(s),n.l=a(s),n.opacity=o(s),n+""}}}a8(Ba,dm,o8(s8,{brighter(t){return t=t==null?Rx:Math.pow(Rx,t),new Ba(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Nx:Math.pow(Nx,t),new Ba(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*L6,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Ox(255*(n+e*(V2*r+cm*i)),255*(n+e*(fm*r+hc*i)),255*(n+e*(Zs*r)),this.opacity)}}));const R9=K2(cp);var T9=K2(Oe);function Q2(t){return function n(e){function r(i,a){var o=t((i=dm(i)).h,(a=dm(a)).h),s=Oe(i.s,a.s),u=Oe(i.l,a.l),l=Oe(i.opacity,a.opacity);return function(c){return i.h=o(c),i.s=s(c),i.l=u(Math.pow(c,e)),i.opacity=l(c),i+""}}return e=+e,r.gamma=n,r}(1)}const P9=Q2(cp);var j9=Q2(Oe);function hm(t,n){n===void 0&&(n=t,t=Ws);for(var e=0,r=n.length-1,i=n[0],a=new Array(r<0?0:r);e<r;)a[e]=t(i,i=n[++e]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}const L9=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Ws,interpolateArray:K6,interpolateBasis:u8,interpolateBasisClosed:l8,interpolateCubehelix:P9,interpolateCubehelixLong:j9,interpolateDate:Q6,interpolateDiscrete:function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},interpolateHcl:q6,interpolateHclLong:U6,interpolateHsl:R9,interpolateHslLong:T9,interpolateHue:function(t,n){var e=cp(+t,+n);return function(r){var i=e(r);return i-360*Math.floor(i/360)}},interpolateLab:function(t,n){var e=Oe((t=sp(t)).l,(n=sp(n)).l),r=Oe(t.a,n.a),i=Oe(t.b,n.b),a=Oe(t.opacity,n.opacity);return function(o){return t.l=e(o),t.a=r(o),t.b=i(o),t.opacity=a(o),t+""}},interpolateNumber:c8,interpolateNumberArray:Z6,interpolateObject:t8,interpolateRgb:f8,interpolateRgbBasis:d8,interpolateRgbBasisClosed:h8,interpolateRound:Gl,interpolateString:p8,interpolateTransformCss:m8,interpolateTransformSvg:g8,interpolateZoom:w8,piecewise:hm,quantize:function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e}},Symbol.toStringTag,{value:"Module"}));function Z2(t){return Math.log(t)}function tw(t){return Math.exp(t)}function q9(t){return-Math.log(-t)}function U9(t){return-Math.exp(-t)}function I9(t){return isFinite(t)?+("1e"+t):t<0?0:t}function nw(t){return(n,e)=>-t(-n,e)}function pm(t){const n=t(Z2,tw),e=n.domain;let r,i,a=10;function o(){return r=function(s){return s===Math.E?Math.log:s===10&&Math.log10||s===2&&Math.log2||(s=Math.log(s),u=>Math.log(u)/s)}(a),i=function(s){return s===10?I9:s===Math.E?Math.exp:u=>Math.pow(s,u)}(a),e()[0]<0?(r=nw(r),i=nw(i),t(q9,U9)):t(Z2,tw),n}return n.base=function(s){return arguments.length?(a=+s,o()):a},n.domain=function(s){return arguments.length?(e(s),o()):e()},n.ticks=s=>{const u=e();let l=u[0],c=u[u.length-1];const f=c<l;f&&([l,c]=[c,l]);let d,h,p=r(l),m=r(c);const g=s==null?10:+s;let y=[];if(!(a%1)&&m-p<g){if(p=Math.floor(p),m=Math.ceil(m),l>0){for(;p<=m;++p)for(d=1;d<a;++d)if(h=p<0?d/i(-p):d*i(p),!(h<l)){if(h>c)break;y.push(h)}}else for(;p<=m;++p)for(d=a-1;d>=1;--d)if(h=p>0?d/i(-p):d*i(p),!(h<l)){if(h>c)break;y.push(h)}2*y.length<g&&(y=ax(l,c,g))}else y=ax(p,m,Math.min(m-p,g)).map(i);return f?y.reverse():y},n.tickFormat=(s,u)=>{if(s==null&&(s=10),u==null&&(u=a===10?"s":","),typeof u!="function"&&(a%1||(u=a6(u)).precision!=null||(u.trim=!0),u=o6(u)),s===1/0)return u;const l=Math.max(1,a*s/n.ticks().length);return c=>{let f=c/i(Math.round(r(c)));return f*a<a-.5&&(f*=a),f<=l?u(c):""}},n.nice=()=>e(I6(e(),{floor:s=>i(Math.floor(r(s))),ceil:s=>i(Math.ceil(r(s)))})),n}function ew(t){return function(n){return Math.sign(n)*Math.log1p(Math.abs(n/t))}}function rw(t){return function(n){return Math.sign(n)*Math.expm1(Math.abs(n))*t}}function mm(t){var n=1,e=t(ew(n),rw(n));return e.constant=function(r){return arguments.length?t(ew(n=+r),rw(n)):n},Co(e)}function iw(t){return function(n){return n<0?-Math.pow(-n,t):Math.pow(n,t)}}function W9(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function H9(t){return t<0?-t*t:t*t}function gm(t){var n=t(Ri,Ri),e=1;return n.exponent=function(r){return arguments.length?(e=+r)==1?t(Ri,Ri):e===.5?t(W9,H9):t(iw(e),iw(1/e)):e},Co(n)}function ym(){var t=gm(up());return t.copy=function(){return lp(t,ym()).exponent(t.exponent())},$a.apply(t,arguments),t}function pc(){var t,n,e,r,i,a=0,o=1,s=Ri,u=!1;function l(f){return f==null||isNaN(f=+f)?i:s(e===0?.5:(f=(r(f)-t)*e,u?Math.max(0,Math.min(1,f)):f))}function c(f){return function(d){var h,p;return arguments.length?([h,p]=d,s=f(h,p),l):[s(0),s(1)]}}return l.domain=function(f){return arguments.length?([a,o]=f,t=r(a=+a),n=r(o=+o),e=t===n?0:1/(n-t),l):[a,o]},l.clamp=function(f){return arguments.length?(u=!!f,l):u},l.interpolator=function(f){return arguments.length?(s=f,l):s},l.range=c(Ws),l.rangeRound=c(Gl),l.unknown=function(f){return arguments.length?(i=f,l):i},function(f){return r=f,t=f(a),n=f(o),e=t===n?0:1/(n-t),l}}function Ui(t,n){return n.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function vm(){var t=Co(pc()(Ri));return t.copy=function(){return Ui(t,vm())},Ti.apply(t,arguments)}function bm(){var t=gm(pc());return t.copy=function(){return Ui(t,bm()).exponent(t.exponent())},Ti.apply(t,arguments)}function mc(){var t,n,e,r,i,a,o,s=0,u=.5,l=1,c=1,f=Ri,d=!1;function h(m){return isNaN(m=+m)?o:(m=.5+((m=+a(m))-n)*(c*m<c*n?r:i),f(d?Math.max(0,Math.min(1,m)):m))}function p(m){return function(g){var y,v,x;return arguments.length?([y,v,x]=g,f=hm(m,[y,v,x]),h):[f(0),f(.5),f(1)]}}return h.domain=function(m){return arguments.length?([s,u,l]=m,t=a(s=+s),n=a(u=+u),e=a(l=+l),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),c=n<t?-1:1,h):[s,u,l]},h.clamp=function(m){return arguments.length?(d=!!m,h):d},h.interpolator=function(m){return arguments.length?(f=m,h):f},h.range=p(Ws),h.rangeRound=p(Gl),h.unknown=function(m){return arguments.length?(o=m,h):o},function(m){return a=m,t=m(s),n=m(u),e=m(l),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),c=n<t?-1:1,h}}function xm(){var t=gm(mc());return t.copy=function(){return Ui(t,xm()).exponent(t.exponent())},Ti.apply(t,arguments)}const G9=Fr("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),V9=Fr("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Y9=Fr("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),X9=Fr("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),J9=Fr("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),K9=Fr("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),Q9=Fr("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),Z9=Fr("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),t7=Fr("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),n7=Fr("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function wm(t,n,e){const r=t-n+2*e;return t?r>0?r:1:0}const Mo="linear",ri="log",tu="pow",nu="sqrt",gc="symlog",za="time",Oa="utc",Cr="sequential",Bo="diverging",zo="quantile",yc="quantize",vc="threshold",Am="ordinal",_m="point",aw="band",km="bin-ordinal",fn="continuous",eu="discrete",ru="discretizing",Re="interpolating",Dm="temporal";function Fm(){const t=Tx().unknown(void 0),n=t.domain,e=t.range;let r,i,a=[0,1],o=!1,s=0,u=0,l=.5;function c(){const f=n().length,d=a[1]<a[0],h=a[1-d],p=wm(f,s,u);let m=a[d-0];r=(h-m)/(p||1),o&&(r=Math.floor(r)),m+=(h-m-r*(f-s))*l,i=r*(1-s),o&&(m=Math.round(m),i=Math.round(i));const g=xe(f).map(y=>m+r*y);return e(d?g.reverse():g)}return delete t.unknown,t.domain=function(f){return arguments.length?(n(f),c()):n()},t.range=function(f){return arguments.length?(a=[+f[0],+f[1]],c()):a.slice()},t.rangeRound=function(f){return a=[+f[0],+f[1]],o=!0,c()},t.bandwidth=function(){return i},t.step=function(){return r},t.round=function(f){return arguments.length?(o=!!f,c()):o},t.padding=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),s=u,c()):s},t.paddingInner=function(f){return arguments.length?(s=Math.max(0,Math.min(1,f)),c()):s},t.paddingOuter=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},t.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},t.invertRange=function(f){if(f[0]==null||f[1]==null)return;const d=a[1]<a[0],h=d?e().reverse():e(),p=h.length-1;let m,g,y,v=+f[0],x=+f[1];return v!=v||x!=x||(x<v&&(y=v,v=x,x=y),x<h[0]||v>a[1-d])?void 0:(m=Math.max(0,Ea(h,v)-1),g=v===x?m:Ea(h,x)-1,v-h[m]>i+1e-10&&++m,d&&(y=m,m=p-g,g=p-y),m>g?void 0:n().slice(m,g+1))},t.invert=function(f){const d=t.invertRange([f,f]);return d&&d[0]},t.copy=function(){return Fm().domain(n()).range(a).round(o).paddingInner(s).paddingOuter(u).align(l)},c()}function ow(t){const n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return ow(n())},t}var e7=Array.prototype.map;const r7=Array.prototype.slice,bc=new Map,sw=Symbol("vega_scale");function uw(t){return t[sw]=!0,t}function lw(t){return t&&t[sw]===!0}function Dt(t,n,e){return arguments.length>1?(bc.set(t,function(r,i,a){const o=function(){const s=i();return s.invertRange||(s.invertRange=s.invert?function(u){return function(l){let c,f=l[0],d=l[1];return d<f&&(c=f,f=d,d=c),[u.invert(f),u.invert(d)]}}(s):s.invertExtent?function(u){return function(l){const c=u.range();let f,d,h,p,m=l[0],g=l[1],y=-1;for(g<m&&(d=m,m=g,g=d),h=0,p=c.length;h<p;++h)c[h]>=m&&c[h]<=g&&(y<0&&(y=h),f=h);if(!(y<0))return m=u.invertExtent(c[y]),g=u.invertExtent(c[f]),[m[0]===void 0?m[1]:m[0],g[1]===void 0?g[0]:g[1]]}}(s):void 0),s.type=r,uw(s)};return o.metadata=Dr(J(a)),o}(t,n,e)),this):cw(t)?bc.get(t):void 0}function cw(t){return bc.has(t)}function Na(t,n){const e=bc.get(t);return e&&e.metadata[n]}function Cm(t){return Na(t,fn)}function Oo(t){return Na(t,eu)}function Em(t){return Na(t,ru)}function fw(t){return Na(t,ri)}function dw(t){return Na(t,Re)}function hw(t){return Na(t,zo)}Dt("identity",function t(n){var e;function r(i){return i==null||isNaN(i=+i)?e:i}return r.invert=r,r.domain=r.range=function(i){return arguments.length?(n=Array.from(i,zx),r):n.slice()},r.unknown=function(i){return arguments.length?(e=i,r):e},r.copy=function(){return t(n).unknown(e)},n=arguments.length?Array.from(n,zx):[0,1],Co(r)}),Dt(Mo,n8,fn),Dt(ri,function t(){const n=pm(up()).domain([1,10]);return n.copy=()=>lp(n,t()).base(n.base()),$a.apply(n,arguments),n},[fn,ri]),Dt(tu,ym,fn),Dt(nu,function(){return ym.apply(null,arguments).exponent(.5)},fn),Dt(gc,function t(){var n=mm(up());return n.copy=function(){return lp(n,t()).constant(n.constant())},$a.apply(n,arguments)},fn),Dt(za,V6,[fn,Dm]),Dt(Oa,function(){return $a.apply(W6(G6,H6,p6,h6,d6,f6,c6,l6,u6,s6).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},[fn,Dm]),Dt(Cr,vm,[fn,Re]),Dt(`${Cr}-${Mo}`,vm,[fn,Re]),Dt(`${Cr}-${ri}`,function t(){var n=pm(pc()).domain([1,10]);return n.copy=function(){return Ui(n,t()).base(n.base())},Ti.apply(n,arguments)},[fn,Re,ri]),Dt(`${Cr}-${tu}`,bm,[fn,Re]),Dt(`${Cr}-${nu}`,function(){return bm.apply(null,arguments).exponent(.5)},[fn,Re]),Dt(`${Cr}-${gc}`,function t(){var n=mm(pc());return n.copy=function(){return Ui(n,t()).constant(n.constant())},Ti.apply(n,arguments)},[fn,Re]),Dt(`${Bo}-${Mo}`,function t(){var n=Co(mc()(Ri));return n.copy=function(){return Ui(n,t())},Ti.apply(n,arguments)},[fn,Re]),Dt(`${Bo}-${ri}`,function t(){var n=pm(mc()).domain([.1,1,10]);return n.copy=function(){return Ui(n,t()).base(n.base())},Ti.apply(n,arguments)},[fn,Re,ri]),Dt(`${Bo}-${tu}`,xm,[fn,Re]),Dt(`${Bo}-${nu}`,function(){return xm.apply(null,arguments).exponent(.5)},[fn,Re]),Dt(`${Bo}-${gc}`,function t(){var n=mm(mc());return n.copy=function(){return Ui(n,t()).constant(n.constant())},Ti.apply(n,arguments)},[fn,Re]),Dt(zo,function t(){var n,e=[],r=[],i=[];function a(){var s=0,u=Math.max(1,r.length);for(i=new Array(u-1);++s<u;)i[s-1]=Hx(e,s/u);return o}function o(s){return s==null||isNaN(s=+s)?n:r[Ea(i,s)]}return o.invertExtent=function(s){var u=r.indexOf(s);return u<0?[NaN,NaN]:[u>0?i[u-1]:e[0],u<i.length?i[u]:e[e.length-1]]},o.domain=function(s){if(!arguments.length)return e.slice();e=[];for(let u of s)u==null||isNaN(u=+u)||e.push(u);return e.sort(qs),a()},o.range=function(s){return arguments.length?(r=Array.from(s),a()):r.slice()},o.unknown=function(s){return arguments.length?(n=s,o):n},o.quantiles=function(){return i.slice()},o.copy=function(){return t().domain(e).range(r).unknown(n)},$a.apply(o,arguments)},[ru,zo]),Dt(yc,function t(){var n,e=0,r=1,i=1,a=[.5],o=[0,1];function s(l){return l!=null&&l<=l?o[Ea(a,l,0,i)]:n}function u(){var l=-1;for(a=new Array(i);++l<i;)a[l]=((l+1)*r-(l-i)*e)/(i+1);return s}return s.domain=function(l){return arguments.length?([e,r]=l,e=+e,r=+r,u()):[e,r]},s.range=function(l){return arguments.length?(i=(o=Array.from(l)).length-1,u()):o.slice()},s.invertExtent=function(l){var c=o.indexOf(l);return c<0?[NaN,NaN]:c<1?[e,a[0]]:c>=i?[a[i-1],r]:[a[c-1],a[c]]},s.unknown=function(l){return arguments.length&&(n=l),s},s.thresholds=function(){return a.slice()},s.copy=function(){return t().domain([e,r]).range(o).unknown(n)},$a.apply(Co(s),arguments)},ru),Dt(vc,function t(){var n,e=[.5],r=[0,1],i=1;function a(o){return o!=null&&o<=o?r[Ea(e,o,0,i)]:n}return a.domain=function(o){return arguments.length?(e=Array.from(o),i=Math.min(e.length,r.length-1),a):e.slice()},a.range=function(o){return arguments.length?(r=Array.from(o),i=Math.min(e.length,r.length-1),a):r.slice()},a.invertExtent=function(o){var s=r.indexOf(o);return[e[s-1],e[s]]},a.unknown=function(o){return arguments.length?(n=o,a):n},a.copy=function(){return t().domain(e).range(r).unknown(n)},$a.apply(a,arguments)},ru),Dt(km,function t(){let n=[],e=[];function r(i){return i==null||i!=i?void 0:e[(Ea(n,i)-1)%e.length]}return r.domain=function(i){return arguments.length?(n=function(a){return e7.call(a,ze)}(i),r):n.slice()},r.range=function(i){return arguments.length?(e=r7.call(i),r):e.slice()},r.tickFormat=function(i,a){return e8(n[0],Bt(n),i??10,a)},r.copy=function(){return t().domain(r.domain()).range(r.range())},r},[eu,ru]),Dt(Am,Tx,eu),Dt(aw,Fm,eu),Dt(_m,function(){return ow(Fm().paddingInner(1))},eu);const i7=["clamp","base","constant","exponent"];function pw(t,n){const e=n[0],r=Bt(n)-e;return function(i){return t(e+i*r)}}function xc(t,n,e){return hm($m(n||"rgb",e),t)}function mw(t,n){const e=new Array(n),r=n+1;for(let i=0;i<n;)e[i]=t(++i/r);return e}function gw(t,n,e){const r=e-n;let i,a,o;return r&&Number.isFinite(r)?(i=(a=t.type).indexOf("-"),a=i<0?a:a.slice(i+1),o=Dt(a)().domain([n,e]).range([0,1]),i7.forEach(s=>t[s]?o[s](t[s]()):0),o):In(.5)}function $m(t,n){const e=L9[function(r){return"interpolate"+r.toLowerCase().split("-").map(i=>i[0].toUpperCase()+i.slice(1)).join("")}(t)];return n!=null&&e&&e.gamma?e.gamma(n):e}function yw(t){if(T(t))return t;const n=t.length/6|0,e=new Array(n);for(let r=0;r<n;)e[r]="#"+t.slice(6*r,6*++r);return e}function vw(t,n){for(const e in t)Sm(e,n(t[e]))}const bw={};function Sm(t,n){return t=t&&t.toLowerCase(),arguments.length>1?(bw[t]=n,this):bw[t]}vw({accent:V9,category10:G9,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:Y9,observable10:X9,paired:J9,pastel1:K9,pastel2:Q9,set1:Z9,set2:t7,set3:n7,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"},yw),vw({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"},t=>xc(yw(t)));const wc="symbol",a7=t=>T(t)?t.map(n=>String(n)):String(t),o7=(t,n)=>t[1]-n[1],s7=(t,n)=>n[1]-t[1];function Mm(t,n,e){let r;return $t(n)&&(t.bins&&(n=Math.max(n,t.bins.length)),e!=null&&(n=Math.min(n,Math.floor(Il(t.domain())/e||1)+1))),Z(n)&&(r=n.step,n=n.interval),Q(n)&&(n=t.type===za?Kh(n):t.type==Oa?Jh(n):P("Only time and utc scales accept interval strings."),r&&(n=n.every(r))),n}function xw(t,n,e){let r=t.range(),i=r[0],a=Bt(r),o=o7;if(i>a&&(r=a,a=i,i=r,o=s7),i=Math.floor(i),a=Math.ceil(a),n=n.map(s=>[s,t(s)]).filter(s=>i<=s[1]&&s[1]<=a).sort(o).map(s=>s[0]),e>0&&n.length>1){const s=[n[0],Bt(n)];for(;n.length>e&&n.length>=3;)n=n.filter((u,l)=>!(l%2));n.length<3&&(n=s)}return n}function Bm(t,n){return t.bins?xw(t,t.bins,n):t.ticks?t.ticks(n):t.domain()}function ww(t,n,e,r,i,a){const o=n.type;let s=a7;if(o===za||i===za)s=t.timeFormat(r);else if(o===Oa||i===Oa)s=t.utcFormat(r);else if(fw(o)){const u=t.formatFloat(r);if(a||n.bins)s=u;else{const l=Aw(n,e,!1);s=c=>l(c)?u(c):""}}else if(n.tickFormat){const u=n.domain();s=t.formatSpan(u[0],u[u.length-1],e,r)}else r&&(s=t.format(r));return s}function Aw(t,n,e){const r=Bm(t,n),i=t.base(),a=Math.log(i),o=Math.max(1,i*n/r.length),s=u=>{let l=u/Math.pow(i,Math.round(Math.log(u)/a));return l*i<i-.5&&(l*=i),l<=o};return e?r.filter(s):s}const zm={[zo]:"quantiles",[yc]:"thresholds",[vc]:"domain"},_w={[zo]:"quantiles",[yc]:"domain"};function kw(t,n){return t.bins?function(e){const r=e.slice(0,-1);return r.max=Bt(e),r}(t.bins):t.type===ri?Aw(t,n,!0):zm[t.type]?function(e){const r=[-1/0].concat(e);return r.max=1/0,r}(t[zm[t.type]]()):Bm(t,n)}function Dw(t,n,e,r,i,a,o){const s=_w[n.type]&&a!==za&&a!==Oa?function(u,l,c){const f=l[_w[l.type]](),d=f.length;let h,p=d>1?f[1]-f[0]:f[0];for(h=1;h<d;++h)p=Math.min(p,f[h]-f[h-1]);return u.formatSpan(0,p,30,c)}(t,n,i):ww(t,n,e,i,a,o);return r===wc&&(u=>zm[u.type]||u.bins)(n)?u7(s):r==="discrete"?l7(s):c7(s)}const u7=t=>(n,e,r)=>{const i=Fw(r[e+1],Fw(r.max,1/0)),a=Cw(n,t),o=Cw(i,t);return a&&o?a+" \u2013 "+o:o?"< "+o:"\u2265 "+a},Fw=(t,n)=>t??n,l7=t=>(n,e)=>e?t(n):null,c7=t=>n=>t(n),Cw=(t,n)=>Number.isFinite(t)?n(t):null;function f7(t,n,e,r){const i=r||n.type;return Q(e)&&function(a){return Na(a,Dm)}(i)&&(e=e.replace(/%a/g,"%A").replace(/%b/g,"%B")),e||i!==za?e||i!==Oa?Dw(t,n,5,null,e,r,!0):t.utcFormat("%A, %d %B %Y, %X UTC"):t.timeFormat("%A, %d %B %Y, %X")}function Ew(t,n,e){e=e||{};const r=Math.max(3,e.maxlen||7),i=f7(t,n,e.format,e.formatType);if(Em(n.type)){const a=kw(n).slice(1).map(i),o=a.length;return`${o} boundar${o===1?"y":"ies"}: ${a.join(", ")}`}if(Oo(n.type)){const a=n.domain(),o=a.length;return`${o} value${o===1?"":"s"}: ${o>r?a.slice(0,r-2).map(i).join(", ")+", ending with "+a.slice(-1).map(i):a.map(i).join(", ")}`}{const a=n.domain();return`values from ${i(a[0])} to ${i(Bt(a))}`}}let $w=0;const Ac="p_";function Om(t){return t&&t.gradient}function Sw(t,n,e){const r=t.gradient;let i=t.id,a=r==="radial"?Ac:"";return i||(i=t.id="gradient_"+$w++,r==="radial"?(t.x1=Er(t.x1,.5),t.y1=Er(t.y1,.5),t.r1=Er(t.r1,0),t.x2=Er(t.x2,.5),t.y2=Er(t.y2,.5),t.r2=Er(t.r2,.5),a=Ac):(t.x1=Er(t.x1,0),t.y1=Er(t.y1,0),t.x2=Er(t.x2,1),t.y2=Er(t.y2,0))),n[i]=t,"url("+(e||"")+"#"+a+i+")"}function Er(t,n){return t??n}function Mw(t,n){var e,r=[];return e={gradient:"linear",x1:t?t[0]:0,y1:t?t[1]:0,x2:n?n[0]:1,y2:n?n[1]:0,stops:r,stop:function(i,a){return r.push({offset:i,color:a}),e}}}const Bw={basis:{curve:H8},"basis-closed":{curve:W8},"basis-open":{curve:I8},bundle:{curve:U8,tension:"beta",value:.85},cardinal:{curve:q8,tension:"tension",value:0},"cardinal-open":{curve:L8,tension:"tension",value:0},"cardinal-closed":{curve:j8,tension:"tension",value:0},"catmull-rom":{curve:P8,tension:"alpha",value:.5},"catmull-rom-closed":{curve:T8,tension:"alpha",value:.5},"catmull-rom-open":{curve:R8,tension:"alpha",value:.5},linear:{curve:jx},"linear-closed":{curve:N8},monotone:{horizontal:O8,vertical:z8},natural:{curve:B8},step:{curve:M8},"step-after":{curve:S8},"step-before":{curve:$8}};function Nm(t,n,e){var r=tt(Bw,t)&&Bw[t],i=null;return r&&(i=r.curve||r[n||"vertical"],r.tension&&e!=null&&(i=i[r.tension](e))),i}const d7={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},h7=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,p7=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,m7=/^((\s+,?\s*)|(,\s*))/,g7=/^[01]/;function No(t){const n=[];return(t.match(h7)||[]).forEach(e=>{let r=e[0];const i=r.toLowerCase(),a=d7[i],o=function(u,l,c){const f=[];for(let d=0;l&&d<c.length;)for(let h=0;h<l;++h){const p=u!=="a"||h!==3&&h!==4?p7:g7,m=c.slice(d).match(p);if(m===null)throw Error("Invalid SVG path, incorrect parameter type");d+=m[0].length,f.push(+m[0]);const g=c.slice(d).match(m7);g!==null&&(d+=g[0].length)}return f}(i,a,e.slice(1).trim()),s=o.length;if(s<a||s&&s%a!==0)throw Error("Invalid SVG path, incorrect parameter count");if(n.push([r,...o.slice(0,a)]),s!==a){i==="m"&&(r=r==="M"?"L":"l");for(let u=a;u<s;u+=a)n.push([r,...o.slice(u,u+a)])}}),n}const Ii=Math.PI/180,Ra=Math.PI/2,$r=2*Math.PI,Ro=Math.sqrt(3)/2;var Rm={},Tm={},zw=[].join;function y7(t){const n=zw.call(t);if(Tm[n])return Tm[n];var e=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5],u=t[6],l=t[7];const c=l*o,f=-u*s,d=u*o,h=l*s,p=Math.cos(i),m=Math.sin(i),g=Math.cos(a),y=Math.sin(a),v=.5*(a-i),x=Math.sin(.5*v),b=8/3*x*x/Math.sin(v),w=e+p-b*m,A=r+m+b*p,_=e+g,k=r+y,D=_+b*y,C=k-b*g;return Tm[n]=[c*w+f*A,d*w+h*A,c*D+f*C,d*D+h*C,c*_+f*k,d*_+h*k]}const Te=["l",0,0,0,0,0,0,0];function v7(t,n,e){const r=Te[0]=t[0];if(r==="a"||r==="A")Te[1]=n*t[1],Te[2]=e*t[2],Te[3]=t[3],Te[4]=t[4],Te[5]=t[5],Te[6]=n*t[6],Te[7]=e*t[7];else if(r==="h"||r==="H")Te[1]=n*t[1];else if(r==="v"||r==="V")Te[1]=e*t[1];else for(var i=1,a=t.length;i<a;++i)Te[i]=(i%2==1?n:e)*t[i];return Te}function iu(t,n,e,r,i,a){var o,s,u,l,c,f=null,d=0,h=0,p=0,m=0,g=0,y=0;e==null&&(e=0),r==null&&(r=0),i==null&&(i=1),a==null&&(a=i),t.beginPath&&t.beginPath();for(var v=0,x=n.length;v<x;++v){switch(o=n[v],i===1&&a===1||(o=v7(o,i,a)),o[0]){case"l":d+=o[1],h+=o[2],t.lineTo(d+e,h+r);break;case"L":d=o[1],h=o[2],t.lineTo(d+e,h+r);break;case"h":d+=o[1],t.lineTo(d+e,h+r);break;case"H":d=o[1],t.lineTo(d+e,h+r);break;case"v":h+=o[1],t.lineTo(d+e,h+r);break;case"V":h=o[1],t.lineTo(d+e,h+r);break;case"m":g=d+=o[1],y=h+=o[2],t.moveTo(d+e,h+r);break;case"M":g=d=o[1],y=h=o[2],t.moveTo(d+e,h+r);break;case"c":s=d+o[5],u=h+o[6],p=d+o[3],m=h+o[4],t.bezierCurveTo(d+o[1]+e,h+o[2]+r,p+e,m+r,s+e,u+r),d=s,h=u;break;case"C":d=o[5],h=o[6],p=o[3],m=o[4],t.bezierCurveTo(o[1]+e,o[2]+r,p+e,m+r,d+e,h+r);break;case"s":s=d+o[3],u=h+o[4],p=2*d-p,m=2*h-m,t.bezierCurveTo(p+e,m+r,d+o[1]+e,h+o[2]+r,s+e,u+r),p=d+o[1],m=h+o[2],d=s,h=u;break;case"S":s=o[3],u=o[4],p=2*d-p,m=2*h-m,t.bezierCurveTo(p+e,m+r,o[1]+e,o[2]+r,s+e,u+r),d=s,h=u,p=o[1],m=o[2];break;case"q":s=d+o[3],u=h+o[4],p=d+o[1],m=h+o[2],t.quadraticCurveTo(p+e,m+r,s+e,u+r),d=s,h=u;break;case"Q":s=o[3],u=o[4],t.quadraticCurveTo(o[1]+e,o[2]+r,s+e,u+r),d=s,h=u,p=o[1],m=o[2];break;case"t":s=d+o[1],u=h+o[2],f[0].match(/[QqTt]/)===null?(p=d,m=h):f[0]==="t"?(p=2*d-l,m=2*h-c):f[0]==="q"&&(p=2*d-p,m=2*h-m),l=p,c=m,t.quadraticCurveTo(p+e,m+r,s+e,u+r),h=u,p=(d=s)+o[1],m=h+o[2];break;case"T":s=o[1],u=o[2],p=2*d-p,m=2*h-m,t.quadraticCurveTo(p+e,m+r,s+e,u+r),d=s,h=u;break;case"a":Ow(t,d+e,h+r,[o[1],o[2],o[3],o[4],o[5],o[6]+d+e,o[7]+h+r]),d+=o[6],h+=o[7];break;case"A":Ow(t,d+e,h+r,[o[1],o[2],o[3],o[4],o[5],o[6]+e,o[7]+r]),d=o[6],h=o[7];break;case"z":case"Z":d=g,h=y,t.closePath()}f=o}}function Ow(t,n,e,r){const i=function(a,o,s,u,l,c,f,d,h){const p=zw.call(arguments);if(Rm[p])return Rm[p];const m=f*Ii,g=Math.sin(m),y=Math.cos(m),v=y*(d-a)*.5+g*(h-o)*.5,x=y*(h-o)*.5-g*(d-a)*.5;let b=v*v/((s=Math.abs(s))*s)+x*x/((u=Math.abs(u))*u);b>1&&(b=Math.sqrt(b),s*=b,u*=b);const w=y/s,A=g/s,_=-g/u,k=y/u,D=w*d+A*h,C=_*d+k*h,F=w*a+A*o,E=_*a+k*o;let $=1/((F-D)*(F-D)+(E-C)*(E-C))-.25;$<0&&($=0);let M=Math.sqrt($);c==l&&(M=-M);const S=.5*(D+F)-M*(E-C),B=.5*(C+E)+M*(F-D),z=Math.atan2(C-B,D-S);let j=Math.atan2(E-B,F-S)-z;j<0&&c===1?j+=$r:j>0&&c===0&&(j-=$r);const W=Math.ceil(Math.abs(j/(Ra+.001))),K=[];for(let q=0;q<W;++q){const at=z+q*j/W,ot=z+(q+1)*j/W;K[q]=[S,B,at,ot,s,u,g,y]}return Rm[p]=K}(r[5],r[6],r[0],r[1],r[3],r[4],r[2],n,e);for(let a=0;a<i.length;++a){const o=y7(i[a]);t.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5])}}const Nw=.5773502691896257,Rw={circle:{draw:function(t,n){const e=Math.sqrt(n)/2;t.moveTo(e,0),t.arc(0,0,e,0,$r)}},cross:{draw:function(t,n){var e=Math.sqrt(n)/2,r=e/2.5;t.moveTo(-e,-r),t.lineTo(-e,r),t.lineTo(-r,r),t.lineTo(-r,e),t.lineTo(r,e),t.lineTo(r,r),t.lineTo(e,r),t.lineTo(e,-r),t.lineTo(r,-r),t.lineTo(r,-e),t.lineTo(-r,-e),t.lineTo(-r,-r),t.closePath()}},diamond:{draw:function(t,n){const e=Math.sqrt(n)/2;t.moveTo(-e,0),t.lineTo(0,-e),t.lineTo(e,0),t.lineTo(0,e),t.closePath()}},square:{draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},arrow:{draw:function(t,n){var e=Math.sqrt(n)/2,r=e/7,i=e/2.5,a=e/8;t.moveTo(-r,e),t.lineTo(r,e),t.lineTo(r,-a),t.lineTo(i,-a),t.lineTo(0,-e),t.lineTo(-i,-a),t.lineTo(-r,-a),t.closePath()}},wedge:{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e,i=r-e*Nw,a=e/4;t.moveTo(0,-r-i),t.lineTo(-a,r-i),t.lineTo(a,r-i),t.closePath()}},triangle:{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e,i=r-e*Nw;t.moveTo(0,-r-i),t.lineTo(-e,r-i),t.lineTo(e,r-i),t.closePath()}},"triangle-up":{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e;t.moveTo(0,-r),t.lineTo(-e,r),t.lineTo(e,r),t.closePath()}},"triangle-down":{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e;t.moveTo(0,r),t.lineTo(-e,-r),t.lineTo(e,-r),t.closePath()}},"triangle-right":{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e;t.moveTo(r,0),t.lineTo(-r,-e),t.lineTo(-r,e),t.closePath()}},"triangle-left":{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e;t.moveTo(-r,0),t.lineTo(r,-e),t.lineTo(r,e),t.closePath()}},stroke:{draw:function(t,n){const e=Math.sqrt(n)/2;t.moveTo(-e,0),t.lineTo(e,0)}}};function Tw(t){return tt(Rw,t)?Rw[t]:function(n){if(!tt(Pm,n)){const e=No(n);Pm[n]={draw:function(r,i){iu(r,e,0,0,Math.sqrt(i)/2)}}}return Pm[n]}(t)}var Pm={};const Wi=.448084975506;function b7(t){return t.x}function x7(t){return t.y}function w7(t){return t.width}function A7(t){return t.height}function ii(t){return typeof t=="function"?t:()=>+t}function _c(t,n,e){return Math.max(n,Math.min(t,e))}function Pw(){var t=b7,n=x7,e=w7,r=A7,i=ii(0),a=i,o=i,s=i,u=null;function l(c,f,d){var h,p=f??+t.call(this,c),m=d??+n.call(this,c),g=+e.call(this,c),y=+r.call(this,c),v=Math.min(g,y)/2,x=_c(+i.call(this,c),0,v),b=_c(+a.call(this,c),0,v),w=_c(+o.call(this,c),0,v),A=_c(+s.call(this,c),0,v);if(u||(u=h=dp()),x<=0&&b<=0&&w<=0&&A<=0)u.rect(p,m,g,y);else{var _=p+g,k=m+y;u.moveTo(p+x,m),u.lineTo(_-b,m),u.bezierCurveTo(_-Wi*b,m,_,m+Wi*b,_,m+b),u.lineTo(_,k-A),u.bezierCurveTo(_,k-Wi*A,_-Wi*A,k,_-A,k),u.lineTo(p+w,k),u.bezierCurveTo(p+Wi*w,k,p,k-Wi*w,p,k-w),u.lineTo(p,m+x),u.bezierCurveTo(p,m+Wi*x,p+Wi*x,m,p+x,m),u.closePath()}if(h)return u=null,h+""||null}return l.x=function(c){return arguments.length?(t=ii(c),l):t},l.y=function(c){return arguments.length?(n=ii(c),l):n},l.width=function(c){return arguments.length?(e=ii(c),l):e},l.height=function(c){return arguments.length?(r=ii(c),l):r},l.cornerRadius=function(c,f,d,h){return arguments.length?(i=ii(c),a=f!=null?ii(f):i,s=d!=null?ii(d):i,o=h!=null?ii(h):a,l):i},l.context=function(c){return arguments.length?(u=c??null,l):u},l}function jw(){var t,n,e,r,i,a,o,s,u=null;function l(f,d,h){const p=h/2;if(i){var m=o-d,g=f-a;if(m||g){var y=Math.hypot(m,g),v=(m/=y)*s,x=(g/=y)*s,b=Math.atan2(g,m);u.moveTo(a-v,o-x),u.lineTo(f-m*p,d-g*p),u.arc(f,d,p,b-Math.PI,b),u.lineTo(a+v,o+x),u.arc(a,o,s,b,b+Math.PI)}else u.arc(f,d,p,0,$r);u.closePath()}else i=1;a=f,o=d,s=p}function c(f){var d,h,p,m=f.length,g=!1;for(u==null&&(u=p=dp()),d=0;d<=m;++d)!(d<m&&r(h=f[d],d,f))===g&&(g=!g)&&(i=0),g&&l(+t(h,d,f),+n(h,d,f),+e(h,d,f));if(p)return u=null,p+""||null}return c.x=function(f){return arguments.length?(t=f,c):t},c.y=function(f){return arguments.length?(n=f,c):n},c.size=function(f){return arguments.length?(e=f,c):e},c.defined=function(f){return arguments.length?(r=f,c):r},c.context=function(f){return arguments.length?(u=f??null,c):u},c}function au(t,n){return t??n}const ou=t=>t.x||0,su=t=>t.y||0,kc=t=>t.defined!==!1,_7=G8().startAngle(t=>t.startAngle||0).endAngle(t=>t.endAngle||0).padAngle(t=>t.padAngle||0).innerRadius(t=>t.innerRadius||0).outerRadius(t=>t.outerRadius||0).cornerRadius(t=>t.cornerRadius||0),k7=G2().x(ou).y1(su).y0(t=>(t.y||0)+(t.height||0)).defined(kc),D7=G2().y(su).x1(ou).x0(t=>(t.x||0)+(t.width||0)).defined(kc),F7=Lx().x(ou).y(su).defined(kc),C7=Pw().x(ou).y(su).width(t=>t.width||0).height(t=>t.height||0).cornerRadius(t=>au(t.cornerRadiusTopLeft,t.cornerRadius)||0,t=>au(t.cornerRadiusTopRight,t.cornerRadius)||0,t=>au(t.cornerRadiusBottomRight,t.cornerRadius)||0,t=>au(t.cornerRadiusBottomLeft,t.cornerRadius)||0),E7=function(t,n){let e=null,r=Px(i);function i(){let a;if(e||(e=a=r()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),a)return e=null,a+""||null}return t=typeof t=="function"?t:Hn(t||O9),n=typeof n=="function"?n:Hn(n===void 0?64:+n),i.type=function(a){return arguments.length?(t=typeof a=="function"?a:Hn(a),i):t},i.size=function(a){return arguments.length?(n=typeof a=="function"?a:Hn(+a),i):n},i.context=function(a){return arguments.length?(e=a??null,i):e},i}().type(t=>Tw(t.shape||"circle")).size(t=>au(t.size,64)),$7=jw().x(ou).y(su).defined(kc).size(t=>t.size||1);function jm(t){return t.cornerRadius||t.cornerRadiusTopLeft||t.cornerRadiusTopRight||t.cornerRadiusBottomRight||t.cornerRadiusBottomLeft}function To(t,n,e,r){return C7.context(t)(n,e,r)}var Lw=1;function qw(){Lw=1}function Lm(t,n,e){var r=n.clip,i=t._defs,a=n.clip_id||(n.clip_id="clip"+Lw++),o=i.clipping[a]||(i.clipping[a]={id:a});return bt(r)?o.path=r(null):jm(e)?o.path=To(null,e,0,0):(o.width=e.width||0,o.height=e.height||0),"url(#"+a+")"}function cn(t){this.clear(),t&&this.union(t)}function Dc(t){this.mark=t,this.bounds=this.bounds||new cn}function Fc(t){Dc.call(this,t),this.items=this.items||[]}cn.prototype={clone(){return new cn(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(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2},set(t,n,e,r){return e<t?(this.x2=t,this.x1=e):(this.x1=t,this.x2=e),r<n?(this.y2=n,this.y1=r):(this.y1=n,this.y2=r),this},add(t,n){return t<this.x1&&(this.x1=t),n<this.y1&&(this.y1=n),t>this.x2&&(this.x2=t),n>this.y2&&(this.y2=n),this},expand(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,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(t){return this.x1*=t,this.y1*=t,this.x2*=t,this.y2*=t,this},translate(t,n){return this.x1+=t,this.x2+=t,this.y1+=n,this.y2+=n,this},rotate(t,n,e){const r=this.rotatedPoints(t,n,e);return this.clear().add(r[0],r[1]).add(r[2],r[3]).add(r[4],r[5]).add(r[6],r[7])},rotatedPoints(t,n,e){var{x1:r,y1:i,x2:a,y2:o}=this,s=Math.cos(t),u=Math.sin(t),l=n-n*s+e*u,c=e-n*u-e*s;return[s*r-u*i+l,u*r+s*i+c,s*r-u*o+l,u*r+s*o+c,s*a-u*i+l,u*a+s*i+c,s*a-u*o+l,u*a+s*o+c]},union(t){return t.x1<this.x1&&(this.x1=t.x1),t.y1<this.y1&&(this.y1=t.y1),t.x2>this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},intersect(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2<this.x2&&(this.x2=t.x2),t.y2<this.y2&&(this.y2=t.y2),this},encloses(t){return t&&this.x1<=t.x1&&this.x2>=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},alignsWith(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},intersects(t){return t&&!(this.x2<t.x1||this.x1>t.x2||this.y2<t.y1||this.y1>t.y2)},contains(t,n){return!(t<this.x1||t>this.x2||n<this.y1||n>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}},V(Fc,Dc);class Uw{constructor(n){this._pending=0,this._loader=n||Ul()}pending(){return this._pending}sanitizeURL(n){const e=this;return Iw(e),e._loader.sanitize(n,{context:"href"}).then(r=>(uu(e),r)).catch(()=>(uu(e),null))}loadImage(n){const e=this,r=N9();return Iw(e),e._loader.sanitize(n,{context:"image"}).then(i=>{const a=i.href;if(!a||!r)throw{url:a};const o=new r,s=tt(i,"crossOrigin")?i.crossOrigin:"anonymous";return s!=null&&(o.crossOrigin=s),o.onload=()=>uu(e),o.onerror=()=>uu(e),o.src=a,o}).catch(i=>(uu(e),{complete:!1,width:0,height:0,src:i&&i.url||""}))}ready(){const n=this;return new Promise(e=>{(function r(i){n.pending()?setTimeout(()=>{r(!0)},10):e(i)})(!1)})}}function Iw(t){t._pending+=1}function uu(t){t._pending-=1}function ai(t,n,e){if(n.stroke&&n.opacity!==0&&n.strokeOpacity!==0){const r=n.strokeWidth!=null?+n.strokeWidth:1;t.expand(r+(e?function(i,a){return i.strokeJoin&&i.strokeJoin!=="miter"?0:a}(n,r):0))}return t}const S7=$r-1e-8;let Cc,Ec,$c,Ta,qm,Sc,Um,Im;const Hi=(t,n)=>Cc.add(t,n),Mc=(t,n)=>Hi(Ec=t,$c=n),Ww=t=>Hi(t,Cc.y1),Hw=t=>Hi(Cc.x1,t),Pa=(t,n)=>qm*t+Um*n,ja=(t,n)=>Sc*t+Im*n,Wm=(t,n)=>Hi(Pa(t,n),ja(t,n)),Hm=(t,n)=>Mc(Pa(t,n),ja(t,n));function lu(t,n){return Cc=t,n?(Ta=n*Ii,qm=Im=Math.cos(Ta),Sc=Math.sin(Ta),Um=-Sc):(qm=Im=1,Ta=Sc=Um=0),M7}const M7={beginPath(){},closePath(){},moveTo:Hm,lineTo:Hm,rect(t,n,e,r){Ta?(Wm(t+e,n),Wm(t+e,n+r),Wm(t,n+r),Hm(t,n)):(Hi(t+e,n+r),Mc(t,n))},quadraticCurveTo(t,n,e,r){const i=Pa(t,n),a=ja(t,n),o=Pa(e,r),s=ja(e,r);Gw(Ec,i,o,Ww),Gw($c,a,s,Hw),Mc(o,s)},bezierCurveTo(t,n,e,r,i,a){const o=Pa(t,n),s=ja(t,n),u=Pa(e,r),l=ja(e,r),c=Pa(i,a),f=ja(i,a);Vw(Ec,o,u,c,Ww),Vw($c,s,l,f,Hw),Mc(c,f)},arc(t,n,e,r,i,a){if(r+=Ta,i+=Ta,Ec=e*Math.cos(i)+t,$c=e*Math.sin(i)+n,Math.abs(i-r)>S7)Hi(t-e,n-e),Hi(t+e,n+e);else{const o=l=>Hi(e*Math.cos(l)+t,e*Math.sin(l)+n);let s,u;if(o(r),o(i),i!==r)if((r%=$r)<0&&(r+=$r),(i%=$r)<0&&(i+=$r),i<r&&(a=!a,s=r,r=i,i=s),a)for(i-=$r,s=r-r%Ra,u=0;u<4&&s>i;++u,s-=Ra)o(s);else for(s=r-r%Ra+Ra,u=0;u<4&&s<i;++u,s+=Ra)o(s)}}};function Gw(t,n,e,r){const i=(t-n)/(t+e-2*n);0<i&&i<1&&r(t+(n-t)*i)}function Vw(t,n,e,r,i){const a=r-t+3*n-3*e,o=t+e-2*n,s=t-n;let u,l=0,c=0;Math.abs(a)>1e-14?(u=o*o+s*a,u>=0&&(u=Math.sqrt(u),l=(-o+u)/a,c=(-o-u)/a)):l=.5*s/o,0<l&&l<1&&i(Yw(l,t,n,e,r)),0<c&&c<1&&i(Yw(c,t,n,e,r))}function Yw(t,n,e,r,i){const a=1-t,o=a*a,s=t*t;return o*a*n+3*o*t*e+3*a*s*r+s*t*i}var Gi=(Gi=qi(1,1))?Gi.getContext("2d"):null;const Gm=new cn;function Vm(t){return function(n,e){if(!Gi)return!0;t(Gi,n),Gm.clear().union(n.bounds).intersect(e).round();const{x1:r,y1:i,x2:a,y2:o}=Gm;for(let s=i;s<=o;++s)for(let u=r;u<=a;++u)if(Gi.isPointInPath(u,s))return!0;return!1}}function Ym(t,n){return n.contains(t.x||0,t.y||0)}function Xw(t,n){const e=t.x||0,r=t.y||0,i=t.width||0,a=t.height||0;return n.intersects(Gm.set(e,r,e+i,r+a))}function Jw(t,n){const e=t.x||0,r=t.y||0;return Po(n,e,r,t.x2!=null?t.x2:e,t.y2!=null?t.y2:r)}function Po(t,n,e,r,i){const{x1:a,y1:o,x2:s,y2:u}=t,l=r-n,c=i-e;let f,d,h,p,m=0,g=1;for(p=0;p<4;++p){if(p===0&&(f=-l,d=-(a-n)),p===1&&(f=l,d=s-n),p===2&&(f=-c,d=-(o-e)),p===3&&(f=c,d=u-e),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 jo(t,n){t.globalCompositeOperation=n.blend||"source-over"}function Ke(t,n){return t??n}function Kw(t,n){const e=n.length;for(let r=0;r<e;++r)t.addColorStop(n[r].offset,n[r].color);return t}function Qw(t,n,e){return Om(e)?function(r,i,a){const o=a.width(),s=a.height();let u;if(i.gradient==="radial")u=r.createRadialGradient(a.x1+Ke(i.x1,.5)*o,a.y1+Ke(i.y1,.5)*s,Math.max(o,s)*Ke(i.r1,0),a.x1+Ke(i.x2,.5)*o,a.y1+Ke(i.y2,.5)*s,Math.max(o,s)*Ke(i.r2,.5));else{const l=Ke(i.x1,0),c=Ke(i.y1,0),f=Ke(i.x2,1),d=Ke(i.y2,0);if(l!==f&&c!==d&&o!==s){const h=qi(Math.ceil(o),Math.ceil(s)),p=h.getContext("2d");return p.scale(o,s),p.fillStyle=Kw(p.createLinearGradient(l,c,f,d),i.stops),p.fillRect(0,0,o,s),r.createPattern(h,"no-repeat")}u=r.createLinearGradient(a.x1+l*o,a.y1+c*s,a.x1+f*o,a.y1+d*s)}return Kw(u,i.stops)}(t,e,n.bounds):e}function Bc(t,n,e){return(e*=n.fillOpacity==null?1:n.fillOpacity)>0&&(t.globalAlpha=e,t.fillStyle=Qw(t,n,n.fill),!0)}var B7=[];function Lo(t,n,e){var r=(r=n.strokeWidth)!=null?r:1;return!(r<=0)&&(e*=n.strokeOpacity==null?1:n.strokeOpacity)>0&&(t.globalAlpha=e,t.strokeStyle=Qw(t,n,n.stroke),t.lineWidth=r,t.lineCap=n.strokeCap||"butt",t.lineJoin=n.strokeJoin||"miter",t.miterLimit=n.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(n.strokeDash||B7),t.lineDashOffset=n.strokeDashOffset||0),!0)}function z7(t,n){return t.zindex-n.zindex||t.index-n.index}function Xm(t){if(!t.zdirty)return t.zitems;var n,e,r,i=t.items,a=[];for(e=0,r=i.length;e<r;++e)(n=i[e]).index=e,n.zindex&&a.push(n);return t.zdirty=!1,t.zitems=a.sort(z7)}function Qe(t,n){var e,r,i=t.items;if(!i||!i.length)return;const a=Xm(t);if(a&&a.length){for(e=0,r=i.length;e<r;++e)i[e].zindex||n(i[e]);i=a}for(e=0,r=i.length;e<r;++e)n(i[e])}function zc(t,n){var e,r,i=t.items;if(!i||!i.length)return null;const a=Xm(t);for(a&&a.length&&(i=a),r=i.length;--r>=0;)if(e=n(i[r]))return e;if(i===a){for(r=(i=t.items).length;--r>=0;)if(!i[r].zindex&&(e=n(i[r])))return e}return null}function Jm(t){return function(n,e,r){Qe(e,i=>{r&&!r.intersects(i.bounds)||Zw(t,n,i,i)})}}function O7(t){return function(n,e,r){!e.items.length||r&&!r.intersects(e.bounds)||Zw(t,n,e.items[0],e.items)}}function Zw(t,n,e,r){var i=e.opacity==null?1:e.opacity;i!==0&&(t(n,r)||(jo(n,e),e.fill&&Bc(n,e,i)&&n.fill(),e.stroke&&Lo(n,e,i)&&n.stroke()))}function Oc(t){return t=t||Be,function(n,e,r,i,a,o){return r*=n.pixelRatio,i*=n.pixelRatio,zc(e,s=>{const u=s.bounds;if((!u||u.contains(a,o))&&u)return t(n,s,r,i,a,o)?s:void 0})}}function cu(t,n){return function(e,r,i,a){var o,s,u=Array.isArray(r)?r[0]:r,l=n??u.fill,c=u.stroke&&e.isPointInStroke;return c&&(o=u.strokeWidth,s=u.strokeCap,e.lineWidth=o??1,e.lineCap=s??"butt"),!t(e,r)&&(l&&e.isPointInPath(i,a)||c&&e.isPointInStroke(i,a))}}function Km(t){return Oc(cu(t))}function La(t,n){return"translate("+t+","+n+")"}function Qm(t){return"rotate("+t+")"}function tA(t){return La(t.x||0,t.y||0)}function Zm(t,n,e){function r(i,a){var o=a.x||0,s=a.y||0,u=a.angle||0;i.translate(o,s),u&&i.rotate(u*=Ii),i.beginPath(),n(i,a),u&&i.rotate(-u),i.translate(-o,-s)}return{type:t,tag:"path",nested:!1,attr:function(i,a){i("transform",function(o){return La(o.x||0,o.y||0)+(o.angle?" "+Qm(o.angle):"")}(a)),i("d",n(null,a))},bound:function(i,a){return n(lu(i,a.angle),a),ai(i,a).translate(a.x||0,a.y||0)},draw:Jm(r),pick:Km(r),isect:e||Vm(r)}}var N7=Zm("arc",function(t,n){return _7.context(t)(n)});function t0(t,n,e){function r(a,o){a.beginPath(),n(a,o)}const i=cu(r);return{type:t,tag:"path",nested:!0,attr:function(a,o){var s=o.mark.items;s.length&&a("d",n(null,s))},bound:function(a,o){var s=o.items;return s.length===0?a:(n(lu(a),s),ai(a,s[0]))},draw:O7(r),pick:function(a,o,s,u,l,c){var f=o.items,d=o.bounds;return!f||!f.length||d&&!d.contains(l,c)?null:(s*=a.pixelRatio,u*=a.pixelRatio,i(a,f,s,u)?f[0]:null)},isect:Ym,tip:e}}var R7=t0("area",function(t,n){const e=n[0],r=e.interpolate||"linear";return(e.orient==="horizontal"?D7:k7).curve(Nm(r,e.orient,e.tension)).context(t)(n)},function(t,n){for(var e,r,i=t[0].orient==="horizontal"?n[1]:n[0],a=t[0].orient==="horizontal"?"y":"x",o=t.length,s=1/0;--o>=0;)t[o].defined!==!1&&(r=Math.abs(t[o][a]-i))<s&&(s=r,e=t[o]);return e});function nA(t,n){t.beginPath(),jm(n)?To(t,n,0,0):t.rect(0,0,n.width||0,n.height||0),t.clip()}function eA(t){const n=Ke(t.strokeWidth,1);return t.strokeOffset!=null?t.strokeOffset:t.stroke&&n>.5&&n<1.5?.5-Math.abs(n-1):0}function rA(t,n){const e=eA(n);t("d",To(null,n,e,e))}function fu(t,n,e,r){const i=eA(n);t.beginPath(),To(t,n,(e||0)+i,(r||0)+i)}const T7=cu(fu),P7=cu(fu,!1),j7=cu(fu,!0);var L7={type:"group",tag:"g",nested:!1,attr:function(t,n){t("transform",tA(n))},bound:function(t,n){if(!n.clip&&n.items){const e=n.items,r=e.length;for(let i=0;i<r;++i)t.union(e[i].bounds)}return(n.clip||n.width||n.height)&&!n.noBound&&t.add(0,0).add(n.width||0,n.height||0),ai(t,n),t.translate(n.x||0,n.y||0)},draw:function(t,n,e,r){Qe(n,i=>{const a=i.x||0,o=i.y||0,s=i.strokeForeground,u=i.opacity==null?1:i.opacity;(i.stroke||i.fill)&&u&&(fu(t,i,a,o),jo(t,i),i.fill&&Bc(t,i,u)&&t.fill(),i.stroke&&!s&&Lo(t,i,u)&&t.stroke()),t.save(),t.translate(a,o),i.clip&&nA(t,i),e&&e.translate(-a,-o),Qe(i,l=>{(l.marktype==="group"||r==null||r.includes(l.marktype))&&this.draw(t,l,e,r)}),e&&e.translate(a,o),t.restore(),s&&i.stroke&&u&&(fu(t,i,a,o),jo(t,i),Lo(t,i,u)&&t.stroke())})},pick:function(t,n,e,r,i,a){if(n.bounds&&!n.bounds.contains(i,a)||!n.items)return null;const o=e*t.pixelRatio,s=r*t.pixelRatio;return zc(n,u=>{let l,c,f;const d=u.bounds;if(d&&!d.contains(i,a))return;c=u.x||0,f=u.y||0;const h=c+(u.width||0),p=f+(u.height||0),m=u.clip;if(m&&(i<c||i>h||a<f||a>p))return;if(t.save(),t.translate(c,f),c=i-c,f=a-f,m&&jm(u)&&!j7(t,u,o,s))return t.restore(),null;const g=u.strokeForeground,y=n.interactive!==!1;return y&&g&&u.stroke&&P7(t,u,o,s)?(t.restore(),u):(l=zc(u,v=>function(x,b,w){return(x.interactive!==!1||x.marktype==="group")&&x.bounds&&x.bounds.contains(b,w)}(v,c,f)?this.pick(v,e,r,c,f):null),!l&&y&&(u.fill||!g&&u.stroke)&&T7(t,u,o,s)&&(l=u),t.restore(),l||null)})},isect:Xw,content:function(t,n,e){t("clip-path",n.clip?Lm(e,n,n):null)},background:function(t,n){t("class","background"),t("aria-hidden",!0),rA(t,n)},foreground:function(t,n){t("class","foreground"),t("aria-hidden",!0),n.strokeForeground?rA(t,n):t("d","")}},du={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function n0(t,n){var e=t.image;return(!e||t.url&&t.url!==e.url)&&(e={complete:!1,width:0,height:0},n.loadImage(t.url).then(r=>{t.image=r,t.image.url=t.url})),e}function e0(t,n){return t.width!=null?t.width:n&&n.width?t.aspect!==!1&&t.height?t.height*n.width/n.height:n.width:0}function r0(t,n){return t.height!=null?t.height:n&&n.height?t.aspect!==!1&&t.width?t.width*n.height/n.width:n.height:0}function Nc(t,n){return t==="center"?n/2:t==="right"?n:0}function Rc(t,n){return t==="middle"?n/2:t==="bottom"?n:0}var q7={type:"image",tag:"image",nested:!1,attr:function(t,n,e){const r=n0(n,e),i=e0(n,r),a=r0(n,r),o=(n.x||0)-Nc(n.align,i),s=(n.y||0)-Rc(n.baseline,a);t("href",!r.src&&r.toDataURL?r.toDataURL():r.src||"",du["xmlns:xlink"],"xlink:href"),t("transform",La(o,s)),t("width",i),t("height",a),t("preserveAspectRatio",n.aspect===!1?"none":"xMidYMid")},bound:function(t,n){const e=n.image,r=e0(n,e),i=r0(n,e),a=(n.x||0)-Nc(n.align,r),o=(n.y||0)-Rc(n.baseline,i);return t.set(a,o,a+r,o+i)},draw:function(t,n,e){Qe(n,r=>{if(e&&!e.intersects(r.bounds))return;const i=n0(r,this);let a=e0(r,i),o=r0(r,i);if(a===0||o===0)return;let s,u,l,c,f=(r.x||0)-Nc(r.align,a),d=(r.y||0)-Rc(r.baseline,o);r.aspect!==!1&&(u=i.width/i.height,l=r.width/r.height,u==u&&l==l&&u!==l&&(l<u?(c=a/u,d+=(o-c)/2,o=c):(c=o*u,f+=(a-c)/2,a=c))),(i.complete||i.toDataURL)&&(jo(t,r),t.globalAlpha=(s=r.opacity)!=null?s:1,t.imageSmoothingEnabled=r.smooth!==!1,t.drawImage(i,f,d,a,o))})},pick:Oc(),isect:Be,get:n0,xOffset:Nc,yOffset:Rc},U7=t0("line",function(t,n){const e=n[0],r=e.interpolate||"linear";return F7.curve(Nm(r,e.orient,e.tension)).context(t)(n)},function(t,n){for(var e,r,i=Math.pow(t[0].strokeWidth||1,2),a=t.length;--a>=0;)if(t[a].defined!==!1&&(e=t[a].x-n[0])*e+(r=t[a].y-n[1])*r<i)return t[a];return null});function Tc(t,n){var e=n.path;if(e==null)return!0;var r=n.x||0,i=n.y||0,a=n.scaleX||1,o=n.scaleY||1,s=(n.angle||0)*Ii,u=n.pathCache;u&&u.path===e||((n.pathCache=u=No(e)).path=e),s&&t.rotate&&t.translate?(t.translate(r,i),t.rotate(s),iu(t,u,0,0,a,o),t.rotate(-s),t.translate(-r,-i)):iu(t,u,r,i,a,o)}var I7={type:"path",tag:"path",nested:!1,attr:function(t,n){var e=n.scaleX||1,r=n.scaleY||1;e===1&&r===1||t("vector-effect","non-scaling-stroke"),t("transform",function(i){return La(i.x||0,i.y||0)+(i.angle?" "+Qm(i.angle):"")+(i.scaleX||i.scaleY?" "+function(a,o){return"scale("+a+","+o+")"}(i.scaleX||1,i.scaleY||1):"")}(n)),t("d",n.path)},bound:function(t,n){return Tc(lu(t,n.angle),n)?t.set(0,0,0,0):ai(t,n,!0)},draw:Jm(Tc),pick:Km(Tc),isect:Vm(Tc)};function iA(t,n){t.beginPath(),To(t,n)}var W7={type:"rect",tag:"path",nested:!1,attr:function(t,n){t("d",To(null,n))},bound:function(t,n){var e,r;return ai(t.set(e=n.x||0,r=n.y||0,e+n.width||0,r+n.height||0),n)},draw:Jm(iA),pick:Km(iA),isect:Xw};function aA(t,n,e){var r,i,a,o;return!(!n.stroke||!Lo(t,n,e))&&(r=n.x||0,i=n.y||0,a=n.x2!=null?n.x2:r,o=n.y2!=null?n.y2:i,t.beginPath(),t.moveTo(r,i),t.lineTo(a,o),!0)}var H7={type:"rule",tag:"line",nested:!1,attr:function(t,n){t("transform",tA(n)),t("x2",n.x2!=null?n.x2-(n.x||0):0),t("y2",n.y2!=null?n.y2-(n.y||0):0)},bound:function(t,n){var e,r;return ai(t.set(e=n.x||0,r=n.y||0,n.x2!=null?n.x2:e,n.y2!=null?n.y2:r),n)},draw:function(t,n,e){Qe(n,r=>{if(!e||e.intersects(r.bounds)){var i=r.opacity==null?1:r.opacity;i&&aA(t,r,i)&&(jo(t,r),t.stroke())}})},pick:Oc(function(t,n,e,r){return!!t.isPointInStroke&&aA(t,n,1)&&t.isPointInStroke(e,r)}),isect:Jw},G7=Zm("shape",function(t,n){return(n.mark.shape||n.shape).context(t)(n)}),V7=Zm("symbol",function(t,n){return E7.context(t)(n)},Ym);const oA=ox();var we={height:Sr,measureWidth:i0,estimateWidth:Pc,width:Pc,canvas:sA};function sA(t){we.width=t&&Gi?i0:Pc}function Pc(t,n){return uA(Yi(t,n),Sr(t))}function uA(t,n){return~~(.8*t.length*n)}function i0(t,n){return Sr(t)<=0||!(n=Yi(t,n))?0:lA(n,jc(t))}function lA(t,n){const e=`(${n}) ${t}`;let r=oA.get(e);return r===void 0&&(Gi.font=n,r=Gi.measureText(t).width,oA.set(e,r)),r}function Sr(t){return t.fontSize!=null?+t.fontSize||0:11}function Vi(t){return t.lineHeight!=null?t.lineHeight:Sr(t)+2}function hu(t){return n=t.lineBreak&&t.text&&!T(t.text)?t.text.split(t.lineBreak):t.text,T(n)?n.length>1?n:n[0]:n;var n}function a0(t){const n=hu(t);return(T(n)?n.length-1:0)*Vi(t)}function Yi(t,n){const e=n==null?"":(n+"").trim();return t.limit>0&&e.length?function(r,i){var a=+r.limit,o=function(d){if(we.width===i0){const h=jc(d);return p=>lA(p,h)}if(we.width===Pc){const h=Sr(d);return p=>uA(p,h)}return h=>we.width(d,h)}(r);if(o(i)<a)return i;var s,u=r.ellipsis||"\u2026",l=r.dir==="rtl",c=0,f=i.length;if(a-=o(u),l){for(;c<f;)s=c+f>>>1,o(i.slice(s))>a?c=s+1:f=s;return u+i.slice(c)}for(;c<f;)s=1+(c+f>>>1),o(i.slice(0,s))<a?c=s:f=s-1;return i.slice(0,c)+u}(t,e):e}function pu(t,n){var e=t.font;return(n&&e?String(e).replace(/"/g,"'"):e)||"sans-serif"}function jc(t,n){return(t.fontStyle?t.fontStyle+" ":"")+(t.fontVariant?t.fontVariant+" ":"")+(t.fontWeight?t.fontWeight+" ":"")+Sr(t)+"px "+pu(t,n)}function o0(t){var n=t.baseline,e=Sr(t);return Math.round(n==="top"?.79*e:n==="middle"?.3*e:n==="bottom"?-.21*e:n==="line-top"?.29*e+.5*Vi(t):n==="line-bottom"?.29*e-.5*Vi(t):0)}sA(!0);const Y7={left:"start",center:"middle",right:"end"},mu=new cn;function Lc(t){var n,e=t.x||0,r=t.y||0,i=t.radius||0;return i&&(n=(t.theta||0)-Ra,e+=i*Math.cos(n),r+=i*Math.sin(n)),mu.x1=e,mu.y1=r,mu}function s0(t,n,e){var r,i=we.height(n),a=n.align,o=Lc(n),s=o.x1,u=o.y1,l=n.dx||0,c=(n.dy||0)+o0(n)-Math.round(.8*i),f=hu(n);if(T(f)?(i+=Vi(n)*(f.length-1),r=f.reduce((d,h)=>Math.max(d,we.width(n,h)),0)):r=we.width(n,f),a==="center"?l-=r/2:a==="right"&&(l-=r),t.set(l+=s,c+=u,l+r,c+i),n.angle&&!e)t.rotate(n.angle*Ii,s,u);else if(e===2)return t.rotatedPoints(n.angle*Ii,s,u);return t}var X7={type:"text",tag:"text",nested:!1,attr:function(t,n){var e,r=n.dx||0,i=(n.dy||0)+o0(n),a=Lc(n),o=a.x1,s=a.y1,u=n.angle||0;t("text-anchor",Y7[n.align]||"start"),u?(e=La(o,s)+" "+Qm(u),(r||i)&&(e+=" "+La(r,i))):e=La(o+r,s+i),t("transform",e)},bound:s0,draw:function(t,n,e){Qe(n,r=>{var i,a,o,s,u,l,c,f=r.opacity==null?1:r.opacity;if(!(e&&!e.intersects(r.bounds)||f===0||r.fontSize<=0||r.text==null||r.text.length===0)){if(t.font=jc(r),t.textAlign=r.align||"left",a=(i=Lc(r)).x1,o=i.y1,r.angle&&(t.save(),t.translate(a,o),t.rotate(r.angle*Ii),a=o=0),a+=r.dx||0,o+=(r.dy||0)+o0(r),l=hu(r),jo(t,r),T(l))for(u=Vi(r),s=0;s<l.length;++s)c=Yi(r,l[s]),r.fill&&Bc(t,r,f)&&t.fillText(c,a,o),r.stroke&&Lo(t,r,f)&&t.strokeText(c,a,o),o+=u;else c=Yi(r,l),r.fill&&Bc(t,r,f)&&t.fillText(c,a,o),r.stroke&&Lo(t,r,f)&&t.strokeText(c,a,o);r.angle&&t.restore()}})},pick:Oc(function(t,n,e,r,i,a){if(n.fontSize<=0)return!1;if(!n.angle)return!0;var o=Lc(n),s=o.x1,u=o.y1,l=s0(mu,n,1),c=-n.angle*Ii,f=Math.cos(c),d=Math.sin(c),h=f*i-d*a+(s-f*s+d*u),p=d*i+f*a+(u-d*s-f*u);return l.contains(h,p)}),isect:function(t,n){const e=s0(mu,t,2);return Po(n,e[0],e[1],e[2],e[3])||Po(n,e[0],e[1],e[4],e[5])||Po(n,e[4],e[5],e[6],e[7])||Po(n,e[2],e[3],e[6],e[7])}},J7=t0("trail",function(t,n){return $7.context(t)(n)},function(t,n){for(var e,r,i=t.length;--i>=0;)if(t[i].defined!==!1&&(e=t[i].x-n[0])*e+(r=t[i].y-n[1])*r<(e=t[i].size||1)*e)return t[i];return null}),Ae={arc:N7,area:R7,group:L7,image:q7,line:U7,path:I7,rect:W7,rule:H7,shape:G7,symbol:V7,text:X7,trail:J7};function u0(t,n,e){var r=Ae[t.mark.marktype],i=n||r.bound;return r.nested&&(t=t.mark),i(t.bounds||(t.bounds=new cn),t,e)}var cA={mark:null};function fA(t,n,e){var r,i,a,o,s=Ae[t.marktype],u=s.bound,l=t.items,c=l&&l.length;if(s.nested)return c?a=l[0]:(cA.mark=t,a=cA),o=u0(a,u,e),n=n&&n.union(o)||o;if(n=n||t.bounds&&t.bounds.clear()||new cn,c)for(r=0,i=l.length;r<i;++r)n.union(u0(l[r],u,e));return t.bounds=n}const K7=["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 dA(t,n){return JSON.stringify(t,K7,n)}function hA(t){return pA(typeof t=="string"?JSON.parse(t):t)}function pA(t){var n,e,r,i=t.marktype,a=t.items;if(a)for(e=0,r=a.length;e<r;++e)n=i?"mark":"group",a[e][n]=t,a[e].zindex&&(a[e][n].zdirty=!0),(i||n)==="group"&&pA(a[e]);return i&&fA(t),t}class mA{constructor(n){arguments.length?this.root=hA(n):(this.root=gA({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Fc(this.root)])}toJSON(n){return dA(this.root,n||0)}mark(n,e,r){const i=gA(n,e=e||this.root.items[0]);return e.items[r]=i,i.zindex&&(i.group.zdirty=!0),i}}function gA(t,n){const e={bounds:new cn,clip:!!t.clip,group:n,interactive:t.interactive!==!1,items:[],marktype:t.marktype,name:t.name||void 0,role:t.role||void 0,zindex:t.zindex||0};return t.aria!=null&&(e.aria=t.aria),t.description&&(e.description=t.description),e}function Xi(t,n,e){return!t&&typeof document<"u"&&document.createElement&&(t=document),t?e?t.createElementNS(e,n):t.createElement(n):null}function l0(t,n){n=n.toLowerCase();for(var e=t.childNodes,r=0,i=e.length;r<i;++r)if(e[r].tagName.toLowerCase()===n)return e[r]}function dn(t,n,e,r){var i,a=t.childNodes[n];return a&&a.tagName.toLowerCase()===e.toLowerCase()||(i=a||null,a=Xi(t.ownerDocument,e,r),t.insertBefore(a,i)),a}function Pe(t,n){for(var e=t.childNodes,r=e.length;r>n;)t.removeChild(e[--r]);return t}function yA(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function qc(t,n){const e=n.getBoundingClientRect();return[t.clientX-e.left-(n.clientLeft||0),t.clientY-e.top-(n.clientTop||0)]}class c0{constructor(n,e){this._active=null,this._handlers={},this._loader=n||Ul(),this._tooltip=e||Q7}initialize(n,e,r){return this._el=n,this._obj=r||null,this.origin(e)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}origin(n){return arguments.length?(this._origin=n||[0,0],this):this._origin.slice()}scene(n){return arguments.length?(this._scene=n,this):this._scene}on(){}off(){}_handlerIndex(n,e,r){for(let i=n?n.length:0;--i>=0;)if(n[i].type===e&&(!r||n[i].handler===r))return i;return-1}handlers(n){const e=this._handlers,r=[];if(n)r.push(...e[this.eventName(n)]);else for(const i in e)r.push(...e[i]);return r}eventName(n){const e=n.indexOf(".");return e<0?n:n.slice(0,e)}handleHref(n,e,r){this._loader.sanitize(r,{context:"href"}).then(i=>{const a=new MouseEvent(n.type,n),o=Xi(null,"a");for(const s in i)o.setAttribute(s,i[s]);o.dispatchEvent(a)}).catch(()=>{})}handleTooltip(n,e,r){if(e&&e.tooltip!=null){e=function(a,o,s,u){var l,c,f=a&&a.mark;if(f&&(l=Ae[f.marktype]).tip){for((c=qc(o,s))[0]-=u[0],c[1]-=u[1];a=a.mark.group;)c[0]-=a.x||0,c[1]-=a.y||0;a=l.tip(f.items,c)}return a}(e,n,this.canvas(),this._origin);const i=r&&e&&e.tooltip||null;this._tooltip.call(this._obj,this,n,e,i)}}getItemBoundingClientRect(n){const e=this.canvas();if(!e)return;const r=e.getBoundingClientRect(),i=this._origin,a=n.bounds,o=a.width(),s=a.height();let u=a.x1+i[0]+r.left,l=a.y1+i[1]+r.top;for(;n.mark&&(n=n.mark.group);)u+=n.x||0,l+=n.y||0;return{x:u,y:l,width:o,height:s,left:u,top:l,right:u+o,bottom:l+s}}}function Q7(t,n,e,r){t.element().setAttribute("title",r||"")}class gu{constructor(n){this._el=null,this._bgcolor=null,this._loader=new Uw(n)}initialize(n,e,r,i,a){return this._el=n,this.resize(e,r,i,a)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}background(n){return arguments.length===0?this._bgcolor:(this._bgcolor=n,this)}resize(n,e,r,i){return this._width=n,this._height=e,this._origin=r||[0,0],this._scale=i||1,this}dirty(){}render(n,e){const r=this;return r._call=function(){r._render(n,e)},r._call(),r._call=null,r}_render(){}renderAsync(n,e){const r=this.render(n,e);return this._ready?this._ready.then(()=>r):Promise.resolve(r)}_load(n,e){var r=this,i=r._loader[n](e);if(!r._ready){const a=r._call;r._ready=r._loader.ready().then(o=>{o&&a(),r._ready=null})}return i}sanitizeURL(n){return this._load("sanitizeURL",n)}loadImage(n){return this._load("loadImage",n)}}const vA="dragenter",Uc="dragleave",bA="dragover",f0="pointerdown",Ic="pointermove",Wc="pointerout",xA="pointerover",d0="mousedown",wA="mousemove",Hc="mouseout",AA="mouseover",Gc="click",_A="mousewheel",Vc="touchstart",Yc="touchmove",Xc="touchend",Z7=["keydown","keypress","keyup",vA,Uc,bA,f0,"pointerup",Ic,Wc,xA,d0,"mouseup",wA,Hc,AA,Gc,"dblclick","wheel",_A,Vc,Yc,Xc],h0=Ic,yu=Hc,p0=Gc;class vu extends c0{constructor(n,e){super(n,e),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=Z7,this.pointermove=DA([Ic,wA],[xA,AA],[Wc,Hc]),this.dragover=DA([bA],[vA],[Uc]),this.pointerout=FA([Wc,Hc]),this.dragleave=FA([Uc])}initialize(n,e,r){return this._canvas=n&&l0(n,"canvas"),[Gc,d0,f0,Ic,Wc,Uc].forEach(i=>kA(this,i)),super.initialize(n,e,r)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(n){this.fire(_A,n)}pointerdown(n){this._down=this._active,this.fire(f0,n)}mousedown(n){this._down=this._active,this.fire(d0,n)}click(n){this._down===this._active&&(this.fire(Gc,n),this._down=null)}touchstart(n){this._touch=this.pickEvent(n.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(Vc,n,!0)}touchmove(n){this.fire(Yc,n,!0)}touchend(n){this.fire(Xc,n,!0),this._touch=null}fire(n,e,r){const i=r?this._touch:this._active,a=this._handlers[n];if(e.vegaType=n,n===p0&&i&&i.href?this.handleHref(e,i,i.href):n!==h0&&n!==yu||this.handleTooltip(e,i,n!==yu),a)for(let o=0,s=a.length;o<s;++o)a[o].handler.call(this._obj,e,i)}on(n,e){const r=this.eventName(n),i=this._handlers;return this._handlerIndex(i[r],n,e)<0&&(kA(this,n),(i[r]||(i[r]=[])).push({type:n,handler:e})),this}off(n,e){const r=this.eventName(n),i=this._handlers[r],a=this._handlerIndex(i,n,e);return a>=0&&i.splice(a,1),this}pickEvent(n){const e=qc(n,this._canvas),r=this._origin;return this.pick(this._scene,e[0],e[1],e[0]-r[0],e[1]-r[1])}pick(n,e,r,i,a){const o=this.context();return Ae[n.marktype].pick.call(this,o,n,e,r,i,a)}}const t4=t=>t===Vc||t===Yc||t===Xc?[Vc,Yc,Xc]:[t];function kA(t,n){t4(n).forEach(e=>function(r,i){const a=r.canvas();a&&!r._events[i]&&(r._events[i]=1,a.addEventListener(i,r[i]?o=>r[i](o):o=>r.fire(i,o)))}(t,e))}function Jc(t,n,e){n.forEach(r=>t.fire(r,e))}function DA(t,n,e){return function(r){const i=this._active,a=this.pickEvent(r);a===i||(i&&i.exit||Jc(this,e,r),this._active=a,Jc(this,n,r)),Jc(this,t,r)}}function FA(t){return function(n){Jc(this,t,n),this._active=null}}function n4(t,n,e,r,i,a){const o=typeof HTMLElement<"u"&&t instanceof HTMLElement&&t.parentNode!=null,s=t.getContext("2d"),u=o?typeof window<"u"&&window.devicePixelRatio||1:i;t.width=n*u,t.height=e*u;for(const l in a)s[l]=a[l];return o&&u!==1&&(t.style.width=n+"px",t.style.height=e+"px"),s.pixelRatio=u,s.setTransform(u,0,0,u,u*r[0],u*r[1]),t}class Kc extends gu{constructor(n){super(n),this._options={},this._redraw=!1,this._dirty=new cn,this._tempb=new cn}initialize(n,e,r,i,a,o){return this._options=o||{},this._canvas=this._options.externalContext?null:qi(1,1,this._options.type),n&&this._canvas&&(Pe(n,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),super.initialize(n,e,r,i,a)}resize(n,e,r,i){if(super.resize(n,e,r,i),this._canvas)n4(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const a=this._options.externalContext;a||P("CanvasRenderer is missing a valid canvas or context"),a.scale(this._scale,this._scale),a.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(n){const e=this._tempb.clear().union(n.bounds);let r=n.mark.group;for(;r;)e.translate(r.x||0,r.y||0),r=r.mark.group;this._dirty.union(e)}_render(n,e){const r=this.context(),i=this._origin,a=this._width,o=this._height,s=this._dirty,u=e4(i,a,o);r.save();const l=this._redraw||s.empty()?(this._redraw=!1,u.expand(1)):function(c,f,d){return f.expand(1).round(),c.pixelRatio%1&&f.scale(c.pixelRatio).round().scale(1/c.pixelRatio),f.translate(-d[0]%1,-d[1]%1),c.beginPath(),c.rect(f.x1,f.y1,f.width(),f.height()),c.clip(),f}(r,u.intersect(s),i);return this.clear(-i[0],-i[1],a,o),this.draw(r,n,l,e),r.restore(),s.clear(),this}draw(n,e,r,i){if(e.marktype!=="group"&&i!=null&&!i.includes(e.marktype))return;const a=Ae[e.marktype];e.clip&&function(o,s){var u=s.clip;o.save(),bt(u)?(o.beginPath(),u(o),o.clip()):nA(o,s.group)}(n,e),a.draw.call(this,n,e,r,i),e.clip&&n.restore()}clear(n,e,r,i){const a=this._options,o=this.context();a.type==="pdf"||a.externalContext||o.clearRect(n,e,r,i),this._bgcolor!=null&&(o.fillStyle=this._bgcolor,o.fillRect(n,e,r,i))}}const e4=(t,n,e)=>new cn().set(0,0,n,e).translate(-t[0],-t[1]);class CA extends c0{constructor(n,e){super(n,e);const r=this;r._hrefHandler=m0(r,(i,a)=>{a&&a.href&&r.handleHref(i,a,a.href)}),r._tooltipHandler=m0(r,(i,a)=>{r.handleTooltip(i,a,i.type!==yu)})}initialize(n,e,r){let i=this._svg;return i&&(i.removeEventListener(p0,this._hrefHandler),i.removeEventListener(h0,this._tooltipHandler),i.removeEventListener(yu,this._tooltipHandler)),this._svg=i=n&&l0(n,"svg"),i&&(i.addEventListener(p0,this._hrefHandler),i.addEventListener(h0,this._tooltipHandler),i.addEventListener(yu,this._tooltipHandler)),super.initialize(n,e,r)}canvas(){return this._svg}on(n,e){const r=this.eventName(n),i=this._handlers;if(this._handlerIndex(i[r],n,e)<0){const a={type:n,handler:e,listener:m0(this,e)};(i[r]||(i[r]=[])).push(a),this._svg&&this._svg.addEventListener(r,a.listener)}return this}off(n,e){const r=this.eventName(n),i=this._handlers[r],a=this._handlerIndex(i,n,e);return a>=0&&(this._svg&&this._svg.removeEventListener(r,i[a].listener),i.splice(a,1)),this}}const m0=(t,n)=>e=>{let r=e.target.__data__;r=Array.isArray(r)?r[0]:r,e.vegaType=e.type,n.call(t._obj,e,r)},EA="aria-hidden",g0="aria-label",y0="role",v0="aria-roledescription",$A="graphics-object",b0="graphics-symbol",SA=(t,n,e)=>({[y0]:t,[v0]:n,[g0]:e||void 0}),r4=Dr(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),MA={axis:{desc:"axis",caption:function(t){const n=t.datum,e=t.orient,r=n.title?RA(t):null,i=t.context,a=i.scales[n.scale].value,o=i.dataflow.locale(),s=a.type;return`${e==="left"||e==="right"?"Y":"X"}-axis`+(r?` titled '${r}'`:"")+` for a ${Oo(s)?"discrete":s} scale with ${Ew(o,a,t)}`}},legend:{desc:"legend",caption:function(t){const n=t.datum,e=n.title?RA(t):null,r=`${n.type||""} legend`.trim(),i=n.scales,a=Object.keys(i),o=t.context,s=o.scales[i[a[0]]].value,u=o.dataflow.locale();return l=r,(l.length?l[0].toUpperCase()+l.slice(1):l)+(e?` titled '${e}'`:"")+` for ${function(c){return c=c.map(f=>f+(f==="fill"||f==="stroke"?" color":"")),c.length<2?c[0]:c.slice(0,-1).join(", ")+" and "+Bt(c)}(a)} with ${Ew(u,s,t)}`;var l}},"title-text":{desc:"title",caption:t=>`Title text '${NA(t)}'`},"title-subtitle":{desc:"subtitle",caption:t=>`Subtitle text '${NA(t)}'`}},BA={ariaRole:y0,ariaRoleDescription:v0,description:g0};function zA(t,n){const e=n.aria===!1;if(t(EA,e||void 0),e||n.description==null)for(const r in BA)t(BA[r],void 0);else{const r=n.mark.marktype;t(g0,n.description),t(y0,n.ariaRole||(r==="group"?$A:b0)),t(v0,n.ariaRoleDescription||`${r} mark`)}}function OA(t){return t.aria===!1?{[EA]:!0}:r4[t.role]?null:MA[t.role]?function(n,e){try{const r=n.items[0],i=e.caption||(()=>"");return SA(e.role||b0,e.desc,r.description||i(r))}catch{return null}}(t,MA[t.role]):function(n){const e=n.marktype,r=e==="group"||e==="text"||n.items.some(i=>i.description!=null&&i.aria!==!1);return SA(r?$A:b0,`${e} mark container`,n.description)}(t)}function NA(t){return J(t.text).join(" ")}function RA(t){try{return J(Bt(t.items).items[0].text).join(" ")}catch{return null}}const TA=t=>(t+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");function x0(){let t="",n="",e="";const r=[],i=()=>n=e="",a=(s,u)=>{var l;return u!=null&&(n+=` ${s}="${l=u,TA(l).replace(/"/g,"&quot;").replace(/\t/g,"&#x9;").replace(/\n/g,"&#xA;").replace(/\r/g,"&#xD;")}"`),o},o={open(s){(f=>{n&&(t+=`${n}>${e}`,i()),r.push(f)})(s),n="<"+s;for(var u=arguments.length,l=new Array(u>1?u-1:0),c=1;c<u;c++)l[c-1]=arguments[c];for(const f of l)for(const d in f)a(d,f[d]);return o},close(){const s=r.pop();return t+=n?n+(e?`>${e}</${s}>`:"/>"):`</${s}>`,i(),o},attr:a,text:s=>(e+=TA(s),o),toString:()=>t};return o}const PA=t=>jA(x0(),t)+"";function jA(t,n){if(t.open(n.tagName),n.hasAttributes()){const e=n.attributes,r=e.length;for(let i=0;i<r;++i)t.attr(e[i].name,e[i].value)}if(n.hasChildNodes()){const e=n.childNodes;for(const r of e)r.nodeType===3?t.text(r.nodeValue):jA(t,r)}return t.close()}const Qc={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"},Zc={blend:"mix-blend-mode"},LA={fill:"none","stroke-miterlimit":10},qA="http://www.w3.org/2000/xmlns/",hn=du.xmlns;class w0 extends gu{constructor(n){super(n),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}initialize(n,e,r,i,a){return this._defs={},this._clearDefs(),n&&(this._svg=dn(n,0,"svg",hn),this._svg.setAttributeNS(qA,"xmlns",hn),this._svg.setAttributeNS(qA,"xmlns:xlink",du["xmlns:xlink"]),this._svg.setAttribute("version",du.version),this._svg.setAttribute("class","marks"),Pe(n,1),this._root=dn(this._svg,0,"g",hn),Ji(this._root,LA),Pe(this._svg,1)),this.background(this._bgcolor),super.initialize(n,e,r,i,a)}background(n){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",n),super.background(...arguments)}resize(n,e,r,i){return super.resize(n,e,r,i),this._svg&&(Ji(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 n=this._svg,e=this._bgcolor;if(!n)return null;let r;e&&(n.removeAttribute("style"),r=dn(n,0,"rect",hn),Ji(r,{width:this._width,height:this._height,fill:e}));const i=PA(n);return e&&(n.removeChild(r),this._svg.style.setProperty("background-color",e)),i}_render(n,e){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,n,void 0,e),Pe(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this}dirty(n){n.dirty!==this._dirtyID&&(n.dirty=this._dirtyID,this._dirty.push(n))}isDirty(n){return this._dirtyAll||!n._svg||!n._svg.ownerSVGElement||n.dirty===this._dirtyID}_dirtyCheck(){this._dirtyAll=!0;const n=this._dirty;if(!n.length||!this._dirtyID)return!0;const e=++this._dirtyID;let r,i,a,o,s,u,l;for(s=0,u=n.length;s<u;++s)r=n[s],i=r.mark,i.marktype!==a&&(a=i.marktype,o=Ae[a]),i.zdirty&&i.dirty!==e&&(this._dirtyAll=!1,UA(r,e),i.items.forEach(c=>{c.dirty=e})),i.zdirty||(r.exit?(o.nested&&i.items.length?(l=i.items[0],l._svg&&this._update(o,l._svg,l)):r._svg&&(l=r._svg.parentNode,l&&l.removeChild(r._svg)),r._svg=null):(r=o.nested?i.items[0]:r,r._update!==e&&(r._svg&&r._svg.ownerSVGElement?this._update(o,r._svg,r):(this._dirtyAll=!1,UA(r,e)),r._update=e)));return!this._dirtyAll}mark(n,e,r,i){if(!this.isDirty(e))return e._svg;const a=this._svg,o=e.marktype,s=Ae[o],u=e.interactive===!1?"none":null,l=s.tag==="g",c=IA(e,n,r,"g",a);if(o!=="group"&&i!=null&&!i.includes(o))return Pe(c,0),e._svg;c.setAttribute("class",yA(e));const f=OA(e);for(const m in f)Vn(c,m,f[m]);l||Vn(c,"pointer-events",u),Vn(c,"clip-path",e.clip?Lm(this,e,e.group):null);let d=null,h=0;const p=m=>{const g=this.isDirty(m),y=IA(m,c,d,s.tag,a);g&&(this._update(s,y,m),l&&function(v,x,b,w){x=x.lastChild.previousSibling;let A,_=0;Qe(b,k=>{A=v.mark(x,k,A,w),++_}),Pe(x,1+_)}(this,y,m,i)),d=y,++h};return s.nested?e.items.length&&p(e.items[0]):Qe(e,p),Pe(c,h),c}_update(n,e,r){oi=e,On=e.__values__,zA(bu,r),n.attr(bu,r,this);const i=o4[n.type];i&&i.call(this,n,e,r),oi&&this.style(oi,r)}style(n,e){if(e!=null){for(const r in Qc){let i=r==="font"?pu(e):e[r];if(i===On[r])continue;const a=Qc[r];i==null?n.removeAttribute(a):(Om(i)&&(i=Sw(i,this._defs.gradient,WA())),n.setAttribute(a,i+"")),On[r]=i}for(const r in Zc)tf(n,Zc[r],e[r])}}defs(){const n=this._svg,e=this._defs;let r=e.el,i=0;for(const a in e.gradient)r||(e.el=r=dn(n,1,"defs",hn)),i=i4(r,e.gradient[a],i);for(const a in e.clipping)r||(e.el=r=dn(n,1,"defs",hn)),i=a4(r,e.clipping[a],i);r&&(i===0?(n.removeChild(r),e.el=null):Pe(r,i))}_clearDefs(){const n=this._defs;n.gradient={},n.clipping={}}}function UA(t,n){for(;t&&t.dirty!==n;t=t.mark.group){if(t.dirty=n,!t.mark||t.mark.dirty===n)return;t.mark.dirty=n}}function i4(t,n,e){let r,i,a;if(n.gradient==="radial"){let o=dn(t,e++,"pattern",hn);Ji(o,{id:Ac+n.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),o=dn(o,0,"rect",hn),Ji(o,{width:1,height:1,fill:`url(${WA()}#${n.id})`}),Ji(t=dn(t,e++,"radialGradient",hn),{id:n.id,fx:n.x1,fy:n.y1,fr:n.r1,cx:n.x2,cy:n.y2,r:n.r2})}else Ji(t=dn(t,e++,"linearGradient",hn),{id:n.id,x1:n.x1,x2:n.x2,y1:n.y1,y2:n.y2});for(r=0,i=n.stops.length;r<i;++r)a=dn(t,r,"stop",hn),a.setAttribute("offset",n.stops[r].offset),a.setAttribute("stop-color",n.stops[r].color);return Pe(t,r),e}function a4(t,n,e){let r;return(t=dn(t,e,"clipPath",hn)).setAttribute("id",n.id),n.path?(r=dn(t,0,"path",hn),r.setAttribute("d",n.path)):(r=dn(t,0,"rect",hn),Ji(r,{x:0,y:0,width:n.width,height:n.height})),Pe(t,1),e+1}function IA(t,n,e,r,i){let a,o=t._svg;if(!o&&(a=n.ownerDocument,o=Xi(a,r,hn),t._svg=o,t.mark&&(o.__data__=t,o.__values__={fill:"default"},r==="g"))){const s=Xi(a,"path",hn);o.appendChild(s),s.__data__=t;const u=Xi(a,"g",hn);o.appendChild(u),u.__data__=t;const l=Xi(a,"path",hn);o.appendChild(l),l.__data__=t,l.__values__={fill:"default"}}return(o.ownerSVGElement!==i||function(s,u){return s.parentNode&&s.parentNode.childNodes.length>1&&s.previousSibling!=u}(o,e))&&n.insertBefore(o,e?e.nextSibling:n.firstChild),o}let oi=null,On=null;const o4={group(t,n,e){const r=oi=n.childNodes[2];On=r.__values__,t.foreground(bu,e,this),On=n.__values__,oi=n.childNodes[1],t.content(bu,e,this);const i=oi=n.childNodes[0];t.background(bu,e,this);const a=e.mark.interactive===!1?"none":null;if(a!==On.events&&(Vn(r,"pointer-events",a),Vn(i,"pointer-events",a),On.events=a),e.strokeForeground&&e.stroke){const o=e.fill;Vn(r,"display",null),this.style(i,e),Vn(i,"stroke",null),o&&(e.fill=null),On=r.__values__,this.style(r,e),o&&(e.fill=o),oi=null}else Vn(r,"display","none")},image(t,n,e){e.smooth===!1?(tf(n,"image-rendering","optimizeSpeed"),tf(n,"image-rendering","pixelated")):tf(n,"image-rendering",null)},text(t,n,e){const r=hu(e);let i,a,o,s;T(r)?(a=r.map(u=>Yi(e,u)),i=a.join(`
2
- `),i!==On.text&&(Pe(n,0),o=n.ownerDocument,s=Vi(e),a.forEach((u,l)=>{const c=Xi(o,"tspan",hn);c.__data__=e,c.textContent=u,l&&(c.setAttribute("x",0),c.setAttribute("dy",s)),n.appendChild(c)}),On.text=i)):(a=Yi(e,r),a!==On.text&&(n.textContent=a,On.text=a)),Vn(n,"font-family",pu(e)),Vn(n,"font-size",Sr(e)+"px"),Vn(n,"font-style",e.fontStyle),Vn(n,"font-variant",e.fontVariant),Vn(n,"font-weight",e.fontWeight)}};function bu(t,n,e){n!==On[t]&&(e?function(r,i,a,o){a!=null?r.setAttributeNS(o,i,a):r.removeAttributeNS(o,i)}(oi,t,n,e):Vn(oi,t,n),On[t]=n)}function tf(t,n,e){e!==On[n]&&(e==null?t.style.removeProperty(n):t.style.setProperty(n,e+""),On[n]=e)}function Ji(t,n){for(const e in n)Vn(t,e,n[e])}function Vn(t,n,e){e!=null?t.setAttribute(n,e):t.removeAttribute(n)}function WA(){let t;return typeof window>"u"?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}class HA extends gu{constructor(n){super(n),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(n){const e=x0();e.open("svg",xt({},du,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const r=this._bgcolor;return r&&r!=="transparent"&&r!=="none"&&e.open("rect",{width:this._width,height:this._height,fill:r}).close(),e.open("g",LA,{transform:"translate("+this._origin+")"}),this.mark(e,n),e.close(),this.defs(e),this._text=e.close()+"",this}mark(n,e){const r=Ae[e.marktype],i=r.tag,a=[zA,r.attr];n.open("g",{class:yA(e),"clip-path":e.clip?Lm(this,e,e.group):null},OA(e),{"pointer-events":i!=="g"&&e.interactive===!1?"none":null});const o=s=>{const u=this.href(s);if(u&&n.open("a",u),n.open(i,this.attr(e,s,a,i!=="g"?i:null)),i==="text"){const l=hu(s);if(T(l)){const c={x:0,dy:Vi(s)};for(let f=0;f<l.length;++f)n.open("tspan",f?c:null).text(Yi(s,l[f])).close()}else n.text(Yi(s,l))}else if(i==="g"){const l=s.strokeForeground,c=s.fill,f=s.stroke;l&&f&&(s.stroke=null),n.open("path",this.attr(e,s,r.background,"bgrect")).close(),n.open("g",this.attr(e,s,r.content)),Qe(s,d=>this.mark(n,d)),n.close(),l&&f?(c&&(s.fill=null),s.stroke=f,n.open("path",this.attr(e,s,r.foreground,"bgrect")).close(),c&&(s.fill=c)):n.open("path",this.attr(e,s,r.foreground,"bgfore")).close()}n.close(),u&&n.close()};return r.nested?e.items&&e.items.length&&o(e.items[0]):Qe(e,o),n.close()}href(n){const e=n.href;let r;if(e){if(r=this._hrefs&&this._hrefs[e])return r;this.sanitizeURL(e).then(i=>{i["xlink:href"]=i.href,i.href=null,(this._hrefs||(this._hrefs={}))[e]=i})}return null}attr(n,e,r,i){const a={},o=(s,u,l,c)=>{a[c||s]=u};return Array.isArray(r)?r.forEach(s=>s(o,e,this)):r(o,e,this),i&&function(s,u,l,c,f){let d;if(u==null||(c==="bgrect"&&l.interactive===!1&&(s["pointer-events"]="none"),c==="bgfore"&&(l.interactive===!1&&(s["pointer-events"]="none"),s.display="none",u.fill!==null)))return s;c==="image"&&u.smooth===!1&&(d=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),c==="text"&&(s["font-family"]=pu(u),s["font-size"]=Sr(u)+"px",s["font-style"]=u.fontStyle,s["font-variant"]=u.fontVariant,s["font-weight"]=u.fontWeight);for(const h in Qc){let p=u[h];const m=Qc[h];(p!=="transparent"||m!=="fill"&&m!=="stroke")&&p!=null&&(Om(p)&&(p=Sw(p,f.gradient,"")),s[m]=p)}for(const h in Zc){const p=u[h];p!=null&&(d=d||[],d.push(`${Zc[h]}: ${p};`))}d&&(s.style=d.join(" "))}(a,e,n,i,this._defs),a}defs(n){const e=this._defs.gradient,r=this._defs.clipping;if(Object.keys(e).length+Object.keys(r).length!==0){n.open("defs");for(const i in e){const a=e[i],o=a.stops;a.gradient==="radial"?(n.open("pattern",{id:Ac+i,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),n.open("rect",{width:"1",height:"1",fill:"url(#"+i+")"}).close(),n.close(),n.open("radialGradient",{id:i,fx:a.x1,fy:a.y1,fr:a.r1,cx:a.x2,cy:a.y2,r:a.r2})):n.open("linearGradient",{id:i,x1:a.x1,x2:a.x2,y1:a.y1,y2:a.y2});for(let s=0;s<o.length;++s)n.open("stop",{offset:o[s].offset,"stop-color":o[s].color}).close();n.close()}for(const i in r){const a=r[i];n.open("clipPath",{id:i}),a.path?n.open("path",{d:a.path}).close():n.open("rect",{x:0,y:0,width:a.width,height:a.height}).close(),n.close()}n.close()}}}const Ze={svgMarkTypes:["text"],svgOnTop:!0,debug:!1};class A0 extends gu{constructor(n){super(n),this._svgRenderer=new w0(n),this._canvasRenderer=new Kc(n)}initialize(n,e,r,i,a){this._root_el=dn(n,0,"div");const o=dn(this._root_el,0,"div"),s=dn(this._root_el,1,"div");return this._root_el.style.position="relative",Ze.debug||(o.style.height="100%",s.style.position="absolute",s.style.top="0",s.style.left="0",s.style.height="100%",s.style.width="100%"),this._svgEl=Ze.svgOnTop?s:o,this._canvasEl=Ze.svgOnTop?o:s,this._svgEl.style.pointerEvents="none",this._canvasRenderer.initialize(this._canvasEl,e,r,i,a),this._svgRenderer.initialize(this._svgEl,e,r,i,a),super.initialize(n,e,r,i,a)}dirty(n){return Ze.svgMarkTypes.includes(n.mark.marktype)?this._svgRenderer.dirty(n):this._canvasRenderer.dirty(n),this}_render(n,e){const r=(e??["arc","area","image","line","path","rect","rule","shape","symbol","text","trail"]).filter(i=>!Ze.svgMarkTypes.includes(i));this._svgRenderer.render(n,Ze.svgMarkTypes),this._canvasRenderer.render(n,r)}resize(n,e,r,i){return super.resize(n,e,r,i),this._svgRenderer.resize(n,e,r,i),this._canvasRenderer.resize(n,e,r,i),this}background(n){return Ze.svgOnTop?this._canvasRenderer.background(n):this._svgRenderer.background(n),this}}class GA extends vu{constructor(n,e){super(n,e)}initialize(n,e,r){const i=dn(dn(n,0,"div"),Ze.svgOnTop?0:1,"div");return super.initialize(i,e,r)}}const VA="canvas",YA="hybrid",XA="none",Ki={Canvas:VA,PNG:"png",SVG:"svg",Hybrid:YA,None:XA},qa={};function nf(t,n){return t=String(t||"").toLowerCase(),arguments.length>1?(qa[t]=n,this):qa[t]}function JA(t,n,e){const r=[],i=new cn().union(n),a=t.marktype;return a?KA(t,i,e,r):a==="group"?QA(t,i,e,r):P("Intersect scene must be mark node or group item.")}function KA(t,n,e,r){if(function(i,a,o){return i.bounds&&a.intersects(i.bounds)&&(i.marktype==="group"||i.interactive!==!1&&(!o||o(i)))}(t,n,e)){const i=t.items,a=t.marktype,o=i.length;let s=0;if(a==="group")for(;s<o;++s)QA(i[s],n,e,r);else for(const u=Ae[a].isect;s<o;++s){const l=i[s];ZA(l,n,u)&&r.push(l)}}return r}function QA(t,n,e,r){e&&e(t.mark)&&ZA(t,n,Ae.group.isect)&&r.push(t);const i=t.items,a=i&&i.length;if(a){const o=t.x||0,s=t.y||0;n.translate(-o,-s);for(let u=0;u<a;++u)KA(i[u],n,e,r);n.translate(o,s)}return r}function ZA(t,n,e){const r=t.bounds;return n.encloses(r)||n.intersects(r)&&e(t,n)}qa[VA]=qa.png={renderer:Kc,headless:Kc,handler:vu},qa.svg={renderer:w0,headless:HA,handler:CA},qa[YA]={renderer:A0,headless:A0,handler:GA},qa[XA]={};const _0=new cn;function t_(t){const n=t.clip;if(bt(n))n(lu(_0.clear()));else{if(!n)return;_0.set(0,0,t.group.width,t.group.height)}t.bounds.intersect(_0)}function k0(t,n,e){return t===n||(e==="path"?n_(t,n):t instanceof Date&&n instanceof Date?+t==+n:$t(t)&&$t(n)?Math.abs(t-n)<=1e-9:t&&n&&(Z(t)||Z(n))?function(r,i){var a,o,s=Object.keys(r),u=Object.keys(i);if(s.length!==u.length)return!1;for(s.sort(),u.sort(),o=s.length-1;o>=0;o--)if(s[o]!=u[o])return!1;for(o=s.length-1;o>=0;o--)if(!k0(r[a=s[o]],i[a],a))return!1;return typeof r==typeof i}(t,n):t==n)}function n_(t,n){return k0(No(t),No(n))}const qo="top",tr="left",nr="right",Qi="bottom",D0="start",F0="middle",Yn="end",ef="group",C0="axis",E0="title",s4="frame",u4="scope",$0="legend",e_="row-header",r_="row-footer",i_="row-title",a_="column-header",o_="column-footer",s_="column-title",l4="padding",u_="fit",l_="fit-x",c_="fit-y",S0="none",rf="all",M0="each",B0="flush",Zi="column",ta="row";function f_(t){O.call(this,null,t)}function af(t,n,e){return n(t.bounds.clear(),t,e)}V(f_,O,{transform(t,n){const e=n.dataflow,r=t.mark,i=r.marktype,a=Ae[i],o=a.bound;let s,u=r.bounds;if(a.nested)r.items.length&&e.dirty(r.items[0]),u=af(r,o),r.items.forEach(l=>{l.bounds.clear().union(u)});else if(i===ef||t.modified())switch(n.visit(n.MOD,l=>e.dirty(l)),u.clear(),r.items.forEach(l=>u.union(af(l,o))),r.role){case C0:case $0:case E0:n.reflow()}else s=n.changed(n.REM),n.visit(n.ADD,l=>{u.union(af(l,o))}),n.visit(n.MOD,l=>{s=s||u.alignsWith(l.bounds),e.dirty(l),u.union(af(l,o))}),s&&(u.clear(),r.items.forEach(l=>u.union(l.bounds)));return t_(r),n.modifies("bounds")}});const d_=":vega_identifier:";function z0(t){O.call(this,0,t)}function h_(t){O.call(this,null,t)}function p_(t){O.call(this,null,t)}z0.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},V(z0,O,{transform(t,n){const e=(i=n.dataflow)._signals[d_]||(i._signals[d_]=i.add(0)),r=t.as;var i;let a=e.value;return n.visit(n.ADD,o=>o[r]=o[r]||++a),e.set(this.value=a),n}}),V(h_,O,{transform(t,n){let e=this.value;e||(e=n.dataflow.scenegraph().mark(t.markdef,function(i){const a=i.groups,o=i.parent;return a&&a.size===1?a.get(Object.keys(a.object)[0]):a&&o?a.lookup(o):null}(t),t.index),e.group.context=t.context,t.context.group||(t.context.group=e.group),e.source=this.source,e.clip=t.clip,e.interactive=t.interactive,this.value=e);const r=e.marktype===ef?Fc:Dc;return n.visit(n.ADD,i=>r.call(i,e)),(t.modified("clip")||t.modified("interactive"))&&(e.clip=t.clip,e.interactive=!!t.interactive,e.zdirty=!0,n.reflow()),e.items=n.source,n}});const m_={parity:t=>t.filter((n,e)=>e%2?n.opacity=0:1),greedy:(t,n)=>{let e;return t.filter((r,i)=>i&&g_(e.bounds,r.bounds,n)?r.opacity=0:(e=r,1))}},g_=(t,n,e)=>e>Math.max(n.x1-t.x2,t.x1-n.x2,n.y1-t.y2,t.y1-n.y2),y_=(t,n)=>{for(var e,r=1,i=t.length,a=t[0].bounds;r<i;a=e,++r)if(g_(a,e=t[r].bounds,n))return!0},c4=t=>{const n=t.bounds;return n.width()>1&&n.height()>1},v_=t=>(t.forEach(n=>n.opacity=1),t),b_=(t,n)=>t.reflow(n.modified()).modifies("opacity");function x_(t){O.call(this,null,t)}V(p_,O,{transform(t,n){const e=m_[t.method]||m_.parity,r=t.separation||0;let i,a,o=n.materialize(n.SOURCE).source;if(!o||!o.length)return;if(!t.method)return t.modified("method")&&(v_(o),n=b_(n,t)),n;if(o=o.filter(c4),!o.length)return;if(t.sort&&(o=o.slice().sort(t.sort)),i=v_(o),n=b_(n,t),i.length>=3&&y_(i,r)){do i=e(i,r);while(i.length>=3&&y_(i,r));i.length<3&&!Bt(o).opacity&&(i.length>1&&(Bt(i).opacity=0),Bt(o).opacity=1)}t.boundScale&&t.boundTolerance>=0&&(a=((u,l,c)=>{var f=u.range(),d=new cn;return l===qo||l===Qi?d.set(f[0],-1/0,f[1],1/0):d.set(-1/0,f[0],1/0,f[1]),d.expand(c||1),h=>d.encloses(h.bounds)})(t.boundScale,t.boundOrient,+t.boundTolerance),o.forEach(u=>{a(u)||(u.opacity=0)}));const s=i[0].mark.bounds.clear();return o.forEach(u=>{u.opacity&&s.union(u.bounds)}),n}}),V(x_,O,{transform(t,n){const e=n.dataflow;if(n.visit(n.ALL,r=>e.dirty(r)),n.fields&&n.fields.zindex){const r=n.source&&n.source[0];r&&(r.mark.zdirty=!0)}}});const Nn=new cn;function Uo(t,n,e){return t[n]===e?0:(t[n]=e,1)}function f4(t){var n=t.items[0].orient;return n===tr||n===nr}function d4(t,n,e,r){var i,a,o=n.items[0],s=o.datum,u=o.translate!=null?o.translate:.5,l=o.orient,c=function(A){let _=+A.grid;return[A.ticks?_++:-1,A.labels?_++:-1,_+ +A.domain]}(s),f=o.range,d=o.offset,h=o.position,p=o.minExtent,m=o.maxExtent,g=s.title&&o.items[c[2]].items[0],y=o.titlePadding,v=o.bounds,x=g&&a0(g),b=0,w=0;switch(Nn.clear().union(v),v.clear(),(i=c[0])>-1&&v.union(o.items[i].bounds),(i=c[1])>-1&&v.union(o.items[i].bounds),l){case qo:b=h||0,w=-d,a=Math.max(p,Math.min(m,-v.y1)),v.add(0,-a).add(f,0),g&&of(t,g,a,y,x,0,-1,v);break;case tr:b=-d,w=h||0,a=Math.max(p,Math.min(m,-v.x1)),v.add(-a,0).add(0,f),g&&of(t,g,a,y,x,1,-1,v);break;case nr:b=e+d,w=h||0,a=Math.max(p,Math.min(m,v.x2)),v.add(0,0).add(a,f),g&&of(t,g,a,y,x,1,1,v);break;case Qi:b=h||0,w=r+d,a=Math.max(p,Math.min(m,v.y2)),v.add(0,0).add(f,a),g&&of(t,g,a,y,0,0,1,v);break;default:b=o.x,w=o.y}return ai(v.translate(b,w),o),Uo(o,"x",b+u)|Uo(o,"y",w+u)&&(o.bounds=Nn,t.dirty(o),o.bounds=v,t.dirty(o)),o.mark.bounds.clear().union(v)}function of(t,n,e,r,i,a,o,s){const u=n.bounds;if(n.auto){const l=o*(e+i+r);let c=0,f=0;t.dirty(n),a?c=(n.x||0)-(n.x=l):f=(n.y||0)-(n.y=l),n.mark.bounds.clear().union(u.translate(-c,-f)),t.dirty(n)}s.union(u)}const w_=(t,n)=>Math.floor(Math.min(t,n)),A_=(t,n)=>Math.ceil(Math.max(t,n));function h4(t){return new cn().set(0,0,t.width||0,t.height||0)}function p4(t){const n=t.bounds.clone();return n.empty()?n.set(0,0,0,0):n.translate(-(t.x||0),-(t.y||0))}function Yt(t,n,e){const r=Z(t)?t[n]:t;return r??(e!==void 0?e:0)}function __(t){return t<0?Math.ceil(-t):0}function k_(t,n,e){var r,i,a,o,s,u,l,c,f,d,h,p=!e.nodirty,m=e.bounds===B0?h4:p4,g=Nn.set(0,0,0,0),y=Yt(e.align,Zi),v=Yt(e.align,ta),x=Yt(e.padding,Zi),b=Yt(e.padding,ta),w=e.columns||n.length,A=w<=0?1:Math.ceil(n.length/w),_=n.length,k=Array(_),D=Array(w),C=0,F=Array(_),E=Array(A),$=0,M=Array(_),S=Array(_),B=Array(_);for(i=0;i<w;++i)D[i]=0;for(i=0;i<A;++i)E[i]=0;for(i=0;i<_;++i)u=n[i],s=B[i]=m(u),u.x=u.x||0,M[i]=0,u.y=u.y||0,S[i]=0,a=i%w,o=~~(i/w),C=Math.max(C,l=Math.ceil(s.x2)),$=Math.max($,c=Math.ceil(s.y2)),D[a]=Math.max(D[a],l),E[o]=Math.max(E[o],c),k[i]=x+__(s.x1),F[i]=b+__(s.y1),p&&t.dirty(n[i]);for(i=0;i<_;++i)i%w===0&&(k[i]=0),i<w&&(F[i]=0);if(y===M0)for(a=1;a<w;++a){for(h=0,i=a;i<_;i+=w)h<k[i]&&(h=k[i]);for(i=a;i<_;i+=w)k[i]=h+D[a-1]}else if(y===rf){for(h=0,i=0;i<_;++i)i%w&&h<k[i]&&(h=k[i]);for(i=0;i<_;++i)i%w&&(k[i]=h+C)}else for(y=!1,a=1;a<w;++a)for(i=a;i<_;i+=w)k[i]+=D[a-1];if(v===M0)for(o=1;o<A;++o){for(h=0,r=(i=o*w)+w;i<r;++i)h<F[i]&&(h=F[i]);for(i=o*w;i<r;++i)F[i]=h+E[o-1]}else if(v===rf){for(h=0,i=w;i<_;++i)h<F[i]&&(h=F[i]);for(i=w;i<_;++i)F[i]=h+$}else for(v=!1,o=1;o<A;++o)for(r=(i=o*w)+w;i<r;++i)F[i]+=E[o-1];for(f=0,i=0;i<_;++i)f=k[i]+(i%w?f:0),M[i]+=f-n[i].x;for(a=0;a<w;++a)for(d=0,i=a;i<_;i+=w)d+=F[i],S[i]+=d-n[i].y;if(y&&Yt(e.center,Zi)&&A>1)for(i=0;i<_;++i)(f=(s=y===rf?C:D[i%w])-B[i].x2-n[i].x-M[i])>0&&(M[i]+=f/2);if(v&&Yt(e.center,ta)&&w!==1)for(i=0;i<_;++i)(d=(s=v===rf?$:E[~~(i/w)])-B[i].y2-n[i].y-S[i])>0&&(S[i]+=d/2);for(i=0;i<_;++i)g.union(B[i].translate(M[i],S[i]));switch(f=Yt(e.anchor,"x"),d=Yt(e.anchor,"y"),Yt(e.anchor,Zi)){case Yn:f-=g.width();break;case F0:f-=g.width()/2}switch(Yt(e.anchor,ta)){case Yn:d-=g.height();break;case F0:d-=g.height()/2}for(f=Math.round(f),d=Math.round(d),g.clear(),i=0;i<_;++i)n[i].mark.bounds.clear();for(i=0;i<_;++i)(u=n[i]).x+=M[i]+=f,u.y+=S[i]+=d,g.union(u.mark.bounds.union(u.bounds.translate(M[i],S[i]))),p&&t.dirty(u);return g}function m4(t,n,e){var r,i,a,o,s,u,l,c=function(v){var x,b,w=v.items,A=w.length,_=0;const k={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;_<A;++_)if(b=(x=w[_]).items,x.marktype===ef)switch(x.role){case C0:case $0:case E0:break;case e_:k.rowheaders.push(...b);break;case r_:k.rowfooters.push(...b);break;case a_:k.colheaders.push(...b);break;case o_:k.colfooters.push(...b);break;case i_:k.rowtitle=b[0];break;case s_:k.coltitle=b[0];break;default:k.marks.push(...b)}return k}(n),f=c.marks,d=e.bounds===B0?g4:y4,h=e.offset,p=e.columns||f.length,m=p<=0?1:Math.ceil(f.length/p),g=m*p;const y=k_(t,f,e);y.empty()&&y.set(0,0,0,0),c.rowheaders&&(u=Yt(e.headerBand,ta,null),r=sf(t,c.rowheaders,f,p,m,-Yt(h,"rowHeader"),w_,0,d,"x1",0,p,1,u)),c.colheaders&&(u=Yt(e.headerBand,Zi,null),i=sf(t,c.colheaders,f,p,p,-Yt(h,"columnHeader"),w_,1,d,"y1",0,1,p,u)),c.rowfooters&&(u=Yt(e.footerBand,ta,null),a=sf(t,c.rowfooters,f,p,m,Yt(h,"rowFooter"),A_,0,d,"x2",p-1,p,1,u)),c.colfooters&&(u=Yt(e.footerBand,Zi,null),o=sf(t,c.colfooters,f,p,p,Yt(h,"columnFooter"),A_,1,d,"y2",g-p,1,p,u)),c.rowtitle&&(s=Yt(e.titleAnchor,ta),l=Yt(h,"rowTitle"),l=s===Yn?a+l:r-l,u=Yt(e.titleBand,ta,.5),D_(t,c.rowtitle,l,0,y,u)),c.coltitle&&(s=Yt(e.titleAnchor,Zi),l=Yt(h,"columnTitle"),l=s===Yn?o+l:i-l,u=Yt(e.titleBand,Zi,.5),D_(t,c.coltitle,l,1,y,u))}function g4(t,n){return n==="x1"?t.x||0:n==="y1"?t.y||0:n==="x2"?(t.x||0)+(t.width||0):n==="y2"?(t.y||0)+(t.height||0):void 0}function y4(t,n){return t.bounds[n]}function sf(t,n,e,r,i,a,o,s,u,l,c,f,d,h){var p,m,g,y,v,x,b,w,A,_=e.length,k=0,D=0;if(!_)return k;for(p=c;p<_;p+=f)e[p]&&(k=o(k,u(e[p],l)));if(!n.length)return k;for(n.length>i&&(t.warn("Grid headers exceed limit: "+i),n=n.slice(0,i)),k+=a,m=0,y=n.length;m<y;++m)t.dirty(n[m]),n[m].mark.bounds.clear();for(p=c,m=0,y=n.length;m<y;++m,p+=f){for(v=(x=n[m]).mark.bounds,g=p;g>=0&&(b=e[g])==null;g-=d);s?(w=h==null?b.x:Math.round(b.bounds.x1+h*b.bounds.width()),A=k):(w=k,A=h==null?b.y:Math.round(b.bounds.y1+h*b.bounds.height())),v.union(x.bounds.translate(w-(x.x||0),A-(x.y||0))),x.x=w,x.y=A,t.dirty(x),D=o(D,v[l])}return D}function D_(t,n,e,r,i,a){if(n){t.dirty(n);var o=e,s=e;r?o=Math.round(i.x1+a*i.width()):s=Math.round(i.y1+a*i.height()),n.bounds.translate(o-(n.x||0),s-(n.y||0)),n.mark.bounds.clear().union(n.bounds),n.x=o,n.y=s,t.dirty(n)}}function v4(t,n,e,r,i,a,o){const s=function(d,h){const p=d[h]||{};return(m,g)=>p[m]!=null?p[m]:d[m]!=null?d[m]:g}(e,n),u=function(d,h){let p=-1/0;return d.forEach(m=>{m.offset!=null&&(p=Math.max(p,m.offset))}),p>-1/0?p:h}(t,s("offset",0)),l=s("anchor",D0),c=l===Yn?1:l===F0?.5:0,f={align:M0,bounds:s("bounds",B0),columns:s("direction")==="vertical"?1:t.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(n){case tr:f.anchor={x:Math.floor(r.x1)-u,column:Yn,y:c*(o||r.height()+2*r.y1),row:l};break;case nr:f.anchor={x:Math.ceil(r.x2)+u,y:c*(o||r.height()+2*r.y1),row:l};break;case qo:f.anchor={y:Math.floor(i.y1)-u,row:Yn,x:c*(a||i.width()+2*i.x1),column:l};break;case Qi:f.anchor={y:Math.ceil(i.y2)+u,x:c*(a||i.width()+2*i.x1),column:l};break;case"top-left":f.anchor={x:u,y:u};break;case"top-right":f.anchor={x:a-u,y:u,column:Yn};break;case"bottom-left":f.anchor={x:u,y:o-u,row:Yn};break;case"bottom-right":f.anchor={x:a-u,y:o-u,column:Yn,row:Yn}}return f}function b4(t,n){var e,r,i=n.items[0],a=i.datum,o=i.orient,s=i.bounds,u=i.x,l=i.y;return i._bounds?i._bounds.clear().union(s):i._bounds=s.clone(),s.clear(),function(c,f,d){var h=f.padding,p=h-d.x,m=h-d.y;if(f.datum.title){var g=f.items[1].items[0],y=g.anchor,v=f.titlePadding||0,x=h-g.x,b=h-g.y;switch(g.orient){case tr:p+=Math.ceil(g.bounds.width())+v;break;case nr:case Qi:break;default:m+=g.bounds.height()+v}switch((p||m)&&xu(c,d,p,m),g.orient){case tr:b+=Io(f,d,g,y,1,1);break;case nr:x+=Io(f,d,g,Yn,0,0)+v,b+=Io(f,d,g,y,1,1);break;case Qi:x+=Io(f,d,g,y,0,0),b+=Io(f,d,g,Yn,-1,0,1)+v;break;default:x+=Io(f,d,g,y,0,0)}(x||b)&&xu(c,g,x,b),(x=Math.round(g.bounds.x1-h))<0&&(xu(c,d,-x,0),xu(c,g,-x,0))}else(p||m)&&xu(c,d,p,m)}(t,i,i.items[0].items[0]),s=function(c,f){return c.items.forEach(d=>f.union(d.bounds)),f.x1=c.padding,f.y1=c.padding,f}(i,s),e=2*i.padding,r=2*i.padding,s.empty()||(e=Math.ceil(s.width()+e),r=Math.ceil(s.height()+r)),a.type==="symbol"&&function(c){const f=c.reduce((d,h)=>(d[h.column]=Math.max(h.bounds.x2-h.x,d[h.column]||0),d),{});c.forEach(d=>{d.width=f[d.column],d.height=d.bounds.y2-d.y})}(i.items[0].items[0].items[0].items),o!==S0&&(i.x=u=0,i.y=l=0),i.width=e,i.height=r,ai(s.set(u,l,u+e,l+r),i),i.mark.bounds.clear().union(s),i}function Io(t,n,e,r,i,a,o){const s=t.datum.type!=="symbol",u=e.datum.vgrad,l=(!s||!a&&u||o?n:n.items[0]).bounds[i?"y2":"x2"]-t.padding,c=u&&a?l:0,f=u&&a?0:l,d=i<=0?0:a0(e);return Math.round(r===D0?c:r===Yn?f-d:.5*(l-d))}function xu(t,n,e,r){n.x+=e,n.y+=r,n.bounds.translate(e,r),n.mark.bounds.translate(e,r),t.dirty(n)}function F_(t){O.call(this,null,t)}V(F_,O,{transform(t,n){const e=n.dataflow;return t.mark.items.forEach(r=>{t.layout&&m4(e,r,t.layout),function(i,a,o){var s,u,l,c,f,d=a.items,h=Math.max(0,a.width||0),p=Math.max(0,a.height||0),m=new cn().set(0,0,h,p),g=m.clone(),y=m.clone(),v=[];for(c=0,f=d.length;c<f;++c)switch((u=d[c]).role){case C0:(f4(u)?g:y).union(d4(i,u,h,p));break;case E0:s=u;break;case $0:v.push(b4(i,u));break;case s4:case u4:case e_:case r_:case i_:case a_:case o_:case s_:g.union(u.bounds),y.union(u.bounds);break;default:m.union(u.bounds)}if(v.length){const x={};v.forEach(b=>{(l=b.orient||nr)!==S0&&(x[l]||(x[l]=[])).push(b)});for(const b in x){const w=x[b];k_(i,w,v4(w,b,o.legends,g,y,h,p))}v.forEach(b=>{const w=b.bounds;if(w.equals(b._bounds)||(b.bounds=b._bounds,i.dirty(b),b.bounds=w,i.dirty(b)),!o.autosize||o.autosize.type!==u_&&o.autosize.type!==l_&&o.autosize.type!==c_)m.union(w);else switch(b.orient){case tr:case nr:m.add(w.x1,0).add(w.x2,0);break;case qo:case Qi:m.add(0,w.y1).add(0,w.y2)}})}m.union(g).union(y),s&&m.union(function(x,b,w,A,_){var k,D=b.items[0],C=D.frame,F=D.orient,E=D.anchor,$=D.offset,M=D.padding,S=D.items[0].items[0],B=D.items[1]&&D.items[1].items[0],z=F===tr||F===nr?A:w,j=0,W=0,K=0,q=0,at=0;if(C!==ef?F===tr?(j=_.y2,z=_.y1):F===nr?(j=_.y1,z=_.y2):(j=_.x1,z=_.x2):F===tr&&(j=A,z=0),k=E===D0?j:E===Yn?z:(j+z)/2,B&&B.text){switch(F){case qo:case Qi:at=S.bounds.height()+M;break;case tr:q=S.bounds.width()+M;break;case nr:q=-S.bounds.width()-M}Nn.clear().union(B.bounds),Nn.translate(q-(B.x||0),at-(B.y||0)),Uo(B,"x",q)|Uo(B,"y",at)&&(x.dirty(B),B.bounds.clear().union(Nn),B.mark.bounds.clear().union(Nn),x.dirty(B)),Nn.clear().union(B.bounds)}else Nn.clear();switch(Nn.union(S.bounds),F){case qo:W=k,K=_.y1-Nn.height()-$;break;case tr:W=_.x1-Nn.width()-$,K=k;break;case nr:W=_.x2+Nn.width()+$,K=k;break;case Qi:W=k,K=_.y2+$;break;default:W=D.x,K=D.y}return Uo(D,"x",W)|Uo(D,"y",K)&&(Nn.translate(W,K),x.dirty(D),D.bounds.clear().union(Nn),b.bounds.clear().union(Nn),x.dirty(D)),D.bounds}(i,s,h,p,m)),a.clip&&m.set(0,0,a.width||0,a.height||0),function(x,b,w,A){const _=A.autosize||{},k=_.type;if(x._autosize<1||!k)return;let D=x._width,C=x._height,F=Math.max(0,b.width||0),E=Math.max(0,Math.ceil(-w.x1)),$=Math.max(0,b.height||0),M=Math.max(0,Math.ceil(-w.y1));const S=Math.max(0,Math.ceil(w.x2-F)),B=Math.max(0,Math.ceil(w.y2-$));if(_.contains===l4){const z=x.padding();D-=z.left+z.right,C-=z.top+z.bottom}k===S0?(E=0,M=0,F=D,$=C):k===u_?(F=Math.max(0,D-E-S),$=Math.max(0,C-M-B)):k===l_?(F=Math.max(0,D-E-S),C=$+M+B):k===c_?(D=F+E+S,$=Math.max(0,C-M-B)):k==="pad"&&(D=F+E+S,C=$+M+B),x._resizeView(D,C,F,$,[E,M],_.resize)}(i,a,m,o)}(e,r,t)}),function(r){return r&&r.mark.role!=="legend-entry"}(t.mark.group)?n.reflow():n}});const x4=Object.freeze(Object.defineProperty({__proto__:null,bound:f_,identifier:z0,mark:h_,overlap:p_,render:x_,viewlayout:F_},Symbol.toStringTag,{value:"Module"}));function C_(t){O.call(this,null,t)}function E_(t){O.call(this,null,t)}function w4(){return St({})}function $_(t){O.call(this,null,t)}function S_(t){O.call(this,[],t)}V(C_,O,{transform(t,n){if(this.value&&!t.modified())return n.StopPropagation;var e=n.dataflow.locale(),r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=this.value,a=t.scale,o=Mm(a,t.count==null?t.values?t.values.length:10:t.count,t.minstep),s=t.format||ww(e,a,o,t.formatSpecifier,t.formatType,!!t.values),u=t.values?xw(a,t.values,o):Bm(a,o);return i&&(r.rem=i),i=u.map((l,c)=>St({index:c/(u.length-1||1),value:l,label:s(l)})),t.extra&&i.length&&i.push(St({index:-1,extra:{value:i[0].value},label:""})),r.source=i,r.add=i,this.value=i,r}}),V(E_,O,{transform(t,n){var e=n.dataflow,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=t.item||w4,a=t.key||st,o=this.value;return T(r.encode)&&(r.encode=null),o&&(t.modified("key")||n.modified(a))&&P("DataJoin does not support modified key function or fields."),o||(n=n.addAll(),this.value=o=function(s){const u=Do().test(l=>l.exit);return u.lookup=l=>u.get(s(l)),u}(a)),n.visit(n.ADD,s=>{const u=a(s);let l=o.get(u);l?l.exit?(o.empty--,r.add.push(l)):r.mod.push(l):(l=i(s),o.set(u,l),r.add.push(l)),l.datum=s,l.exit=!1}),n.visit(n.MOD,s=>{const u=a(s),l=o.get(u);l&&(l.datum=s,r.mod.push(l))}),n.visit(n.REM,s=>{const u=a(s),l=o.get(u);s!==l.datum||l.exit||(r.rem.push(l),l.exit=!0,++o.empty)}),n.changed(n.ADD_MOD)&&r.modifies("datum"),(n.clean()||t.clean&&o.empty>e.cleanThreshold)&&e.runAfter(o.clean),r}}),V($_,O,{transform(t,n){var e=n.fork(n.ADD_REM),r=t.mod||!1,i=t.encoders,a=n.encode;if(T(a)){if(!e.changed()&&!a.every(f=>i[f]))return n.StopPropagation;a=a[0],e.encode=null}var o=a==="enter",s=i.update||Oi,u=i.enter||Oi,l=i.exit||Oi,c=(a&&!o?i[a]:s)||Oi;if(n.changed(n.ADD)&&(n.visit(n.ADD,f=>{u(f,t),s(f,t)}),e.modifies(u.output),e.modifies(s.output),c!==Oi&&c!==s&&(n.visit(n.ADD,f=>{c(f,t)}),e.modifies(c.output))),n.changed(n.REM)&&l!==Oi&&(n.visit(n.REM,f=>{l(f,t)}),e.modifies(l.output)),o||c!==Oi){const f=n.MOD|(t.modified()?n.REFLOW:0);o?(n.visit(f,d=>{const h=u(d,t)||r;(c(d,t)||h)&&e.mod.push(d)}),e.mod.length&&e.modifies(u.output)):n.visit(f,d=>{(c(d,t)||r)&&e.mod.push(d)}),e.mod.length&&e.modifies(c.output)}return e.changed()?e:n.StopPropagation}}),V(S_,O,{transform(t,n){if(this.value!=null&&!t.modified())return n.StopPropagation;var e,r,i,a,o,s=n.dataflow.locale(),u=n.fork(n.NO_SOURCE|n.NO_FIELDS),l=this.value,c=t.type||wc,f=t.scale,d=+t.limit,h=Mm(f,t.count==null?5:t.count,t.minstep),p=!!t.values||c===wc,m=t.format||Dw(s,f,h,c,t.formatSpecifier,t.formatType,p),g=t.values||kw(f,h);return l&&(u.rem=l),c===wc?(d&&g.length>d?(n.dataflow.warn("Symbol legend count exceeds limit, filtering items."),l=g.slice(0,d-1),o=!0):l=g,bt(i=t.size)?(t.values||f(l[0])!==0||(l=l.slice(1)),a=l.reduce((y,v)=>Math.max(y,i(v,t)),0)):i=In(a=i||8),l=l.map((y,v)=>St({index:v,label:m(y,v,l),value:y,offset:a,size:i(y,t)})),o&&(o=g[l.length],l.push(St({index:l.length,label:`\u2026${g.length-l.length} entries`,value:o,offset:a,size:i(o,t)})))):c==="gradient"?(e=f.domain(),r=gw(f,e[0],Bt(e)),g.length<3&&!t.values&&e[0]!==Bt(e)&&(g=[e[0],Bt(e)]),l=g.map((y,v)=>St({index:v,label:m(y,v,g),value:y,perc:r(y)}))):(i=g.length-1,r=function(y){const v=y.domain(),x=v.length-1;let b=+v[0],w=+Bt(v),A=w-b;if(y.type===vc){const _=x?A/x:.1;b-=_,w+=_,A=w-b}return _=>(_-b)/A}(f),l=g.map((y,v)=>St({index:v,label:m(y,v,g),value:y,perc:v?r(y):0,perc2:v===i?1:r(g[v+1])}))),u.source=l,u.add=l,this.value=l,u}});const A4=t=>t.source.x,_4=t=>t.source.y,k4=t=>t.target.x,D4=t=>t.target.y;function O0(t){O.call(this,{},t)}O0.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"}]},V(O0,O,{transform(t,n){var e=t.sourceX||A4,r=t.sourceY||_4,i=t.targetX||k4,a=t.targetY||D4,o=t.as||"path",s=t.orient||"vertical",u=t.shape||"line",l=O_.get(u+"-"+s)||O_.get(u);return l||P("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),n.visit(n.SOURCE,c=>{c[o]=l(e(c),r(c),i(c),a(c))}),n.reflow(t.modified()).modifies(o)}});const M_=(t,n,e,r)=>"M"+t+","+n+"L"+e+","+r,B_=(t,n,e,r)=>{var i=e-t,a=r-n,o=Math.hypot(i,a)/2;return"M"+t+","+n+"A"+o+","+o+" "+180*Math.atan2(a,i)/Math.PI+" 0 1 "+e+","+r},z_=(t,n,e,r)=>{const i=e-t,a=r-n,o=.2*(i+a),s=.2*(a-i);return"M"+t+","+n+"C"+(t+o)+","+(n+s)+" "+(e+s)+","+(r-o)+" "+e+","+r},O_=Do({line:M_,"line-radial":(t,n,e,r)=>M_(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e)),arc:B_,"arc-radial":(t,n,e,r)=>B_(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e)),curve:z_,"curve-radial":(t,n,e,r)=>z_(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e)),"orthogonal-horizontal":(t,n,e,r)=>"M"+t+","+n+"V"+r+"H"+e,"orthogonal-vertical":(t,n,e,r)=>"M"+t+","+n+"H"+e+"V"+r,"orthogonal-radial":(t,n,e,r)=>{const i=Math.cos(t),a=Math.sin(t),o=Math.cos(e),s=Math.sin(e);return"M"+n*i+","+n*a+"A"+n+","+n+" 0 0,"+((Math.abs(e-t)>Math.PI?e<=t:e>t)?1:0)+" "+n*o+","+n*s+"L"+r*o+","+r*s},"diagonal-horizontal":(t,n,e,r)=>{const i=(t+e)/2;return"M"+t+","+n+"C"+i+","+n+" "+i+","+r+" "+e+","+r},"diagonal-vertical":(t,n,e,r)=>{const i=(n+r)/2;return"M"+t+","+n+"C"+t+","+i+" "+e+","+i+" "+e+","+r},"diagonal-radial":(t,n,e,r)=>{const i=Math.cos(t),a=Math.sin(t),o=Math.cos(e),s=Math.sin(e),u=(n+r)/2;return"M"+n*i+","+n*a+"C"+u*i+","+u*a+" "+u*o+","+u*s+" "+r*o+","+r*s}});function N0(t){O.call(this,null,t)}N0.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"]}]},V(N0,O,{transform(t,n){var e,r,i,a=t.as||["startAngle","endAngle"],o=a[0],s=a[1],u=t.field||Is,l=t.startAngle||0,c=t.endAngle!=null?t.endAngle:2*Math.PI,f=n.source,d=f.map(u),h=d.length,p=l,m=(c-l)/Yx(d),g=xe(h);for(t.sort&&g.sort((y,v)=>d[y]-d[v]),e=0;e<h;++e)i=d[g[e]],(r=f[g[e]])[o]=p,r[s]=p+=i*m;return this.value=d,n.reflow(t.modified()).modifies(a)}});function N_(t){return Cm(t)&&t!==Cr}const F4=Dr(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function R_(t){O.call(this,null,t),this.modified(!0)}function T_(t,n,e){return fw(t)&&Math.abs(n.reduce((r,i)=>r+(i<0?-1:i>0?1:0),0))!==n.length&&e.warn("Log scale domain includes zero: "+G(n)),n}function P_(t,n,e){return bt(t)&&(n||e)?pw(t,R0(n||[0,1],e)):t}function R0(t,n){return n?t.slice().reverse():t}function j_(t){O.call(this,null,t)}V(R_,O,{transform(t,n){var e=n.dataflow,r=this.value,i=function(a){var o,s=a.type,u="";return s===Cr?Cr+"-"+Mo:(function(l){const c=l.type;return Cm(c)&&c!==za&&c!==Oa&&(l.scheme||l.range&&l.range.length&&l.range.every(Q))}(a)&&(u=(o=a.rawDomain?a.rawDomain.length:a.domain?a.domain.length+ +(a.domainMid!=null):0)===2?Cr+"-":o===3?Bo+"-":""),(u+s||Mo).toLowerCase())}(t);for(i in r&&i===r.type||(this.value=r=Dt(i)()),t)if(!F4[i]){if(i==="padding"&&N_(r.type))continue;bt(r[i])?r[i](t[i]):e.warn("Unsupported scale property: "+i)}return function(a,o,s){var u=a.type,l=o.round||!1,c=o.range;if(o.rangeStep!=null)c=function(f,d,h){f!==aw&&f!==_m&&P("Only band and point scales support rangeStep.");var p=(d.paddingOuter!=null?d.paddingOuter:d.padding)||0,m=f===_m?1:(d.paddingInner!=null?d.paddingInner:d.padding)||0;return[0,d.rangeStep*wm(h,m,p)]}(u,o,s);else if(o.scheme&&(c=function(f,d,h){var p,m=d.schemeExtent;return T(d.scheme)?p=xc(d.scheme,d.interpolate,d.interpolateGamma):(p=Sm(d.scheme.toLowerCase()))||P(`Unrecognized scheme name: ${d.scheme}`),h=f===vc?h+1:f===km?h-1:f===zo||f===yc?+d.schemeCount||5:h,dw(f)?P_(p,m,d.reverse):bt(p)?mw(P_(p,m),h):f===Am?p:p.slice(0,h)}(u,o,s),bt(c))){if(a.interpolator)return a.interpolator(c);P(`Scale type ${u} does not support interpolating color schemes.`)}if(c&&dw(u))return a.interpolator(xc(R0(c,o.reverse),o.interpolate,o.interpolateGamma));c&&o.interpolate&&a.interpolate?a.interpolate($m(o.interpolate,o.interpolateGamma)):bt(a.round)?a.round(l):bt(a.rangeRound)&&a.interpolate(l?Gl:Ws),c&&a.range(R0(c,o.reverse))}(r,t,function(a,o,s){let u=o.bins;if(u&&!T(u)){const l=a.domain(),c=l[0],f=Bt(l),d=u.step;let h=u.start==null?c:u.start,p=u.stop==null?f:u.stop;d||P("Scale bins parameter missing step property."),h<c&&(h=d*Math.ceil(c/d)),p>f&&(p=d*Math.floor(f/d)),u=xe(h,p+d/2,d)}return u?a.bins=u:a.bins&&delete a.bins,a.type===km&&(u?o.domain||o.domainRaw||(a.domain(u),s=u.length):a.bins=a.domain()),s}(r,t,function(a,o,s){const u=function(p,m,g){return m?(p.domain(T_(p.type,m,g)),m.length):-1}(a,o.domainRaw,s);if(u>-1)return u;var l,c,f=o.domain,d=a.type,h=o.zero||o.zero===void 0&&function(p){const m=p.type;return!p.bins&&(m===Mo||m===tu||m===nu)}(a);if(!f)return 0;if((h||o.domainMin!=null||o.domainMax!=null||o.domainMid!=null)&&(l=(f=f.slice()).length-1||1,h&&(f[0]>0&&(f[0]=0),f[l]<0&&(f[l]=0)),o.domainMin!=null&&(f[0]=o.domainMin),o.domainMax!=null&&(f[l]=o.domainMax),o.domainMid!=null)){const p=(c=o.domainMid)>f[l]?l+1:c<f[0]?0:l;p!==l&&s.warn("Scale domainMid exceeds domain min or max.",c),f.splice(p,0,c)}return N_(d)&&o.padding&&f[0]!==Bt(f)&&(f=function(p,m,g,y,v,x){var b=Math.abs(Bt(g)-g[0]),w=b/(b-2*y),A=p===ri?np(m,null,w):p===nu?Wl(m,null,w,.5):p===tu?Wl(m,null,w,v||1):p===gc?ep(m,null,w,x||1):rp(m,null,w);return m=m.slice(),m[0]=A[0],m[m.length-1]=A[1],m}(d,f,o.range,o.padding,o.exponent,o.constant)),a.domain(T_(d,f,s)),d===Am&&a.unknown(o.domainImplicit?A8:void 0),o.nice&&a.nice&&a.nice(o.nice!==!0&&Mm(a,o.nice)||null),f.length}(r,t,e))),n.fork(n.NO_SOURCE|n.NO_FIELDS)}}),V(j_,O,{transform(t,n){const e=t.modified("sort")||n.changed(n.ADD)||n.modified(t.sort.fields)||n.modified("datum");return e&&n.source.sort(Sa(t.sort)),this.modified(e),n}});const L_="zero",q_="center",U_="normalize",I_=["y0","y1"];function T0(t){O.call(this,null,t)}function C4(t,n,e,r,i){for(var a,o=(n-t.sum)/2,s=t.length,u=0;u<s;++u)(a=t[u])[r]=o,a[i]=o+=Math.abs(e(a))}function E4(t,n,e,r,i){for(var a,o=1/t.sum,s=0,u=t.length,l=0,c=0;l<u;++l)(a=t[l])[r]=s,a[i]=s=o*(c+=Math.abs(e(a)))}function $4(t,n,e,r,i){for(var a,o,s=0,u=0,l=t.length,c=0;c<l;++c)(a=+e(o=t[c]))<0?(o[r]=u,o[i]=u+=a):(o[r]=s,o[i]=s+=a)}T0.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:L_,values:[L_,q_,U_]},{name:"as",type:"string",array:!0,length:2,default:I_}]},V(T0,O,{transform(t,n){var e,r,i,a,o=t.as||I_,s=o[0],u=o[1],l=Sa(t.sort),c=t.field||Is,f=t.offset===q_?C4:t.offset===U_?E4:$4;for(e=function(d,h,p,m){var g,y,v,x,b,w,A,_,k,D=[],C=F=>F(b);if(h==null)D.push(d.slice());else for(g={},y=0,v=d.length;y<v;++y)b=d[y],(A=g[w=h.map(C)])||(g[w]=A=[],D.push(A)),A.push(b);for(w=0,k=0,x=D.length;w<x;++w){for(y=0,_=0,v=(A=D[w]).length;y<v;++y)_+=Math.abs(m(A[y]));A.sum=_,_>k&&(k=_),p&&A.sort(p)}return D.max=k,D}(n.source,t.groupby,l,c),r=0,i=e.length,a=e.max;r<i;++r)f(e[r],a,c,s,u);return n.reflow(t.modified()).modifies(o)}});const S4=Object.freeze(Object.defineProperty({__proto__:null,axisticks:C_,datajoin:E_,encode:$_,legendentries:S_,linkpath:O0,pie:N0,scale:R_,sortitems:j_,stack:T0},Symbol.toStringTag,{value:"Module"}));var dt=1e-6,P0=1e-12,yt=Math.PI,rn=yt/2,uf=yt/4,Xn=2*yt,on=180/yt,gt=yt/180,At=Math.abs,Wo=Math.atan,je=Math.atan2,ct=Math.cos,lf=Math.ceil,W_=Math.exp,j0=Math.hypot,cf=Math.log,L0=Math.pow,ut=Math.sin,Le=Math.sign||function(t){return t>0?1:t<0?-1:0},Jn=Math.sqrt,q0=Math.tan;function H_(t){return t>1?0:t<-1?yt:Math.acos(t)}function le(t){return t>1?rn:t<-1?-rn:Math.asin(t)}function Dn(){}function ff(t,n){t&&V_.hasOwnProperty(t.type)&&V_[t.type](t,n)}var G_={Feature:function(t,n){ff(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)ff(e[r].geometry,n)}},V_={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){U0(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)U0(e[r],n,0)},Polygon:function(t,n){Y_(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)Y_(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)ff(e[r],n)}};function U0(t,n,e){var r,i=-1,a=t.length-e;for(n.lineStart();++i<a;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function Y_(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)U0(t[e],n,1);n.polygonEnd()}function si(t,n){t&&G_.hasOwnProperty(t.type)?G_[t.type](t,n):ff(t,n)}var X_,J_,I0,W0,H0,Kt,ce,an,_e,Ua,K_,Q_,Ho,wu,na,ui,df=new Gn,hf=new Gn,Mr={point:Dn,lineStart:Dn,lineEnd:Dn,polygonStart:function(){df=new Gn,Mr.lineStart=M4,Mr.lineEnd=B4},polygonEnd:function(){var t=+df;hf.add(t<0?Xn+t:t),this.lineStart=this.lineEnd=this.point=Dn},sphere:function(){hf.add(Xn)}};function M4(){Mr.point=z4}function B4(){Z_(X_,J_)}function z4(t,n){Mr.point=Z_,X_=t,J_=n,I0=t*=gt,W0=ct(n=(n*=gt)/2+uf),H0=ut(n)}function Z_(t,n){var e=(t*=gt)-I0,r=e>=0?1:-1,i=r*e,a=ct(n=(n*=gt)/2+uf),o=ut(n),s=H0*o,u=W0*a+s*ct(i),l=s*r*ut(i);df.add(je(l,u)),I0=t,W0=a,H0=o}function pf(t){return[je(t[1],t[0]),le(t[2])]}function Ia(t){var n=t[0],e=t[1],r=ct(e);return[r*ct(n),r*ut(n),ut(e)]}function mf(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Go(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function G0(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function gf(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function yf(t){var n=Jn(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var Au,vf,bf,xf,wf,Af,_f,kf,V0,Y0,X0,tk,nk,Kn,Qn,Zn,li={point:J0,lineStart:rk,lineEnd:ik,polygonStart:function(){li.point=ak,li.lineStart=O4,li.lineEnd=N4,wu=new Gn,Mr.polygonStart()},polygonEnd:function(){Mr.polygonEnd(),li.point=J0,li.lineStart=rk,li.lineEnd=ik,df<0?(Kt=-(an=180),ce=-(_e=90)):wu>dt?_e=90:wu<-1e-6&&(ce=-90),ui[0]=Kt,ui[1]=an},sphere:function(){Kt=-(an=180),ce=-(_e=90)}};function J0(t,n){na.push(ui=[Kt=t,an=t]),n<ce&&(ce=n),n>_e&&(_e=n)}function ek(t,n){var e=Ia([t*gt,n*gt]);if(Ho){var r=Go(Ho,e),i=Go([r[1],-r[0],0],r);yf(i),i=pf(i);var a,o=t-Ua,s=o>0?1:-1,u=i[0]*on*s,l=At(o)>180;l^(s*Ua<u&&u<s*t)?(a=i[1]*on)>_e&&(_e=a):l^(s*Ua<(u=(u+360)%360-180)&&u<s*t)?(a=-i[1]*on)<ce&&(ce=a):(n<ce&&(ce=n),n>_e&&(_e=n)),l?t<Ua?ke(Kt,t)>ke(Kt,an)&&(an=t):ke(t,an)>ke(Kt,an)&&(Kt=t):an>=Kt?(t<Kt&&(Kt=t),t>an&&(an=t)):t>Ua?ke(Kt,t)>ke(Kt,an)&&(an=t):ke(t,an)>ke(Kt,an)&&(Kt=t)}else na.push(ui=[Kt=t,an=t]);n<ce&&(ce=n),n>_e&&(_e=n),Ho=e,Ua=t}function rk(){li.point=ek}function ik(){ui[0]=Kt,ui[1]=an,li.point=J0,Ho=null}function ak(t,n){if(Ho){var e=t-Ua;wu.add(At(e)>180?e+(e>0?360:-360):e)}else K_=t,Q_=n;Mr.point(t,n),ek(t,n)}function O4(){Mr.lineStart()}function N4(){ak(K_,Q_),Mr.lineEnd(),At(wu)>dt&&(Kt=-(an=180)),ui[0]=Kt,ui[1]=an,Ho=null}function ke(t,n){return(n-=t)<0?n+360:n}function R4(t,n){return t[0]-n[0]}function ok(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var er={sphere:Dn,point:K0,lineStart:sk,lineEnd:uk,polygonStart:function(){er.lineStart=j4,er.lineEnd=L4},polygonEnd:function(){er.lineStart=sk,er.lineEnd=uk}};function K0(t,n){t*=gt;var e=ct(n*=gt);_u(e*ct(t),e*ut(t),ut(n))}function _u(t,n,e){++Au,bf+=(t-bf)/Au,xf+=(n-xf)/Au,wf+=(e-wf)/Au}function sk(){er.point=T4}function T4(t,n){t*=gt;var e=ct(n*=gt);Kn=e*ct(t),Qn=e*ut(t),Zn=ut(n),er.point=P4,_u(Kn,Qn,Zn)}function P4(t,n){t*=gt;var e=ct(n*=gt),r=e*ct(t),i=e*ut(t),a=ut(n),o=je(Jn((o=Qn*a-Zn*i)*o+(o=Zn*r-Kn*a)*o+(o=Kn*i-Qn*r)*o),Kn*r+Qn*i+Zn*a);vf+=o,Af+=o*(Kn+(Kn=r)),_f+=o*(Qn+(Qn=i)),kf+=o*(Zn+(Zn=a)),_u(Kn,Qn,Zn)}function uk(){er.point=K0}function j4(){er.point=q4}function L4(){lk(tk,nk),er.point=K0}function q4(t,n){tk=t,nk=n,t*=gt,n*=gt,er.point=lk;var e=ct(n);Kn=e*ct(t),Qn=e*ut(t),Zn=ut(n),_u(Kn,Qn,Zn)}function lk(t,n){t*=gt;var e=ct(n*=gt),r=e*ct(t),i=e*ut(t),a=ut(n),o=Qn*a-Zn*i,s=Zn*r-Kn*a,u=Kn*i-Qn*r,l=j0(o,s,u),c=le(l),f=l&&-c/l;V0.add(f*o),Y0.add(f*s),X0.add(f*u),vf+=c,Af+=c*(Kn+(Kn=r)),_f+=c*(Qn+(Qn=i)),kf+=c*(Zn+(Zn=a)),_u(Kn,Qn,Zn)}function Q0(t,n){function e(r,i){return r=t(r,i),n(r[0],r[1])}return t.invert&&n.invert&&(e.invert=function(r,i){return(r=n.invert(r,i))&&t.invert(r[0],r[1])}),e}function Z0(t,n){return At(t)>yt&&(t-=Math.round(t/Xn)*Xn),[t,n]}function ck(t,n,e){return(t%=Xn)?n||e?Q0(dk(t),hk(n,e)):dk(t):n||e?hk(n,e):Z0}function fk(t){return function(n,e){return At(n+=t)>yt&&(n-=Math.round(n/Xn)*Xn),[n,e]}}function dk(t){var n=fk(t);return n.invert=fk(-t),n}function hk(t,n){var e=ct(t),r=ut(t),i=ct(n),a=ut(n);function o(s,u){var l=ct(u),c=ct(s)*l,f=ut(s)*l,d=ut(u),h=d*e+c*r;return[je(f*i-h*a,c*e-d*r),le(h*i+f*a)]}return o.invert=function(s,u){var l=ct(u),c=ct(s)*l,f=ut(s)*l,d=ut(u),h=d*i-f*a;return[je(f*i+d*a,c*e+h*r),le(h*e-c*r)]},o}function pk(t,n){(n=Ia(n))[0]-=t,yf(n);var e=H_(-n[1]);return((-n[2]<0?-e:e)+Xn-dt)%Xn}function mk(){var t,n=[];return{point:function(e,r,i){t.push([e,r,i])},lineStart:function(){n.push(t=[])},lineEnd:Dn,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function Df(t,n){return At(t[0]-n[0])<dt&&At(t[1]-n[1])<dt}function Ff(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function gk(t,n,e,r,i){var a,o,s=[],u=[];if(t.forEach(function(p){if(!((m=p.length-1)<=0)){var m,g,y=p[0],v=p[m];if(Df(y,v)){if(!y[2]&&!v[2]){for(i.lineStart(),a=0;a<m;++a)i.point((y=p[a])[0],y[1]);return void i.lineEnd()}v[0]+=2e-6}s.push(g=new Ff(y,p,null,!0)),u.push(g.o=new Ff(y,null,g,!1)),s.push(g=new Ff(v,p,null,!1)),u.push(g.o=new Ff(v,null,g,!0))}}),s.length){for(u.sort(n),yk(s),yk(u),a=0,o=u.length;a<o;++a)u[a].e=e=!e;for(var l,c,f=s[0];;){for(var d=f,h=!0;d.v;)if((d=d.n)===f)return;l=d.z,i.lineStart();do{if(d.v=d.o.v=!0,d.e){if(h)for(a=0,o=l.length;a<o;++a)i.point((c=l[a])[0],c[1]);else r(d.x,d.n.x,1,i);d=d.n}else{if(h)for(l=d.p.z,a=l.length-1;a>=0;--a)i.point((c=l[a])[0],c[1]);else r(d.x,d.p.x,-1,i);d=d.p}l=(d=d.o).z,h=!h}while(!d.v);i.lineEnd()}}}function yk(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function tg(t){return At(t[0])<=yt?t[0]:Le(t[0])*((At(t[0])+yt)%Xn-yt)}function vk(t,n,e,r){return function(i){var a,o,s,u=n(i),l=mk(),c=n(l),f=!1,d={point:h,lineStart:m,lineEnd:g,polygonStart:function(){d.point=y,d.lineStart=v,d.lineEnd=x,o=[],a=[]},polygonEnd:function(){d.point=h,d.lineStart=m,d.lineEnd=g,o=Vx(o);var b=function(w,A){var _=tg(A),k=A[1],D=ut(k),C=[ut(_),-ct(_),0],F=0,E=0,$=new Gn;D===1?k=rn+dt:D===-1&&(k=-rn-dt);for(var M=0,S=w.length;M<S;++M)if(z=(B=w[M]).length)for(var B,z,j=B[z-1],W=tg(j),K=j[1]/2+uf,q=ut(K),at=ct(K),ot=0;ot<z;++ot,W=mt,q=X,at=Mt,j=it){var it=B[ot],mt=tg(it),pt=it[1]/2+uf,X=ut(pt),Mt=ct(pt),Tt=mt-W,kt=Tt>=0?1:-1,Et=kt*Tt,tn=Et>yt,nn=q*X;if($.add(je(nn*kt*ut(Et),at*Mt+nn*ct(Et))),F+=tn?Tt+kt*Xn:Tt,tn^W>=_^mt>=_){var It=Go(Ia(j),Ia(it));yf(It);var be=Go(C,It);yf(be);var zn=(tn^Tt>=0?-1:1)*le(be[2]);(k>zn||k===zn&&(It[0]||It[1]))&&(E+=tn^Tt>=0?1:-1)}}return(F<-1e-6||F<dt&&$<-1e-12)^1&E}(a,r);o.length?(f||(i.polygonStart(),f=!0),gk(o,I4,b,e,i)):b&&(f||(i.polygonStart(),f=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),f&&(i.polygonEnd(),f=!1),o=a=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(b,w){t(b,w)&&i.point(b,w)}function p(b,w){u.point(b,w)}function m(){d.point=p,u.lineStart()}function g(){d.point=h,u.lineEnd()}function y(b,w){s.push([b,w]),c.point(b,w)}function v(){c.lineStart(),s=[]}function x(){y(s[0][0],s[0][1]),c.lineEnd();var b,w,A,_,k=c.clean(),D=l.result(),C=D.length;if(s.pop(),a.push(s),s=null,C)if(1&k){if((w=(A=D[0]).length-1)>0){for(f||(i.polygonStart(),f=!0),i.lineStart(),b=0;b<w;++b)i.point((_=A[b])[0],_[1]);i.lineEnd()}}else C>1&&2&k&&D.push(D.pop().concat(D.shift())),o.push(D.filter(U4))}return d}}function U4(t){return t.length>1}function I4(t,n){return((t=t.x)[0]<0?t[1]-rn-dt:rn-t[1])-((n=n.x)[0]<0?n[1]-rn-dt:rn-n[1])}Z0.invert=Z0;const bk=vk(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(a,o){var s=a>0?yt:-yt,u=At(a-e);At(u-yt)<dt?(t.point(e,r=(r+o)/2>0?rn:-rn),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(s,r),t.point(a,r),n=0):i!==s&&u>=yt&&(At(e-i)<dt&&(e-=i*dt),At(a-s)<dt&&(a-=s*dt),r=function(l,c,f,d){var h,p,m=ut(l-f);return At(m)>dt?Wo((ut(c)*(p=ct(d))*ut(f)-ut(d)*(h=ct(c))*ut(l))/(h*p*m)):(c+d)/2}(e,r,a,o),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(s,r),n=0),t.point(e=a,r=o),i=s},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(t==null)i=e*rn,r.point(-yt,i),r.point(0,i),r.point(yt,i),r.point(yt,0),r.point(yt,-i),r.point(0,-i),r.point(-yt,-i),r.point(-yt,0),r.point(-yt,i);else if(At(t[0]-n[0])>dt){var a=t[0]<n[0]?yt:-yt;i=e*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(n[0],n[1])},[-yt,-rn]);function W4(t){var n=ct(t),e=2*gt,r=n>0,i=At(n)>dt;function a(u,l){return ct(u)*ct(l)>n}function o(u,l,c){var f=[1,0,0],d=Go(Ia(u),Ia(l)),h=mf(d,d),p=d[0],m=h-p*p;if(!m)return!c&&u;var g=n*h/m,y=-n*p/m,v=Go(f,d),x=gf(f,g);G0(x,gf(d,y));var b=v,w=mf(x,b),A=mf(b,b),_=w*w-A*(mf(x,x)-1);if(!(_<0)){var k=Jn(_),D=gf(b,(-w-k)/A);if(G0(D,x),D=pf(D),!c)return D;var C,F=u[0],E=l[0],$=u[1],M=l[1];E<F&&(C=F,F=E,E=C);var S=E-F,B=At(S-yt)<dt;if(!B&&M<$&&(C=$,$=M,M=C),B||S<dt?B?$+M>0^D[1]<(At(D[0]-F)<dt?$:M):$<=D[1]&&D[1]<=M:S>yt^(F<=D[0]&&D[0]<=E)){var z=gf(b,(-w+k)/A);return G0(z,x),[D,pf(z)]}}}function s(u,l){var c=r?t:yt-t,f=0;return u<-c?f|=1:u>c&&(f|=2),l<-c?f|=4:l>c&&(f|=8),f}return vk(a,function(u){var l,c,f,d,h;return{lineStart:function(){d=f=!1,h=1},point:function(p,m){var g,y=[p,m],v=a(p,m),x=r?v?0:s(p,m):v?s(p+(p<0?yt:-yt),m):0;if(!l&&(d=f=v)&&u.lineStart(),v!==f&&(!(g=o(l,y))||Df(l,g)||Df(y,g))&&(y[2]=1),v!==f)h=0,v?(u.lineStart(),g=o(y,l),u.point(g[0],g[1])):(g=o(l,y),u.point(g[0],g[1],2),u.lineEnd()),l=g;else if(i&&l&&r^v){var b;x&c||!(b=o(y,l,!0))||(h=0,r?(u.lineStart(),u.point(b[0][0],b[0][1]),u.point(b[1][0],b[1][1]),u.lineEnd()):(u.point(b[1][0],b[1][1]),u.lineEnd(),u.lineStart(),u.point(b[0][0],b[0][1],3)))}!v||l&&Df(l,y)||u.point(y[0],y[1]),l=y,f=v,c=x},lineEnd:function(){f&&u.lineEnd(),l=null},clean:function(){return h|(d&&f)<<1}}},function(u,l,c,f){(function(d,h,p,m,g,y){if(p){var v=ct(h),x=ut(h),b=m*p;g==null?(g=h+m*Xn,y=h-b/2):(g=pk(v,g),y=pk(v,y),(m>0?g<y:g>y)&&(g+=m*Xn));for(var w,A=g;m>0?A>y:A<y;A-=b)w=pf([v,-x*ct(A),-x*ut(A)]),d.point(w[0],w[1])}})(f,t,e,c,u,l)},r?[0,-t]:[-yt,t-yt])}var ku=1e9,Cf=-ku;function xk(t,n,e,r){function i(l,c){return t<=l&&l<=e&&n<=c&&c<=r}function a(l,c,f,d){var h=0,p=0;if(l==null||(h=o(l,f))!==(p=o(c,f))||u(l,c)<0^f>0)do d.point(h===0||h===3?t:e,h>1?r:n);while((h=(h+f+4)%4)!==p);else d.point(c[0],c[1])}function o(l,c){return At(l[0]-t)<dt?c>0?0:3:At(l[0]-e)<dt?c>0?2:1:At(l[1]-n)<dt?c>0?1:0:c>0?3:2}function s(l,c){return u(l.x,c.x)}function u(l,c){var f=o(l,1),d=o(c,1);return f!==d?f-d:f===0?c[1]-l[1]:f===1?l[0]-c[0]:f===2?l[1]-c[1]:c[0]-l[0]}return function(l){var c,f,d,h,p,m,g,y,v,x,b,w=l,A=mk(),_={point:k,lineStart:function(){_.point=D,f&&f.push(d=[]),x=!0,v=!1,g=y=NaN},lineEnd:function(){c&&(D(h,p),m&&v&&A.rejoin(),c.push(A.result())),_.point=k,v&&w.lineEnd()},polygonStart:function(){w=A,c=[],f=[],b=!0},polygonEnd:function(){var C=function(){for(var $=0,M=0,S=f.length;M<S;++M)for(var B,z,j=f[M],W=1,K=j.length,q=j[0],at=q[0],ot=q[1];W<K;++W)B=at,z=ot,at=(q=j[W])[0],ot=q[1],z<=r?ot>r&&(at-B)*(r-z)>(ot-z)*(t-B)&&++$:ot<=r&&(at-B)*(r-z)<(ot-z)*(t-B)&&--$;return $}(),F=b&&C,E=(c=Vx(c)).length;(F||E)&&(l.polygonStart(),F&&(l.lineStart(),a(null,null,1,l),l.lineEnd()),E&&gk(c,s,C,a,l),l.polygonEnd()),w=l,c=f=d=null}};function k(C,F){i(C,F)&&w.point(C,F)}function D(C,F){var E=i(C,F);if(f&&d.push([C,F]),x)h=C,p=F,m=E,x=!1,E&&(w.lineStart(),w.point(C,F));else if(E&&v)w.point(C,F);else{var $=[g=Math.max(Cf,Math.min(ku,g)),y=Math.max(Cf,Math.min(ku,y))],M=[C=Math.max(Cf,Math.min(ku,C)),F=Math.max(Cf,Math.min(ku,F))];(function(S,B,z,j,W,K){var q,at=S[0],ot=S[1],it=0,mt=1,pt=B[0]-at,X=B[1]-ot;if(q=z-at,pt||!(q>0)){if(q/=pt,pt<0){if(q<it)return;q<mt&&(mt=q)}else if(pt>0){if(q>mt)return;q>it&&(it=q)}if(q=W-at,pt||!(q<0)){if(q/=pt,pt<0){if(q>mt)return;q>it&&(it=q)}else if(pt>0){if(q<it)return;q<mt&&(mt=q)}if(q=j-ot,X||!(q>0)){if(q/=X,X<0){if(q<it)return;q<mt&&(mt=q)}else if(X>0){if(q>mt)return;q>it&&(it=q)}if(q=K-ot,X||!(q<0)){if(q/=X,X<0){if(q>mt)return;q>it&&(it=q)}else if(X>0){if(q<it)return;q<mt&&(mt=q)}return it>0&&(S[0]=at+it*pt,S[1]=ot+it*X),mt<1&&(B[0]=at+mt*pt,B[1]=ot+mt*X),!0}}}}})($,M,t,n,e,r)?(v||(w.lineStart(),w.point($[0],$[1])),w.point(M[0],M[1]),E||w.lineEnd(),b=!1):E&&(w.lineStart(),w.point(C,F),b=!1)}g=C,y=F,v=E}return _}}function wk(t,n,e){var r=xe(t,n-dt,e).concat(n);return function(i){return r.map(function(a){return[i,a]})}}function Ak(t,n,e){var r=xe(t,n-dt,e).concat(n);return function(i){return r.map(function(a){return[a,i]})}}const Du=t=>t;var _k,kk,ng,eg,rg=new Gn,ig=new Gn,ci={point:Dn,lineStart:Dn,lineEnd:Dn,polygonStart:function(){ci.lineStart=H4,ci.lineEnd=V4},polygonEnd:function(){ci.lineStart=ci.lineEnd=ci.point=Dn,rg.add(At(ig)),ig=new Gn},result:function(){var t=rg/2;return rg=new Gn,t}};function H4(){ci.point=G4}function G4(t,n){ci.point=Dk,_k=ng=t,kk=eg=n}function Dk(t,n){ig.add(eg*t-ng*n),ng=t,eg=n}function V4(){Dk(_k,kk)}var Vo=1/0,Ef=Vo,Fu=-Vo,$f=Fu,Sf={point:function(t,n){t<Vo&&(Vo=t),t>Fu&&(Fu=t),n<Ef&&(Ef=n),n>$f&&($f=n)},lineStart:Dn,lineEnd:Dn,polygonStart:Dn,polygonEnd:Dn,result:function(){var t=[[Vo,Ef],[Fu,$f]];return Fu=$f=-(Ef=Vo=1/0),t}},Fk,Ck,Br,zr,ag=0,og=0,Cu=0,Mf=0,Bf=0,Yo=0,sg=0,ug=0,Eu=0,qe={point:Wa,lineStart:Ek,lineEnd:$k,polygonStart:function(){qe.lineStart=J4,qe.lineEnd=K4},polygonEnd:function(){qe.point=Wa,qe.lineStart=Ek,qe.lineEnd=$k},result:function(){var t=Eu?[sg/Eu,ug/Eu]:Yo?[Mf/Yo,Bf/Yo]:Cu?[ag/Cu,og/Cu]:[NaN,NaN];return ag=og=Cu=Mf=Bf=Yo=sg=ug=Eu=0,t}};function Wa(t,n){ag+=t,og+=n,++Cu}function Ek(){qe.point=Y4}function Y4(t,n){qe.point=X4,Wa(Br=t,zr=n)}function X4(t,n){var e=t-Br,r=n-zr,i=Jn(e*e+r*r);Mf+=i*(Br+t)/2,Bf+=i*(zr+n)/2,Yo+=i,Wa(Br=t,zr=n)}function $k(){qe.point=Wa}function J4(){qe.point=Q4}function K4(){Sk(Fk,Ck)}function Q4(t,n){qe.point=Sk,Wa(Fk=Br=t,Ck=zr=n)}function Sk(t,n){var e=t-Br,r=n-zr,i=Jn(e*e+r*r);Mf+=i*(Br+t)/2,Bf+=i*(zr+n)/2,Yo+=i,sg+=(i=zr*t-Br*n)*(Br+t),ug+=i*(zr+n),Eu+=3*i,Wa(Br=t,zr=n)}function Mk(t){this._context=t}Mk.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Xn)}},result:Dn};var lg,Bk,zk,$u,Su,cg=new Gn,Mu={point:Dn,lineStart:function(){Mu.point=Z4},lineEnd:function(){lg&&Ok(Bk,zk),Mu.point=Dn},polygonStart:function(){lg=!0},polygonEnd:function(){lg=null},result:function(){var t=+cg;return cg=new Gn,t}};function Z4(t,n){Mu.point=Ok,Bk=$u=t,zk=Su=n}function Ok(t,n){$u-=t,Su-=n,cg.add(Jn($u*$u+Su*Su)),$u=t,Su=n}let Nk,zf,Rk,Tk;class Pk{constructor(n){this._append=n==null?jk:function(e){const r=Math.floor(e);if(!(r>=0))throw new RangeError(`invalid digits: ${e}`);if(r>15)return jk;if(r!==Nk){const i=10**r;Nk=r,zf=function(a){let o=1;this._+=a[0];for(const s=a.length;o<s;++o)this._+=Math.round(arguments[o]*i)/i+a[o]}}return zf}(n),this._radius=4.5,this._=""}pointRadius(n){return this._radius=+n,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(n,e){switch(this._point){case 0:this._append`M${n},${e}`,this._point=1;break;case 1:this._append`L${n},${e}`;break;default:if(this._append`M${n},${e}`,this._radius!==Rk||this._append!==zf){const r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,Rk=r,zf=this._append,Tk=this._,this._=i}this._+=Tk}}result(){const n=this._;return this._="",n.length?n:null}}function jk(t){let n=1;this._+=t[0];for(const e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function Lk(t,n){let e,r,i=3,a=4.5;function o(s){return s&&(typeof a=="function"&&r.pointRadius(+a.apply(this,arguments)),si(s,e(r))),r.result()}return o.area=function(s){return si(s,e(ci)),ci.result()},o.measure=function(s){return si(s,e(Mu)),Mu.result()},o.bounds=function(s){return si(s,e(Sf)),Sf.result()},o.centroid=function(s){return si(s,e(qe)),qe.result()},o.projection=function(s){return arguments.length?(e=s==null?(t=null,Du):(t=s).stream,o):t},o.context=function(s){return arguments.length?(r=s==null?(n=null,new Pk(i)):new Mk(n=s),typeof a!="function"&&r.pointRadius(a),o):n},o.pointRadius=function(s){return arguments.length?(a=typeof s=="function"?s:(r.pointRadius(+s),+s),o):a},o.digits=function(s){if(!arguments.length)return i;if(s==null)i=null;else{const u=Math.floor(s);if(!(u>=0))throw new RangeError(`invalid digits: ${s}`);i=u}return n===null&&(r=new Pk(i)),o},o.projection(t).digits(i).context(n)}function Of(t){return function(n){var e=new fg;for(var r in t)e[r]=t[r];return e.stream=n,e}}function fg(){}function dg(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),si(e,t.stream(Sf)),n(Sf.result()),r!=null&&t.clipExtent(r),t}function Nf(t,n,e){return dg(t,function(r){var i=n[1][0]-n[0][0],a=n[1][1]-n[0][1],o=Math.min(i/(r[1][0]-r[0][0]),a/(r[1][1]-r[0][1])),s=+n[0][0]+(i-o*(r[1][0]+r[0][0]))/2,u=+n[0][1]+(a-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([s,u])},e)}function hg(t,n,e){return Nf(t,[[0,0],n],e)}function pg(t,n,e){return dg(t,function(r){var i=+n,a=i/(r[1][0]-r[0][0]),o=(i-a*(r[1][0]+r[0][0]))/2,s=-a*r[0][1];t.scale(150*a).translate([o,s])},e)}function mg(t,n,e){return dg(t,function(r){var i=+n,a=i/(r[1][1]-r[0][1]),o=-a*r[0][0],s=(i-a*(r[1][1]+r[0][1]))/2;t.scale(150*a).translate([o,s])},e)}fg.prototype={constructor:fg,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var tM=ct(30*gt);function qk(t,n){return+n?function(e,r){function i(a,o,s,u,l,c,f,d,h,p,m,g,y,v){var x=f-a,b=d-o,w=x*x+b*b;if(w>4*r&&y--){var A=u+p,_=l+m,k=c+g,D=Jn(A*A+_*_+k*k),C=le(k/=D),F=At(At(k)-1)<dt||At(s-h)<dt?(s+h)/2:je(_,A),E=e(F,C),$=E[0],M=E[1],S=$-a,B=M-o,z=b*S-x*B;(z*z/w>r||At((x*S+b*B)/w-.5)>.3||u*p+l*m+c*g<tM)&&(i(a,o,s,u,l,c,$,M,F,A/=D,_/=D,k,y,v),v.point($,M),i($,M,F,A,_,k,f,d,h,p,m,g,y,v))}}return function(a){var o,s,u,l,c,f,d,h,p,m,g,y,v={point:x,lineStart:b,lineEnd:A,polygonStart:function(){a.polygonStart(),v.lineStart=_},polygonEnd:function(){a.polygonEnd(),v.lineStart=b}};function x(C,F){C=e(C,F),a.point(C[0],C[1])}function b(){h=NaN,v.point=w,a.lineStart()}function w(C,F){var E=Ia([C,F]),$=e(C,F);i(h,p,d,m,g,y,h=$[0],p=$[1],d=C,m=E[0],g=E[1],y=E[2],16,a),a.point(h,p)}function A(){v.point=x,a.lineEnd()}function _(){b(),v.point=k,v.lineEnd=D}function k(C,F){w(o=C,F),s=h,u=p,l=m,c=g,f=y,v.point=w}function D(){i(h,p,d,m,g,y,s,u,o,l,c,f,16,a),v.lineEnd=A,A()}return v}}(t,n):function(e){return Of({point:function(r,i){r=e(r,i),this.stream.point(r[0],r[1])}})}(t)}var nM=Of({point:function(t,n){this.stream.point(t*gt,n*gt)}});function Uk(t,n,e,r,i,a){if(!a)return function(m,g,y,v,x){function b(w,A){return[g+m*(w*=v),y-m*(A*=x)]}return b.invert=function(w,A){return[(w-g)/m*v,(y-A)/m*x]},b}(t,n,e,r,i);var o=ct(a),s=ut(a),u=o*t,l=s*t,c=o/t,f=s/t,d=(s*e-o*n)/t,h=(s*n+o*e)/t;function p(m,g){return[u*(m*=r)-l*(g*=i)+n,e-l*m-u*g]}return p.invert=function(m,g){return[r*(c*m-f*g+d),i*(h-f*m-c*g)]},p}function Or(t){return Ik(function(){return t})()}function Ik(t){var n,e,r,i,a,o,s,u,l,c,f=150,d=480,h=250,p=0,m=0,g=0,y=0,v=0,x=0,b=1,w=1,A=null,_=bk,k=null,D=Du,C=.5;function F(S){return u(S[0]*gt,S[1]*gt)}function E(S){return(S=u.invert(S[0],S[1]))&&[S[0]*on,S[1]*on]}function $(){var S=Uk(f,0,0,b,w,x).apply(null,n(p,m)),B=Uk(f,d-S[0],h-S[1],b,w,x);return e=ck(g,y,v),s=Q0(n,B),u=Q0(e,s),o=qk(s,C),M()}function M(){return l=c=null,F}return F.stream=function(S){return l&&c===S?l:l=nM(function(B){return Of({point:function(z,j){var W=B(z,j);return this.stream.point(W[0],W[1])}})}(e)(_(o(D(c=S)))))},F.preclip=function(S){return arguments.length?(_=S,A=void 0,M()):_},F.postclip=function(S){return arguments.length?(D=S,k=r=i=a=null,M()):D},F.clipAngle=function(S){return arguments.length?(_=+S?W4(A=S*gt):(A=null,bk),M()):A*on},F.clipExtent=function(S){return arguments.length?(D=S==null?(k=r=i=a=null,Du):xk(k=+S[0][0],r=+S[0][1],i=+S[1][0],a=+S[1][1]),M()):k==null?null:[[k,r],[i,a]]},F.scale=function(S){return arguments.length?(f=+S,$()):f},F.translate=function(S){return arguments.length?(d=+S[0],h=+S[1],$()):[d,h]},F.center=function(S){return arguments.length?(p=S[0]%360*gt,m=S[1]%360*gt,$()):[p*on,m*on]},F.rotate=function(S){return arguments.length?(g=S[0]%360*gt,y=S[1]%360*gt,v=S.length>2?S[2]%360*gt:0,$()):[g*on,y*on,v*on]},F.angle=function(S){return arguments.length?(x=S%360*gt,$()):x*on},F.reflectX=function(S){return arguments.length?(b=S?-1:1,$()):b<0},F.reflectY=function(S){return arguments.length?(w=S?-1:1,$()):w<0},F.precision=function(S){return arguments.length?(o=qk(s,C=S*S),M()):Jn(C)},F.fitExtent=function(S,B){return Nf(F,S,B)},F.fitSize=function(S,B){return hg(F,S,B)},F.fitWidth=function(S,B){return pg(F,S,B)},F.fitHeight=function(S,B){return mg(F,S,B)},function(){return n=t.apply(this,arguments),F.invert=n.invert&&E,$()}}function gg(t){var n=0,e=yt/3,r=Ik(t),i=r(n,e);return i.parallels=function(a){return arguments.length?r(n=a[0]*gt,e=a[1]*gt):[n*on,e*on]},i}function eM(t,n){var e=ut(t),r=(e+ut(n))/2;if(At(r)<dt)return function(s){var u=ct(s);function l(c,f){return[c*u,ut(f)/u]}return l.invert=function(c,f){return[c/u,le(f*u)]},l}(t);var i=1+e*(2*r-e),a=Jn(i)/r;function o(s,u){var l=Jn(i-2*r*ut(u))/r;return[l*ut(s*=r),a-l*ct(s)]}return o.invert=function(s,u){var l=a-u,c=je(s,At(l))*Le(l);return l*r<0&&(c-=yt*Le(s)*Le(l)),[c/r,le((i-(s*s+l*l)*r*r)/(2*r))]},o}function Rf(){return gg(eM).scale(155.424).center([0,33.6442])}function Wk(){return Rf().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Hk(t){return function(n,e){var r=ct(n),i=ct(e),a=t(r*i);return a===1/0?[2,0]:[a*i*ut(n),a*ut(e)]}}function Bu(t){return function(n,e){var r=Jn(n*n+e*e),i=t(r),a=ut(i),o=ct(i);return[je(n*a,r*o),le(r&&e*a/r)]}}var Gk=Hk(function(t){return Jn(2/(1+t))});Gk.invert=Bu(function(t){return 2*le(t/2)});var Vk=Hk(function(t){return(t=H_(t))&&t/ut(t)});function Tf(t,n){return[t,cf(q0((rn+n)/2))]}function Yk(t){var n,e,r,i=Or(t),a=i.center,o=i.scale,s=i.translate,u=i.clipExtent,l=null;function c(){var f=yt*o(),d=i(function(h){function p(m){return(m=h(m[0]*gt,m[1]*gt))[0]*=on,m[1]*=on,m}return h=ck(h[0]*gt,h[1]*gt,h.length>2?h[2]*gt:0),p.invert=function(m){return(m=h.invert(m[0]*gt,m[1]*gt))[0]*=on,m[1]*=on,m},p}(i.rotate()).invert([0,0]));return u(l==null?[[d[0]-f,d[1]-f],[d[0]+f,d[1]+f]]:t===Tf?[[Math.max(d[0]-f,l),n],[Math.min(d[0]+f,e),r]]:[[l,Math.max(d[1]-f,n)],[e,Math.min(d[1]+f,r)]])}return i.scale=function(f){return arguments.length?(o(f),c()):o()},i.translate=function(f){return arguments.length?(s(f),c()):s()},i.center=function(f){return arguments.length?(a(f),c()):a()},i.clipExtent=function(f){return arguments.length?(f==null?l=n=e=r=null:(l=+f[0][0],n=+f[0][1],e=+f[1][0],r=+f[1][1]),c()):l==null?null:[[l,n],[e,r]]},c()}function Pf(t){return q0((rn+t)/2)}function rM(t,n){var e=ct(t),r=t===n?ut(t):cf(e/ct(n))/cf(Pf(n)/Pf(t)),i=e*L0(Pf(t),r)/r;if(!r)return Tf;function a(o,s){i>0?s<-rn+dt&&(s=-rn+dt):s>rn-dt&&(s=rn-dt);var u=i/L0(Pf(s),r);return[u*ut(r*o),i-u*ct(r*o)]}return a.invert=function(o,s){var u=i-s,l=Le(r)*Jn(o*o+u*u),c=je(o,At(u))*Le(u);return u*r<0&&(c-=yt*Le(o)*Le(u)),[c/r,2*Wo(L0(i/l,1/r))-rn]},a}function jf(t,n){return[t,n]}function iM(t,n){var e=ct(t),r=t===n?ut(t):(e-ct(n))/(n-t),i=e/r+t;if(At(r)<dt)return jf;function a(o,s){var u=i-s,l=r*o;return[u*ut(l),i-u*ct(l)]}return a.invert=function(o,s){var u=i-s,l=je(o,At(u))*Le(u);return u*r<0&&(l-=yt*Le(o)*Le(u)),[l/r,i-Le(r)*Jn(o*o+u*u)]},a}Vk.invert=Bu(function(t){return t}),Tf.invert=function(t,n){return[t,2*Wo(W_(n))-rn]},jf.invert=jf;var zu=1.340264,Ou=-.081106,Nu=893e-6,Ru=.003796,Lf=Jn(3)/2;function Xk(t,n){var e=le(Lf*ut(n)),r=e*e,i=r*r*r;return[t*ct(e)/(Lf*(zu+3*Ou*r+i*(7*Nu+9*Ru*r))),e*(zu+Ou*r+i*(Nu+Ru*r))]}function Jk(t,n){var e=ct(n),r=ct(t)*e;return[e*ut(t)/r,ut(n)/r]}function Kk(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function Qk(t,n){return[ct(n)*ut(t),ut(n)]}function Zk(t,n){var e=ct(n),r=1+ct(t)*e;return[e*ut(t)/r,ut(n)/r]}function tD(t,n){return[cf(q0((rn+n)/2)),-t]}Xk.invert=function(t,n){for(var e,r=n,i=r*r,a=i*i*i,o=0;o<12&&(a=(i=(r-=e=(r*(zu+Ou*i+a*(Nu+Ru*i))-n)/(zu+3*Ou*i+a*(7*Nu+9*Ru*i)))*r)*i*i,!(At(e)<P0));++o);return[Lf*t*(zu+3*Ou*i+a*(7*Nu+9*Ru*i))/ct(r),le(ut(r)/Lf)]},Jk.invert=Bu(Wo),Kk.invert=function(t,n){var e,r=n,i=25;do{var a=r*r,o=a*a;r-=e=(r*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-n)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(At(e)>dt&&--i>0);return[t/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]},Qk.invert=Bu(le),Zk.invert=Bu(function(t){return 2*Wo(t)}),tD.invert=function(t,n){return[-n,2*Wo(W_(t))-rn]};var aM=Math.abs,yg=Math.cos,qf=Math.sin,nD=Math.PI,vg=nD/2,eD=function(t){return t>0?Math.sqrt(t):0}(2);function rD(t){return t>1?vg:t<-1?-vg:Math.asin(t)}function oM(t,n){var e,r=t*qf(n),i=30;do n-=e=(n+qf(n)-r)/(1+yg(n));while(aM(e)>1e-6&&--i>0);return n/2}var sM=function(t,n,e){function r(i,a){return[t*i*yg(a=oM(e,a)),n*qf(a)]}return r.invert=function(i,a){return a=rD(a/n),[i/(t*yg(a)),rD((2*a+qf(2*a))/e)]},r}(eD/vg,eD,nD);const uM=Lk(),bg=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function xg(t,n){if(!t||typeof t!="string")throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(Uf[t]=function(e,r){return function i(){const a=r();return a.type=e,a.path=Lk().projection(a),a.copy=a.copy||function(){const o=i();return bg.forEach(s=>{a[s]&&o[s](a[s]())}),o.path.pointRadius(a.path.pointRadius()),o},uw(a)}}(t,n),this):Uf[t]||null}function iD(t){return t&&t.path||uM}const Uf={albers:Wk,albersusa:function(){var t,n,e,r,i,a,o=Wk(),s=Rf().rotate([154,0]).center([-2,58.5]).parallels([55,65]),u=Rf().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(d,h){a=[d,h]}};function c(d){var h=d[0],p=d[1];return a=null,e.point(h,p),a||(r.point(h,p),a)||(i.point(h,p),a)}function f(){return t=n=null,c}return c.invert=function(d){var h=o.scale(),p=o.translate(),m=(d[0]-p[0])/h,g=(d[1]-p[1])/h;return(g>=.12&&g<.234&&m>=-.425&&m<-.214?s:g>=.166&&g<.234&&m>=-.214&&m<-.115?u:o).invert(d)},c.stream=function(d){return t&&n===d?t:(h=[o.stream(n=d),s.stream(d),u.stream(d)],p=h.length,t={point:function(m,g){for(var y=-1;++y<p;)h[y].point(m,g)},sphere:function(){for(var m=-1;++m<p;)h[m].sphere()},lineStart:function(){for(var m=-1;++m<p;)h[m].lineStart()},lineEnd:function(){for(var m=-1;++m<p;)h[m].lineEnd()},polygonStart:function(){for(var m=-1;++m<p;)h[m].polygonStart()},polygonEnd:function(){for(var m=-1;++m<p;)h[m].polygonEnd()}});var h,p},c.precision=function(d){return arguments.length?(o.precision(d),s.precision(d),u.precision(d),f()):o.precision()},c.scale=function(d){return arguments.length?(o.scale(d),s.scale(.35*d),u.scale(d),c.translate(o.translate())):o.scale()},c.translate=function(d){if(!arguments.length)return o.translate();var h=o.scale(),p=+d[0],m=+d[1];return e=o.translate(d).clipExtent([[p-.455*h,m-.238*h],[p+.455*h,m+.238*h]]).stream(l),r=s.translate([p-.307*h,m+.201*h]).clipExtent([[p-.425*h+dt,m+.12*h+dt],[p-.214*h-dt,m+.234*h-dt]]).stream(l),i=u.translate([p-.205*h,m+.212*h]).clipExtent([[p-.214*h+dt,m+.166*h+dt],[p-.115*h-dt,m+.234*h-dt]]).stream(l),f()},c.fitExtent=function(d,h){return Nf(c,d,h)},c.fitSize=function(d,h){return hg(c,d,h)},c.fitWidth=function(d,h){return pg(c,d,h)},c.fitHeight=function(d,h){return mg(c,d,h)},c.scale(1070)},azimuthalequalarea:function(){return Or(Gk).scale(124.75).clipAngle(179.999)},azimuthalequidistant:function(){return Or(Vk).scale(79.4188).clipAngle(179.999)},conicconformal:function(){return gg(rM).scale(109.5).parallels([30,30])},conicequalarea:Rf,conicequidistant:function(){return gg(iM).scale(131.154).center([0,13.9389])},equalEarth:function(){return Or(Xk).scale(177.158)},equirectangular:function(){return Or(jf).scale(152.63)},gnomonic:function(){return Or(Jk).scale(144.049).clipAngle(60)},identity:function(){var t,n,e,r,i,a,o,s=1,u=0,l=0,c=1,f=1,d=0,h=null,p=1,m=1,g=Of({point:function(b,w){var A=x([b,w]);this.stream.point(A[0],A[1])}}),y=Du;function v(){return p=s*c,m=s*f,a=o=null,x}function x(b){var w=b[0]*p,A=b[1]*m;if(d){var _=A*t-w*n;w=w*t+A*n,A=_}return[w+u,A+l]}return x.invert=function(b){var w=b[0]-u,A=b[1]-l;if(d){var _=A*t+w*n;w=w*t-A*n,A=_}return[w/p,A/m]},x.stream=function(b){return a&&o===b?a:a=g(y(o=b))},x.postclip=function(b){return arguments.length?(y=b,h=e=r=i=null,v()):y},x.clipExtent=function(b){return arguments.length?(y=b==null?(h=e=r=i=null,Du):xk(h=+b[0][0],e=+b[0][1],r=+b[1][0],i=+b[1][1]),v()):h==null?null:[[h,e],[r,i]]},x.scale=function(b){return arguments.length?(s=+b,v()):s},x.translate=function(b){return arguments.length?(u=+b[0],l=+b[1],v()):[u,l]},x.angle=function(b){return arguments.length?(n=ut(d=b%360*gt),t=ct(d),v()):d*on},x.reflectX=function(b){return arguments.length?(c=b?-1:1,v()):c<0},x.reflectY=function(b){return arguments.length?(f=b?-1:1,v()):f<0},x.fitExtent=function(b,w){return Nf(x,b,w)},x.fitSize=function(b,w){return hg(x,b,w)},x.fitWidth=function(b,w){return pg(x,b,w)},x.fitHeight=function(b,w){return mg(x,b,w)},x},mercator:function(){return Yk(Tf).scale(961/Xn)},mollweide:function(){return Or(sM).scale(169.529)},naturalEarth1:function(){return Or(Kk).scale(175.295)},orthographic:function(){return Or(Qk).scale(249.5).clipAngle(90.000001)},stereographic:function(){return Or(Zk).scale(250).clipAngle(142)},transversemercator:function(){var t=Yk(tD),n=t.center,e=t.rotate;return t.center=function(r){return arguments.length?n([-r[1],r[0]]):[(r=n())[1],-r[0]]},t.rotate=function(r){return arguments.length?e([r[0],r[1],r.length>2?r[2]+90:90]):[(r=e())[0],r[1],r[2]-90]},e([0,0,90]).scale(159.155)}};for(const t in Uf)xg(t,Uf[t]);function lM(){}const fi=[[],[[[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 aD(){var t=1,n=1,e=o;function r(s,u){return u.map(l=>i(s,l))}function i(s,u){var l=[],c=[];return function(f,d,h){var p,m,g,y,v,x,b=[],w=[];for(p=m=-1,y=f[0]>=d,fi[y<<1].forEach(A);++p<t-1;)g=y,y=f[p+1]>=d,fi[g|y<<1].forEach(A);for(fi[y|0].forEach(A);++m<n-1;){for(p=-1,y=f[m*t+t]>=d,v=f[m*t]>=d,fi[y<<1|v<<2].forEach(A);++p<t-1;)g=y,y=f[m*t+t+p+1]>=d,x=v,v=f[m*t+p+1]>=d,fi[g|y<<1|v<<2|x<<3].forEach(A);fi[y|v<<3].forEach(A)}for(p=-1,v=f[m*t]>=d,fi[v<<2].forEach(A);++p<t-1;)x=v,v=f[m*t+p+1]>=d,fi[v<<2|x<<3].forEach(A);function A(_){var k,D,C=[_[0][0]+p,_[0][1]+m],F=[_[1][0]+p,_[1][1]+m],E=a(C),$=a(F);(k=w[E])?(D=b[$])?(delete w[k.end],delete b[D.start],k===D?(k.ring.push(F),h(k.ring)):b[k.start]=w[D.end]={start:k.start,end:D.end,ring:k.ring.concat(D.ring)}):(delete w[k.end],k.ring.push(F),w[k.end=$]=k):(k=b[$])?(D=w[E])?(delete b[k.start],delete w[D.end],k===D?(k.ring.push(F),h(k.ring)):b[D.start]=w[k.end]={start:D.start,end:k.end,ring:D.ring.concat(k.ring)}):(delete b[k.start],k.ring.unshift(C),b[k.start=E]=k):b[E]=w[$]={start:E,end:$,ring:[C,F]}}fi[v<<3].forEach(A)}(s,u,f=>{e(f,s,u),function(d){for(var h=0,p=d.length,m=d[p-1][1]*d[0][0]-d[p-1][0]*d[0][1];++h<p;)m+=d[h-1][1]*d[h][0]-d[h-1][0]*d[h][1];return m}(f)>0?l.push([f]):c.push(f)}),c.forEach(f=>{for(var d,h=0,p=l.length;h<p;++h)if(cM((d=l[h])[0],f)!==-1)return void d.push(f)}),{type:"MultiPolygon",value:u,coordinates:l}}function a(s){return 2*s[0]+s[1]*(t+1)*4}function o(s,u,l){s.forEach(c=>{var f,d=c[0],h=c[1],p=0|d,m=0|h,g=u[m*t+p];d>0&&d<t&&p===d&&(f=u[m*t+p-1],c[0]=d+(l-f)/(g-f)-.5),h>0&&h<n&&m===h&&(f=u[(m-1)*t+p],c[1]=h+(l-f)/(g-f)-.5)})}return r.contour=i,r.size=function(s){if(!arguments.length)return[t,n];var u=Math.floor(s[0]),l=Math.floor(s[1]);return u>=0&&l>=0||P("invalid size"),t=u,n=l,r},r.smooth=function(s){return arguments.length?(e=s?o:lM,r):e===o},r}function cM(t,n){for(var e,r=-1,i=n.length;++r<i;)if(e=fM(t,n[r]))return e;return 0}function fM(t,n){for(var e=n[0],r=n[1],i=-1,a=0,o=t.length,s=o-1;a<o;s=a++){var u=t[a],l=u[0],c=u[1],f=t[s],d=f[0],h=f[1];if(dM(u,f,n))return 0;c>r!=h>r&&e<(d-l)*(r-c)/(h-c)+l&&(i=-i)}return i}function dM(t,n,e){var r,i,a,o;return function(s,u,l){return(u[0]-s[0])*(l[1]-s[1])===(l[0]-s[0])*(u[1]-s[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],a=e[r],o=n[r],i<=a&&a<=o||o<=a&&a<=i)}function oD(t,n,e){return function(r){var i=kr(r),a=e?Math.min(i[0],0):i[0],o=i[1],s=o-a,u=n?sx(a,o,t):s/(t+1);return xe(a+u,o,u)}}function wg(t){O.call(this,null,t)}function sD(t,n,e,r,i){const a=t.x1||0,o=t.y1||0,s=n*e<0;function u(f){f.forEach(l)}function l(f){s&&f.reverse(),f.forEach(c)}function c(f){f[0]=(f[0]-a)*n+r,f[1]=(f[1]-o)*e+i}return function(f){return f.coordinates.forEach(u),f}}function uD(t,n,e){const r=t>=0?t:wp(n,e);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function Ag(t){return bt(t)?t:In(+t)}function lD(){var t=u=>u[0],n=u=>u[1],e=Is,r=[-1,-1],i=960,a=500,o=2;function s(u,l){const c=uD(r[0],u,t)>>o,f=uD(r[1],u,n)>>o,d=c?c+2:0,h=f?f+2:0,p=2*d+(i>>o),m=2*h+(a>>o),g=new Float32Array(p*m),y=new Float32Array(p*m);let v=g;u.forEach(b=>{const w=d+(+t(b)>>o),A=h+(+n(b)>>o);w>=0&&w<p&&A>=0&&A<m&&(g[w+A*p]+=+e(b))}),c>0&&f>0?(Xo(p,m,g,y,c),Jo(p,m,y,g,f),Xo(p,m,g,y,c),Jo(p,m,y,g,f),Xo(p,m,g,y,c),Jo(p,m,y,g,f)):c>0?(Xo(p,m,g,y,c),Xo(p,m,y,g,c),Xo(p,m,g,y,c),v=y):f>0&&(Jo(p,m,g,y,f),Jo(p,m,y,g,f),Jo(p,m,g,y,f),v=y);const x=l?Math.pow(2,-2*o):1/Yx(v);for(let b=0,w=p*m;b<w;++b)v[b]*=x;return{values:v,scale:1<<o,width:p,height:m,x1:d,y1:h,x2:d+(i>>o),y2:h+(a>>o)}}return s.x=function(u){return arguments.length?(t=Ag(u),s):t},s.y=function(u){return arguments.length?(n=Ag(u),s):n},s.weight=function(u){return arguments.length?(e=Ag(u),s):e},s.size=function(u){if(!arguments.length)return[i,a];var l=+u[0],c=+u[1];return l>=0&&c>=0||P("invalid size"),i=l,a=c,s},s.cellSize=function(u){return arguments.length?((u=+u)>=1||P("invalid cell size"),o=Math.floor(Math.log(u)/Math.LN2),s):1<<o},s.bandwidth=function(u){return arguments.length?((u=J(u)).length===1&&(u=[+u[0],+u[0]]),u.length!==2&&P("invalid bandwidth"),r=u,s):r},s}function Xo(t,n,e,r,i){const a=1+(i<<1);for(let o=0;o<n;++o)for(let s=0,u=0;s<t+i;++s)s<t&&(u+=e[s+o*t]),s>=i&&(s>=a&&(u-=e[s-a+o*t]),r[s-i+o*t]=u/Math.min(s+1,t-1+a-s,a))}function Jo(t,n,e,r,i){const a=1+(i<<1);for(let o=0;o<t;++o)for(let s=0,u=0;s<n+i;++s)s<n&&(u+=e[o+s*t]),s>=i&&(s>=a&&(u-=e[o+(s-a)*t]),r[o+(s-i)*t]=u/Math.min(s+1,n-1+a-s,a))}function _g(t){O.call(this,null,t)}wg.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"}]},V(wg,O,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e=n.fork(n.NO_SOURCE|n.NO_FIELDS),r=n.materialize(n.SOURCE).source,i=t.field||Me,a=aD().smooth(t.smooth!==!1),o=t.thresholds||function(l,c,f){const d=oD(f.levels||10,f.nice,f.zero!==!1);return f.resolve!=="shared"?d:d(l.map(h=>Ca(c(h).values)))}(r,i,t),s=t.as===null?null:t.as||"contour",u=[];return r.forEach(l=>{const c=i(l),f=a.size([c.width,c.height])(c.values,T(o)?o:o(c.values));(function(d,h,p,m){let g=m.scale||h.scale,y=m.translate||h.translate;if(bt(g)&&(g=g(p,m)),bt(y)&&(y=y(p,m)),(g===1||g==null)&&!y)return;const v=($t(g)?g:g[0])||1,x=($t(g)?g:g[1])||1,b=y&&y[0]||0,w=y&&y[1]||0;d.forEach(sD(h,v,x,b,w))})(f,c,l,t),f.forEach(d=>{u.push(tc(l,St(s!=null?{[s]:d}:d)))})}),this.value&&(e.rem=this.value),this.value=e.source=e.add=u,e}}),_g.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 hM=["x","y","weight","size","cellSize","bandwidth"];function cD(t,n){return hM.forEach(e=>n[e]!=null?t[e](n[e]):0),t}function kg(t){O.call(this,null,t)}V(_g,O,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=function(u,l){var c,f,d,h,p,m,g=[],y=v=>v(h);if(l==null)g.push(u);else for(c={},f=0,d=u.length;f<d;++f)h=u[f],(m=c[p=l.map(y)])||(c[p]=m=[],m.dims=p,g.push(m)),m.push(h);return g}(n.materialize(n.SOURCE).source,t.groupby),a=(t.groupby||[]).map(en),o=cD(lD(),t),s=t.as||"grid";return e=i.map(u=>St(function(l,c){for(let f=0;f<a.length;++f)l[a[f]]=c[f];return l}({[s]:o(u,t.counts)},u.dims))),this.value&&(r.rem=this.value),this.value=r.source=r.add=e,r}}),kg.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}]},V(kg,O,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e,r,i=n.fork(n.NO_SOURCE|n.NO_FIELDS),a=aD().smooth(t.smooth!==!1),o=t.values,s=t.thresholds||oD(t.count||10,t.nice,!!o),u=t.size;return o||(o=n.materialize(n.SOURCE).source,r=sD(e=cD(lD(),t)(o,!0),e.scale||1,e.scale||1,0,0),u=[e.width,e.height],o=e.values),s=T(s)?s:s(o),o=a.size(u)(o,s),r&&o.forEach(r),this.value&&(i.rem=this.value),this.value=i.source=i.add=(o||[]).map(St),i}});const Dg="Feature",Fg="FeatureCollection";function Cg(t){O.call(this,null,t)}function Eg(t){O.call(this,null,t)}function $g(t){O.call(this,null,t)}function Sg(t){O.call(this,null,t)}function Mg(t){O.call(this,[],t),this.generator=function(){var n,e,r,i,a,o,s,u,l,c,f,d,h=10,p=h,m=90,g=360,y=2.5;function v(){return{type:"MultiLineString",coordinates:x()}}function x(){return xe(lf(i/m)*m,r,m).map(f).concat(xe(lf(u/g)*g,s,g).map(d)).concat(xe(lf(e/h)*h,n,h).filter(function(b){return At(b%m)>dt}).map(l)).concat(xe(lf(o/p)*p,a,p).filter(function(b){return At(b%g)>dt}).map(c))}return v.lines=function(){return x().map(function(b){return{type:"LineString",coordinates:b}})},v.outline=function(){return{type:"Polygon",coordinates:[f(i).concat(d(s).slice(1),f(r).reverse().slice(1),d(u).reverse().slice(1))]}},v.extent=function(b){return arguments.length?v.extentMajor(b).extentMinor(b):v.extentMinor()},v.extentMajor=function(b){return arguments.length?(i=+b[0][0],r=+b[1][0],u=+b[0][1],s=+b[1][1],i>r&&(b=i,i=r,r=b),u>s&&(b=u,u=s,s=b),v.precision(y)):[[i,u],[r,s]]},v.extentMinor=function(b){return arguments.length?(e=+b[0][0],n=+b[1][0],o=+b[0][1],a=+b[1][1],e>n&&(b=e,e=n,n=b),o>a&&(b=o,o=a,a=b),v.precision(y)):[[e,o],[n,a]]},v.step=function(b){return arguments.length?v.stepMajor(b).stepMinor(b):v.stepMinor()},v.stepMajor=function(b){return arguments.length?(m=+b[0],g=+b[1],v):[m,g]},v.stepMinor=function(b){return arguments.length?(h=+b[0],p=+b[1],v):[h,p]},v.precision=function(b){return arguments.length?(y=+b,l=wk(o,a,90),c=Ak(e,n,y),f=wk(u,s,90),d=Ak(i,r,y),v):y},v.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}()}function Bg(t){O.call(this,null,t)}function fD(t){if(!bt(t))return!1;const n=Dr(Wn(t));return n.$x||n.$y||n.$value||n.$max}function dD(t){O.call(this,null,t),this.modified(!0)}function hD(t,n,e){bt(t[n])&&t[n](e)}Cg.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},V(Cg,O,{transform(t,n){var e,r=this._features,i=this._points,a=t.fields,o=a&&a[0],s=a&&a[1],u=t.geojson||!a&&Me,l=n.ADD;e=t.modified()||n.changed(n.REM)||n.modified(Wn(u))||o&&n.modified(Wn(o))||s&&n.modified(Wn(s)),this.value&&!e||(l=n.SOURCE,this._features=r=[],this._points=i=[]),u&&n.visit(l,c=>r.push(u(c))),o&&s&&(n.visit(l,c=>{var f=o(c),d=s(c);f!=null&&d!=null&&(f=+f)===f&&(d=+d)===d&&i.push([f,d])}),r=r.concat({type:Dg,geometry:{type:"MultiPoint",coordinates:i}})),this.value={type:Fg,features:r}}}),Eg.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"}]},V(Eg,O,{transform(t,n){var e=n.fork(n.ALL),r=this.value,i=t.field||Me,a=t.as||"path",o=e.SOURCE;!r||t.modified()?(this.value=r=iD(t.projection),e.materialize().reflow()):o=i===Me||n.modified(i.fields)?e.ADD_MOD:e.ADD;const s=function(u,l){const c=u.pointRadius();return u.context(null),l!=null&&u.pointRadius(l),c}(r,t.pointRadius);return e.visit(o,u=>u[a]=r(i(u))),r.pointRadius(s),e.modifies(a)}}),$g.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"]}]},V($g,O,{transform(t,n){var e,r=t.projection,i=t.fields[0],a=t.fields[1],o=t.as||["x","y"],s=o[0],u=o[1];function l(c){const f=r([i(c),a(c)]);f?(c[s]=f[0],c[u]=f[1]):(c[s]=void 0,c[u]=void 0)}return t.modified()?n=n.materialize().reflow(!0).visit(n.SOURCE,l):(e=n.modified(i.fields)||n.modified(a.fields),n.visit(e?n.ADD_MOD:n.ADD,l)),n.modifies(o)}}),Sg.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"}]},V(Sg,O,{transform(t,n){var e=n.fork(n.ALL),r=this.value,i=t.as||"shape",a=e.ADD;return r&&!t.modified()||(this.value=r=function(o,s,u){const l=u==null?c=>o(s(c)):c=>{var f=o.pointRadius(),d=o.pointRadius(u)(s(c));return o.pointRadius(f),d};return l.context=c=>(o.context(c),l),l}(iD(t.projection),t.field||ei("datum"),t.pointRadius),e.materialize().reflow(),a=e.SOURCE),e.visit(a,o=>o[i]=r),e.modifies(i)}}),Mg.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}]},V(Mg,O,{transform(t,n){var e,r=this.value,i=this.generator;if(!r.length||t.modified())for(const a in t)bt(i[a])&&i[a](t[a]);return e=i(),r.length?n.mod.push(Kx(r[0],e)):n.add.push(St(e)),r[0]=e,n}}),Bg.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"}]},V(Bg,O,{transform(t,n){if(!n.changed()&&!t.modified())return n.StopPropagation;var e=n.materialize(n.SOURCE).source,r=t.resolve==="shared",i=t.field||Me,a=function(l,c){let f;return bt(l)?(f=d=>l(d,c),f.dep=fD(l)):l?f=In(l):(f=d=>d.$value/d.$max||0,f.dep=!0),f}(t.opacity,t),o=function(l,c){let f;return bt(l)?(f=d=>Vl(l(d,c)),f.dep=fD(l)):f=In(Vl(l||"#888")),f}(t.color,t),s=t.as||"image",u={$x:0,$y:0,$value:0,$max:r?Ca(e.map(l=>Ca(i(l).values))):0};return e.forEach(l=>{const c=i(l),f=xt({},l,u);r||(f.$max=Ca(c.values||[])),l[s]=function(d,h,p,m){const g=d.width,y=d.height,v=d.x1||0,x=d.y1||0,b=d.x2||g,w=d.y2||y,A=d.values,_=A?E=>A[E]:tp,k=qi(b-v,w-x),D=k.getContext("2d"),C=D.getImageData(0,0,b-v,w-x),F=C.data;for(let E=x,$=0;E<w;++E){h.$y=E-x;for(let M=v,S=E*g;M<b;++M,$+=4){h.$x=M-v,h.$value=_(M+S);const B=p(h);F[$+0]=B.r,F[$+1]=B.g,F[$+2]=B.b,F[$+3]=~~(255*m(h))}}return D.putImageData(C,0,0),k}(c,f,o.dep?o:In(o(f)),a.dep?a:In(a(f)))}),n.reflow(!0).modifies(s)}}),V(dD,O,{transform(t,n){let e=this.value;return!e||t.modified("type")?(this.value=e=function(r){const i=xg((r||"mercator").toLowerCase());return i||P("Unrecognized projection type: "+r),i()}(t.type),bg.forEach(r=>{t[r]!=null&&hD(e,r,t[r])})):bg.forEach(r=>{t.modified(r)&&hD(e,r,t[r])}),t.pointRadius!=null&&e.path.pointRadius(t.pointRadius),t.fit&&function(r,i){const a=function(o){return o=J(o),o.length===1?o[0]:{type:Fg,features:o.reduce((s,u)=>s.concat(function(l){return l.type===Fg?l.features:J(l).filter(c=>c!=null).map(c=>c.type===Dg?c:{type:Dg,geometry:c})}(u)),[])}}(i.fit);i.extent?r.fitExtent(i.extent,a):i.size&&r.fitSize(i.size,a)}(e,t),n.fork(n.NO_SOURCE|n.NO_FIELDS)}});const pM=Object.freeze(Object.defineProperty({__proto__:null,contour:kg,geojson:Cg,geopath:Eg,geopoint:$g,geoshape:Sg,graticule:Mg,heatmap:Bg,isocontour:wg,kde2d:_g,projection:dD},Symbol.toStringTag,{value:"Module"}));function pD(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,a,o,s,u,l,c,f,d,h=t._root,p={data:r},m=t._x0,g=t._y0,y=t._x1,v=t._y1;if(!h)return t._root=p,t;for(;h.length;)if((l=n>=(a=(m+y)/2))?m=a:y=a,(c=e>=(o=(g+v)/2))?g=o:v=o,i=h,!(h=h[f=c<<1|l]))return i[f]=p,t;if(s=+t._x.call(null,h.data),u=+t._y.call(null,h.data),n===s&&e===u)return p.next=h,i?i[f]=p:t._root=p,t;do i=i?i[f]=new Array(4):t._root=new Array(4),(l=n>=(a=(m+y)/2))?m=a:y=a,(c=e>=(o=(g+v)/2))?g=o:v=o;while((f=c<<1|l)==(d=(u>=o)<<1|s>=a));return i[d]=h,i[f]=p,t}function te(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function mM(t){return t[0]}function gM(t){return t[1]}function zg(t,n,e){var r=new Og(n??mM,e??gM,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function Og(t,n,e,r,i,a){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function mD(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var ne=zg.prototype=Og.prototype;function ee(t){return function(){return t}}function ea(t){return 1e-6*(t()-.5)}function yM(t){return t.x+t.vx}function vM(t){return t.y+t.vy}function bM(t){return t.index}function gD(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}ne.copy=function(){var t,n,e=new Og(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=mD(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=mD(n));return e},ne.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return pD(this.cover(n,e),n,e,t)},ne.addAll=function(t){var n,e,r,i,a=t.length,o=new Array(a),s=new Array(a),u=1/0,l=1/0,c=-1/0,f=-1/0;for(e=0;e<a;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(o[e]=r,s[e]=i,r<u&&(u=r),r>c&&(c=r),i<l&&(l=i),i>f&&(f=i));if(u>c||l>f)return this;for(this.cover(u,l).cover(c,f),e=0;e<a;++e)pD(this,o[e],s[e],t[e]);return this},ne.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,a=(r=Math.floor(n))+1;else{for(var o,s,u=i-e||1,l=this._root;e>t||t>=i||r>n||n>=a;)switch(s=(n<r)<<1|t<e,(o=new Array(4))[s]=l,l=o,u*=2,s){case 0:i=e+u,a=r+u;break;case 1:e=i-u,a=r+u;break;case 2:i=e+u,r=a-u;break;case 3:e=i-u,r=a-u}this._root&&this._root.length&&(this._root=l)}return this._x0=e,this._y0=r,this._x1=i,this._y1=a,this},ne.data=function(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t},ne.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},ne.find=function(t,n,e){var r,i,a,o,s,u,l,c=this._x0,f=this._y0,d=this._x1,h=this._y1,p=[],m=this._root;for(m&&p.push(new te(m,c,f,d,h)),e==null?e=1/0:(c=t-e,f=n-e,d=t+e,h=n+e,e*=e);u=p.pop();)if(!(!(m=u.node)||(i=u.x0)>d||(a=u.y0)>h||(o=u.x1)<c||(s=u.y1)<f))if(m.length){var g=(i+o)/2,y=(a+s)/2;p.push(new te(m[3],g,y,o,s),new te(m[2],i,y,g,s),new te(m[1],g,a,o,y),new te(m[0],i,a,g,y)),(l=(n>=y)<<1|t>=g)&&(u=p[p.length-1],p[p.length-1]=p[p.length-1-l],p[p.length-1-l]=u)}else{var v=t-+this._x.call(null,m.data),x=n-+this._y.call(null,m.data),b=v*v+x*x;if(b<e){var w=Math.sqrt(e=b);c=t-w,f=n-w,d=t+w,h=n+w,r=m.data}}return r},ne.remove=function(t){if(isNaN(a=+this._x.call(null,t))||isNaN(o=+this._y.call(null,t)))return this;var n,e,r,i,a,o,s,u,l,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((l=a>=(s=(p+g)/2))?p=s:g=s,(c=o>=(u=(m+y)/2))?m=u:y=u,n=h,!(h=h[f=c<<1|l]))return this;if(!h.length)break;(n[f+1&3]||n[f+2&3]||n[f+3&3])&&(e=n,d=f)}for(;h.data!==t;)if(r=h,!(h=h.next))return this;return(i=h.next)&&delete h.next,r?(i?r.next=i:delete r.next,this):n?(i?n[f]=i:delete n[f],(h=n[0]||n[1]||n[2]||n[3])&&h===(n[3]||n[2]||n[1]||n[0])&&!h.length&&(e?e[d]=h:this._root=h),this):(this._root=i,this)},ne.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},ne.root=function(){return this._root},ne.size=function(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t},ne.visit=function(t){var n,e,r,i,a,o,s=[],u=this._root;for(u&&s.push(new te(u,this._x0,this._y0,this._x1,this._y1));n=s.pop();)if(!t(u=n.node,r=n.x0,i=n.y0,a=n.x1,o=n.y1)&&u.length){var l=(r+a)/2,c=(i+o)/2;(e=u[3])&&s.push(new te(e,l,c,a,o)),(e=u[2])&&s.push(new te(e,r,c,l,o)),(e=u[1])&&s.push(new te(e,l,i,a,c)),(e=u[0])&&s.push(new te(e,r,i,l,c))}return this},ne.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new te(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var a,o=n.x0,s=n.y0,u=n.x1,l=n.y1,c=(o+u)/2,f=(s+l)/2;(a=i[0])&&e.push(new te(a,o,s,c,f)),(a=i[1])&&e.push(new te(a,c,s,u,f)),(a=i[2])&&e.push(new te(a,o,f,c,l)),(a=i[3])&&e.push(new te(a,c,f,u,l))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},ne.x=function(t){return arguments.length?(this._x=t,this):this._x},ne.y=function(t){return arguments.length?(this._y=t,this):this._y};const yD=4294967296;function xM(t){return t.x}function wM(t){return t.y}var AM=Math.PI*(3-Math.sqrt(5));function _M(t){var n,e=1,r=.001,i=1-Math.pow(r,1/300),a=0,o=.6,s=new Map,u=b8(f),l=x8("tick","end"),c=function(){let m=1;return()=>(m=(1664525*m+1013904223)%yD)/yD}();function f(){d(),l.call("tick",n),e<r&&(u.stop(),l.call("end",n))}function d(m){var g,y,v=t.length;m===void 0&&(m=1);for(var x=0;x<m;++x)for(e+=(a-e)*i,s.forEach(function(b){b(e)}),g=0;g<v;++g)(y=t[g]).fx==null?y.x+=y.vx*=o:(y.x=y.fx,y.vx=0),y.fy==null?y.y+=y.vy*=o:(y.y=y.fy,y.vy=0);return n}function h(){for(var m,g=0,y=t.length;g<y;++g){if((m=t[g]).index=g,m.fx!=null&&(m.x=m.fx),m.fy!=null&&(m.y=m.fy),isNaN(m.x)||isNaN(m.y)){var v=10*Math.sqrt(.5+g),x=g*AM;m.x=v*Math.cos(x),m.y=v*Math.sin(x)}(isNaN(m.vx)||isNaN(m.vy))&&(m.vx=m.vy=0)}}function p(m){return m.initialize&&m.initialize(t,c),m}return t==null&&(t=[]),h(),n={tick:d,restart:function(){return u.restart(f),n},stop:function(){return u.stop(),n},nodes:function(m){return arguments.length?(t=m,h(),s.forEach(p),n):t},alpha:function(m){return arguments.length?(e=+m,n):e},alphaMin:function(m){return arguments.length?(r=+m,n):r},alphaDecay:function(m){return arguments.length?(i=+m,n):+i},alphaTarget:function(m){return arguments.length?(a=+m,n):a},velocityDecay:function(m){return arguments.length?(o=1-m,n):1-o},randomSource:function(m){return arguments.length?(c=m,s.forEach(p),n):c},force:function(m,g){return arguments.length>1?(g==null?s.delete(m):s.set(m,p(g)),n):s.get(m)},find:function(m,g,y){var v,x,b,w,A,_=0,k=t.length;for(y==null?y=1/0:y*=y,_=0;_<k;++_)(b=(v=m-(w=t[_]).x)*v+(x=g-w.y)*x)<y&&(A=w,y=b);return A},on:function(m,g){return arguments.length>1?(l.on(m,g),n):l.on(m)}}}const vD={center:function(t,n){var e,r=1;function i(){var a,o,s=e.length,u=0,l=0;for(a=0;a<s;++a)u+=(o=e[a]).x,l+=o.y;for(u=(u/s-t)*r,l=(l/s-n)*r,a=0;a<s;++a)(o=e[a]).x-=u,o.y-=l}return t==null&&(t=0),n==null&&(n=0),i.initialize=function(a){e=a},i.x=function(a){return arguments.length?(t=+a,i):t},i.y=function(a){return arguments.length?(n=+a,i):n},i.strength=function(a){return arguments.length?(r=+a,i):r},i},collide:function(t){var n,e,r,i=1,a=1;function o(){for(var l,c,f,d,h,p,m,g=n.length,y=0;y<a;++y)for(c=zg(n,yM,vM).visitAfter(s),l=0;l<g;++l)f=n[l],p=e[f.index],m=p*p,d=f.x+f.vx,h=f.y+f.vy,c.visit(v);function v(x,b,w,A,_){var k=x.data,D=x.r,C=p+D;if(!k)return b>d+C||A<d-C||w>h+C||_<h-C;if(k.index>f.index){var F=d-k.x-k.vx,E=h-k.y-k.vy,$=F*F+E*E;$<C*C&&(F===0&&($+=(F=ea(r))*F),E===0&&($+=(E=ea(r))*E),$=(C-($=Math.sqrt($)))/$*i,f.vx+=(F*=$)*(C=(D*=D)/(m+D)),f.vy+=(E*=$)*C,k.vx-=F*(C=1-C),k.vy-=E*C)}}}function s(l){if(l.data)return l.r=e[l.data.index];for(var c=l.r=0;c<4;++c)l[c]&&l[c].r>l.r&&(l.r=l[c].r)}function u(){if(n){var l,c,f=n.length;for(e=new Array(f),l=0;l<f;++l)c=n[l],e[c.index]=+t(c,l,n)}}return typeof t!="function"&&(t=ee(t==null?1:+t)),o.initialize=function(l,c){n=l,r=c,u()},o.iterations=function(l){return arguments.length?(a=+l,o):a},o.strength=function(l){return arguments.length?(i=+l,o):i},o.radius=function(l){return arguments.length?(t=typeof l=="function"?l:ee(+l),u(),o):t},o},nbody:function(){var t,n,e,r,i,a=ee(-30),o=1,s=1/0,u=.81;function l(h){var p,m=t.length,g=zg(t,xM,wM).visitAfter(f);for(r=h,p=0;p<m;++p)n=t[p],g.visit(d)}function c(){if(t){var h,p,m=t.length;for(i=new Array(m),h=0;h<m;++h)p=t[h],i[p.index]=+a(p,h,t)}}function f(h){var p,m,g,y,v,x=0,b=0;if(h.length){for(g=y=v=0;v<4;++v)(p=h[v])&&(m=Math.abs(p.value))&&(x+=p.value,b+=m,g+=m*p.x,y+=m*p.y);h.x=g/b,h.y=y/b}else{(p=h).x=p.data.x,p.y=p.data.y;do x+=i[p.data.index];while(p=p.next)}h.value=x}function d(h,p,m,g){if(!h.value)return!0;var y=h.x-n.x,v=h.y-n.y,x=g-p,b=y*y+v*v;if(x*x/u<b)return b<s&&(y===0&&(b+=(y=ea(e))*y),v===0&&(b+=(v=ea(e))*v),b<o&&(b=Math.sqrt(o*b)),n.vx+=y*h.value*r/b,n.vy+=v*h.value*r/b),!0;if(!(h.length||b>=s)){(h.data!==n||h.next)&&(y===0&&(b+=(y=ea(e))*y),v===0&&(b+=(v=ea(e))*v),b<o&&(b=Math.sqrt(o*b)));do h.data!==n&&(x=i[h.data.index]*r/b,n.vx+=y*x,n.vy+=v*x);while(h=h.next)}}return l.initialize=function(h,p){t=h,e=p,c()},l.strength=function(h){return arguments.length?(a=typeof h=="function"?h:ee(+h),c(),l):a},l.distanceMin=function(h){return arguments.length?(o=h*h,l):Math.sqrt(o)},l.distanceMax=function(h){return arguments.length?(s=h*h,l):Math.sqrt(s)},l.theta=function(h){return arguments.length?(u=h*h,l):Math.sqrt(u)},l},link:function(t){var n,e,r,i,a,o,s=bM,u=function(m){return 1/Math.min(i[m.source.index],i[m.target.index])},l=ee(30),c=1;function f(m){for(var g=0,y=t.length;g<c;++g)for(var v,x,b,w,A,_,k,D=0;D<y;++D)x=(v=t[D]).source,w=(b=v.target).x+b.vx-x.x-x.vx||ea(o),A=b.y+b.vy-x.y-x.vy||ea(o),w*=_=((_=Math.sqrt(w*w+A*A))-e[D])/_*m*n[D],A*=_,b.vx-=w*(k=a[D]),b.vy-=A*k,x.vx+=w*(k=1-k),x.vy+=A*k}function d(){if(r){var m,g,y=r.length,v=t.length,x=new Map(r.map((b,w)=>[s(b,w,r),b]));for(m=0,i=new Array(y);m<v;++m)(g=t[m]).index=m,typeof g.source!="object"&&(g.source=gD(x,g.source)),typeof g.target!="object"&&(g.target=gD(x,g.target)),i[g.source.index]=(i[g.source.index]||0)+1,i[g.target.index]=(i[g.target.index]||0)+1;for(m=0,a=new Array(v);m<v;++m)g=t[m],a[m]=i[g.source.index]/(i[g.source.index]+i[g.target.index]);n=new Array(v),h(),e=new Array(v),p()}}function h(){if(r)for(var m=0,g=t.length;m<g;++m)n[m]=+u(t[m],m,t)}function p(){if(r)for(var m=0,g=t.length;m<g;++m)e[m]=+l(t[m],m,t)}return t==null&&(t=[]),f.initialize=function(m,g){r=m,o=g,d()},f.links=function(m){return arguments.length?(t=m,d(),f):t},f.id=function(m){return arguments.length?(s=m,f):s},f.iterations=function(m){return arguments.length?(c=+m,f):c},f.strength=function(m){return arguments.length?(u=typeof m=="function"?m:ee(+m),h(),f):u},f.distance=function(m){return arguments.length?(l=typeof m=="function"?m:ee(+m),p(),f):l},f},x:function(t){var n,e,r,i=ee(.1);function a(s){for(var u,l=0,c=n.length;l<c;++l)(u=n[l]).vx+=(r[l]-u.x)*e[l]*s}function o(){if(n){var s,u=n.length;for(e=new Array(u),r=new Array(u),s=0;s<u;++s)e[s]=isNaN(r[s]=+t(n[s],s,n))?0:+i(n[s],s,n)}}return typeof t!="function"&&(t=ee(t==null?0:+t)),a.initialize=function(s){n=s,o()},a.strength=function(s){return arguments.length?(i=typeof s=="function"?s:ee(+s),o(),a):i},a.x=function(s){return arguments.length?(t=typeof s=="function"?s:ee(+s),o(),a):t},a},y:function(t){var n,e,r,i=ee(.1);function a(s){for(var u,l=0,c=n.length;l<c;++l)(u=n[l]).vy+=(r[l]-u.y)*e[l]*s}function o(){if(n){var s,u=n.length;for(e=new Array(u),r=new Array(u),s=0;s<u;++s)e[s]=isNaN(r[s]=+t(n[s],s,n))?0:+i(n[s],s,n)}}return typeof t!="function"&&(t=ee(t==null?0:+t)),a.initialize=function(s){n=s,o()},a.strength=function(s){return arguments.length?(i=typeof s=="function"?s:ee(+s),o(),a):i},a.y=function(s){return arguments.length?(t=typeof s=="function"?s:ee(+s),o(),a):t},a}},Tu="forces",Ng=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],kM=["static","iterations"],bD=["x","y","vx","vy"];function Rg(t){O.call(this,null,t)}function xD(t,n,e,r){var i,a,o,s,u=J(n.forces);for(i=0,a=Ng.length;i<a;++i)(o=Ng[i])!==Tu&&n.modified(o)&&t[o](n[o]);for(i=0,a=u.length;i<a;++i)s=Tu+i,(o=e||n.modified(Tu,i)?FM(u[i]):r&&DM(u[i],r)?t.force(s):null)&&t.force(s,o);for(a=t.numForces||0;i<a;++i)t.force(Tu+i,null);return t.numForces=u.length,t}function DM(t,n){var e,r;for(e in t)if(bt(r=t[e])&&n.modified(Wn(r)))return 1;return 0}function FM(t){var n,e;for(e in tt(vD,t.force)||P("Unrecognized force: "+t.force),n=vD[t.force](),t)bt(n[e])&&CM(n[e],t[e],t);return n}function CM(t,n,e){t(bt(n)?r=>n(r,e):n)}Rg.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:bD}]},V(Rg,O,{transform(t,n){var e,r,i=this.value,a=n.changed(n.ADD_REM),o=t.modified(Ng),s=t.iterations||300;if(i?(a&&(n.modifies("index"),i.nodes(n.source)),(o||n.changed(n.MOD))&&xD(i,t,0,n)):(this.value=i=function(u,l){const c=_M(u),f=c.stop,d=c.restart;let h=!1;return c.stopped=()=>h,c.restart=()=>(h=!1,d()),c.stop=()=>(h=!0,f()),xD(c,l,!0).on("end",()=>h=!0)}(n.source,t),i.on("tick",(e=n.dataflow,r=this,()=>e.touch(r).run())),t.static||(a=!0,i.tick()),n.modifies("index")),o||a||t.modified(kM)||n.changed()&&t.restart){if(i.alpha(Math.max(i.alpha(),t.alpha||1)).alphaDecay(1-Math.pow(i.alphaMin(),1/s)),t.static)for(i.stop();--s>=0;)i.tick();else if(i.stopped()&&i.restart(),!a)return n.StopPropagation}return this.finish(t,n)},finish(t,n){const e=n.dataflow;for(let s,u=this._argops,l=0,c=u.length;l<c;++l)if(s=u[l],s.name===Tu&&s.op._argval.force==="link"){for(var r,i=s.op._argops,a=0,o=i.length;a<o;++a)if(i[a].name==="links"&&(r=i[a].op.source)){e.pulse(r,e.changeset().reflow());break}}return n.reflow(t.modified()).modifies(bD)}});const EM=Object.freeze(Object.defineProperty({__proto__:null,force:Rg},Symbol.toStringTag,{value:"Module"}));function $M(t,n){return t.parent===n.parent?1:2}function SM(t,n){return t+n.x}function MM(t,n){return Math.max(t,n.y)}const wD=4294967296;function BM(t,n){var e,r;if(Tg(n,t))return[n];for(e=0;e<t.length;++e)if(If(n,t[e])&&Tg(Pu(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(If(Pu(t[e],t[r]),n)&&If(Pu(t[e],n),t[r])&&If(Pu(t[r],n),t[e])&&Tg(_D(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}function If(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function AD(t,n){var e=t.r-n.r+1e-9*Math.max(t.r,n.r,1),r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function Tg(t,n){for(var e=0;e<n.length;++e)if(!AD(t,n[e]))return!1;return!0}function zM(t){switch(t.length){case 1:return function(n){return{x:n.x,y:n.y,r:n.r}}(t[0]);case 2:return Pu(t[0],t[1]);case 3:return _D(t[0],t[1],t[2])}}function Pu(t,n){var e=t.x,r=t.y,i=t.r,a=n.x,o=n.y,s=n.r,u=a-e,l=o-r,c=s-i,f=Math.sqrt(u*u+l*l);return{x:(e+a+u/f*c)/2,y:(r+o+l/f*c)/2,r:(f+i+s)/2}}function _D(t,n,e){var r=t.x,i=t.y,a=t.r,o=n.x,s=n.y,u=n.r,l=e.x,c=e.y,f=e.r,d=r-o,h=r-l,p=i-s,m=i-c,g=u-a,y=f-a,v=r*r+i*i-a*a,x=v-o*o-s*s+u*u,b=v-l*l-c*c+f*f,w=h*p-d*m,A=(p*b-m*x)/(2*w)-r,_=(m*g-p*y)/w,k=(h*x-d*b)/(2*w)-i,D=(d*y-h*g)/w,C=_*_+D*D-1,F=2*(a+A*_+k*D),E=A*A+k*k-a*a,$=-(Math.abs(C)>1e-6?(F+Math.sqrt(F*F-4*C*E))/(2*C):E/F);return{x:r+A+_*$,y:i+k+D*$,r:$}}function kD(t,n,e){var r,i,a,o,s=t.x-n.x,u=t.y-n.y,l=s*s+u*u;l?(i=n.r+e.r,i*=i,o=t.r+e.r,i>(o*=o)?(r=(l+o-i)/(2*l),a=Math.sqrt(Math.max(0,o/l-r*r)),e.x=t.x-r*s-a*u,e.y=t.y-r*u+a*s):(r=(l+i-o)/(2*l),a=Math.sqrt(Math.max(0,i/l-r*r)),e.x=n.x+r*s-a*u,e.y=n.y+r*u+a*s)):(e.x=n.x+e.r,e.y=n.y)}function DD(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function FD(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,a=(n.y*e.r+e.y*n.r)/r;return i*i+a*a}function Wf(t){this._=t,this.next=null,this.previous=null}function OM(t,n){if(!(a=(t=function(h){return typeof h=="object"&&"length"in h?h:Array.from(h)}(t)).length))return 0;var e,r,i,a,o,s,u,l,c,f,d;if((e=t[0]).x=0,e.y=0,!(a>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(a>2))return e.r+r.r;kD(r,e,i=t[2]),e=new Wf(e),r=new Wf(r),i=new Wf(i),e.next=i.previous=r,r.next=e.previous=i,i.next=r.previous=e;t:for(u=3;u<a;++u){kD(e._,r._,i=t[u]),i=new Wf(i),l=r.next,c=e.previous,f=r._.r,d=e._.r;do if(f<=d){if(DD(l._,i._)){r=l,e.next=r,r.previous=e,--u;continue t}f+=l._.r,l=l.next}else{if(DD(c._,i._)){(e=c).next=r,r.previous=e,--u;continue t}d+=c._.r,c=c.previous}while(l!==c.next);for(i.previous=e,i.next=r,e.next=r.previous=r=i,o=FD(e);(i=i.next)!==r;)(s=FD(i))<o&&(e=i,o=s);r=e.next}for(e=[r._],i=r;(i=i.next)!==r;)e.push(i._);for(i=function(h,p){for(var m,g,y=0,v=(h=function(b,w){let A,_,k=b.length;for(;k;)_=w()*k--|0,A=b[k],b[k]=b[_],b[_]=A;return b}(Array.from(h),p)).length,x=[];y<v;)m=h[y],g&&AD(g,m)?++y:(g=zM(x=BM(x,m)),y=0);return g}(e,n),u=0;u<a;++u)(e=t[u]).x-=i.x,e.y-=i.y;return i.r}function NM(t){return Math.sqrt(t.value)}function CD(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Pg(t,n,e){return function(r){if(i=r.children){var i,a,o,s=i.length,u=t(r)*n||0;if(u)for(a=0;a<s;++a)i[a].r+=u;if(o=OM(i,e),u)for(a=0;a<s;++a)i[a].r-=u;r.r=o+u}}}function ED(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}var RM={depth:-1},$D={},jg={};function TM(t){return t.id}function PM(t){return t.parentId}function SD(){var t,n=TM,e=PM;function r(i){var a,o,s,u,l,c,f,d,h=Array.from(i),p=n,m=e,g=new Map;if(t!=null){const y=h.map((b,w)=>function(A){A=`${A}`;let _=A.length;return Lg(A,_-1)&&!Lg(A,_-2)&&(A=A.slice(0,-1)),A[0]==="/"?A:`/${A}`}(t(b,w,i))),v=y.map(MD),x=new Set(y).add("");for(const b of v)x.has(b)||(x.add(b),y.push(b),v.push(MD(b)),h.push(jg));p=(b,w)=>y[w],m=(b,w)=>v[w]}for(s=0,a=h.length;s<a;++s)o=h[s],c=h[s]=new Ux(o),(f=p(o,s,i))!=null&&(f+="")&&(d=c.id=f,g.set(d,g.has(d)?$D:c)),(f=m(o,s,i))!=null&&(f+="")&&(c.parent=f);for(s=0;s<a;++s)if(f=(c=h[s]).parent){if(!(l=g.get(f)))throw new Error("missing: "+f);if(l===$D)throw new Error("ambiguous: "+f);l.children?l.children.push(c):l.children=[c],c.parent=l}else{if(u)throw new Error("multiple roots");u=c}if(!u)throw new Error("no root");if(t!=null){for(;u.data===jg&&u.children.length===1;)u=u.children[0],--a;for(let y=h.length-1;y>=0&&(c=h[y]).data===jg;--y)c.data=null}if(u.parent=RM,u.eachBefore(function(y){y.depth=y.parent.depth+1,--a}).eachBefore(X8),u.parent=null,a>0)throw new Error("cycle");return u}return r.id=function(i){return arguments.length?(n=Xl(i),r):n},r.parentId=function(i){return arguments.length?(e=Xl(i),r):e},r.path=function(i){return arguments.length?(t=Xl(i),r):t},r}function MD(t){let n=t.length;if(n<2)return"";for(;--n>1&&!Lg(t,n););return t.slice(0,n)}function Lg(t,n){if(t[n]==="/"){let e=0;for(;n>0&&t[--n]==="\\";)++e;if(!(1&e))return!0}return!1}function jM(t,n){return t.parent===n.parent?1:2}function qg(t){var n=t.children;return n?n[0]:t.t}function Ug(t){var n=t.children;return n?n[n.length-1]:t.t}function LM(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function qM(t,n,e){return t.a.parent===n.parent?t.a:e}function Hf(t,n){this._=t,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=n}Hf.prototype=Object.create(Ux.prototype);const UM=function t(n){function e(r,i,a,o,s){if((u=r._squarify)&&u.ratio===n)for(var u,l,c,f,d,h=-1,p=u.length,m=r.value;++h<p;){for(c=(l=u[h]).children,f=l.value=0,d=c.length;f<d;++f)l.value+=c[f].value;l.dice?Jl(l,i,a,o,m?a+=(s-a)*l.value/m:s):hp(l,i,a,m?i+=(o-i)*l.value/m:o,s),m-=l.value}else r._squarify=u=J8(n,r,i,a,o,s),u.ratio=n}return e.ratio=function(r){return t((r=+r)>1?r:1)},e}(K8);function Ig(t,n,e){const r={};return t.each(i=>{const a=i.data;e(a)&&(r[n(a)]=i)}),t.lookup=r,t}function Wg(t){O.call(this,null,t)}Wg.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const IM=t=>t.values;function WM(){const t=[],n={entries:i=>r(e(i,0),0),key:i=>(t.push(i),n)};function e(i,a){if(a>=t.length)return i;const o=i.length,s=t[a++],u={},l={};let c,f,d,h=-1;for(;++h<o;)c=s(f=i[h])+"",(d=u[c])?d.push(f):u[c]=[f];for(c in u)l[c]=e(u[c],a);return l}function r(i,a){if(++a>t.length)return i;const o=[];for(const s in i)o.push({key:s,values:r(i[s],a)});return o}return n}function di(t){O.call(this,null,t)}V(Wg,O,{transform(t,n){n.source||P("Nest transform requires an upstream data source.");var e=t.generate,r=t.modified(),i=n.clone(),a=this.value;return(!a||r||n.changed())&&(a&&a.each(o=>{o.children&&Zl(o.data)&&i.rem.push(o.data)}),this.value=a=Q8({values:J(t.keys).reduce((o,s)=>(o.key(s),o),WM()).entries(i.source)},IM),e&&a.each(o=>{o.children&&(o=St(o.data),i.add.push(o),i.source.push(o))}),Ig(a,st,st)),i.source.root=a,i}});const HM=(t,n)=>t.parent===n.parent?1:2;V(di,O,{transform(t,n){n.source&&n.source.root||P(this.constructor.name+" transform requires a backing tree data source.");const e=this.layout(t.method),r=this.fields,i=n.source.root,a=t.as||r;t.field?i.sum(t.field):i.count(),t.sort&&i.sort(Sa(t.sort,o=>o.data)),function(o,s,u){for(let l,c=0,f=s.length;c<f;++c)l=s[c],l in u&&o[l](u[l])}(e,this.params,t),e.separation&&e.separation(t.separation!==!1?HM:Is);try{this.value=e(i)}catch(o){P(o)}return i.each(o=>function(s,u,l){const c=s.data,f=u.length-1;for(let d=0;d<f;++d)c[l[d]]=s[u[d]];c[l[f]]=s.children?s.children.length:0}(o,r,a)),n.reflow(t.modified()).modifies(a).modifies("leaf")}});const Hg=["x","y","r","depth","children"];function Gg(t){di.call(this,t)}Gg.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:Hg.length,default:Hg}]},V(Gg,di,{layout:function(){var t=null,n=1,e=1,r=qx;function i(a){const o=function(){let s=1;return()=>(s=(1664525*s+1013904223)%wD)/wD}();return a.x=n/2,a.y=e/2,t?a.eachBefore(CD(t)).eachAfter(Pg(r,.5,o)).eachBefore(ED(1)):a.eachBefore(CD(NM)).eachAfter(Pg(qx,1,o)).eachAfter(Pg(r,a.r/Math.min(n,e),o)).eachBefore(ED(Math.min(n,e)/(2*a.r))),a}return i.radius=function(a){return arguments.length?(t=Xl(a),i):t},i.size=function(a){return arguments.length?(n=+a[0],e=+a[1],i):[n,e]},i.padding=function(a){return arguments.length?(r=typeof a=="function"?a:V8(+a),i):r},i},params:["radius","size","padding"],fields:Hg});const Vg=["x0","y0","x1","y1","depth","children"];function Yg(t){di.call(this,t)}function Xg(t){O.call(this,null,t)}Yg.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:Vg.length,default:Vg}]},V(Yg,di,{layout:function(){var t=1,n=1,e=0,r=!1;function i(a){var o=a.height+1;return a.x0=a.y0=e,a.x1=t,a.y1=n/o,a.eachBefore(function(s,u){return function(l){l.children&&Jl(l,l.x0,s*(l.depth+1)/u,l.x1,s*(l.depth+2)/u);var c=l.x0,f=l.y0,d=l.x1-e,h=l.y1-e;d<c&&(c=d=(c+d)/2),h<f&&(f=h=(f+h)/2),l.x0=c,l.y0=f,l.x1=d,l.y1=h}}(n,o)),r&&a.eachBefore(Y8),a}return i.round=function(a){return arguments.length?(r=!!a,i):r},i.size=function(a){return arguments.length?(t=+a[0],n=+a[1],i):[t,n]},i.padding=function(a){return arguments.length?(e=+a,i):e},i},params:["size","round","padding"],fields:Vg}),Xg.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},V(Xg,O,{transform(t,n){n.source||P("Stratify transform requires an upstream data source.");let e=this.value;const r=t.modified(),i=n.fork(n.ALL).materialize(n.SOURCE),a=!e||r||n.changed(n.ADD_REM)||n.modified(t.key.fields)||n.modified(t.parentKey.fields);return i.source=i.source.slice(),a&&(e=i.source.length?Ig(SD().id(t.key).parentId(t.parentKey)(i.source),t.key,Be):Ig(SD()([{}]),t.key,t.key)),i.source.root=this.value=e,i}});const BD={tidy:function(){var t=jM,n=1,e=1,r=null;function i(u){var l=function(y){for(var v,x,b,w,A,_=new Hf(y,0),k=[_];v=k.pop();)if(b=v._.children)for(v.children=new Array(A=b.length),w=A-1;w>=0;--w)k.push(x=v.children[w]=new Hf(b[w],w)),x.parent=v;return(_.parent=new Hf(null,0)).children=[_],_}(u);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),r)u.eachBefore(s);else{var c=u,f=u,d=u;u.eachBefore(function(y){y.x<c.x&&(c=y),y.x>f.x&&(f=y),y.depth>d.depth&&(d=y)});var h=c===f?1:t(c,f)/2,p=h-c.x,m=n/(f.x+h+p),g=e/(d.depth||1);u.eachBefore(function(y){y.x=(y.x+p)*m,y.y=y.depth*g})}return u}function a(u){var l=u.children,c=u.parent.children,f=u.i?c[u.i-1]:null;if(l){(function(h){for(var p,m=0,g=0,y=h.children,v=y.length;--v>=0;)(p=y[v]).z+=m,p.m+=m,m+=p.s+(g+=p.c)})(u);var d=(l[0].z+l[l.length-1].z)/2;f?(u.z=f.z+t(u._,f._),u.m=u.z-d):u.z=d}else f&&(u.z=f.z+t(u._,f._));u.parent.A=function(h,p,m){if(p){for(var g,y=h,v=h,x=p,b=y.parent.children[0],w=y.m,A=v.m,_=x.m,k=b.m;x=Ug(x),y=qg(y),x&&y;)b=qg(b),(v=Ug(v)).a=h,(g=x.z+_-y.z-w+t(x._,y._))>0&&(LM(qM(x,h,m),h,g),w+=g,A+=g),_+=x.m,w+=y.m,k+=b.m,A+=v.m;x&&!Ug(v)&&(v.t=x,v.m+=_-A),y&&!qg(b)&&(b.t=y,b.m+=w-k,m=h)}return m}(u,f,u.parent.A||c[0])}function o(u){u._.x=u.z+u.parent.m,u.m+=u.parent.m}function s(u){u.x*=n,u.y=u.depth*e}return i.separation=function(u){return arguments.length?(t=u,i):t},i.size=function(u){return arguments.length?(r=!1,n=+u[0],e=+u[1],i):r?null:[n,e]},i.nodeSize=function(u){return arguments.length?(r=!0,n=+u[0],e=+u[1],i):r?[n,e]:null},i},cluster:function(){var t=$M,n=1,e=1,r=!1;function i(a){var o,s=0;a.eachAfter(function(d){var h=d.children;h?(d.x=function(p){return p.reduce(SM,0)/p.length}(h),d.y=function(p){return 1+p.reduce(MM,0)}(h)):(d.x=o?s+=t(d,o):0,d.y=0,o=d)});var u=function(d){for(var h;h=d.children;)d=h[0];return d}(a),l=function(d){for(var h;h=d.children;)d=h[h.length-1];return d}(a),c=u.x-t(u,l)/2,f=l.x+t(l,u)/2;return a.eachAfter(r?function(d){d.x=(d.x-a.x)*n,d.y=(a.y-d.y)*e}:function(d){d.x=(d.x-c)/(f-c)*n,d.y=(1-(a.y?d.y/a.y:1))*e})}return i.separation=function(a){return arguments.length?(t=a,i):t},i.size=function(a){return arguments.length?(r=!1,n=+a[0],e=+a[1],i):r?null:[n,e]},i.nodeSize=function(a){return arguments.length?(r=!0,n=+a[0],e=+a[1],i):r?[n,e]:null},i}},Jg=["x","y","depth","children"];function Kg(t){di.call(this,t)}function Qg(t){O.call(this,[],t)}Kg.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:Jg.length,default:Jg}]},V(Kg,di,{layout(t){const n=t||"tidy";if(tt(BD,n))return BD[n]();P("Unrecognized Tree layout method: "+n)},params:["size","nodeSize"],fields:Jg}),Qg.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},V(Qg,O,{transform(t,n){const e=this.value,r=n.source&&n.source.root,i=n.fork(n.NO_SOURCE),a={};return r||P("TreeLinks transform requires a tree data source."),n.changed(n.ADD_REM)?(i.rem=e,n.visit(n.SOURCE,o=>a[st(o)]=1),r.each(o=>{const s=o.data,u=o.parent&&o.parent.data;u&&a[st(s)]&&a[st(u)]&&i.add.push(St({source:u,target:s}))}),this.value=i.add):n.changed(n.MOD)&&(n.visit(n.MOD,o=>a[st(o)]=1),e.forEach(o=>{(a[st(o.source)]||a[st(o.target)])&&i.mod.push(o)})),i}});const zD={binary:function(t,n,e,r,i){var a,o,s=t.children,u=s.length,l=new Array(u+1);for(l[0]=o=a=0;a<u;++a)l[a+1]=o+=s[a].value;(function c(f,d,h,p,m,g,y){if(f>=d-1){var v=s[f];return v.x0=p,v.y0=m,v.x1=g,void(v.y1=y)}for(var x=l[f],b=h/2+x,w=f+1,A=d-1;w<A;){var _=w+A>>>1;l[_]<b?w=_+1:A=_}b-l[w-1]<l[w]-b&&f+1<w&&--w;var k=l[w]-x,D=h-k;if(g-p>y-m){var C=h?(p*D+g*k)/h:g;c(f,w,k,p,m,C,y),c(w,d,D,C,m,g,y)}else{var F=h?(m*D+y*k)/h:y;c(f,w,k,p,m,g,F),c(w,d,D,p,F,g,y)}})(0,u,t.value,n,e,r,i)},dice:Jl,slice:hp,slicedice:function(t,n,e,r,i){(1&t.depth?hp:Jl)(t,n,e,r,i)},squarify:t9,resquarify:UM},Zg=["x0","y0","x1","y1","depth","children"];function t1(t){di.call(this,t)}t1.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:Zg.length,default:Zg}]},V(t1,di,{layout(){const t=Z8();return t.ratio=n=>{const e=t.tile();e.ratio&&t.tile(e.ratio(n))},t.method=n=>{tt(zD,n)?t.tile(zD[n]):P("Unrecognized Treemap layout method: "+n)},t},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:Zg});const GM=Object.freeze(Object.defineProperty({__proto__:null,nest:Wg,pack:Gg,partition:Yg,stratify:Xg,tree:Kg,treelinks:Qg,treemap:t1},Symbol.toStringTag,{value:"Module"})),n1=4278190080;function e1(t,n,e){return new Uint32Array(t.getImageData(0,0,n,e).data.buffer)}function Gf(t,n,e){if(!n.length)return;const r=n[0].mark.marktype;r==="group"?n.forEach(i=>{i.items.forEach(a=>Gf(t,a.items,e))}):Ae[r].draw(t,{items:e?n.map(VM):n})}function VM(t){const n=tc(t,{});return n.stroke&&n.strokeOpacity!==0||n.fill&&n.fillOpacity!==0?{...n,strokeOpacity:1,stroke:"#000",fillOpacity:0}:n}const re=31,ra=new Uint32Array(33),rr=new Uint32Array(33);rr[0]=0,ra[0]=~rr[0];for(let t=1;t<=32;++t)rr[t]=rr[t-1]<<1|1,ra[t]=~rr[t];function YM(t,n,e){const r=Math.max(1,Math.sqrt(t*n/1e6)),i=~~((t+2*e+r)/r),a=~~((n+2*e+r)/r),o=s=>~~((s+e)/r);return o.invert=s=>s*r-e,o.bitmap=()=>function(s,u){const l=new Uint32Array(~~((s*u+32)/32));function c(d,h){l[d]|=h}function f(d,h){l[d]&=h}return{array:l,get:(d,h)=>{const p=h*s+d;return l[p>>>5]&1<<(p&re)},set:(d,h)=>{const p=h*s+d;c(p>>>5,1<<(p&re))},clear:(d,h)=>{const p=h*s+d;f(p>>>5,~(1<<(p&re)))},getRange:(d,h,p,m)=>{let g,y,v,x,b=m;for(;b>=h;--b)if(g=b*s+d,y=b*s+p,v=g>>>5,x=y>>>5,v===x){if(l[v]&ra[g&re]&rr[1+(y&re)])return!0}else{if(l[v]&ra[g&re]||l[x]&rr[1+(y&re)])return!0;for(let w=v+1;w<x;++w)if(l[w])return!0}return!1},setRange:(d,h,p,m)=>{let g,y,v,x,b;for(;h<=m;++h)if(g=h*s+d,y=h*s+p,v=g>>>5,x=y>>>5,v===x)c(v,ra[g&re]&rr[1+(y&re)]);else for(c(v,ra[g&re]),c(x,rr[1+(y&re)]),b=v+1;b<x;++b)c(b,4294967295)},clearRange:(d,h,p,m)=>{let g,y,v,x,b;for(;h<=m;++h)if(g=h*s+d,y=h*s+p,v=g>>>5,x=y>>>5,v===x)f(v,rr[g&re]|ra[1+(y&re)]);else for(f(v,rr[g&re]),f(x,ra[1+(y&re)]),b=v+1;b<x;++b)f(b,0)},outOfBounds:(d,h,p,m)=>d<0||h<0||m>=u||p>=s}}(i,a),o.ratio=r,o.padding=e,o.width=t,o.height=n,o}function Vf(t,n,e,r,i,a){let o=e/2;return t-o<0||t+o>i||n-(o=r/2)<0||n+o>a}function ia(t,n,e,r,i,a,o,s){const u=i*a/(2*r),l=t(n-u),c=t(n+u),f=t(e-(a/=2)),d=t(e+a);return o.outOfBounds(l,f,c,d)||o.getRange(l,f,c,d)||s&&s.getRange(l,f,c,d)}const XM=[-1,-1,1,1],JM=[-1,1,-1,1],KM=["right","center","left"],QM=["bottom","middle","top"];function OD(t,n,e,r,i,a,o,s,u,l,c,f){return!(i.outOfBounds(t,e,n,r)||(f&&a||i).getRange(t,e,n,r))}const ZM={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},tB={naive:function(t,n,e,r){const i=t.width,a=t.height;return function(o){const s=o.datum.datum.items[r].items,u=s.length,l=o.datum.fontSize,c=we.width(o.datum,o.datum.text);let f,d,h,p,m,g,y,v=0;for(let x=0;x<u;++x)f=s[x].x,h=s[x].y,d=s[x].x2===void 0?f:s[x].x2,p=s[x].y2===void 0?h:s[x].y2,m=(f+d)/2,g=(h+p)/2,y=Math.abs(d-f+p-h),y>=v&&(v=y,o.x=m,o.y=g);return m=c/2,g=l/2,f=o.x-m,d=o.x+m,h=o.y-g,p=o.y+g,o.align="center",f<0&&d<=i?o.align="left":0<=f&&i<d&&(o.align="right"),o.baseline="middle",h<0&&p<=a?o.baseline="top":0<=h&&a<p&&(o.baseline="bottom"),!0}},"reduced-search":function(t,n,e,r){const i=t.width,a=t.height,o=n[0],s=n[1];function u(l,c,f,d,h){const p=t.invert(l),m=t.invert(c);let g,y=f,v=a;if(!Vf(p,m,d,h,i,a)&&!ia(t,p,m,h,d,y,o,s)&&!ia(t,p,m,h,d,h,o,null)){for(;v-y>=1;)g=(y+v)/2,ia(t,p,m,h,d,g,o,s)?v=g:y=g;if(y>f)return[p,m,y,!0]}}return function(l){const c=l.datum.datum.items[r].items,f=c.length,d=l.datum.fontSize,h=we.width(l.datum,l.datum.text);let p,m,g,y,v,x,b,w,A,_,k,D,C,F,E,$,M,S=e?d:0,B=!1,z=!1,j=0;for(let W=0;W<f;++W){for(p=c[W].x,g=c[W].y,m=c[W].x2===void 0?p:c[W].x2,y=c[W].y2===void 0?g:c[W].y2,p>m&&(M=p,p=m,m=M),g>y&&(M=g,g=y,y=M),A=t(p),k=t(m),_=~~((A+k)/2),D=t(g),F=t(y),C=~~((D+F)/2),b=_;b>=A;--b)for(w=C;w>=D;--w)$=u(b,w,S,h,d),$&&([l.x,l.y,S,B]=$);for(b=_;b<=k;++b)for(w=C;w<=F;++w)$=u(b,w,S,h,d),$&&([l.x,l.y,S,B]=$);B||e||(E=Math.abs(m-p+y-g),v=(p+m)/2,x=(g+y)/2,E>=j&&!Vf(v,x,h,d,i,a)&&!ia(t,v,x,d,h,d,o,null)&&(j=E,l.x=v,l.y=x,z=!0))}return!(!B&&!z)&&(v=h/2,x=d/2,o.setRange(t(l.x-v),t(l.y-x),t(l.x+v),t(l.y+x)),l.align="center",l.baseline="middle",!0)}},floodfill:function(t,n,e,r){const i=t.width,a=t.height,o=n[0],s=n[1],u=t.bitmap();return function(l){const c=l.datum.datum.items[r].items,f=c.length,d=l.datum.fontSize,h=we.width(l.datum,l.datum.text),p=[];let m,g,y,v,x,b,w,A,_,k,D,C,F=e?d:0,E=!1,$=!1,M=0;for(let S=0;S<f;++S){for(m=c[S].x,y=c[S].y,g=c[S].x2===void 0?m:c[S].x2,v=c[S].y2===void 0?y:c[S].y2,p.push([t((m+g)/2),t((y+v)/2)]);p.length;)if([w,A]=p.pop(),!(o.get(w,A)||s.get(w,A)||u.get(w,A))){u.set(w,A);for(let B=0;B<4;++B)x=w+XM[B],b=A+JM[B],u.outOfBounds(x,b,x,b)||p.push([x,b]);if(x=t.invert(w),b=t.invert(A),_=F,k=a,!Vf(x,b,h,d,i,a)&&!ia(t,x,b,d,h,_,o,s)&&!ia(t,x,b,d,h,d,o,null)){for(;k-_>=1;)D=(_+k)/2,ia(t,x,b,d,h,D,o,s)?k=D:_=D;_>F&&(l.x=x,l.y=b,F=_,E=!0)}}E||e||(C=Math.abs(g-m+v-y),x=(m+g)/2,b=(y+v)/2,C>=M&&!Vf(x,b,h,d,i,a)&&!ia(t,x,b,d,h,d,o,null)&&(M=C,l.x=x,l.y=b,$=!0))}return!(!E&&!$)&&(x=h/2,b=d/2,o.setRange(t(l.x-x),t(l.y-b),t(l.x+x),t(l.y+b)),l.align="center",l.baseline="middle",!0)}}};function nB(t,n,e,r,i,a,o,s,u,l,c){if(!t.length)return t;const f=Math.max(r.length,i.length),d=function(F,E){const $=new Float64Array(E),M=F.length;for(let S=0;S<M;++S)$[S]=F[S]||0;for(let S=M;S<E;++S)$[S]=$[M-1];return $}(r,f),h=function(F,E){const $=new Int8Array(E),M=F.length;for(let S=0;S<M;++S)$[S]|=ZM[F[S]];for(let S=M;S<E;++S)$[S]=$[M-1];return $}(i,f),p=(b=t[0].datum)&&b.mark&&b.mark.marktype,m=p==="group"&&t[0].datum.items[u].marktype,g=m==="area",y=function(F,E,$,M){const S=B=>[B.x,B.x,B.x,B.y,B.y,B.y];return F?F==="line"||F==="area"?B=>S(B.datum):E==="line"?B=>{const z=B.datum.items[M].items;return S(z.length?z[$==="start"?0:z.length-1]:{x:NaN,y:NaN})}:B=>{const z=B.datum.bounds;return[z.x1,(z.x1+z.x2)/2,z.x2,z.y1,(z.y1+z.y2)/2,z.y2]}:S}(p,m,s,u),v=l===null||l===1/0,x=g&&c==="naive";var b;let w=-1,A=-1;const _=t.map(F=>{const E=v?we.width(F,F.text):void 0;return w=Math.max(w,E),A=Math.max(A,F.fontSize),{datum:F,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(F),textWidth:E}});l=l===null||l===1/0?Math.max(w,A)+Math.max(...r):l;const k=YM(n[0],n[1],l);let D;if(!x){e&&_.sort(($,M)=>e($.datum,M.datum));let F=!1;for(let $=0;$<h.length&&!F;++$)F=h[$]===5||d[$]<0;const E=(p&&o||g)&&t.map($=>$.datum);D=a.length||E?function($,M,S,B,z){const j=$.width,W=$.height,K=B||z,q=qi(j,W).getContext("2d"),at=qi(j,W).getContext("2d"),ot=K&&qi(j,W).getContext("2d");S.forEach(ti=>Gf(q,ti,!1)),Gf(at,M,!1),K&&Gf(ot,M,!0);const it=e1(q,j,W),mt=e1(at,j,W),pt=K&&e1(ot,j,W),X=$.bitmap(),Mt=K&&$.bitmap();let Tt,kt,Et,tn,nn,It,be,zn;for(kt=0;kt<W;++kt)for(Tt=0;Tt<j;++Tt)nn=kt*j+Tt,It=it[nn]&n1,zn=mt[nn]&n1,be=K&&pt[nn]&n1,(It||be||zn)&&(Et=$(Tt),tn=$(kt),z||!It&&!zn||X.set(Et,tn),K&&(It||be)&&Mt.set(Et,tn));return[X,Mt]}(k,E||[],a,F,g):function($,M){const S=$.bitmap();return(M||[]).forEach(B=>S.set($(B.boundary[0]),$(B.boundary[3]))),[S,void 0]}(k,o&&_)}const C=g?tB[c](k,D,o,u):function(F,E,$,M){const S=F.width,B=F.height,z=E[0],j=E[1],W=M.length;return function(K){const q=K.boundary,at=K.datum.fontSize;if(q[2]<0||q[5]<0||q[0]>S||q[3]>B)return!1;let ot,it,mt,pt,X,Mt,Tt,kt,Et,tn,nn,It,be,zn,ti,Je=K.textWidth??0;for(let Se=0;Se<W;++Se){if(ot=(3&$[Se])-1,it=($[Se]>>>2&3)-1,mt=ot===0&&it===0||M[Se]<0,pt=ot&&it?Math.SQRT1_2:1,X=M[Se]<0?-1:1,Mt=q[1+ot]+M[Se]*ot*pt,nn=q[4+it]+X*at*it/2+M[Se]*it*pt,kt=nn-at/2,Et=nn+at/2,It=F(Mt),zn=F(kt),ti=F(Et),!Je){if(!OD(It,It,zn,ti,z,j,0,0,0,0,0,mt))continue;Je=we.width(K.datum,K.datum.text)}if(tn=Mt+X*Je*ot/2,Mt=tn-Je/2,Tt=tn+Je/2,It=F(Mt),be=F(Tt),OD(It,be,zn,ti,z,j,0,0,0,0,0,mt))return K.x=ot?ot*X<0?Tt:Mt:tn,K.y=it?it*X<0?Et:kt:nn,K.align=KM[ot*X+1],K.baseline=QM[it*X+1],z.setRange(It,zn,be,ti),!0}return!1}}(k,D,h,d);return _.forEach(F=>F.opacity=+C(F)),_}const r1=["x","y","opacity","align","baseline"],ND=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function i1(t){O.call(this,null,t)}i1.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:ND},{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:r1.length,default:r1}]},V(i1,O,{transform(t,n){const e=t.modified();if(!(e||n.changed(n.ADD_REM)||function(i){const a=t[i];return bt(a)&&n.modified(a.fields)}("sort")))return;t.size&&t.size.length===2||P("Size parameter should be specified as a [width, height] array.");const r=t.as||r1;return nB(n.materialize(n.SOURCE).source||[],t.size,t.sort,J(t.offset==null?1:t.offset),J(t.anchor||ND),t.avoidMarks||[],t.avoidBaseMark!==!1,t.lineAnchor||"end",t.markIndex||0,t.padding===void 0?0:t.padding,t.method||"naive").forEach(i=>{const a=i.datum;a[r[0]]=i.x,a[r[1]]=i.y,a[r[2]]=i.opacity,a[r[3]]=i.align,a[r[4]]=i.baseline}),n.reflow(e).modifies(r)}});const eB=Object.freeze(Object.defineProperty({__proto__:null,label:i1},Symbol.toStringTag,{value:"Module"}));function RD(t,n){var e,r,i,a,o,s,u=[],l=function(c){return c(a)};if(n==null)u.push(t);else for(e={},r=0,i=t.length;r<i;++r)a=t[r],(s=e[o=n.map(l)])||(e[o]=s=[],s.dims=o,u.push(s)),s.push(a);return u}function a1(t){O.call(this,null,t)}a1.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}]},V(a1,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=RD(n.materialize(n.SOURCE).source,t.groupby),i=(t.groupby||[]).map(en),a=i.length,o=t.as||[en(t.x),en(t.y)],s=[];r.forEach(u=>{y2(u,t.x,t.y,t.bandwidth||.3).forEach(l=>{const c={};for(let f=0;f<a;++f)c[i[f]]=u.dims[f];c[o[0]]=l[0],c[o[1]]=l[1],s.push(St(c))})}),this.value&&(e.rem=this.value),this.value=e.add=e.source=s}return e}});const o1={constant:zp,linear:Op,log:h2,exp:p2,pow:m2,quad:Np,poly:g2};function s1(t){O.call(this,null,t)}s1.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(o1)},{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}]},V(s1,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=RD(n.materialize(n.SOURCE).source,t.groupby),i=(t.groupby||[]).map(en),a=t.method||"linear",o=t.order==null?3:t.order,s=((d,h)=>d==="poly"?h:d==="quad"?2:1)(a,o),u=t.as||[en(t.x),en(t.y)],l=o1[a],c=[];let f=t.extent;tt(o1,a)||P("Invalid regression method: "+a),f!=null&&a==="log"&&f[0]<=0&&(n.dataflow.warn("Ignoring extent with values <= 0 for log regression."),f=null),r.forEach(d=>{if(d.length<=s)return void n.dataflow.warn("Skipping regression with more parameters than data points.");const h=l(d,t.x,t.y,o);if(t.params)return void c.push(St({keys:d.dims,coef:h.coef,rSquared:h.rSquared}));const p=f||kr(d,t.x),m=g=>{const y={};for(let v=0;v<i.length;++v)y[i[v]]=d.dims[v];y[u[0]]=g[0],y[u[1]]=g[1],c.push(St(y))};a==="linear"||a==="constant"?p.forEach(g=>m([g,h.predict(g)])):cc(h.predict,p,25,200).forEach(m)}),this.value&&(e.rem=this.value),this.value=e.add=e.source=c}return e}});const rB=Object.freeze(Object.defineProperty({__proto__:null,loess:a1,regression:s1},Symbol.toStringTag,{value:"Module"})),Rn=134217729;function u1(t,n,e,r,i){let a,o,s,u,l=n[0],c=r[0],f=0,d=0;c>l==c>-l?(a=l,l=n[++f]):(a=c,c=r[++d]);let h=0;if(f<t&&d<e)for(c>l==c>-l?(o=l+a,s=a-(o-l),l=n[++f]):(o=c+a,s=a-(o-c),c=r[++d]),a=o,s!==0&&(i[h++]=s);f<t&&d<e;)c>l==c>-l?(o=a+l,u=o-a,s=a-(o-u)+(l-u),l=n[++f]):(o=a+c,u=o-a,s=a-(o-u)+(c-u),c=r[++d]),a=o,s!==0&&(i[h++]=s);for(;f<t;)o=a+l,u=o-a,s=a-(o-u)+(l-u),l=n[++f],a=o,s!==0&&(i[h++]=s);for(;d<e;)o=a+c,u=o-a,s=a-(o-u)+(c-u),c=r[++d],a=o,s!==0&&(i[h++]=s);return a===0&&h!==0||(i[h++]=a),h}function ju(t){return new Float64Array(t)}const Ko=ju(4),TD=ju(8),PD=ju(12),jD=ju(16),ie=ju(4);function Yf(t,n,e,r,i,a){const o=(n-a)*(e-i),s=(t-i)*(r-a),u=o-s,l=Math.abs(o+s);return Math.abs(u)>=33306690738754716e-32*l?u:-function(c,f,d,h,p,m,g){let y,v,x,b,w,A,_,k,D,C,F,E,$,M,S,B,z,j;const W=c-p,K=d-p,q=f-m,at=h-m;M=W*at,A=Rn*W,_=A-(A-W),k=W-_,A=Rn*at,D=A-(A-at),C=at-D,S=k*C-(M-_*D-k*D-_*C),B=q*K,A=Rn*q,_=A-(A-q),k=q-_,A=Rn*K,D=A-(A-K),C=K-D,z=k*C-(B-_*D-k*D-_*C),F=S-z,w=S-F,Ko[0]=S-(F+w)+(w-z),E=M+F,w=E-M,$=M-(E-w)+(F-w),F=$-B,w=$-F,Ko[1]=$-(F+w)+(w-B),j=E+F,w=j-E,Ko[2]=E-(j-w)+(F-w),Ko[3]=j;let ot=function(Mt,Tt){let kt=Tt[0];for(let Et=1;Et<Mt;Et++)kt+=Tt[Et];return kt}(4,Ko),it=22204460492503146e-32*g;if(ot>=it||-ot>=it||(w=c-W,y=c-(W+w)+(w-p),w=d-K,x=d-(K+w)+(w-p),w=f-q,v=f-(q+w)+(w-m),w=h-at,b=h-(at+w)+(w-m),y===0&&v===0&&x===0&&b===0)||(it=11093356479670487e-47*g+33306690738754706e-32*Math.abs(ot),ot+=W*b+at*y-(q*x+K*v),ot>=it||-ot>=it))return ot;M=y*at,A=Rn*y,_=A-(A-y),k=y-_,A=Rn*at,D=A-(A-at),C=at-D,S=k*C-(M-_*D-k*D-_*C),B=v*K,A=Rn*v,_=A-(A-v),k=v-_,A=Rn*K,D=A-(A-K),C=K-D,z=k*C-(B-_*D-k*D-_*C),F=S-z,w=S-F,ie[0]=S-(F+w)+(w-z),E=M+F,w=E-M,$=M-(E-w)+(F-w),F=$-B,w=$-F,ie[1]=$-(F+w)+(w-B),j=E+F,w=j-E,ie[2]=E-(j-w)+(F-w),ie[3]=j;const mt=u1(4,Ko,4,ie,TD);M=W*b,A=Rn*W,_=A-(A-W),k=W-_,A=Rn*b,D=A-(A-b),C=b-D,S=k*C-(M-_*D-k*D-_*C),B=q*x,A=Rn*q,_=A-(A-q),k=q-_,A=Rn*x,D=A-(A-x),C=x-D,z=k*C-(B-_*D-k*D-_*C),F=S-z,w=S-F,ie[0]=S-(F+w)+(w-z),E=M+F,w=E-M,$=M-(E-w)+(F-w),F=$-B,w=$-F,ie[1]=$-(F+w)+(w-B),j=E+F,w=j-E,ie[2]=E-(j-w)+(F-w),ie[3]=j;const pt=u1(mt,TD,4,ie,PD);M=y*b,A=Rn*y,_=A-(A-y),k=y-_,A=Rn*b,D=A-(A-b),C=b-D,S=k*C-(M-_*D-k*D-_*C),B=v*x,A=Rn*v,_=A-(A-v),k=v-_,A=Rn*x,D=A-(A-x),C=x-D,z=k*C-(B-_*D-k*D-_*C),F=S-z,w=S-F,ie[0]=S-(F+w)+(w-z),E=M+F,w=E-M,$=M-(E-w)+(F-w),F=$-B,w=$-F,ie[1]=$-(F+w)+(w-B),j=E+F,w=j-E,ie[2]=E-(j-w)+(F-w),ie[3]=j;const X=u1(pt,PD,4,ie,jD);return jD[X-1]}(t,n,e,r,i,a,l)}const LD=Math.pow(2,-52),Xf=new Uint32Array(512);class Nh{static from(n,e=oB,r=sB){const i=n.length,a=new Float64Array(2*i);for(let o=0;o<i;o++){const s=n[o];a[2*o]=e(s),a[2*o+1]=r(s)}return new Nh(a)}constructor(n){const e=n.length>>1;if(e>0&&typeof n[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=n;const r=Math.max(2*e-5,0);this._triangles=new Uint32Array(3*r),this._halfedges=new Int32Array(3*r),this._hashSize=Math.ceil(Math.sqrt(e)),this._hullPrev=new Uint32Array(e),this._hullNext=new Uint32Array(e),this._hullTri=new Uint32Array(e),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(e),this._dists=new Float64Array(e),this.update()}update(){const{coords:n,_hullPrev:e,_hullNext:r,_hullTri:i,_hullHash:a}=this,o=n.length>>1;let s=1/0,u=1/0,l=-1/0,c=-1/0;for(let D=0;D<o;D++){const C=n[2*D],F=n[2*D+1];C<s&&(s=C),F<u&&(u=F),C>l&&(l=C),F>c&&(c=F),this._ids[D]=D}const f=(s+l)/2,d=(u+c)/2;let h,p,m;for(let D=0,C=1/0;D<o;D++){const F=l1(f,d,n[2*D],n[2*D+1]);F<C&&(h=D,C=F)}const g=n[2*h],y=n[2*h+1];for(let D=0,C=1/0;D<o;D++){if(D===h)continue;const F=l1(g,y,n[2*D],n[2*D+1]);F<C&&F>0&&(p=D,C=F)}let v=n[2*p],x=n[2*p+1],b=1/0;for(let D=0;D<o;D++){if(D===h||D===p)continue;const C=aB(g,y,v,x,n[2*D],n[2*D+1]);C<b&&(m=D,b=C)}let w=n[2*m],A=n[2*m+1];if(b===1/0){for(let F=0;F<o;F++)this._dists[F]=n[2*F]-n[0]||n[2*F+1]-n[1];Qo(this._ids,this._dists,0,o-1);const D=new Uint32Array(o);let C=0;for(let F=0,E=-1/0;F<o;F++){const $=this._ids[F],M=this._dists[$];M>E&&(D[C++]=$,E=M)}return this.hull=D.subarray(0,C),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Yf(g,y,v,x,w,A)<0){const D=p,C=v,F=x;p=m,v=w,x=A,m=D,w=C,A=F}const _=function(D,C,F,E,$,M){const S=F-D,B=E-C,z=$-D,j=M-C,W=S*S+B*B,K=z*z+j*j,q=.5/(S*j-B*z),at=D+(j*W-B*K)*q,ot=C+(S*K-z*W)*q;return{x:at,y:ot}}(g,y,v,x,w,A);this._cx=_.x,this._cy=_.y;for(let D=0;D<o;D++)this._dists[D]=l1(n[2*D],n[2*D+1],_.x,_.y);Qo(this._ids,this._dists,0,o-1),this._hullStart=h;let k=3;r[h]=e[m]=p,r[p]=e[h]=m,r[m]=e[p]=h,i[h]=0,i[p]=1,i[m]=2,a.fill(-1),a[this._hashKey(g,y)]=h,a[this._hashKey(v,x)]=p,a[this._hashKey(w,A)]=m,this.trianglesLen=0,this._addTriangle(h,p,m,-1,-1,-1);for(let D,C,F=0;F<this._ids.length;F++){const E=this._ids[F],$=n[2*E],M=n[2*E+1];if(F>0&&Math.abs($-D)<=LD&&Math.abs(M-C)<=LD||(D=$,C=M,E===h||E===p||E===m))continue;let S=0;for(let K=0,q=this._hashKey($,M);K<this._hashSize&&(S=a[(q+K)%this._hashSize],S===-1||S===r[S]);K++);S=e[S];let B,z=S;for(;B=r[z],Yf($,M,n[2*z],n[2*z+1],n[2*B],n[2*B+1])>=0;)if(z=B,z===S){z=-1;break}if(z===-1)continue;let j=this._addTriangle(z,E,r[z],-1,-1,i[z]);i[E]=this._legalize(j+2),i[z]=j,k++;let W=r[z];for(;B=r[W],Yf($,M,n[2*W],n[2*W+1],n[2*B],n[2*B+1])<0;)j=this._addTriangle(W,E,B,i[E],-1,i[W]),i[E]=this._legalize(j+2),r[W]=W,k--,W=B;if(z===S)for(;B=e[z],Yf($,M,n[2*B],n[2*B+1],n[2*z],n[2*z+1])<0;)j=this._addTriangle(B,E,z,-1,i[z],i[B]),this._legalize(j+2),i[B]=j,r[z]=z,k--,z=B;this._hullStart=e[E]=z,r[z]=e[W]=E,r[E]=W,a[this._hashKey($,M)]=E,a[this._hashKey(n[2*z],n[2*z+1])]=z}this.hull=new Uint32Array(k);for(let D=0,C=this._hullStart;D<k;D++)this.hull[D]=C,C=r[C];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(n,e){return Math.floor(function(r,i){const a=r/(Math.abs(r)+Math.abs(i));return(i>0?3-a:1+a)/4}(n-this._cx,e-this._cy)*this._hashSize)%this._hashSize}_legalize(n){const{_triangles:e,_halfedges:r,coords:i}=this;let a=0,o=0;for(;;){const s=r[n],u=n-n%3;if(o=u+(n+2)%3,s===-1){if(a===0)break;n=Xf[--a];continue}const l=s-s%3,c=u+(n+1)%3,f=l+(s+2)%3,d=e[o],h=e[n],p=e[c],m=e[f];if(iB(i[2*d],i[2*d+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1],i[2*m],i[2*m+1])){e[n]=m,e[s]=d;const g=r[f];if(g===-1){let v=this._hullStart;do{if(this._hullTri[v]===f){this._hullTri[v]=n;break}v=this._hullPrev[v]}while(v!==this._hullStart)}this._link(n,g),this._link(s,r[o]),this._link(o,f);const y=l+(s+1)%3;a<Xf.length&&(Xf[a++]=y)}else{if(a===0)break;n=Xf[--a]}}return o}_link(n,e){this._halfedges[n]=e,e!==-1&&(this._halfedges[e]=n)}_addTriangle(n,e,r,i,a,o){const s=this.trianglesLen;return this._triangles[s]=n,this._triangles[s+1]=e,this._triangles[s+2]=r,this._link(s,i),this._link(s+1,a),this._link(s+2,o),this.trianglesLen+=3,s}}function l1(t,n,e,r){const i=t-e,a=n-r;return i*i+a*a}function iB(t,n,e,r,i,a,o,s){const u=t-o,l=n-s,c=e-o,f=r-s,d=i-o,h=a-s,p=c*c+f*f,m=d*d+h*h;return u*(f*m-p*h)-l*(c*m-p*d)+(u*u+l*l)*(c*h-f*d)<0}function aB(t,n,e,r,i,a){const o=e-t,s=r-n,u=i-t,l=a-n,c=o*o+s*s,f=u*u+l*l,d=.5/(o*l-s*u),h=(l*c-s*f)*d,p=(o*f-u*c)*d;return h*h+p*p}function Qo(t,n,e,r){if(r-e<=20)for(let i=e+1;i<=r;i++){const a=t[i],o=n[a];let s=i-1;for(;s>=e&&n[t[s]]>o;)t[s+1]=t[s--];t[s+1]=a}else{let i=e+1,a=r;Lu(t,e+r>>1,i),n[t[e]]>n[t[r]]&&Lu(t,e,r),n[t[i]]>n[t[r]]&&Lu(t,i,r),n[t[e]]>n[t[i]]&&Lu(t,e,i);const o=t[i],s=n[o];for(;;){do i++;while(n[t[i]]<s);do a--;while(n[t[a]]>s);if(a<i)break;Lu(t,i,a)}t[e+1]=t[a],t[a]=o,r-i+1>=a-e?(Qo(t,n,i,r),Qo(t,n,e,a-1)):(Qo(t,n,e,a-1),Qo(t,n,i,r))}}function Lu(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function oB(t){return t[0]}function sB(t){return t[1]}const qD=1e-6;class Ha{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(n,e){this._+=`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(n,e){this._+=`L${this._x1=+n},${this._y1=+e}`}arc(n,e,r){const i=(n=+n)+(r=+r),a=e=+e;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${a}`:(Math.abs(this._x1-i)>qD||Math.abs(this._y1-a)>qD)&&(this._+="L"+i+","+a),r&&(this._+=`A${r},${r},0,1,1,${n-r},${e}A${r},${r},0,1,1,${this._x1=i},${this._y1=a}`)}rect(n,e,r,i){this._+=`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}h${+r}v${+i}h${-r}Z`}value(){return this._||null}}class c1{constructor(){this._=[]}moveTo(n,e){this._.push([n,e])}closePath(){this._.push(this._[0].slice())}lineTo(n,e){this._.push([n,e])}value(){return this._.length?this._:null}}let uB=class{constructor(t,[n,e,r,i]=[0,0,960,500]){if(!((r=+r)>=(n=+n)&&(i=+i)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=r,this.xmin=n,this.ymax=i,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:e},vectors:r}=this;let i,a;const o=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let p,m,g=0,y=0,v=e.length;g<v;g+=3,y+=2){const x=2*e[g],b=2*e[g+1],w=2*e[g+2],A=t[x],_=t[x+1],k=t[b],D=t[b+1],C=t[w],F=t[w+1],E=k-A,$=D-_,M=C-A,S=F-_,B=2*(E*S-$*M);if(Math.abs(B)<1e-9){if(i===void 0){i=a=0;for(const j of n)i+=t[2*j],a+=t[2*j+1];i/=n.length,a/=n.length}const z=1e9*Math.sign((i-A)*S-(a-_)*M);p=(A+C)/2-z*S,m=(_+F)/2+z*M}else{const z=1/B,j=E*E+$*$,W=M*M+S*S;p=A+(S*j-$*W)*z,m=_+(E*W-M*j)*z}o[y]=p,o[y+1]=m}let s,u,l,c=n[n.length-1],f=4*c,d=t[2*c],h=t[2*c+1];r.fill(0);for(let p=0;p<n.length;++p)c=n[p],s=f,u=d,l=h,f=4*c,d=t[2*c],h=t[2*c+1],r[s+2]=r[f]=l-h,r[s+3]=r[f+1]=d-u}render(t){const n=t==null?t=new Ha:void 0,{delaunay:{halfedges:e,inedges:r,hull:i},circumcenters:a,vectors:o}=this;if(i.length<=1)return null;for(let l=0,c=e.length;l<c;++l){const f=e[l];if(f<l)continue;const d=2*Math.floor(l/3),h=2*Math.floor(f/3),p=a[d],m=a[d+1],g=a[h],y=a[h+1];this._renderSegment(p,m,g,y,t)}let s,u=i[i.length-1];for(let l=0;l<i.length;++l){s=u,u=i[l];const c=2*Math.floor(r[u]/3),f=a[c],d=a[c+1],h=4*s,p=this._project(f,d,o[h+2],o[h+3]);p&&this._renderSegment(f,d,p[0],p[1],t)}return n&&n.value()}renderBounds(t){const n=t==null?t=new Ha:void 0;return t.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(t,n){const e=n==null?n=new Ha:void 0,r=this._clip(t);if(r===null||!r.length)return;n.moveTo(r[0],r[1]);let i=r.length;for(;r[0]===r[i-2]&&r[1]===r[i-1]&&i>1;)i-=2;for(let a=2;a<i;a+=2)r[a]===r[a-2]&&r[a+1]===r[a-1]||n.lineTo(r[a],r[a+1]);return n.closePath(),e&&e.value()}*cellPolygons(){const{delaunay:{points:t}}=this;for(let n=0,e=t.length/2;n<e;++n){const r=this.cellPolygon(n);r&&(r.index=n,yield r)}}cellPolygon(t){const n=new c1;return this.renderCell(t,n),n.value()}_renderSegment(t,n,e,r,i){let a;const o=this._regioncode(t,n),s=this._regioncode(e,r);o===0&&s===0?(i.moveTo(t,n),i.lineTo(e,r)):(a=this._clipSegment(t,n,e,r,o,s))&&(i.moveTo(a[0],a[1]),i.lineTo(a[2],a[3]))}contains(t,n,e){return(n=+n)==n&&(e=+e)==e&&this.delaunay._step(t,n,e)===t}*neighbors(t){const n=this._clip(t);if(n)for(const e of this.delaunay.neighbors(t)){const r=this._clip(e);if(r){t:for(let i=0,a=n.length;i<a;i+=2)for(let o=0,s=r.length;o<s;o+=2)if(n[i]===r[o]&&n[i+1]===r[o+1]&&n[(i+2)%a]===r[(o+s-2)%s]&&n[(i+3)%a]===r[(o+s-1)%s]){yield e;break t}}}}_cell(t){const{circumcenters:n,delaunay:{inedges:e,halfedges:r,triangles:i}}=this,a=e[t];if(a===-1)return null;const o=[];let s=a;do{const u=Math.floor(s/3);if(o.push(n[2*u],n[2*u+1]),s=s%3==2?s-2:s+1,i[s]!==t)break;s=r[s]}while(s!==a&&s!==-1);return o}_clip(t){if(t===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(t);if(n===null)return null;const{vectors:e}=this,r=4*t;return this._simplify(e[r]||e[r+1]?this._clipInfinite(t,n,e[r],e[r+1],e[r+2],e[r+3]):this._clipFinite(t,n))}_clipFinite(t,n){const e=n.length;let r,i,a,o,s=null,u=n[e-2],l=n[e-1],c=this._regioncode(u,l),f=0;for(let d=0;d<e;d+=2)if(r=u,i=l,u=n[d],l=n[d+1],a=c,c=this._regioncode(u,l),a===0&&c===0)o=f,f=0,s?s.push(u,l):s=[u,l];else{let h,p,m,g,y;if(a===0){if((h=this._clipSegment(r,i,u,l,a,c))===null)continue;[p,m,g,y]=h}else{if((h=this._clipSegment(u,l,r,i,c,a))===null)continue;[g,y,p,m]=h,o=f,f=this._edgecode(p,m),o&&f&&this._edge(t,o,f,s,s.length),s?s.push(p,m):s=[p,m]}o=f,f=this._edgecode(g,y),o&&f&&this._edge(t,o,f,s,s.length),s?s.push(g,y):s=[g,y]}if(s)o=f,f=this._edgecode(s[0],s[1]),o&&f&&this._edge(t,o,f,s,s.length);else if(this.contains(t,(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(t,n,e,r,i,a){const o=i<a;for(o&&([t,n,e,r,i,a]=[e,r,t,n,a,i]);;){if(i===0&&a===0)return o?[e,r,t,n]:[t,n,e,r];if(i&a)return null;let s,u,l=i||a;8&l?(s=t+(e-t)*(this.ymax-n)/(r-n),u=this.ymax):4&l?(s=t+(e-t)*(this.ymin-n)/(r-n),u=this.ymin):2&l?(u=n+(r-n)*(this.xmax-t)/(e-t),s=this.xmax):(u=n+(r-n)*(this.xmin-t)/(e-t),s=this.xmin),i?(t=s,n=u,i=this._regioncode(t,n)):(e=s,r=u,a=this._regioncode(e,r))}}_clipInfinite(t,n,e,r,i,a){let o,s=Array.from(n);if((o=this._project(s[0],s[1],e,r))&&s.unshift(o[0],o[1]),(o=this._project(s[s.length-2],s[s.length-1],i,a))&&s.push(o[0],o[1]),s=this._clipFinite(t,s))for(let u,l=0,c=s.length,f=this._edgecode(s[c-2],s[c-1]);l<c;l+=2)u=f,f=this._edgecode(s[l],s[l+1]),u&&f&&(l=this._edge(t,u,f,s,l),c=s.length);else this.contains(t,(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(t,n,e,r,i){for(;n!==e;){let a,o;switch(n){case 5:n=4;continue;case 4:n=6,a=this.xmax,o=this.ymin;break;case 6:n=2;continue;case 2:n=10,a=this.xmax,o=this.ymax;break;case 10:n=8;continue;case 8:n=9,a=this.xmin,o=this.ymax;break;case 9:n=1;continue;case 1:n=5,a=this.xmin,o=this.ymin}r[i]===a&&r[i+1]===o||!this.contains(t,a,o)||(r.splice(i,0,a,o),i+=2)}return i}_project(t,n,e,r){let i,a,o,s=1/0;if(r<0){if(n<=this.ymin)return null;(i=(this.ymin-n)/r)<s&&(o=this.ymin,a=t+(s=i)*e)}else if(r>0){if(n>=this.ymax)return null;(i=(this.ymax-n)/r)<s&&(o=this.ymax,a=t+(s=i)*e)}if(e>0){if(t>=this.xmax)return null;(i=(this.xmax-t)/e)<s&&(a=this.xmax,o=n+(s=i)*r)}else if(e<0){if(t<=this.xmin)return null;(i=(this.xmin-t)/e)<s&&(a=this.xmin,o=n+(s=i)*r)}return[a,o]}_edgecode(t,n){return(t===this.xmin?1:t===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(t,n){return(t<this.xmin?1:t>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(t){if(t&&t.length>4){for(let n=0;n<t.length;n+=2){const e=(n+2)%t.length,r=(n+4)%t.length;(t[n]===t[e]&&t[e]===t[r]||t[n+1]===t[e+1]&&t[e+1]===t[r+1])&&(t.splice(e,2),n-=2)}t.length||(t=null)}return t}};const lB=2*Math.PI,Zo=Math.pow;function cB(t){return t[0]}function fB(t){return t[1]}function dB(t,n,e){return[t+Math.sin(t+n)*e,n+Math.cos(t-n)*e]}class Pb{static from(n,e=cB,r=fB,i){return new Pb("length"in n?function(a,o,s,u){const l=a.length,c=new Float64Array(2*l);for(let f=0;f<l;++f){const d=a[f];c[2*f]=o.call(u,d,f,a),c[2*f+1]=s.call(u,d,f,a)}return c}(n,e,r,i):Float64Array.from(function*(a,o,s,u){let l=0;for(const c of a)yield o.call(u,c,l,a),yield s.call(u,c,l,a),++l}(n,e,r,i)))}constructor(n){this._delaunator=new Nh(n),this.inedges=new Int32Array(n.length/2),this._hullIndex=new Int32Array(n.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const n=this._delaunator,e=this.points;if(n.hull&&n.hull.length>2&&function(u){const{triangles:l,coords:c}=u;for(let f=0;f<l.length;f+=3){const d=2*l[f],h=2*l[f+1],p=2*l[f+2];if((c[p]-c[d])*(c[h+1]-c[d+1])-(c[h]-c[d])*(c[p+1]-c[d+1])>1e-10)return!1}return!0}(n)){this.collinear=Int32Array.from({length:e.length/2},(d,h)=>h).sort((d,h)=>e[2*d]-e[2*h]||e[2*d+1]-e[2*h+1]);const u=this.collinear[0],l=this.collinear[this.collinear.length-1],c=[e[2*u],e[2*u+1],e[2*l],e[2*l+1]],f=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let d=0,h=e.length/2;d<h;++d){const p=dB(e[2*d],e[2*d+1],f);e[2*d]=p[0],e[2*d+1]=p[1]}this._delaunator=new Nh(e)}else delete this.collinear;const r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,a=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),s=this._hullIndex.fill(-1);for(let u=0,l=r.length;u<l;++u){const c=a[u%3==2?u-2:u+1];r[u]!==-1&&o[c]!==-1||(o[c]=u)}for(let u=0,l=i.length;u<l;++u)s[i[u]]=u;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,i.length===2&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(n){return new uB(this,n)}*neighbors(n){const{inedges:e,hull:r,_hullIndex:i,halfedges:a,triangles:o,collinear:s}=this;if(s){const f=s.indexOf(n);return f>0&&(yield s[f-1]),void(f<s.length-1&&(yield s[f+1]))}const u=e[n];if(u===-1)return;let l=u,c=-1;do{if(yield c=o[l],l=l%3==2?l-2:l+1,o[l]!==n)return;if(l=a[l],l===-1){const f=r[(i[n]+1)%r.length];return void(f!==c&&(yield f))}}while(l!==u)}find(n,e,r=0){if((n=+n)!=n||(e=+e)!=e)return-1;const i=r;let a;for(;(a=this._step(r,n,e))>=0&&a!==r&&a!==i;)r=a;return a}_step(n,e,r){const{inedges:i,hull:a,_hullIndex:o,halfedges:s,triangles:u,points:l}=this;if(i[n]===-1||!l.length)return(n+1)%(l.length>>1);let c=n,f=Zo(e-l[2*n],2)+Zo(r-l[2*n+1],2);const d=i[n];let h=d;do{let p=u[h];const m=Zo(e-l[2*p],2)+Zo(r-l[2*p+1],2);if(m<f&&(f=m,c=p),h=h%3==2?h-2:h+1,u[h]!==n)break;if(h=s[h],h===-1){if(h=a[(o[n]+1)%a.length],h!==p&&Zo(e-l[2*h],2)+Zo(r-l[2*h+1],2)<f)return h;break}}while(h!==d);return c}render(n){const e=n==null?n=new Ha:void 0,{points:r,halfedges:i,triangles:a}=this;for(let o=0,s=i.length;o<s;++o){const u=i[o];if(u<o)continue;const l=2*a[o],c=2*a[u];n.moveTo(r[l],r[l+1]),n.lineTo(r[c],r[c+1])}return this.renderHull(n),e&&e.value()}renderPoints(n,e){e!==void 0||n&&typeof n.moveTo=="function"||(e=n,n=null),e=e==null?2:+e;const r=n==null?n=new Ha:void 0,{points:i}=this;for(let a=0,o=i.length;a<o;a+=2){const s=i[a],u=i[a+1];n.moveTo(s+e,u),n.arc(s,u,e,0,lB)}return r&&r.value()}renderHull(n){const e=n==null?n=new Ha:void 0,{hull:r,points:i}=this,a=2*r[0],o=r.length;n.moveTo(i[a],i[a+1]);for(let s=1;s<o;++s){const u=2*r[s];n.lineTo(i[u],i[u+1])}return n.closePath(),e&&e.value()}hullPolygon(){const n=new c1;return this.renderHull(n),n.value()}renderTriangle(n,e){const r=e==null?e=new Ha:void 0,{points:i,triangles:a}=this,o=2*a[n*=3],s=2*a[n+1],u=2*a[n+2];return e.moveTo(i[o],i[o+1]),e.lineTo(i[s],i[s+1]),e.lineTo(i[u],i[u+1]),e.closePath(),r&&r.value()}*trianglePolygons(){const{triangles:n}=this;for(let e=0,r=n.length/3;e<r;++e)yield this.trianglePolygon(e)}trianglePolygon(n){const e=new c1;return this.renderTriangle(n,e),e.value()}}function f1(t){O.call(this,null,t)}f1.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 hB=[-1e5,-1e5,1e5,1e5];function pB(t){const n=t[0][0],e=t[0][1];let r=t.length-1;for(;t[r][0]===n&&t[r][1]===e;--r);return"M"+t.slice(0,r+1).join("L")+"Z"}function mB(t){return t.length===2&&t[0][0]===t[1][0]&&t[0][1]===t[1][1]}V(f1,O,{transform(t,n){const e=t.as||"path",r=n.source;if(!r||!r.length)return n;let i=t.size;i=i?[0,0,i[0],i[1]]:(i=t.extent)?[i[0][0],i[0][1],i[1][0],i[1][1]]:hB;const a=this.value=Pb.from(r,t.x,t.y).voronoi(i);for(let o=0,s=r.length;o<s;++o){const u=a.cellPolygon(o);r[o][e]=u&&!mB(u)?pB(u):null}return n.reflow(t.modified()).modifies(e)}});const gB=Object.freeze(Object.defineProperty({__proto__:null,voronoi:f1},Symbol.toStringTag,{value:"Module"}));var d1=Math.PI/180,Jf=2048;function yB(){var t,n,e,r,i,a,o,s=[256,256],u=UD,l=[],c=Math.random,f={};function d(h,p,m){for(var g,y,v,x=p.x,b=p.y,w=Math.hypot(s[0],s[1]),A=u(s),_=c()<.5?1:-1,k=-_;(g=A(k+=_))&&(y=~~g[0],v=~~g[1],!(Math.min(Math.abs(y),Math.abs(v))>=w));)if(p.x=x+y,p.y=b+v,!(p.x+p.x0<0||p.y+p.y0<0||p.x+p.x1>s[0]||p.y+p.y1>s[1])&&(!m||!bB(p,h,s[0]))&&(!m||wB(p,m))){for(var D,C=p.sprite,F=p.width>>5,E=s[0]>>5,$=p.x-(F<<4),M=127&$,S=32-M,B=p.y1-p.y0,z=(p.y+p.y0)*E+($>>5),j=0;j<B;j++){D=0;for(var W=0;W<=F;W++)h[z+W]|=D<<S|(W<F?(D=C[j*F+W])>>>M:0);z+=E}return p.sprite=null,!0}return!1}return f.layout=function(){for(var h=function(w){w.width=w.height=1;var A=Math.sqrt(w.getContext("2d").getImageData(0,0,1,1).data.length>>2);w.width=2048/A,w.height=Jf/A;var _=w.getContext("2d");return _.fillStyle=_.strokeStyle="red",_.textAlign="center",{context:_,ratio:A}}(qi()),p=function(w){for(var A=[],_=-1;++_<w;)A[_]=0;return A}((s[0]>>5)*s[1]),m=null,g=l.length,y=-1,v=[],x=l.map(w=>({text:t(w),font:n(w),style:r(w),weight:i(w),rotate:a(w),size:~~(e(w)+1e-14),padding:o(w),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:w})).sort((w,A)=>A.size-w.size);++y<g;){var b=x[y];b.x=s[0]*(c()+.5)>>1,b.y=s[1]*(c()+.5)>>1,vB(h,b,x,y),b.hasText&&d(p,b,m)&&(v.push(b),m?xB(m,b):m=[{x:b.x+b.x0,y:b.y+b.y0},{x:b.x+b.x1,y:b.y+b.y1}],b.x-=s[0]>>1,b.y-=s[1]>>1)}return v},f.words=function(h){return arguments.length?(l=h,f):l},f.size=function(h){return arguments.length?(s=[+h[0],+h[1]],f):s},f.font=function(h){return arguments.length?(n=Ga(h),f):n},f.fontStyle=function(h){return arguments.length?(r=Ga(h),f):r},f.fontWeight=function(h){return arguments.length?(i=Ga(h),f):i},f.rotate=function(h){return arguments.length?(a=Ga(h),f):a},f.text=function(h){return arguments.length?(t=Ga(h),f):t},f.spiral=function(h){return arguments.length?(u=AB[h]||h,f):u},f.fontSize=function(h){return arguments.length?(e=Ga(h),f):e},f.padding=function(h){return arguments.length?(o=Ga(h),f):o},f.random=function(h){return arguments.length?(c=h,f):c},f}function vB(t,n,e,r){if(!n.sprite){var i=t.context,a=t.ratio;i.clearRect(0,0,2048/a,Jf/a);var o,s,u,l,c,f=0,d=0,h=0,p=e.length;for(--r;++r<p;){if(n=e[r],i.save(),i.font=n.style+" "+n.weight+" "+~~((n.size+1)/a)+"px "+n.font,o=i.measureText(n.text+"m").width*a,u=n.size<<1,n.rotate){var m=Math.sin(n.rotate*d1),g=Math.cos(n.rotate*d1),y=o*g,v=o*m,x=u*g,b=u*m;o=Math.max(Math.abs(y+b),Math.abs(y-b))+31>>5<<5,u=~~Math.max(Math.abs(v+x),Math.abs(v-x))}else o=o+31>>5<<5;if(u>h&&(h=u),f+o>=2048&&(f=0,d+=h,h=0),d+u>=Jf)break;i.translate((f+(o>>1))/a,(d+(u>>1))/a),n.rotate&&i.rotate(n.rotate*d1),i.fillText(n.text,0,0),n.padding&&(i.lineWidth=2*n.padding,i.strokeText(n.text,0,0)),i.restore(),n.width=o,n.height=u,n.xoff=f,n.yoff=d,n.x1=o>>1,n.y1=u>>1,n.x0=-n.x1,n.y0=-n.y1,n.hasText=!0,f+=o}for(var w=i.getImageData(0,0,2048/a,Jf/a).data,A=[];--r>=0;)if((n=e[r]).hasText){for(s=(o=n.width)>>5,u=n.y1-n.y0,l=0;l<u*s;l++)A[l]=0;if((f=n.xoff)==null)return;d=n.yoff;var _=0,k=-1;for(c=0;c<u;c++){for(l=0;l<o;l++){var D=s*c+(l>>5),C=w[2048*(d+c)+(f+l)<<2]?1<<31-l%32:0;A[D]|=C,_|=C}_?k=c:(n.y0++,u--,c--,d++)}n.y1=n.y0+k,n.sprite=A.slice(0,(n.y1-n.y0)*s)}}}function bB(t,n,e){e>>=5;for(var r,i=t.sprite,a=t.width>>5,o=t.x-(a<<4),s=127&o,u=32-s,l=t.y1-t.y0,c=(t.y+t.y0)*e+(o>>5),f=0;f<l;f++){r=0;for(var d=0;d<=a;d++)if((r<<u|(d<a?(r=i[f*a+d])>>>s:0))&n[c+d])return!0;c+=e}return!1}function xB(t,n){var e=t[0],r=t[1];n.x+n.x0<e.x&&(e.x=n.x+n.x0),n.y+n.y0<e.y&&(e.y=n.y+n.y0),n.x+n.x1>r.x&&(r.x=n.x+n.x1),n.y+n.y1>r.y&&(r.y=n.y+n.y1)}function wB(t,n){return t.x+t.x1>n[0].x&&t.x+t.x0<n[1].x&&t.y+t.y1>n[0].y&&t.y+t.y0<n[1].y}function UD(t){var n=t[0]/t[1];return function(e){return[n*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function Ga(t){return typeof t=="function"?t:function(){return t}}var AB={archimedean:UD,rectangular:function(t){var n=4*t[0]/t[1],e=0,r=0;return function(i){var a=i<0?-1:1;switch(Math.sqrt(1+4*a*i)-a&3){case 0:e+=n;break;case 1:r+=4;break;case 2:e-=n;break;default:r-=4}return[e,r]}}};const ID=["x","y","font","fontSize","fontStyle","fontWeight","angle"],_B=["text","font","rotate","fontSize","fontStyle","fontWeight"];function h1(t){O.call(this,yB(),t)}h1.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:ID}]},V(h1,O,{transform(t,n){!t.size||t.size[0]&&t.size[1]||P("Wordcloud size dimensions must be non-zero.");const e=t.modified();if(!(e||n.changed(n.ADD_REM)||_B.some(function(h){const p=t[h];return bt(p)&&n.modified(p.fields)})))return;const r=n.materialize(n.SOURCE).source,i=this.value,a=t.as||ID;let o,s=t.fontSize||14;if(bt(s)?o=t.fontSizeRange:s=In(s),o){const h=s,p=Dt("sqrt")().domain(kr(r,h)).range(o);s=m=>p(h(m))}r.forEach(h=>{h[a[0]]=NaN,h[a[1]]=NaN,h[a[3]]=0});const u=i.words(r).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(s).random(Ne).layout(),l=i.size(),c=l[0]>>1,f=l[1]>>1,d=u.length;for(let h,p,m=0;m<d;++m)h=u[m],p=h.datum,p[a[0]]=h.x+c,p[a[1]]=h.y+f,p[a[2]]=h.font,p[a[3]]=h.size,p[a[4]]=h.style,p[a[5]]=h.weight,p[a[6]]=h.rotate;return n.reflow(e).modifies(a)}});const kB=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:h1},Symbol.toStringTag,{value:"Module"})),DB=t=>new Uint8Array(t),FB=t=>new Uint16Array(t),qu=t=>new Uint32Array(t);function Kf(t,n,e){const r=(n<257?DB:n<65537?FB:qu)(t);return e&&r.set(e),r}function WD(t,n,e){const r=1<<n;return{one:r,zero:~r,range:e.slice(),bisect:t.bisect,index:t.index,size:t.size,onAdd(i,a){const o=this,s=o.bisect(o.range,i.value),u=i.index,l=s[0],c=s[1],f=u.length;let d;for(d=0;d<l;++d)a[u[d]]|=r;for(d=c;d<f;++d)a[u[d]]|=r;return o}}}function HD(){let t=qu(0),n=[],e=0;return{insert:function(r,i,a){if(!i.length)return[];const o=e,s=i.length,u=qu(s);let l,c,f,d=Array(s);for(f=0;f<s;++f)d[f]=r(i[f]),u[f]=f;if(d=function(h,p){return h.sort.call(p,(m,g)=>{const y=h[m],v=h[g];return y<v?-1:y>v?1:0}),function(m,g){return Array.from(g,y=>m[y])}(h,p)}(d,u),o)l=n,c=t,n=Array(o+s),t=qu(o+s),function(h,p,m,g,y,v,x,b,w){let A,_=0,k=0;for(A=0;_<g&&k<x;++A)p[_]<y[k]?(b[A]=p[_],w[A]=m[_++]):(b[A]=y[k],w[A]=v[k++]+h);for(;_<g;++_,++A)b[A]=p[_],w[A]=m[_];for(;k<x;++k,++A)b[A]=y[k],w[A]=v[k]+h}(a,l,c,o,d,u,s,n,t);else{if(a>0)for(f=0;f<s;++f)u[f]+=a;n=d,t=u}return e=o+s,{index:u,value:d}},remove:function(r,i){const a=e;let o,s,u;for(s=0;!i[t[s]]&&s<a;++s);for(u=s;s<a;++s)i[o=t[s]]||(t[u]=o,n[u]=n[s],++u);e=a-r},bisect:function(r,i){let a;return i?a=i.length:(i=n,a=e),[r8(i,r[0],0,a),Ea(i,r[1],0,a)]},reindex:function(r){for(let i=0,a=e;i<a;++i)t[i]=r[t[i]]},index:()=>t,size:()=>e}}function p1(t){O.call(this,function(){let n=8,e=[],r=qu(0),i=Kf(0,n),a=Kf(0,n);return{data:()=>e,seen:()=>r=function(o,s,u){return o.length>=s?o:((u=u||new o.constructor(s)).set(o),u)}(r,e.length),add(o){for(let s,u=0,l=e.length,c=o.length;u<c;++u)s=o[u],s._index=l++,e.push(s)},remove(o,s){const u=e.length,l=Array(u-o),c=e;let f,d,h;for(d=0;!s[d]&&d<u;++d)l[d]=e[d],c[d]=d;for(h=d;d<u;++d)f=e[d],s[d]?c[d]=-1:(c[d]=h,i[h]=i[d],a[h]=a[d],l[h]=f,f._index=h++),i[d]=0;return e=l,c},size:()=>e.length,curr:()=>i,prev:()=>a,reset:o=>a[o]=i[o],all:()=>n<257?255:n<65537?65535:4294967295,set(o,s){i[o]|=s},clear(o,s){i[o]&=~s},resize(o,s){(o>i.length||s>n)&&(n=Math.max(s,n),i=Kf(o,n,i),a=Kf(o,n))}}}(),t),this._indices=null,this._dims=null}function m1(t){O.call(this,null,t)}p1.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}}]},V(p1,O,{transform(t,n){return this._dims?t.modified("fields")||t.fields.some(e=>n.modified(e.fields))?this.reinit(t,n):this.eval(t,n):this.init(t,n)},init(t,n){const e=t.fields,r=t.query,i=this._indices={},a=this._dims=[],o=r.length;let s,u,l=0;for(;l<o;++l)s=e[l].fname,u=i[s]||(i[s]=HD()),a.push(WD(u,l,r[l]));return this.eval(t,n)},reinit(t,n){const e=n.materialize().fork(),r=t.fields,i=t.query,a=this._indices,o=this._dims,s=this.value,u=s.curr(),l=s.prev(),c=s.all(),f=e.rem=e.add,d=e.mod,h=i.length,p={};let m,g,y,v,x,b,w,A,_;if(l.set(u),n.rem.length&&(x=this.remove(t,n,e)),n.add.length&&s.add(n.add),n.mod.length)for(b={},v=n.mod,w=0,A=v.length;w<A;++w)b[v[w]._index]=1;for(w=0;w<h;++w)_=r[w],(!o[w]||t.modified("fields",w)||n.modified(_.fields))&&(y=_.fname,(m=p[y])||(a[y]=g=HD(),p[y]=m=g.insert(_,n.source,0)),o[w]=WD(g,w,i[w]).onAdd(m,u));for(w=0,A=s.data().length;w<A;++w)x[w]||(l[w]!==u[w]?f.push(w):b[w]&&u[w]!==c&&d.push(w));return s.mask=(1<<h)-1,e},eval(t,n){const e=n.materialize().fork(),r=this._dims.length;let i=0;return n.rem.length&&(this.remove(t,n,e),i|=(1<<r)-1),t.modified("query")&&!t.modified("fields")&&(i|=this.update(t,n,e)),n.add.length&&(this.insert(t,n,e),i|=(1<<r)-1),n.mod.length&&(this.modify(n,e),i|=(1<<r)-1),this.value.mask=i,e},insert(t,n,e){const r=n.add,i=this.value,a=this._dims,o=this._indices,s=t.fields,u={},l=e.add,c=i.size()+r.length,f=a.length;let d,h,p,m=i.size();i.resize(c,f),i.add(r);const g=i.curr(),y=i.prev(),v=i.all();for(d=0;d<f;++d)h=s[d].fname,p=u[h]||(u[h]=o[h].insert(s[d],r,m)),a[d].onAdd(p,g);for(;m<c;++m)y[m]=v,g[m]!==v&&l.push(m)},modify(t,n){const e=n.mod,r=this.value,i=r.curr(),a=r.all(),o=t.mod;let s,u,l;for(s=0,u=o.length;s<u;++s)l=o[s]._index,i[l]!==a&&e.push(l)},remove(t,n,e){const r=this._indices,i=this.value,a=i.curr(),o=i.prev(),s=i.all(),u={},l=e.rem,c=n.rem;let f,d,h,p;for(f=0,d=c.length;f<d;++f)h=c[f]._index,u[h]=1,o[h]=p=a[h],a[h]=s,p!==s&&l.push(h);for(h in r)r[h].remove(d,u);return this.reindex(n,d,u),u},reindex(t,n,e){const r=this._indices,i=this.value;t.runAfter(()=>{const a=i.remove(n,e);for(const o in r)r[o].reindex(a)})},update(t,n,e){const r=this._dims,i=t.query,a=n.stamp,o=r.length;let s,u,l=0;for(e.filters=0,u=0;u<o;++u)t.modified("query",u)&&(s=u,++l);if(l===1)l=r[s].one,this.incrementOne(r[s],i[s],e.add,e.rem);else for(u=0,l=0;u<o;++u)t.modified("query",u)&&(l|=r[u].one,this.incrementAll(r[u],i[u],a,e.add),e.rem=e.add);return l},incrementAll(t,n,e,r){const i=this.value,a=i.seen(),o=i.curr(),s=i.prev(),u=t.index(),l=t.bisect(t.range),c=t.bisect(n),f=c[0],d=c[1],h=l[0],p=l[1],m=t.one;let g,y,v;if(f<h)for(g=f,y=Math.min(h,d);g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;else if(f>h)for(g=h,y=Math.min(f,p);g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;if(d>p)for(g=Math.max(f,p),y=d;g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;else if(d<p)for(g=Math.max(h,d),y=p;g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;t.range=n.slice()},incrementOne(t,n,e,r){const i=this.value.curr(),a=t.index(),o=t.bisect(t.range),s=t.bisect(n),u=s[0],l=s[1],c=o[0],f=o[1],d=t.one;let h,p,m;if(u<c)for(h=u,p=Math.min(c,l);h<p;++h)m=a[h],i[m]^=d,e.push(m);else if(u>c)for(h=c,p=Math.min(u,f);h<p;++h)m=a[h],i[m]^=d,r.push(m);if(l>f)for(h=Math.max(u,f),p=l;h<p;++h)m=a[h],i[m]^=d,e.push(m);else if(l<f)for(h=Math.max(c,l),p=f;h<p;++h)m=a[h],i[m]^=d,r.push(m);t.range=n.slice()}}),m1.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."}]},V(m1,O,{transform(t,n){const e=~(t.ignore||0),r=t.filter,i=r.mask;if((i&e)===0)return n.StopPropagation;const a=n.fork(n.ALL),o=r.data(),s=r.curr(),u=r.prev(),l=c=>s[c]&e?null:o[c];return a.filter(a.MOD,l),i&i-1?(a.filter(a.ADD,c=>{const f=s[c]&e;return!f&&f^u[c]&e?o[c]:null}),a.filter(a.REM,c=>{const f=s[c]&e;return f&&!(f^f^u[c]&e)?o[c]:null})):(a.filter(a.ADD,l),a.filter(a.REM,c=>(s[c]&e)===i?o[c]:null)),a.filter(a.SOURCE,c=>l(c._index))}});const CB=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:p1,resolvefilter:m1},Symbol.toStringTag,{value:"Module"})),ts="Literal",EB="Property",$B="ArrayExpression",SB="BinaryExpression",GD="CallExpression",MB="ConditionalExpression",BB="LogicalExpression",zB="MemberExpression",OB="ObjectExpression",NB="UnaryExpression";function ir(t){this.type=t}var hi,nt,N,Tn,zt;ir.prototype.visit=function(t){let n,e,r;if(t(this))return 1;for(n=function(i){switch(i.type){case $B:return i.elements;case SB:case BB:return[i.left,i.right];case GD:return[i.callee].concat(i.arguments);case MB:return[i.test,i.consequent,i.alternate];case zB:return[i.object,i.property];case OB:return i.properties;case EB:return[i.key,i.value];case NB:return[i.argument];default:return[]}}(this),e=0,r=n.length;e<r;++e)if(n[e].visit(t))return 1},(hi={})[1]="Boolean",hi[2]="<end>",hi[3]="Identifier",hi[4]="Keyword",hi[5]="Null",hi[6]="Numeric",hi[7]="Punctuator",hi[8]="String",hi[9]="RegularExpression";var VD="Identifier",gn="Unexpected token %0",g1="Invalid regular expression",y1="Invalid regular expression: missing /",YD="Octal literals are not allowed in strict mode.",Fn="ILLEGAL",Uu="Disabled.",RB=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]"),TB=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 Qf(t,n){if(!t)throw new Error("ASSERT: "+n)}function pi(t){return t>=48&&t<=57}function v1(t){return"0123456789abcdefABCDEF".includes(t)}function Iu(t){return"01234567".includes(t)}function PB(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(t)}function Wu(t){return t===10||t===13||t===8232||t===8233}function Hu(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&RB.test(String.fromCharCode(t))}function Zf(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&TB.test(String.fromCharCode(t))}const jB={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 XD(){for(;N<Tn;){const t=nt.charCodeAt(N);if(!PB(t)&&!Wu(t))break;++N}}function b1(t){var n,e,r,i=0;for(e=t==="u"?4:2,n=0;n<e;++n)N<Tn&&v1(nt[N])?(r=nt[N++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):Ft({},gn,Fn);return String.fromCharCode(i)}function LB(){var t,n,e,r;for(n=0,(t=nt[N])==="}"&&Ft({},gn,Fn);N<Tn&&v1(t=nt[N++]);)n=16*n+"0123456789abcdef".indexOf(t.toLowerCase());return(n>1114111||t!=="}")&&Ft({},gn,Fn),n<=65535?String.fromCharCode(n):(e=55296+(n-65536>>10),r=56320+(n-65536&1023),String.fromCharCode(e,r))}function JD(){var t,n;for(t=nt.charCodeAt(N++),n=String.fromCharCode(t),t===92&&(nt.charCodeAt(N)!==117&&Ft({},gn,Fn),++N,(t=b1("u"))&&t!=="\\"&&Hu(t.charCodeAt(0))||Ft({},gn,Fn),n=t);N<Tn&&Zf(t=nt.charCodeAt(N));)++N,n+=String.fromCharCode(t),t===92&&(n=n.substr(0,n.length-1),nt.charCodeAt(N)!==117&&Ft({},gn,Fn),++N,(t=b1("u"))&&t!=="\\"&&Zf(t.charCodeAt(0))||Ft({},gn,Fn),n+=t);return n}function qB(){var t,n;return t=N,n=nt.charCodeAt(N)===92?JD():function(){var e,r;for(e=N++;N<Tn;){if((r=nt.charCodeAt(N))===92)return N=e,JD();if(!Zf(r))break;++N}return nt.slice(e,N)}(),{type:n.length===1?3:jB.hasOwnProperty(n)?4:n==="null"?5:n==="true"||n==="false"?1:3,value:n,start:t,end:N}}function x1(){var t,n,e,r,i=N,a=nt.charCodeAt(N),o=nt[N];switch(a){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++N,{type:7,value:String.fromCharCode(a),start:i,end:N};default:if((t=nt.charCodeAt(N+1))===61)switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return N+=2,{type:7,value:String.fromCharCode(a)+String.fromCharCode(t),start:i,end:N};case 33:case 61:return N+=2,nt.charCodeAt(N)===61&&++N,{type:7,value:nt.slice(i,N),start:i,end:N}}}return(r=nt.substr(N,4))===">>>="?{type:7,value:r,start:i,end:N+=4}:(e=r.substr(0,3))===">>>"||e==="<<="||e===">>="?{type:7,value:e,start:i,end:N+=3}:o===(n=e.substr(0,2))[1]&&"+-<>&|".includes(o)||n==="=>"?{type:7,value:n,start:i,end:N+=2}:(n==="//"&&Ft({},gn,Fn),"<>=!+-*%&|^/".includes(o)?{type:7,value:o,start:i,end:++N}:void Ft({},gn,Fn))}function KD(){var t,n,e;if(Qf(pi((e=nt[N]).charCodeAt(0))||e===".","Numeric literal must start with a decimal digit or a decimal point"),n=N,t="",e!=="."){if(t=nt[N++],e=nt[N],t==="0"){if(e==="x"||e==="X")return++N,function(r){let i="";for(;N<Tn&&v1(nt[N]);)i+=nt[N++];return i.length===0&&Ft({},gn,Fn),Hu(nt.charCodeAt(N))&&Ft({},gn,Fn),{type:6,value:parseInt("0x"+i,16),start:r,end:N}}(n);if(Iu(e))return function(r){let i="0"+nt[N++];for(;N<Tn&&Iu(nt[N]);)i+=nt[N++];return(Hu(nt.charCodeAt(N))||pi(nt.charCodeAt(N)))&&Ft({},gn,Fn),{type:6,value:parseInt(i,8),octal:!0,start:r,end:N}}(n);e&&pi(e.charCodeAt(0))&&Ft({},gn,Fn)}for(;pi(nt.charCodeAt(N));)t+=nt[N++];e=nt[N]}if(e==="."){for(t+=nt[N++];pi(nt.charCodeAt(N));)t+=nt[N++];e=nt[N]}if(e==="e"||e==="E")if(t+=nt[N++],(e=nt[N])!=="+"&&e!=="-"||(t+=nt[N++]),pi(nt.charCodeAt(N)))for(;pi(nt.charCodeAt(N));)t+=nt[N++];else Ft({},gn,Fn);return Hu(nt.charCodeAt(N))&&Ft({},gn,Fn),{type:6,value:parseFloat(t),start:n,end:N}}function UB(){var t,n,e,r;return zt=null,XD(),t=N,n=function(){var i,a,o,s;for(Qf((i=nt[N])==="/","Regular expression literal must start with a slash"),a=nt[N++],o=!1,s=!1;N<Tn;)if(a+=i=nt[N++],i==="\\")Wu((i=nt[N++]).charCodeAt(0))&&Ft({},y1),a+=i;else if(Wu(i.charCodeAt(0)))Ft({},y1);else if(o)i==="]"&&(o=!1);else{if(i==="/"){s=!0;break}i==="["&&(o=!0)}return s||Ft({},y1),{value:a.substr(1,a.length-2),literal:a}}(),e=function(){var i,a,o;for(a="",o="";N<Tn&&Zf((i=nt[N]).charCodeAt(0));)++N,i==="\\"&&N<Tn?Ft({},gn,Fn):(o+=i,a+=i);return o.search(/[^gimuy]/g)>=0&&Ft({},g1,o),{value:o,literal:a}}(),r=function(i,a){let o=i;a.includes("u")&&(o=o.replace(/\\u\{([0-9a-fA-F]+)\}/g,(s,u)=>{if(parseInt(u,16)<=1114111)return"x";Ft({},g1)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(o)}catch{Ft({},g1)}try{return new RegExp(i,a)}catch{return null}}(n.value,e.value),{literal:n.literal+e.literal,value:r,regex:{pattern:n.value,flags:e.value},start:t,end:N}}function QD(){if(XD(),N>=Tn)return{type:2,start:N,end:N};const t=nt.charCodeAt(N);return Hu(t)?qB():t===40||t===41||t===59?x1():t===39||t===34?function(){var n,e,r,i,a="",o=!1;for(Qf((n=nt[N])==="'"||n==='"',"String literal must starts with a quote"),e=N,++N;N<Tn;){if((r=nt[N++])===n){n="";break}if(r==="\\")if((r=nt[N++])&&Wu(r.charCodeAt(0)))r==="\r"&&nt[N]===`
1
+ import{cs as qs,gP as Vh,gQ as Vb,gR as Yb,gS as Ul,gT as bt,gU as In,gV as J,gW as tt,gX as Me,cC as T,gY as P,gZ as Us,g_ as Be,g$ as ka,h0 as V,h1 as Xb,h2 as Jb,h3 as xt,h4 as Yh,h5 as en,h6 as Wn,h7 as ko,h8 as ze,h9 as kr,cB as Xh,ha as Kb,hb as Qb,hc as Zb,hd as tx,he as Bt,hf as Jh,hg as Kh,bt as nx,hh as ei,hi as ex,hj as Il,hk as Do,hl as Qh,hm as Zh,hn as tp,ho as rx,hp as ix,cy as ax,ct as a6,y as o6,hq as s6,bu as u6,bK as l6,bL as c6,hr as f6,bN as d6,bO as h6,bP as p6,hs as Dr,cD as Q,ht as $t,cE as Z,hu as ox,hv as Oi,hw as Is,hx as np,hy as Wl,hz as ep,hA as rp,hB as G,bC as sx,hC as Da,hD as Fo,hE as ux,hF as lx,hG as cx,hH as fx,hI as dx,hJ as hx,hK as px,hL as mx,hM as gx,hN as yx,hO as vx,hP as bx,hQ as xx,hR as wx,hS as Ax,hT as _x,hU as kx,hV as Dx,hW as Fx,hX as Cx,hY as Ex,hZ as $x,h_ as ip,cG as Fa,h$ as Sx,i0 as Mx,cF as Hl,i1 as Ni,i2 as m6,i3 as g6,i4 as y6,i5 as v6,i6 as b6,i7 as x6,i8 as w6,i9 as A6,ia as _6,ib as k6,ic as D6,id as F6,ie as C6,ig as Bx,ih as E6,ii as $6,ij as S6,aK as M6,ik as B6,il as z6,im as O6,io as N6,ip as R6,iq as T6,ir as P6,cH as ap}from"./index-CSPyN4cW.js";import{m as op,a as Ca,d as j6,r as L6,l as sp,i as q6,h as U6,n as I6,c as W6,u as H6,b as G6,t as V6,e as Y6}from"./time-BOg6M-VK.js";import{n as X6,b as J6,i as Ws,d as K6,e as Q6,f as Z6,o as t8,g as Gl,h as zx,j as Co,t as up,a as lp,k as Ri,m as Ea,l as n8,p as e8,q as r8}from"./linear-CRzT0Y7Z.js";import{r as xe}from"./range-CtcPcB_L.js";import{R as Ox,r as i8,d as a8,e as o8,m as Nx,o as Rx,C as s8,h as cp,p as fp,n as Oe,q as u8,s as l8,i as c8,a as f8,u as d8,v as h8,b as p8,k as m8,j as g8,T as y8,l as v8,w as Vl,t as b8,g as x8}from"./timer-BwIYMJWC.js";import{i as w8}from"./zoom-COrs4lFh.js";import{i as $a,a as Ti}from"./init-DLRA0X12.js";import{I as Yl,o as Tx,i as A8}from"./ordinal-DDUp3AbE.js";import{c as Fr}from"./colors-bszWmPJw.js";import{w as Px,n as _8,z as jx,a as Hn,J as k8,K as D8,l as Lx,b as F8,t as C8,p as E8,o as $8,q as S8,r as M8,u as B8,x as z8,v as O8,y as N8,B as R8,C as T8,A as P8,F as j8,E as L8,D as q8,G as U8,H as I8,I as W8,k as H8,L as dp}from"./step-BwsUM5iJ.js";import{d as G8}from"./arc-ZB5pDULS.js";import{o as Xl,c as qx,a as V8,r as Y8,b as Jl,N as Ux,d as X8,e as hp,s as J8,p as K8,h as Q8,t as Z8,f as t9}from"./index-BEQfoZiP.js";class Gn{constructor(){this._partials=new Float64Array(32),this._n=0}add(n){const e=this._partials;let r=0;for(let i=0;i<this._n&&i<32;i++){const a=e[i],o=n+a,s=Math.abs(n)<Math.abs(a)?n-(o-a):a-(o-n);s&&(e[r++]=s),n=o}return e[r]=n,this._n=r+1,this}valueOf(){const n=this._partials;let e,r,i,a=this._n,o=0;if(a>0){for(o=n[--a];a>0&&(e=o,r=n[--a],o=e+r,i=r-(o-e),!i););a>0&&(i<0&&n[a-1]<0||i>0&&n[a-1]>0)&&(r=2*i,e=o+r,r==e-o&&(o=e))}return o}}function Ix(t,n){return(t==null||!(t>=t))-(n==null||!(n>=n))||(t<n?-1:t>n?1:0)}function Wx(t,n,e=0,r=1/0,i){if(n=Math.floor(n),e=Math.floor(Math.max(0,e)),r=Math.floor(Math.min(t.length-1,r)),!(e<=n&&n<=r))return t;for(i=i===void 0?Ix:function(a=qs){if(a===qs)return Ix;if(typeof a!="function")throw new TypeError("compare is not a function");return(o,s)=>{const u=a(o,s);return u||u===0?u:(a(s,s)===0)-(a(o,o)===0)}}(i);r>e;){if(r-e>600){const u=r-e+1,l=n-e+1,c=Math.log(u),f=.5*Math.exp(2*c/3),d=.5*Math.sqrt(c*f*(u-f)/u)*(l-u/2<0?-1:1);Wx(t,n,Math.max(e,Math.floor(n-l*f/u+d)),Math.min(r,Math.floor(n+(u-l)*f/u+d)),i)}const a=t[n];let o=e,s=r;for(Hs(t,e,n),i(t[r],a)>0&&Hs(t,e,r);o<s;){for(Hs(t,o,s),++o,--s;i(t[o],a)<0;)++o;for(;i(t[s],a)>0;)--s}i(t[e],a)===0?Hs(t,e,s):(++s,Hs(t,s,r)),s<=n&&(e=s+1),n<=s&&(r=s-1)}return t}function Hs(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function pp(t,n,e){if((r=(t=Float64Array.from(X6(t,e))).length)&&!isNaN(n=+n)){if(n<=0||r<2)return op(t);if(n>=1)return Ca(t);var r,i=(r-1)*n,a=Math.floor(i),o=Ca(Wx(t,a).subarray(0,a+1));return o+(op(t.subarray(a+1))-o)*(i-a)}}function Hx(t,n,e=J6){if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,a=Math.floor(i),o=+e(t[a],a,t);return o+(+e(t[a+1],a+1,t)-o)*(i-a)}}function Gx(t,n){return pp(t,.5,n)}function Vx(t){return Array.from(function*(n){for(const e of n)yield*e}(t))}function Yx(t,n){let e=0;for(let r of t)(r=+r)&&(e+=r);return e}function n9(t){return t instanceof Yl?t:new Yl(t)}var Xx=-.14861,mp=1.78277,gp=-.29227,Kl=-.90649,Gs=1.97294,Jx=Gs*Kl,Kx=Gs*mp,Qx=mp*gp-Kl*Xx;function yp(t,n,e,r){return arguments.length===1?function(i){if(i instanceof Sa)return new Sa(i.h,i.s,i.l,i.opacity);i instanceof Ox||(i=i8(i));var a=i.r/255,o=i.g/255,s=i.b/255,u=(Qx*s+Jx*a-Kx*o)/(Qx+Jx-Kx),l=s-u,c=(Gs*(o-u)-gp*l)/Kl,f=Math.sqrt(c*c+l*l)/(Gs*u*(1-u)),d=f?Math.atan2(c,l)*j6-120:NaN;return new Sa(d<0?d+360:d,f,u,i.opacity)}(t):new Sa(t,n,e,r??1)}function Sa(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Zx(t){return function(n,e){var r=t((n=fp(n)).h,(e=fp(e)).h),i=Oe(n.s,e.s),a=Oe(n.l,e.l),o=Oe(n.opacity,e.opacity);return function(s){return n.h=r(s),n.s=i(s),n.l=a(s),n.opacity=o(s),n+""}}}a8(Sa,yp,o8(s8,{brighter(t){return t=t==null?Rx:Math.pow(Rx,t),new Sa(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Nx:Math.pow(Nx,t),new Sa(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*L6,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Ox(255*(n+e*(Xx*r+mp*i)),255*(n+e*(gp*r+Kl*i)),255*(n+e*(Gs*r)),this.opacity)}}));const e9=Zx(cp);var r9=Zx(Oe);function t2(t){return function n(e){function r(i,a){var o=t((i=yp(i)).h,(a=yp(a)).h),s=Oe(i.s,a.s),u=Oe(i.l,a.l),l=Oe(i.opacity,a.opacity);return function(c){return i.h=o(c),i.s=s(c),i.l=u(Math.pow(c,e)),i.opacity=l(c),i+""}}return e=+e,r.gamma=n,r}(1)}const i9=t2(cp);var a9=t2(Oe);function vp(t,n){n===void 0&&(n=t,t=Ws);for(var e=0,r=n.length-1,i=n[0],a=new Array(r<0?0:r);e<r;)a[e]=t(i,i=n[++e]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}const o9=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Ws,interpolateArray:K6,interpolateBasis:u8,interpolateBasisClosed:l8,interpolateCubehelix:i9,interpolateCubehelixLong:a9,interpolateDate:Q6,interpolateDiscrete:function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},interpolateHcl:q6,interpolateHclLong:U6,interpolateHsl:e9,interpolateHslLong:r9,interpolateHue:function(t,n){var e=cp(+t,+n);return function(r){var i=e(r);return i-360*Math.floor(i/360)}},interpolateLab:function(t,n){var e=Oe((t=sp(t)).l,(n=sp(n)).l),r=Oe(t.a,n.a),i=Oe(t.b,n.b),a=Oe(t.opacity,n.opacity);return function(o){return t.l=e(o),t.a=r(o),t.b=i(o),t.opacity=a(o),t+""}},interpolateNumber:c8,interpolateNumberArray:Z6,interpolateObject:t8,interpolateRgb:f8,interpolateRgbBasis:d8,interpolateRgbBasisClosed:h8,interpolateRound:Gl,interpolateString:p8,interpolateTransformCss:m8,interpolateTransformSvg:g8,interpolateZoom:w8,piecewise:vp,quantize:function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e}},Symbol.toStringTag,{value:"Module"}));function Ql(t){const n=t||Me,e=[],r={};return e.add=i=>{const a=n(i);return r[a]||(r[a]=1,e.push(i)),e},e.remove=i=>{const a=n(i);if(r[a]){r[a]=0;const o=e.indexOf(i);o>=0&&e.splice(o,1)}return e},e}async function Zl(t,n){try{await n(t)}catch(e){t.error(e)}}const n2=Symbol("vega_id");let s9=1;function tc(t){return!(!t||!st(t))}function st(t){return t[n2]}function e2(t,n){return t[n2]=n,t}function St(t){const n=t===Object(t)?t:{data:t};return st(n)?n:e2(n,s9++)}function bp(t){return nc(t,St({}))}function nc(t,n){for(const e in t)n[e]=t[e];return n}function r2(t,n){return e2(n,st(t))}function Ma(t,n){return t?n?(e,r)=>t(e,r)||st(n(e))-st(n(r)):(e,r)=>t(e,r)||st(e)-st(r):null}function i2(t){return t&&t.constructor===Ba}function Ba(){const t=[],n=[],e=[],r=[],i=[];let a=null,o=!1;return{constructor:Ba,insert(s){const u=J(s),l=u.length;for(let c=0;c<l;++c)t.push(u[c]);return this},remove(s){const u=bt(s)?r:n,l=J(s),c=l.length;for(let f=0;f<c;++f)u.push(l[f]);return this},modify(s,u,l){const c={field:u,value:In(l)};return bt(s)?(c.filter=s,i.push(c)):(c.tuple=s,e.push(c)),this},encode(s,u){return bt(s)?i.push({filter:s,field:u}):e.push({tuple:s,field:u}),this},clean(s){return a=s,this},reflow(){return o=!0,this},pulse(s,u){const l={},c={};let f,d,h,p,m,g;for(f=0,d=u.length;f<d;++f)l[st(u[f])]=1;for(f=0,d=n.length;f<d;++f)m=n[f],l[st(m)]=-1;for(f=0,d=r.length;f<d;++f)p=r[f],u.forEach(v=>{p(v)&&(l[st(v)]=-1)});for(f=0,d=t.length;f<d;++f)m=t[f],g=st(m),l[g]?l[g]=1:s.add.push(St(t[f]));for(f=0,d=u.length;f<d;++f)m=u[f],l[st(m)]<0&&s.rem.push(m);function y(v,x,b){b?v[x]=b(v):s.encode=x,o||(c[st(v)]=v)}for(f=0,d=e.length;f<d;++f)h=e[f],m=h.tuple,p=h.field,g=l[st(m)],g>0&&(y(m,p,h.value),s.modifies(p));for(f=0,d=i.length;f<d;++f)h=i[f],p=h.filter,u.forEach(v=>{p(v)&&l[st(v)]>0&&y(v,h.field,h.value)}),s.modifies(h.field);if(o)s.mod=n.length||r.length?u.filter(v=>l[st(v)]>0):u.slice();else for(g in c)s.mod.push(c[g]);return(a||a==null&&(n.length||r.length))&&s.clean(!0),s}}}const ec="_:mod:_";function rc(){Object.defineProperty(this,ec,{writable:!0,value:{}})}rc.prototype={set(t,n,e,r){const i=this,a=i[t],o=i[ec];return n!=null&&n>=0?(a[n]!==e||r)&&(a[n]=e,o[n+":"+t]=-1,o[t]=-1):(a!==e||r)&&(i[t]=e,o[t]=T(e)?1+e.length:-1),i},modified(t,n){const e=this[ec];if(!arguments.length){for(const r in e)if(e[r])return!0;return!1}if(T(t)){for(let r=0;r<t.length;++r)if(e[t[r]])return!0;return!1}return n!=null&&n>=0?n+1<e[t]||!!e[n+":"+t]:!!e[t]},clear(){return this[ec]={},this}};let u9=0;const l9=new rc;function Ut(t,n,e,r){this.id=++u9,this.value=t,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,n&&(this._update=n),e&&this.parameters(e,r)}function a2(t){return function(n){const e=this.flags;return arguments.length===0?!!(e&t):(this.flags=n?e|t:e&~t,this)}}Ut.prototype={targets(){return this._targets||(this._targets=Ql(Us))},set(t){return this.value!==t?(this.value=t,1):0},skip:a2(1),modified:a2(2),parameters(t,n,e){n=n!==!1;const r=this._argval=this._argval||new rc,i=this._argops=this._argops||[],a=[];let o,s,u,l;const c=(f,d,h)=>{h instanceof Ut?(h!==this&&(n&&h.targets().add(this),a.push(h)),i.push({op:h,name:f,index:d})):r.set(f,d,h)};for(o in t)if(s=t[o],o==="pulse")J(s).forEach(f=>{f instanceof Ut?f!==this&&(f.targets().add(this),a.push(f)):P("Pulse parameters must be operator instances.")}),this.source=s;else if(T(s))for(r.set(o,-1,Array(u=s.length)),l=0;l<u;++l)c(o,l,s[l]);else c(o,-1,s);return this.marshall().clear(),e&&(i.initonly=!0),a},marshall(t){const n=this._argval||l9,e=this._argops;let r,i,a,o;if(e){const s=e.length;for(i=0;i<s;++i)r=e[i],a=r.op,o=a.modified()&&a.stamp===t,n.set(r.name,r.index,a.value,o);if(e.initonly){for(i=0;i<s;++i)r=e[i],r.op.targets().remove(this);this._argops=null,this._update=null}}return n},detach(){const t=this._argops;let n,e,r,i;if(t)for(n=0,e=t.length;n<e;++n)r=t[n],i=r.op,i._targets&&i._targets.remove(this);this.pulse=null,this.source=null},evaluate(t){const n=this._update;if(n){const e=this.marshall(t.stamp),r=n.call(this,e,t);if(e.clear(),r!==this.value)this.value=r;else if(!this.modified())return t.StopPropagation}},run(t){if(t.stamp<this.stamp)return t.StopPropagation;let n;return this.skip()?(this.skip(!1),n=0):n=this.evaluate(t),this.pulse=n||t}};let c9=0;function ic(t,n,e){this.id=++c9,this.value=null,e&&(this.receive=e),t&&(this._filter=t),n&&(this._apply=n)}function Pi(t,n,e){return new ic(t,n,e)}ic.prototype={_filter:Be,_apply:Me,targets(){return this._targets||(this._targets=Ql(Us))},consume(t){return arguments.length?(this._consume=!!t,this):!!this._consume},receive(t){if(this._filter(t)){const n=this.value=this._apply(t),e=this._targets,r=e?e.length:0;for(let i=0;i<r;++i)e[i].receive(n);this._consume&&(t.preventDefault(),t.stopPropagation())}},filter(t){const n=Pi(t);return this.targets().add(n),n},apply(t){const n=Pi(null,t);return this.targets().add(n),n},merge(){const t=Pi();this.targets().add(t);for(let n=0,e=arguments.length;n<e;++n)arguments[n].targets().add(t);return t},throttle(t){let n=-1;return this.filter(()=>{const e=Date.now();return e-n>t?(n=e,1):0})},debounce(t){const n=Pi();return this.targets().add(Pi(null,null,Yh(t,e=>{const r=e.dataflow;n.receive(e),r&&r.run&&r.run()}))),n},between(t,n){let e=!1;return t.targets().add(Pi(null,null,()=>e=!0)),n.targets().add(Pi(null,null,()=>e=!1)),this.filter(()=>e)},detach(){this._filter=Be,this._targets=null}};const f9={skip:!0};function d9(t,n,e,r,i,a){const o=xt({},a,f9);let s,u;bt(e)||(e=In(e)),r===void 0?s=l=>t.touch(e(l)):bt(r)?(u=new Ut(null,r,i,!1),s=l=>{u.evaluate(l);const c=e(l),f=u.value;i2(f)?t.pulse(c,f,a):t.update(c,f,o)}):s=l=>t.update(e(l),r,o),n.apply(s)}function h9(t,n,e,r,i,a){if(r===void 0)n.targets().add(e);else{const o=a||{},s=new Ut(null,function(u,l){return l=bt(l)?l:In(l),u?function(c,f){const d=l(c,f);return u.skip()||(u.skip(d!==this.value).value=d),d}:l}(e,r),i,!1);s.modified(o.force),s.rank=n.rank,n.targets().add(s),e&&(s.skip(!0),s.value=e.value,s.targets().add(e),t.connect(e,[s]))}}const ac={};function ji(t,n,e){this.dataflow=t,this.stamp=n??-1,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=e||null}function xp(t,n){const e=[];return ka(t,n,r=>e.push(r)),e}function o2(t,n){const e={};return t.visit(n,r=>{e[st(r)]=1}),r=>e[st(r)]?null:r}function oc(t,n){return t?(e,r)=>t(e,r)&&n(e,r):n}function wp(t,n,e,r){const i=this;let a=0;this.dataflow=t,this.stamp=n,this.fields=null,this.encode=r||null,this.pulses=e;for(const o of e)if(o.stamp===n){if(o.fields){const s=i.fields||(i.fields={});for(const u in o.fields)s[u]=1}o.changed(i.ADD)&&(a|=i.ADD),o.changed(i.REM)&&(a|=i.REM),o.changed(i.MOD)&&(a|=i.MOD)}this.changes=a}function s2(t){return t.error("Dataflow already running. Use runAsync() to chain invocations."),t}ji.prototype={StopPropagation:ac,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(t){return new ji(this.dataflow).init(this,t)},clone(){const t=this.fork(7);return t.add=t.add.slice(),t.rem=t.rem.slice(),t.mod=t.mod.slice(),t.source&&(t.source=t.source.slice()),t.materialize(23)},addAll(){let t=this;return!t.source||t.add===t.rem||!t.rem.length&&t.source.length===t.add.length||(t=new ji(this.dataflow).init(this),t.add=t.source,t.rem=[]),t},init(t,n){const e=this;return e.stamp=t.stamp,e.encode=t.encode,!t.fields||64&n||(e.fields=t.fields),1&n?(e.addF=t.addF,e.add=t.add):(e.addF=null,e.add=[]),2&n?(e.remF=t.remF,e.rem=t.rem):(e.remF=null,e.rem=[]),4&n?(e.modF=t.modF,e.mod=t.mod):(e.modF=null,e.mod=[]),32&n?(e.srcF=null,e.source=null):(e.srcF=t.srcF,e.source=t.source,t.cleans&&(e.cleans=t.cleans)),e},runAfter(t){this.dataflow.runAfter(t)},changed(t){const n=t||7;return 1&n&&this.add.length||2&n&&this.rem.length||4&n&&this.mod.length},reflow(t){if(t)return this.fork(7).reflow();const n=this.add.length,e=this.source&&this.source.length;return e&&e!==n&&(this.mod=this.source,n&&this.filter(4,o2(this,1))),this},clean(t){return arguments.length?(this.cleans=!!t,this):this.cleans},modifies(t){const n=this.fields||(this.fields={});return T(t)?t.forEach(e=>n[e]=!0):n[t]=!0,this},modified(t,n){const e=this.fields;return!(!n&&!this.mod.length||!e)&&(arguments.length?T(t)?t.some(r=>e[r]):e[t]:!!e)},filter(t,n){const e=this;return 1&t&&(e.addF=oc(e.addF,n)),2&t&&(e.remF=oc(e.remF,n)),4&t&&(e.modF=oc(e.modF,n)),16&t&&(e.srcF=oc(e.srcF,n)),e},materialize(t){const n=this;return 1&(t=t||7)&&n.addF&&(n.add=xp(n.add,n.addF),n.addF=null),2&t&&n.remF&&(n.rem=xp(n.rem,n.remF),n.remF=null),4&t&&n.modF&&(n.mod=xp(n.mod,n.modF),n.modF=null),16&t&&n.srcF&&(n.source=n.source.filter(n.srcF),n.srcF=null),n},visit(t,n){const e=this,r=n;if(16&t)return ka(e.source,e.srcF,r),e;1&t&&ka(e.add,e.addF,r),2&t&&ka(e.rem,e.remF,r),4&t&&ka(e.mod,e.modF,r);const i=e.source;if(8&t&&i){const a=e.add.length+e.mod.length;a===i.length||ka(i,a?o2(e,5):e.srcF,r)}return e}},V(wp,ji,{fork(t){const n=new ji(this.dataflow).init(this,t&this.NO_FIELDS);return t!==void 0&&(t&n.ADD&&this.visit(n.ADD,e=>n.add.push(e)),t&n.REM&&this.visit(n.REM,e=>n.rem.push(e)),t&n.MOD&&this.visit(n.MOD,e=>n.mod.push(e))),n},changed(t){return this.changes&t},modified(t){const n=this,e=n.fields;return e&&n.changes&n.MOD?T(t)?t.some(r=>e[r]):e[t]:0},filter(){P("MultiPulse does not support filtering.")},materialize(){P("MultiPulse does not support materialization.")},visit(t,n){const e=this,r=e.pulses,i=r.length;let a=0;if(t&e.SOURCE)for(;a<i;++a)r[a].visit(t,n);else for(;a<i;++a)r[a].stamp===e.stamp&&r[a].visit(t,n);return e}});const Ap={skip:!1,force:!1};function p9(t){let n=[];return{clear:()=>n=[],size:()=>n.length,peek:()=>n[0],push:e=>(n.push(e),u2(n,0,n.length-1,t)),pop:()=>{const e=n.pop();let r;return n.length?(r=n[0],n[0]=e,function(i,a,o){const s=a,u=i.length,l=i[a];let c,f=1+(a<<1);for(;f<u;)c=f+1,c<u&&o(i[f],i[c])>=0&&(f=c),i[a]=i[f],f=1+((a=f)<<1);i[a]=l,u2(i,s,a,o)}(n,0,t)):r=e,r}}}function u2(t,n,e,r){let i,a;const o=t[e];for(;e>n&&(a=e-1>>1,i=t[a],r(o,i)<0);)t[e]=i,e=a;return t[e]=o}function Eo(){this.logger(Vh()),this.logLevel(Vb),this._clock=0,this._rank=0,this._locale=Yb();try{this._loader=Ul()}catch{}this._touched=Ql(Us),this._input={},this._pulse=null,this._heap=p9((t,n)=>t.qrank-n.qrank),this._postrun=[]}function Vs(t){return function(){return this._log[t].apply(this,arguments)}}function O(t,n){Ut.call(this,t,null,n)}Eo.prototype={stamp(){return this._clock},loader(t){return arguments.length?(this._loader=t,this):this._loader},locale(t){return arguments.length?(this._locale=t,this):this._locale},logger(t){return arguments.length?(this._log=t,this):this._log},error:Vs("error"),warn:Vs("warn"),info:Vs("info"),debug:Vs("debug"),logLevel:Vs("level"),cleanThreshold:1e4,add:function(t,n,e,r){let i,a=1;return t instanceof Ut?i=t:t&&t.prototype instanceof Ut?i=new t:bt(t)?i=new Ut(null,t):(a=0,i=new Ut(t,n)),this.rank(i),a&&(r=e,e=n),e&&this.connect(i,i.parameters(e,r)),this.touch(i),i},connect:function(t,n){const e=t.rank,r=n.length;for(let i=0;i<r;++i)if(e<n[i].rank)return void this.rerank(t)},rank:function(t){t.rank=++this._rank},rerank:function(t){const n=[t];let e,r,i;for(;n.length;)if(this.rank(e=n.pop()),r=e._targets)for(i=r.length;--i>=0;)n.push(e=r[i]),e===t&&P("Cycle detected in dataflow graph.")},pulse:function(t,n,e){this.touch(t,e||Ap);const r=new ji(this,this._clock+(this._pulse?0:1)),i=t.pulse&&t.pulse.source||[];return r.target=t,this._input[t.id]=n.pulse(r,i),this},touch:function(t,n){const e=n||Ap;return this._pulse?this._enqueue(t):this._touched.add(t),e.skip&&t.skip(!0),this},update:function(t,n,e){const r=e||Ap;return(t.set(n)||r.force)&&this.touch(t,r),this},changeset:Ba,ingest:function(t,n,e){return n=this.parse(n,e),this.pulse(t,this.changeset().insert(n))},parse:function(t,n){const e=this.locale();return Jb(t,n,e.timeParse,e.utcParse)},preload:async function(t,n,e){const r=this,i=r._pending||function(o){let s;const u=new Promise(l=>s=l);return u.requests=0,u.done=()=>{--u.requests===0&&(o._pending=null,s(o))},o._pending=u}(r);i.requests+=1;const a=await r.request(n,e);return r.pulse(t,r.changeset().remove(Be).insert(a.data||[])),i.done(),a},request:async function(t,n){const e=this;let r,i=0;try{r=await e.loader().load(t,{context:"dataflow",response:Xb(n&&n.type)});try{r=e.parse(r,n)}catch(a){i=-2,e.warn("Data ingestion failed",t,a)}}catch(a){i=-1,e.warn("Loading failed",t,a)}return{data:r,status:i}},events:function(t,n,e,r){const i=this,a=Pi(e,r),o=function(l){l.dataflow=i;try{a.receive(l)}catch(c){i.error(c)}finally{i.run()}};let s;s=typeof t=="string"&&typeof document<"u"?document.querySelectorAll(t):J(t);const u=s.length;for(let l=0;l<u;++l)s[l].addEventListener(n,o);return a},on:function(t,n,e,r,i){return(t instanceof Ut?h9:d9)(this,t,n,e,r,i),this},evaluate:async function(t,n,e){const r=this,i=[];if(r._pulse)return s2(r);if(r._pending&&await r._pending,n&&await Zl(r,n),!r._touched.length)return r.debug("Dataflow invoked, but nothing to do."),r;const a=++r._clock;r._pulse=new ji(r,a,t),r._touched.forEach(c=>r._enqueue(c,!0)),r._touched=Ql(Us);let o,s,u,l=0;try{for(;r._heap.size()>0;)o=r._heap.pop(),o.rank===o.qrank?(s=o.run(r._getPulse(o,t)),s.then?s=await s:s.async&&(i.push(s.async),s=ac),s!==ac&&o._targets&&o._targets.forEach(c=>r._enqueue(c)),++l):r._enqueue(o,!0)}catch(c){r._heap.clear(),u=c}if(r._input={},r._pulse=null,r.debug(`Pulse ${a}: ${l} operators`),u&&(r._postrun=[],r.error(u)),r._postrun.length){const c=r._postrun.sort((f,d)=>d.priority-f.priority);r._postrun=[];for(let f=0;f<c.length;++f)await Zl(r,c[f].callback)}return e&&await Zl(r,e),i.length&&Promise.all(i).then(c=>r.runAsync(null,()=>{c.forEach(f=>{try{f(r)}catch(d){r.error(d)}})})),r},run:function(t,n,e){return this._pulse?s2(this):(this.evaluate(t,n,e),this)},runAsync:async function(t,n,e){for(;this._running;)await this._running;const r=()=>this._running=null;return(this._running=this.evaluate(t,n,e)).then(r,r),this._running},runAfter:function(t,n,e){if(this._pulse||n)this._postrun.push({priority:e||0,callback:t});else try{t(this)}catch(r){this.error(r)}},_enqueue:function(t,n){const e=t.stamp<this._clock;e&&(t.stamp=this._clock),(e||n)&&(t.qrank=t.rank,this._heap.push(t))},_getPulse:function(t,n){const e=t.source,r=this._clock;return e&&T(e)?new wp(this,r,e.map(i=>i.pulse),n):this._input[t.id]||function(i,a){return a&&a.stamp===i.stamp?a:(i=i.fork(),a&&a!==ac&&(i.source=a.source),i)}(this._pulse,e&&e.pulse)}},V(O,Ut,{run(t){if(t.stamp<this.stamp)return t.StopPropagation;let n;return this.skip()?this.skip(!1):n=this.evaluate(t),n=n||t,n.then?n=n.then(e=>this.pulse=e):n!==t.StopPropagation&&(this.pulse=n),n},evaluate(t){const n=this.marshall(t.stamp),e=this.transform(n,t);return n.clear(),e},transform(){}});const $o={};function l2(t){const n=c2(t);return n&&n.Definition||null}function c2(t){return t=t&&t.toLowerCase(),tt($o,t)?$o[t]:null}function*f2(t,n){if(n==null)for(let e of t)e!=null&&e!==""&&(e=+e)>=e&&(yield e);else{let e=-1;for(let r of t)r=n(r,++e,t),r!=null&&r!==""&&(r=+r)>=r&&(yield r)}}function _p(t,n,e){const r=Float64Array.from(f2(t,e));return r.sort(qs),n.map(i=>Hx(r,i))}function kp(t,n){return _p(t,[.25,.5,.75],n)}function Dp(t,n){const e=t.length,r=function(o,s){const u=function(l,c){let f,d=0,h=0,p=0;if(c===void 0)for(let m of l)m!=null&&(m=+m)>=m&&(f=m-h,h+=f/++d,p+=f*(m-h));else{let m=-1;for(let g of l)(g=c(g,++m,l))!=null&&(g=+g)>=g&&(f=g-h,h+=f/++d,p+=f*(g-h))}if(d>1)return p/(d-1)}(o,s);return u&&Math.sqrt(u)}(t,n),i=kp(t,n),a=(i[2]-i[0])/1.34;return 1.06*(Math.min(r,a)||r||Math.abs(i[0])||1)*Math.pow(e,-.2)}function d2(t){const n=t.maxbins||20,e=t.base||10,r=Math.log(e),i=t.divide||[5,2];let a,o,s,u,l,c,f=t.extent[0],d=t.extent[1];const h=t.span||d-f||Math.abs(f)||1;if(t.step)a=t.step;else if(t.steps){for(u=h/n,l=0,c=t.steps.length;l<c&&t.steps[l]<u;++l);a=t.steps[Math.max(0,l-1)]}else{for(o=Math.ceil(Math.log(n)/r),s=t.minstep||0,a=Math.max(s,Math.pow(e,Math.round(Math.log(h)/r)-o));Math.ceil(h/a)>n;)a*=e;for(l=0,c=i.length;l<c;++l)u=a/i[l],u>=s&&h/u<=n&&(a=u)}u=Math.log(a);const p=u>=0?0:1+~~(-u/r),m=Math.pow(e,-p-1);return(t.nice||t.nice===void 0)&&(u=Math.floor(f/a+m)*a,f=f<u?u-a:u,d=Math.ceil(d/a)*a),{start:f,stop:d===f?f+a:d,step:a}}var Ne=Math.random;function h2(t,n,e,r){if(!t.length)return[void 0,void 0];const i=Float64Array.from(f2(t,r)),a=i.length,o=n;let s,u,l,c;for(l=0,c=Array(o);l<o;++l){for(s=0,u=0;u<a;++u)s+=i[~~(Ne()*a)];c[l]=s/a}return c.sort(qs),[pp(c,e/2),pp(c,1-e/2)]}function p2(t,n,e,r){r=r||(d=>d);const i=t.length,a=new Float64Array(i);let o,s=0,u=1,l=r(t[0]),c=l,f=l+n;for(;u<i;++u){if(o=r(t[u]),o>=f){for(c=(l+c)/2;s<u;++s)a[s]=c;f=o+n,l=o}c=o}for(c=(l+c)/2;s<u;++s)a[s]=c;return e?function(d,h){const p=d.length;let m,g,y=0,v=1;for(;d[y]===d[v];)++v;for(;v<p;){for(m=v+1;d[v]===d[m];)++m;if(d[v]-d[v-1]<h){for(g=v+(y+m-v-v>>1);g<v;)d[g++]=d[v];for(;g>v;)d[g--]=d[y]}y=v,v=m}return d}(a,n+n/4):a}const m2=Math.sqrt(2*Math.PI),m9=Math.SQRT2;let Ys=NaN;function sc(t,n){t=t||0,n=n??1;let e,r,i=0,a=0;if(Ys==Ys)i=Ys,Ys=NaN;else{do i=2*Ne()-1,a=2*Ne()-1,e=i*i+a*a;while(e===0||e>1);r=Math.sqrt(-2*Math.log(e)/e),i*=r,Ys=a*r}return t+i*n}function Fp(t,n,e){const r=(t-(n||0))/(e=e??1);return Math.exp(-.5*r*r)/(e*m2)}function uc(t,n,e){const r=(t-(n=n||0))/(e=e??1),i=Math.abs(r);let a;if(i>37)a=0;else{const o=Math.exp(-i*i/2);let s;i<7.07106781186547?(s=.0352624965998911*i+.700383064443688,s=s*i+6.37396220353165,s=s*i+33.912866078383,s=s*i+112.079291497871,s=s*i+221.213596169931,s=s*i+220.206867912376,a=o*s,s=.0883883476483184*i+1.75566716318264,s=s*i+16.064177579207,s=s*i+86.7807322029461,s=s*i+296.564248779674,s=s*i+637.333633378831,s=s*i+793.826512519948,s=s*i+440.413735824752,a/=s):(s=i+.65,s=i+4/s,s=i+3/s,s=i+2/s,s=i+1/s,a=o/s/2.506628274631)}return r>0?1-a:a}function lc(t,n,e){return t<0||t>1?NaN:(n||0)+(e??1)*m9*function(r){let i,a=-Math.log((1-r)*(1+r));return a<6.25?(a-=3.125,i=-364441206401782e-35,i=i*a-16850591381820166e-35,i=128584807152564e-32+i*a,i=11157877678025181e-33+i*a,i=i*a-1333171662854621e-31,i=20972767875968562e-33+i*a,i=6637638134358324e-30+i*a,i=i*a-4054566272975207e-29,i=i*a-8151934197605472e-29,i=26335093153082323e-28+i*a,i=i*a-12975133253453532e-27,i=i*a-5415412054294628e-26,i=10512122733215323e-25+i*a,i=i*a-4112633980346984e-24,i=i*a-29070369957882005e-24,i=42347877827932404e-23+i*a,i=i*a-13654692000834679e-22,i=i*a-13882523362786469e-21,i=.00018673420803405714+i*a,i=i*a-.000740702534166267,i=i*a-.006033670871430149,i=.24015818242558962+i*a,i=1.6536545626831027+i*a):a<16?(a=Math.sqrt(a)-3.25,i=22137376921775787e-25,i=9075656193888539e-23+i*a,i=i*a-27517406297064545e-23,i=18239629214389228e-24+i*a,i=15027403968909828e-22+i*a,i=i*a-4013867526981546e-21,i=29234449089955446e-22+i*a,i=12475304481671779e-21+i*a,i=i*a-47318229009055734e-21,i=6828485145957318e-20+i*a,i=24031110387097894e-21+i*a,i=i*a-.0003550375203628475,i=.0009532893797373805+i*a,i=i*a-.0016882755560235047,i=.002491442096107851+i*a,i=i*a-.003751208507569241,i=.005370914553590064+i*a,i=1.0052589676941592+i*a,i=3.0838856104922208+i*a):Number.isFinite(a)?(a=Math.sqrt(a)-5,i=-27109920616438573e-27,i=i*a-2555641816996525e-25,i=15076572693500548e-25+i*a,i=i*a-3789465440126737e-24,i=761570120807834e-23+i*a,i=i*a-1496002662714924e-23,i=2914795345090108e-23+i*a,i=i*a-6771199775845234e-23,i=22900482228026655e-23+i*a,i=i*a-99298272942317e-20,i=4526062597223154e-21+i*a,i=i*a-1968177810553167e-20,i=7599527703001776e-20+i*a,i=i*a-.00021503011930044477,i=i*a-.00013871931833623122,i=1.0103004648645344+i*a,i=4.849906401408584+i*a):i=1/0,i*r}(2*t-1)}function Cp(t,n){let e,r;const i={mean(a){return arguments.length?(e=a||0,i):e},stdev(a){return arguments.length?(r=a??1,i):r},sample:()=>sc(e,r),pdf:a=>Fp(a,e,r),cdf:a=>uc(a,e,r),icdf:a=>lc(a,e,r)};return i.mean(t).stdev(n)}function Ep(t,n){const e=Cp();let r=0;const i={data(a){return arguments.length?(t=a,r=a?a.length:0,i.bandwidth(n)):t},bandwidth(a){return arguments.length?(!(n=a)&&t&&(n=Dp(t)),i):n},sample:()=>t[~~(Ne()*r)]+n*e.sample(),pdf(a){let o=0,s=0;for(;s<r;++s)o+=e.pdf((a-t[s])/n);return o/n/r},cdf(a){let o=0,s=0;for(;s<r;++s)o+=e.cdf((a-t[s])/n);return o/r},icdf(){throw Error("KDE icdf not supported.")}};return i.data(t)}function $p(t,n){return t=t||0,n=n??1,Math.exp(t+sc()*n)}function Sp(t,n,e){if(t<=0)return 0;n=n||0,e=e??1;const r=(Math.log(t)-n)/e;return Math.exp(-.5*r*r)/(e*m2*t)}function Mp(t,n,e){return uc(Math.log(t),n,e)}function Bp(t,n,e){return Math.exp(lc(t,n,e))}function g2(t,n){let e,r;const i={mean(a){return arguments.length?(e=a||0,i):e},stdev(a){return arguments.length?(r=a??1,i):r},sample:()=>$p(e,r),pdf:a=>Sp(a,e,r),cdf:a=>Mp(a,e,r),icdf:a=>Bp(a,e,r)};return i.mean(t).stdev(n)}function y2(t,n){let e,r=0;const i={weights(a){return arguments.length?(e=function(o){const s=[];let u,l=0;for(u=0;u<r;++u)l+=s[u]=o[u]==null?1:+o[u];for(u=0;u<r;++u)s[u]/=l;return s}(n=a||[]),i):n},distributions(a){return arguments.length?(a?(r=a.length,t=a):(r=0,t=[]),i.weights(n)):t},sample(){const a=Ne();let o=t[r-1],s=e[0],u=0;for(;u<r-1;s+=e[++u])if(a<s){o=t[u];break}return o.sample()},pdf(a){let o=0,s=0;for(;s<r;++s)o+=e[s]*t[s].pdf(a);return o},cdf(a){let o=0,s=0;for(;s<r;++s)o+=e[s]*t[s].cdf(a);return o},icdf(){throw Error("Mixture icdf not supported.")}};return i.distributions(t).weights(n)}function zp(t,n){return n==null&&(n=t??1,t=0),t+(n-t)*Ne()}function Op(t,n,e){return e==null&&(e=n??1,n=0),t>=n&&t<=e?1/(e-n):0}function Np(t,n,e){return e==null&&(e=n??1,n=0),t<n?0:t>e?1:(t-n)/(e-n)}function Rp(t,n,e){return e==null&&(e=n??1,n=0),t>=0&&t<=1?n+t*(e-n):NaN}function v2(t,n){let e,r;const i={min(a){return arguments.length?(e=a||0,i):e},max(a){return arguments.length?(r=a??1,i):r},sample:()=>zp(e,r),pdf:a=>Op(a,e,r),cdf:a=>Np(a,e,r),icdf:a=>Rp(a,e,r)};return n==null&&(n=t??1,t=0),i.min(t).max(n)}function Tp(t,n,e){let r=0,i=0;for(const a of t){const o=e(a);n(a)==null||o==null||isNaN(o)||(r+=(o-r)/++i)}return{coef:[r],predict:()=>r,rSquared:0}}function Xs(t,n,e,r){const i=r-t*t,a=Math.abs(i)<1e-24?0:(e-t*n)/i;return[n-a*t,a]}function cc(t,n,e,r){t=t.filter(h=>{let p=n(h),m=e(h);return p!=null&&(p=+p)>=p&&m!=null&&(m=+m)>=m}),r&&t.sort((h,p)=>n(h)-n(p));const i=t.length,a=new Float64Array(i),o=new Float64Array(i);let s,u,l,c=0,f=0,d=0;for(l of t)a[c]=s=+n(l),o[c]=u=+e(l),++c,f+=(s-f)/c,d+=(u-d)/c;for(c=0;c<i;++c)a[c]-=f,o[c]-=d;return[a,o,f,d]}function Js(t,n,e,r){let i,a,o=-1;for(const s of t)i=n(s),a=e(s),i!=null&&(i=+i)>=i&&a!=null&&(a=+a)>=a&&r(i,a,++o)}function So(t,n,e,r,i){let a=0,o=0;return Js(t,n,e,(s,u)=>{const l=u-i(s),c=u-r;a+=l*l,o+=c*c}),1-a/o}function Pp(t,n,e){let r=0,i=0,a=0,o=0,s=0;Js(t,n,e,(c,f)=>{++s,r+=(c-r)/s,i+=(f-i)/s,a+=(c*f-a)/s,o+=(c*c-o)/s});const u=Xs(r,i,a,o),l=c=>u[0]+u[1]*c;return{coef:u,predict:l,rSquared:So(t,n,e,i,l)}}function b2(t,n,e){let r=0,i=0,a=0,o=0,s=0;Js(t,n,e,(c,f)=>{++s,c=Math.log(c),r+=(c-r)/s,i+=(f-i)/s,a+=(c*f-a)/s,o+=(c*c-o)/s});const u=Xs(r,i,a,o),l=c=>u[0]+u[1]*Math.log(c);return{coef:u,predict:l,rSquared:So(t,n,e,i,l)}}function x2(t,n,e){const[r,i,a,o]=cc(t,n,e);let s,u,l,c=0,f=0,d=0,h=0,p=0;Js(t,n,e,(v,x)=>{s=r[p++],u=Math.log(x),l=s*x,c+=(x*u-c)/p,f+=(l-f)/p,d+=(l*u-d)/p,h+=(s*l-h)/p});const[m,g]=Xs(f/o,c/o,d/o,h/o),y=v=>Math.exp(m+g*(v-a));return{coef:[Math.exp(m-g*a),g],predict:y,rSquared:So(t,n,e,o,y)}}function w2(t,n,e){let r=0,i=0,a=0,o=0,s=0,u=0;Js(t,n,e,(f,d)=>{const h=Math.log(f),p=Math.log(d);++u,r+=(h-r)/u,i+=(p-i)/u,a+=(h*p-a)/u,o+=(h*h-o)/u,s+=(d-s)/u});const l=Xs(r,i,a,o),c=f=>l[0]*Math.pow(f,l[1]);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:So(t,n,e,s,c)}}function jp(t,n,e){const[r,i,a,o]=cc(t,n,e),s=r.length;let u,l,c,f,d=0,h=0,p=0,m=0,g=0;for(u=0;u<s;)l=r[u],c=i[u++],f=l*l,d+=(f-d)/u,h+=(f*l-h)/u,p+=(f*f-p)/u,m+=(l*c-m)/u,g+=(f*c-g)/u;const y=p-d*d,v=d*y-h*h,x=(g*d-m*h)/v,b=(m*y-g*h)/v,w=-x*d,A=_=>x*(_-=a)*_+b*_+w+o;return{coef:[w-b*a+x*a*a+o,b-2*x*a,x],predict:A,rSquared:So(t,n,e,o,A)}}function A2(t,n,e,r){if(r===0)return Tp(t,n,e);if(r===1)return Pp(t,n,e);if(r===2)return jp(t,n,e);const[i,a,o,s]=cc(t,n,e),u=i.length,l=[],c=[],f=r+1;let d,h,p,m,g;for(d=0;d<f;++d){for(p=0,m=0;p<u;++p)m+=Math.pow(i[p],d)*a[p];for(l.push(m),g=new Float64Array(f),h=0;h<f;++h){for(p=0,m=0;p<u;++p)m+=Math.pow(i[p],d+h);g[h]=m}c.push(g)}c.push(l);const y=function(x){const b=x.length-1,w=[];let A,_,k,D,C;for(A=0;A<b;++A){for(D=A,_=A+1;_<b;++_)Math.abs(x[A][_])>Math.abs(x[A][D])&&(D=_);for(k=A;k<b+1;++k)C=x[k][A],x[k][A]=x[k][D],x[k][D]=C;for(_=A+1;_<b;++_)for(k=b;k>=A;k--)x[k][_]-=x[k][A]*x[A][_]/x[A][A]}for(_=b-1;_>=0;--_){for(C=0,k=_+1;k<b;++k)C+=x[k][_]*w[k];w[_]=(x[b][_]-C)/x[_][_]}return w}(c),v=x=>{x-=o;let b=s+y[0]+y[1]*x+y[2]*x*x;for(d=3;d<f;++d)b+=y[d]*Math.pow(x,d);return b};return{coef:g9(f,y,-o,s),predict:v,rSquared:So(t,n,e,s,v)}}function g9(t,n,e,r){const i=Array(t);let a,o,s,u;for(a=0;a<t;++a)i[a]=0;for(a=t-1;a>=0;--a)for(s=n[a],u=1,i[a]+=s,o=1;o<=a;++o)u*=(a+1-o)/o,i[a-o]+=s*Math.pow(e,o)*u;return i[0]+=r,i}function _2(t,n,e,r){const[i,a,o,s]=cc(t,n,e,!0),u=i.length,l=Math.max(2,~~(r*u)),c=new Float64Array(u),f=new Float64Array(u),d=new Float64Array(u).fill(1);for(let h=-1;++h<=2;){const p=[0,l-1];for(let g=0;g<u;++g){const y=i[g],v=p[0],x=p[1],b=y-i[v]>i[x]-y?v:x;let w=0,A=0,_=0,k=0,D=0;const C=1/Math.abs(i[b]-y||1);for(let $=v;$<=x;++$){const M=i[$],S=a[$],B=y9(Math.abs(y-M)*C)*d[$],z=M*B;w+=B,A+=z,_+=S*B,k+=S*z,D+=M*z}const[F,E]=Xs(A/w,_/w,k/w,D/w);c[g]=F+E*y,f[g]=Math.abs(a[g]-c[g]),v9(i,g+1,p)}if(h===2)break;const m=Gx(f);if(Math.abs(m)<1e-12)break;for(let g,y,v=0;v<u;++v)g=f[v]/(6*m),d[v]=g>=1?1e-12:(y=1-g*g)*y}return function(h,p,m,g){const y=h.length,v=[];let x,b=0,w=0,A=[];for(;b<y;++b)x=h[b]+m,A[0]===x?A[1]+=(p[b]-A[1])/++w:(w=0,A[1]+=g,A=[x,p[b]],v.push(A));return A[1]+=g,v}(i,c,o,s)}function y9(t){return(t=1-t*t*t)*t*t}function v9(t,n,e){const r=t[n];let i=e[0],a=e[1]+1;if(!(a>=t.length))for(;n>i&&t[a]-r<=r-t[i];)e[0]=++i,e[1]=a,++a}const b9=.5*Math.PI/180;function fc(t,n,e,r){e=e||25,r=Math.max(e,r||200);const i=m=>[m,t(m)],a=n[0],o=n[1],s=o-a,u=s/r,l=[i(a)],c=[];if(e===r){for(let m=1;m<r;++m)l.push(i(a+m/e*s));return l.push(i(o)),l}c.push(i(o));for(let m=e;--m>0;)c.push(i(a+m/e*s));let f=l[0],d=c[c.length-1];const h=1/s,p=function(m,g){let y=m,v=m;const x=g.length;for(let b=0;b<x;++b){const w=g[b][1];w<y&&(y=w),w>v&&(v=w)}return 1/(v-y)}(f[1],c);for(;d;){const m=i((f[0]+d[0])/2);m[0]-f[0]>=u&&x9(f,m,d,h,p)>b9?c.push(m):(f=d,l.push(d),c.pop()),d=c[c.length-1]}return l}function x9(t,n,e,r,i){const a=Math.atan2(i*(e[1]-t[1]),r*(e[0]-t[0])),o=Math.atan2(i*(n[1]-t[1]),r*(n[0]-t[0]));return Math.abs(a-o)}function Lp(t){return t&&t.length?t.length===1?t[0]:(n=t,e=>{const r=n.length;let i=1,a=String(n[0](e));for(;i<r;++i)a+="|"+n[i](e);return a}):function(){return""};var n}function k2(t,n,e){return e||t+(n?"_"+n:"")}const qp=()=>{},w9={init:qp,add:qp,rem:qp,idx:0},Ks={values:{init:t=>t.cell.store=!0,value:t=>t.cell.data.values(),idx:-1},count:{value:t=>t.cell.num},__count__:{value:t=>t.missing+t.valid},missing:{value:t=>t.missing},valid:{value:t=>t.valid},sum:{init:t=>t.sum=0,value:t=>t.valid?t.sum:void 0,add:(t,n)=>t.sum+=+n,rem:(t,n)=>t.sum-=n},product:{init:t=>t.product=1,value:t=>t.valid?t.product:void 0,add:(t,n)=>t.product*=n,rem:(t,n)=>t.product/=n},mean:{init:t=>t.mean=0,value:t=>t.valid?t.mean:void 0,add:(t,n)=>(t.mean_d=n-t.mean,t.mean+=t.mean_d/t.valid),rem:(t,n)=>(t.mean_d=n-t.mean,t.mean-=t.valid?t.mean_d/t.valid:t.mean)},average:{value:t=>t.valid?t.mean:void 0,req:["mean"],idx:1},variance:{init:t=>t.dev=0,value:t=>t.valid>1?t.dev/(t.valid-1):void 0,add:(t,n)=>t.dev+=t.mean_d*(n-t.mean),rem:(t,n)=>t.dev-=t.mean_d*(n-t.mean),req:["mean"],idx:1},variancep:{value:t=>t.valid>1?t.dev/t.valid:void 0,req:["variance"],idx:2},stdev:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:t=>t.valid>1?Math.sqrt(t.dev/t.valid):void 0,req:["variance"],idx:2},stderr:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid*(t.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:t=>t.cell.data.distinct(t.get),req:["values"],idx:3},ci0:{value:t=>t.cell.data.ci0(t.get),req:["values"],idx:3},ci1:{value:t=>t.cell.data.ci1(t.get),req:["values"],idx:3},median:{value:t=>t.cell.data.q2(t.get),req:["values"],idx:3},q1:{value:t=>t.cell.data.q1(t.get),req:["values"],idx:3},q3:{value:t=>t.cell.data.q3(t.get),req:["values"],idx:3},min:{init:t=>t.min=void 0,value:t=>t.min=Number.isNaN(t.min)?t.cell.data.min(t.get):t.min,add:(t,n)=>{(n<t.min||t.min===void 0)&&(t.min=n)},rem:(t,n)=>{n<=t.min&&(t.min=NaN)},req:["values"],idx:4},max:{init:t=>t.max=void 0,value:t=>t.max=Number.isNaN(t.max)?t.cell.data.max(t.get):t.max,add:(t,n)=>{(n>t.max||t.max===void 0)&&(t.max=n)},rem:(t,n)=>{n>=t.max&&(t.max=NaN)},req:["values"],idx:4},argmin:{init:t=>t.argmin=void 0,value:t=>t.argmin||t.cell.data.argmin(t.get),add:(t,n,e)=>{n<t.min&&(t.argmin=e)},rem:(t,n)=>{n<=t.min&&(t.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:t=>t.argmax=void 0,value:t=>t.argmax||t.cell.data.argmax(t.get),add:(t,n,e)=>{n>t.max&&(t.argmax=e)},rem:(t,n)=>{n>=t.max&&(t.argmax=void 0)},req:["max","values"],idx:3},exponential:{init:(t,n)=>{t.exp=0,t.exp_r=n},value:t=>t.valid?t.exp*(1-t.exp_r)/(1-t.exp_r**t.valid):void 0,add:(t,n)=>t.exp=t.exp_r*t.exp+n,rem:(t,n)=>t.exp=(t.exp-n/t.exp_r**(t.valid-1))/t.exp_r},exponentialb:{value:t=>t.valid?t.exp*(1-t.exp_r):void 0,req:["exponential"],idx:1}},Qs=Object.keys(Ks).filter(t=>t!=="__count__");function D2(t,n,e){return Ks[t](e,n)}function F2(t,n){return t.idx-n.idx}function A9(){this.valid=0,this.missing=0,this._ops.forEach(t=>t.aggregate_param==null?t.init(this):t.init(this,t.aggregate_param))}function _9(t,n){t!=null&&t!==""?t==t&&(++this.valid,this._ops.forEach(e=>e.add(this,t,n))):++this.missing}function k9(t,n){t!=null&&t!==""?t==t&&(--this.valid,this._ops.forEach(e=>e.rem(this,t,n))):--this.missing}function D9(t){return this._out.forEach(n=>t[n.out]=n.value(this)),t}function C2(t,n){const e=n||Me,r=function(o){const s={};o.forEach(l=>s[l.name]=l);const u=l=>{l.req&&l.req.forEach(c=>{s[c]||u(s[c]=Ks[c]())})};return o.forEach(u),Object.values(s).sort(F2)}(t),i=t.slice().sort(F2);function a(o){this._ops=r,this._out=i,this.cell=o,this.init()}return a.prototype.init=A9,a.prototype.add=_9,a.prototype.rem=k9,a.prototype.set=D9,a.prototype.get=e,a.fields=t.map(o=>o.out),a}function Up(t){this._key=t?ei(t):st,this.reset()}[...Qs,"__count__"].forEach(t=>{Ks[t]=function(n,e){return(r,i)=>xt({name:n,aggregate_param:i,out:r||n},w9,e)}(t,Ks[t])});const kn=Up.prototype;function Li(t){O.call(this,null,t),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}kn.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},kn.add=function(t){this._add.push(t)},kn.rem=function(t){this._rem.push(t)},kn.values=function(){if(this._get=null,this._rem.length===0)return this._add;const t=this._add,n=this._rem,e=this._key,r=t.length,i=n.length,a=Array(r-i),o={};let s,u,l;for(s=0;s<i;++s)o[e(n[s])]=1;for(s=0,u=0;s<r;++s)o[e(l=t[s])]?o[e(l)]=0:a[u++]=l;return this._rem=[],this._add=a},kn.distinct=function(t){const n=this.values(),e={};let r,i=n.length,a=0;for(;--i>=0;)r=t(n[i])+"",tt(e,r)||(e[r]=1,++a);return a},kn.extent=function(t){if(this._get!==t||!this._ext){const n=this.values(),e=rx(n,t);this._ext=[n[e[0]],n[e[1]]],this._get=t}return this._ext},kn.argmin=function(t){return this.extent(t)[0]||{}},kn.argmax=function(t){return this.extent(t)[1]||{}},kn.min=function(t){const n=this.extent(t)[0];return n!=null?t(n):void 0},kn.max=function(t){const n=this.extent(t)[1];return n!=null?t(n):void 0},kn.quartile=function(t){return this._get===t&&this._q||(this._q=kp(this.values(),t),this._get=t),this._q},kn.q1=function(t){return this.quartile(t)[0]},kn.q2=function(t){return this.quartile(t)[1]},kn.q3=function(t){return this.quartile(t)[2]},kn.ci=function(t){return this._get===t&&this._ci||(this._ci=h2(this.values(),1e3,.05,t),this._get=t),this._ci},kn.ci0=function(t){return this.ci(t)[0]},kn.ci1=function(t){return this.ci(t)[1]},Li.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Qs},{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"}]},V(Li,O,{transform(t,n){const e=this,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=t.modified();return e.stamp=r.stamp,e.value&&(i||n.modified(e._inputs,!0))?(e._prev=e.value,e.value=i?e.init(t):Object.create(null),n.visit(n.SOURCE,a=>e.add(a))):(e.value=e.value||e.init(t),n.visit(n.REM,a=>e.rem(a)),n.visit(n.ADD,a=>e.add(a))),r.modifies(e._outputs),e._drop=t.drop!==!1,t.cross&&e._dims.length>1&&(e._drop=!1,e.cross()),n.clean()&&e._drop&&r.clean(!0).runAfter(()=>this.clean()),e.changes(r)},cross(){const t=this,n=t.value,e=t._dnames,r=e.map(()=>({})),i=e.length;function a(o){let s,u,l,c;for(s in o)for(l=o[s].tuple,u=0;u<i;++u)r[u][c=l[e[u]]]=c}a(t._prev),a(n),function o(s,u,l){const c=e[l],f=r[l++];for(const d in f){const h=s?s+"|"+d:d;u[c]=f[d],l<i?o(h,u,l):n[h]||t.cell(h,u)}}("",{},0)},init(t){const n=this._inputs=[],e=this._outputs=[],r={};function i(v){const x=J(Wn(v)),b=x.length;let w,A=0;for(;A<b;++A)r[w=x[A]]||(r[w]=1,n.push(w))}this._dims=J(t.groupby),this._dnames=this._dims.map(v=>{const x=en(v);return i(v),e.push(x),x}),this.cellkey=t.key?t.key:Lp(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const a=t.fields||[null],o=t.ops||["count"],s=t.aggregate_params||[null],u=t.as||[],l=a.length,c={};let f,d,h,p,m,g,y;for(l!==o.length&&P("Unmatched number of fields and aggregate ops."),y=0;y<l;++y)f=a[y],d=o[y],h=s[y]||null,f==null&&d!=="count"&&P("Null aggregate field specified."),m=en(f),g=k2(d,m,u[y]),e.push(g),d!=="count"?(p=c[m],p||(i(f),p=c[m]=[],p.field=f,this._measures.push(p)),d!=="count"&&(this._countOnly=!1),p.push(D2(d,h,g))):this._counts.push(g);return this._measures=this._measures.map(v=>C2(v,v.field)),Object.create(null)},cellkey:Lp(),cell(t,n){let e=this.value[t];return e?e.num===0&&this._drop&&e.stamp<this.stamp?(e.stamp=this.stamp,this._adds[this._alen++]=e):e.stamp<this.stamp&&(e.stamp=this.stamp,this._mods[this._mlen++]=e):(e=this.value[t]=this.newcell(t,n),this._adds[this._alen++]=e),e},newcell(t,n){const e={key:t,num:0,agg:null,tuple:this.newtuple(n,this._prev&&this._prev[t]),stamp:this.stamp,store:!1};if(!this._countOnly){const r=this._measures,i=r.length;e.agg=Array(i);for(let a=0;a<i;++a)e.agg[a]=new r[a](e)}return e.store&&(e.data=new Up),e},newtuple(t,n){const e=this._dnames,r=this._dims,i=r.length,a={};for(let o=0;o<i;++o)a[e[o]]=r[o](t);return n?r2(n.tuple,a):St(a)},clean(){const t=this.value;for(const n in t)t[n].num===0&&delete t[n]},add(t){const n=this.cellkey(t),e=this.cell(n,t);if(e.num+=1,this._countOnly)return;e.store&&e.data.add(t);const r=e.agg;for(let i=0,a=r.length;i<a;++i)r[i].add(r[i].get(t),t)},rem(t){const n=this.cellkey(t),e=this.cell(n,t);if(e.num-=1,this._countOnly)return;e.store&&e.data.rem(t);const r=e.agg;for(let i=0,a=r.length;i<a;++i)r[i].rem(r[i].get(t),t)},celltuple(t){const n=t.tuple,e=this._counts;t.store&&t.data.values();for(let r=0,i=e.length;r<i;++r)n[e[r]]=t.num;if(!this._countOnly){const r=t.agg;for(let i=0,a=r.length;i<a;++i)r[i].set(n)}return n},changes(t){const n=this._adds,e=this._mods,r=this._prev,i=this._drop,a=t.add,o=t.rem,s=t.mod;let u,l,c,f;if(r)for(l in r)u=r[l],i&&!u.num||o.push(u.tuple);for(c=0,f=this._alen;c<f;++c)a.push(this.celltuple(n[c])),n[c]=null;for(c=0,f=this._mlen;c<f;++c)u=e[c],(u.num===0&&i?o:s).push(this.celltuple(u)),e[c]=null;return this._alen=this._mlen=0,this._prev=null,t}});function Ip(t){O.call(this,null,t)}function E2(t,n,e){const r=t;let i=n||[],a=e||[],o={},s=0;return{add:u=>a.push(u),remove:u=>o[r(u)]=++s,size:()=>i.length,data:(u,l)=>(s&&(i=i.filter(c=>!o[r(c)]),o={},s=0),l&&u&&i.sort(u),a.length&&(i=u?ex(u,i,a.sort(u)):i.concat(a),a=[]),i)}}function Wp(t){O.call(this,[],t)}function $2(t){Ut.call(this,null,F9,t)}function F9(t){return this.value&&!t.modified()?this.value:Qh(t.fields,t.orders)}function Hp(t){O.call(this,null,t)}function Gp(t){O.call(this,null,t)}Ip.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"]}]},V(Ip,O,{transform(t,n){const e=t.interval!==!1,r=this._bins(t),i=r.start,a=r.step,o=t.as||["bin0","bin1"],s=o[0],u=o[1];let l;return l=t.modified()?(n=n.reflow(!0)).SOURCE:n.modified(Wn(t.field))?n.ADD_MOD:n.ADD,n.visit(l,e?c=>{const f=r(c);c[s]=f,c[u]=f==null?null:i+a*(1+(f-i)/a)}:c=>c[s]=r(c)),n.modifies(e?o:s)},_bins(t){if(this.value&&!t.modified())return this.value;const n=t.field,e=d2(t),r=e.step;let i,a,o=e.start,s=o+Math.ceil((e.stop-o)/r)*r;(i=t.anchor)!=null&&(a=i-(o+r*Math.floor((i-o)/r)),o+=a,s+=a);const u=function(l){let c=ze(n(l));return c==null?null:c<o?-1/0:c>s?1/0:(c=Math.max(o,Math.min(c,s-r)),o+r*Math.floor(1e-14+(c-o)/r))};return u.start=o,u.stop=e.stop,u.step=r,this.value=ko(u,Wn(n),t.name||"bin_"+en(n))}}),Wp.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},V(Wp,O,{transform(t,n){const e=n.fork(n.ALL),r=E2(st,this.value,e.materialize(e.ADD).add),i=t.sort,a=n.changed()||i&&(t.modified("sort")||n.modified(i.fields));return e.visit(e.REM,r.remove),this.modified(a),this.value=e.source=r.data(Ma(i),a),n.source&&n.source.root&&(this.value.root=n.source.root),e}}),V($2,Ut),Hp.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"]}]},V(Hp,O,{transform(t,n){const e=f=>d=>{for(var h,p=function(y,v,x){switch(v){case"upper":y=y.toUpperCase();break;case"lower":y=y.toLowerCase()}return y.match(x)}(s(d),t.case,a)||[],m=0,g=p.length;m<g;++m)o.test(h=p[m])||f(h)},r=this._parameterCheck(t,n),i=this._counts,a=this._match,o=this._stop,s=t.field,u=t.as||["text","count"],l=e(f=>i[f]=1+(i[f]||0)),c=e(f=>i[f]-=1);return r?n.visit(n.SOURCE,l):(n.visit(n.ADD,l),n.visit(n.REM,c)),this._finish(n,u)},_parameterCheck(t,n){let e=!1;return!t.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(t.stopwords||"")+"$","i"),e=!0),!t.modified("pattern")&&this._match||(this._match=new RegExp(t.pattern||"[\\w']+","g"),e=!0),(t.modified("field")||n.modified(t.field.fields))&&(e=!0),e&&(this._counts={}),e},_finish(t,n){const e=this._counts,r=this._tuples||(this._tuples={}),i=n[0],a=n[1],o=t.fork(t.NO_SOURCE|t.NO_FIELDS);let s,u,l;for(s in e)u=r[s],l=e[s]||0,!u&&l?(r[s]=u=St({}),u[i]=s,u[a]=l,o.add.push(u)):l===0?(u&&o.rem.push(u),e[s]=null,r[s]=null):u[a]!==l&&(u[a]=l,o.mod.push(u));return o.modifies(n)}}),Gp.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},V(Gp,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.as||["a","b"],i=r[0],a=r[1],o=!this.value||n.changed(n.ADD_REM)||t.modified("as")||t.modified("filter");let s=this.value;return o?(s&&(e.rem=s),s=n.materialize(n.SOURCE).source,e.add=this.value=function(u,l,c,f){for(var d,h,p=[],m={},g=u.length,y=0;y<g;++y)for(m[l]=h=u[y],d=0;d<g;++d)m[c]=u[d],f(m)&&(p.push(St(m)),(m={})[l]=h);return p}(s,i,a,t.filter||Be)):e.mod=s,e.source=this.value,e.modifies(r)}});const S2={kde:Ep,mixture:y2,normal:Cp,lognormal:g2,uniform:v2},M2="function";function B2(t,n){const e=t[M2];tt(S2,e)||P("Unknown distribution function: "+e);const r=S2[e]();for(const i in t)i==="field"?r.data((t.from||n()).map(t[i])):i==="distributions"?r[i](t[i].map(a=>B2(a,n))):typeof r[i]===M2&&r[i](t[i]);return r}function Vp(t){O.call(this,null,t)}const z2=[{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}]}],C9={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:z2},{name:"weights",type:"number",array:!0}]};function O2(t,n){return t?t.map((e,r)=>n[r]||en(e)):null}function Yp(t,n,e){const r=[],i=f=>f(u);let a,o,s,u,l,c;if(n==null)r.push(t.map(e));else for(a={},o=0,s=t.length;o<s;++o)u=t[o],l=n.map(i),c=a[l],c||(a[l]=c=[],c.dims=l,r.push(c)),c.push(e(u));return r}Vp.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:z2.concat(C9)},{name:"as",type:"string",array:!0,default:["value","density"]}]},V(Vp,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=B2(t.distribution,function(l){return()=>l.materialize(l.SOURCE).source}(n)),i=t.steps||t.minsteps||25,a=t.steps||t.maxsteps||200;let o=t.method||"pdf";o!=="pdf"&&o!=="cdf"&&P("Invalid density method: "+o),t.extent||r.data||P("Missing density extent parameter."),o=r[o];const s=t.as||["value","density"],u=fc(o,t.extent||kr(r.data()),i,a).map(l=>{const c={};return c[s[0]]=l[0],c[s[1]]=l[1],St(c)});this.value&&(e.rem=this.value),this.value=e.add=e.source=u}return e}});function Xp(t){O.call(this,null,t)}Xp.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 N2(t){Ut.call(this,null,E9,t),this.modified(!0)}function E9(t){const n=t.expr;return this.value&&!t.modified("expr")?this.value:ko(e=>n(e,t),Wn(n),en(n))}function Jp(t){O.call(this,[void 0,void 0],t)}function Kp(t,n){Ut.call(this,t),this.parent=n,this.count=0}function dc(t){O.call(this,{},t),this._keys=Do();const n=this._targets=[];n.active=0,n.forEach=e=>{for(let r=0,i=n.active;r<i;++r)e(n[r],r,n)}}function R2(t){Ut.call(this,null,$9,t)}function $9(t){return this.value&&!t.modified()?this.value:T(t.name)?J(t.name).map(n=>ei(n)):ei(t.name,t.as)}function Qp(t){O.call(this,Do(),t)}function Zp(t){O.call(this,[],t)}function tm(t){O.call(this,[],t)}function nm(t){O.call(this,null,t)}function T2(t){O.call(this,[],t)}V(Xp,O,{transform(t,n){if(this.value&&!t.modified()&&!n.changed())return n;const e=n.materialize(n.SOURCE).source,r=Yp(n.source,t.groupby,Me),i=t.smooth||!1,a=t.field,o=t.step||((p,m)=>Il(kr(p,m))/30)(e,a),s=Ma((p,m)=>a(p)-a(m)),u=t.as||"bin",l=r.length;let c,f=1/0,d=-1/0,h=0;for(;h<l;++h){const p=r[h].sort(s);c=-1;for(const m of p2(p,o,i,a))m<f&&(f=m),m>d&&(d=m),p[++c][u]=m}return this.value={start:f,stop:d,step:o},n.reflow(!0).modifies(u)}}),V(N2,Ut),Jp.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},V(Jp,O,{transform(t,n){const e=this.value,r=t.field,i=n.changed()||n.modified(r.fields)||t.modified("field");let a=e[0],o=e[1];if((i||a==null)&&(a=1/0,o=-1/0),n.visit(i?n.SOURCE:n.ADD,s=>{const u=ze(r(s));u!=null&&(u<a&&(a=u),u>o&&(o=u))}),!Number.isFinite(a)||!Number.isFinite(o)){let s=en(r);s&&(s=` for field "${s}"`),n.dataflow.warn(`Infinite extent${s}: [${a}, ${o}]`),a=o=void 0}this.value=[a,o]}}),V(Kp,Ut,{connect(t){return this.detachSubflow=t.detachSubflow,this.targets().add(t),t.source=this},add(t){this.count+=1,this.value.add.push(t)},rem(t){this.count-=1,this.value.rem.push(t)},mod(t){this.value.mod.push(t)},init(t){this.value.init(t,t.NO_SOURCE)},evaluate(){return this.value}}),V(dc,O,{activate(t){this._targets[this._targets.active++]=t},subflow(t,n,e,r){const i=this.value;let a,o,s=tt(i,t)&&i[t];return s?s.value.stamp<e.stamp&&(s.init(e),this.activate(s)):(o=r||(o=this._group[t])&&o.tuple,a=e.dataflow,s=new Kp(e.fork(e.NO_SOURCE),this),a.add(s).connect(n(a,t,o)),i[t]=s,this.activate(s)),s},clean(){const t=this.value;let n=0;for(const e in t)if(t[e].count===0){const r=t[e].detachSubflow;r&&r(),delete t[e],++n}if(n){const e=this._targets.filter(r=>r&&r.count>0);this.initTargets(e)}},initTargets(t){const n=this._targets,e=n.length,r=t?t.length:0;let i=0;for(;i<r;++i)n[i]=t[i];for(;i<e&&n[i]!=null;++i)n[i]=null;n.active=r},transform(t,n){const e=n.dataflow,r=t.key,i=t.subflow,a=this._keys,o=t.modified("key"),s=u=>this.subflow(u,i,n);return this._group=t.group||{},this.initTargets(),n.visit(n.REM,u=>{const l=st(u),c=a.get(l);c!==void 0&&(a.delete(l),s(c).rem(u))}),n.visit(n.ADD,u=>{const l=r(u);a.set(st(u),l),s(l).add(u)}),o||n.modified(r.fields)?n.visit(n.MOD,u=>{const l=st(u),c=a.get(l),f=r(u);c===f?s(f).mod(u):(a.set(l,f),s(c).rem(u),s(f).add(u))}):n.changed(n.MOD)&&n.visit(n.MOD,u=>{s(a.get(st(u))).mod(u)}),o&&n.visit(n.REFLOW,u=>{const l=st(u),c=a.get(l),f=r(u);c!==f&&(a.set(l,f),s(c).rem(u),s(f).add(u))}),n.clean()?e.runAfter(()=>{this.clean(),a.clean()}):a.empty>e.cleanThreshold&&e.runAfter(a.clean),n}}),V(R2,Ut),Qp.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},V(Qp,O,{transform(t,n){const e=n.dataflow,r=this.value,i=n.fork(),a=i.add,o=i.rem,s=i.mod,u=t.expr;let l=!0;function c(f){const d=st(f),h=u(f,t),p=r.get(d);h&&p?(r.delete(d),a.push(f)):h||p?l&&h&&!p&&s.push(f):(r.set(d,1),o.push(f))}return n.visit(n.REM,f=>{const d=st(f);r.has(d)?r.delete(d):o.push(f)}),n.visit(n.ADD,f=>{u(f,t)?a.push(f):r.set(st(f),1)}),n.visit(n.MOD,c),t.modified()&&(l=!1,n.visit(n.REFLOW,c)),r.empty>e.cleanThreshold&&e.runAfter(r.clean),i}}),Zp.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}]},V(Zp,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.fields,i=O2(r,t.as||[]),a=t.index||null,o=i.length;return e.rem=this.value,n.visit(n.SOURCE,s=>{const u=r.map(p=>p(s)),l=u.reduce((p,m)=>Math.max(p,m.length),0);let c,f,d,h=0;for(;h<l;++h){for(f=bp(s),c=0;c<o;++c)f[i[c]]=(d=u[c][h])==null?null:d;a&&(f[a]=h),e.add.push(f)}}),this.value=e.source=e.add,a&&e.modifies(a),e.modifies(i)}}),tm.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"]}]},V(tm,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.fields,i=r.map(en),a=t.as||["key","value"],o=a[0],s=a[1],u=r.length;return e.rem=this.value,n.visit(n.SOURCE,l=>{for(let c,f=0;f<u;++f)c=bp(l),c[o]=i[f],c[s]=r[f](l),e.add.push(c)}),this.value=e.source=e.add,e.modifies(a)}}),nm.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},V(nm,O,{transform(t,n){const e=t.expr,r=t.as,i=t.modified(),a=t.initonly?n.ADD:i?n.SOURCE:n.modified(e.fields)||n.modified(r)?n.ADD_MOD:n.ADD;return i&&(n=n.materialize().reflow(!0)),t.initonly||n.modifies(r),n.visit(a,o=>o[r]=e(o,t))}}),V(T2,O,{transform(t,n){const e=n.fork(n.ALL),r=t.generator;let i,a,o,s=this.value,u=t.size-s.length;if(u>0){for(i=[];--u>=0;)i.push(o=St(r(t))),s.push(o);e.add=e.add.length?e.materialize(e.ADD).add.concat(i):i}else a=s.slice(0,-u),e.rem=e.rem.length?e.materialize(e.REM).rem.concat(a):a,s=s.slice(-u);return e.source=this.value=s,e}});const hc={value:"value",median:Gx,mean:function(t,n){let e=0,r=0;if(n===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++e,r+=i);else{let i=-1;for(let a of t)(a=n(a,++i,t))!=null&&(a=+a)>=a&&(++e,r+=a)}if(e)return r/e},min:op,max:Ca},S9=[];function em(t){O.call(this,[],t)}function rm(t){Li.call(this,t)}function im(t){O.call(this,null,t)}function P2(t){Ut.call(this,null,M9,t)}function M9(t){return this.value&&!t.modified()?this.value:Zh(t.fields,t.flat)}function j2(t){O.call(this,[],t),this._pending=null}function am(t,n,e){e.forEach(St);const r=n.fork(n.NO_FIELDS&n.NO_SOURCE);return r.rem=t.value,t.value=r.source=r.add=e,t._pending=null,r.rem.length&&r.clean(!0),r}function om(t){O.call(this,{},t)}function L2(t){Ut.call(this,null,B9,t)}function B9(t){if(this.value&&!t.modified())return this.value;const n=t.extents,e=n.length;let r,i,a=1/0,o=-1/0;for(r=0;r<e;++r)i=n[r],i[0]<a&&(a=i[0]),i[1]>o&&(o=i[1]);return[a,o]}function q2(t){Ut.call(this,null,z9,t)}function z9(t){return this.value&&!t.modified()?this.value:t.values.reduce((n,e)=>n.concat(e),[])}function U2(t){O.call(this,null,t)}function sm(t){Li.call(this,t)}function I2(t){dc.call(this,t)}function um(t){O.call(this,null,t)}function W2(t){O.call(this,null,t)}function lm(t){O.call(this,null,t)}em.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}]},V(em,O,{transform(t,n){var e,r,i,a,o,s,u,l,c,f,d=n.fork(n.ALL),h=function(A){var _,k=A.method||hc.value;if(hc[k]!=null)return k===hc.value?(_=A.value!==void 0?A.value:0,()=>_):hc[k];P("Unrecognized imputation method: "+k)}(t),p=function(A){const _=A.field;return k=>k?_(k):NaN}(t),m=en(t.field),g=en(t.key),y=(t.groupby||[]).map(en),v=function(A,_,k,D){var C,F,E,$,M,S,B,z,j=ot=>ot(z),W=[],K=D?D.slice():[],q={},at={};for(K.forEach((ot,it)=>q[ot]=it+1),$=0,B=A.length;$<B;++$)S=k(z=A[$]),M=q[S]||(q[S]=K.push(S)),(E=at[F=(C=_?_.map(j):S9)+""])||(E=at[F]=[],W.push(E),E.values=C),E[M-1]=z;return W.domain=K,W}(n.source,t.groupby,t.key,t.keyvals),x=[],b=this.value,w=v.domain.length;for(o=0,l=v.length;o<l;++o)for(i=(e=v[o]).values,r=NaN,u=0;u<w;++u)if(e[u]==null){for(a=v.domain[u],f={_impute:!0},s=0,c=i.length;s<c;++s)f[y[s]]=i[s];f[g]=a,f[m]=Number.isNaN(r)?r=h(e,p):r,x.push(St(f))}return x.length&&(d.add=d.materialize(d.ADD).add.concat(x)),b.length&&(d.rem=d.materialize(d.REM).rem.concat(b)),this.value=x,d}}),rm.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:Qs},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},V(rm,Li,{transform(t,n){const e=this,r=t.modified();let i;return e.value&&(r||n.modified(e._inputs,!0))?(i=e.value=r?e.init(t):{},n.visit(n.SOURCE,a=>e.add(a))):(i=e.value=e.value||this.init(t),n.visit(n.REM,a=>e.rem(a)),n.visit(n.ADD,a=>e.add(a))),e.changes(),n.visit(n.SOURCE,a=>{xt(a,i[e.cellkey(a)].tuple)}),n.reflow(r).modifies(this._outputs)},changes(){const t=this._adds,n=this._mods;let e,r;for(e=0,r=this._alen;e<r;++e)this.celltuple(t[e]),t[e]=null;for(e=0,r=this._mlen;e<r;++e)this.celltuple(n[e]),n[e]=null;this._alen=this._mlen=0}}),im.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"]}]},V(im,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=n.materialize(n.SOURCE).source,i=Yp(r,t.groupby,t.field),a=(t.groupby||[]).map(en),o=t.bandwidth,s=t.cumulative?"cdf":"pdf",u=t.as||["value","density"],l=[];let c=t.extent,f=t.steps||t.minsteps||25,d=t.steps||t.maxsteps||200;s!=="pdf"&&s!=="cdf"&&P("Invalid density method: "+s),t.resolve==="shared"&&(c||(c=kr(r,t.field)),f=d=t.steps||d),i.forEach(h=>{const p=Ep(h,o)[s],m=t.counts?h.length:1;fc(p,c||kr(h),f,d).forEach(g=>{const y={};for(let v=0;v<a.length;++v)y[a[v]]=h.dims[v];y[u[0]]=g[0],y[u[1]]=g[1]*m,l.push(St(y))})}),this.value&&(e.rem=this.value),this.value=e.add=e.source=l}return e}}),V(P2,Ut),V(j2,O,{transform(t,n){const e=n.dataflow;return this._pending?am(this,n,this._pending):function(r){return r.modified("async")&&!(r.modified("values")||r.modified("url")||r.modified("format"))}(t)?n.StopPropagation:t.values?am(this,n,e.parse(t.values,t.format)):t.async?{async:e.request(t.url,t.format).then(i=>(this._pending=J(i.data),a=>a.touch(this)))}:e.request(t.url,t.format).then(r=>am(this,n,J(r.data)))}}),om.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}]},V(om,O,{transform(t,n){const e=t.fields,r=t.index,i=t.values,a=t.default==null?null:t.default,o=t.modified(),s=e.length;let u,l,c,f=o?n.SOURCE:n.ADD,d=n,h=t.as;return i?(l=i.length,s>1&&!h&&P('Multi-field lookup requires explicit "as" parameter.'),h&&h.length!==s*l&&P('The "as" parameter has too few output field names.'),h=h||i.map(en),u=function(p){for(var m,g,y=0,v=0;y<s;++y)if((g=r.get(e[y](p)))==null)for(m=0;m<l;++m,++v)p[h[v]]=a;else for(m=0;m<l;++m,++v)p[h[v]]=i[m](g)}):(h||P("Missing output field names."),u=function(p){for(var m,g=0;g<s;++g)m=r.get(e[g](p)),p[h[g]]=m??a}),o?d=n.reflow(!0):(c=e.some(p=>n.modified(p.fields)),f|=c?n.MOD:0),n.visit(f,u),d.modifies(h)}}),V(L2,Ut),V(q2,Ut),V(U2,O,{transform(t,n){return this.modified(t.modified()),this.value=t,n.fork(n.NO_SOURCE|n.NO_FIELDS)}}),sm.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:Qs,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},V(sm,Li,{_transform:Li.prototype.transform,transform(t,n){return this._transform(function(e,r){const i=e.field,a=e.value,o=(e.op==="count"?"__count__":e.op)||"sum",s=Wn(i).concat(Wn(a)),u=function(l,c,f){const d={},h=[];return f.visit(f.SOURCE,p=>{const m=l(p);d[m]||(d[m]=1,h.push(m))}),h.sort(Xh),c?h.slice(0,c):h}(i,e.limit||0,r);return r.changed()&&e.set("__pivot__",null,null,!0),{key:e.key,groupby:e.groupby,ops:u.map(()=>o),fields:u.map(l=>function(c,f,d,h){return ko(p=>f(p)===c?d(p):NaN,h,c+"")}(l,i,a,s)),as:u.map(l=>l+""),modified:e.modified.bind(e)}}(t,n),n)}}),V(I2,dc,{transform(t,n){const e=t.subflow,r=t.field,i=a=>this.subflow(st(a),e,n,a);return(t.modified("field")||r&&n.modified(Wn(r)))&&P("PreFacet does not support field modification."),this.initTargets(),r?(n.visit(n.MOD,a=>{const o=i(a);r(a).forEach(s=>o.mod(s))}),n.visit(n.ADD,a=>{const o=i(a);r(a).forEach(s=>o.add(St(s)))}),n.visit(n.REM,a=>{const o=i(a);r(a).forEach(s=>o.rem(s))})):(n.visit(n.MOD,a=>i(a).mod(a)),n.visit(n.ADD,a=>i(a).add(a)),n.visit(n.REM,a=>i(a).rem(a))),n.clean()&&n.runAfter(()=>this.clean()),n}}),um.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},V(um,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.fields,i=O2(t.fields,t.as||[]),a=r?(s,u)=>function(l,c,f,d){for(let h=0,p=f.length;h<p;++h)c[d[h]]=f[h](l);return c}(s,u,r,i):nc;let o;return this.value?o=this.value:(n=n.addAll(),o=this.value={}),n.visit(n.REM,s=>{const u=st(s);e.rem.push(o[u]),o[u]=null}),n.visit(n.ADD,s=>{const u=a(s,St({}));o[st(s)]=u,e.add.push(u)}),n.visit(n.MOD,s=>{e.mod.push(a(s,o[st(s)]))}),e}}),V(W2,O,{transform(t,n){return this.value=t.value,t.modified("value")?n.fork(n.NO_SOURCE|n.NO_FIELDS):n.StopPropagation}}),lm.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 H2(t){O.call(this,null,t)}function cm(t){O.call(this,[],t),this.count=0}function fm(t){O.call(this,null,t)}function G2(t){O.call(this,null,t),this.modified(!0)}function dm(t){O.call(this,null,t)}V(lm,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS),r=t.as||["prob","value"];if(this.value&&!t.modified()&&!n.changed())return e.source=this.value,e;const i=Yp(n.materialize(n.SOURCE).source,t.groupby,t.field),a=(t.groupby||[]).map(en),o=[],s=t.step||.01,u=t.probs||xe(s/2,1-1e-14,s),l=u.length;return i.forEach(c=>{const f=_p(c,u);for(let d=0;d<l;++d){const h={};for(let p=0;p<a.length;++p)h[a[p]]=c.dims[p];h[r[0]]=u[d],h[r[1]]=f[d],o.push(St(h))}}),this.value&&(e.rem=this.value),this.value=e.add=e.source=o,e}}),V(H2,O,{transform(t,n){let e,r;return this.value?r=this.value:(e=n=n.addAll(),r=this.value={}),t.derive&&(e=n.fork(n.NO_SOURCE),n.visit(n.REM,i=>{const a=st(i);e.rem.push(r[a]),r[a]=null}),n.visit(n.ADD,i=>{const a=bp(i);r[st(i)]=a,e.add.push(a)}),n.visit(n.MOD,i=>{const a=r[st(i)];for(const o in i)a[o]=i[o],e.modifies(o);e.mod.push(a)})),e}}),cm.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},V(cm,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.modified("size"),i=t.size,a=this.value.reduce((c,f)=>(c[st(f)]=1,c),{});let o=this.value,s=this.count,u=0;function l(c){let f,d;o.length<i?o.push(c):(d=~~((s+1)*Ne()),d<o.length&&d>=u&&(f=o[d],a[st(f)]&&e.rem.push(f),o[d]=c)),++s}if(n.rem.length&&(n.visit(n.REM,c=>{const f=st(c);a[f]&&(a[f]=-1,e.rem.push(c)),--s}),o=o.filter(c=>a[st(c)]!==-1)),(n.rem.length||r)&&o.length<i&&n.source&&(u=s=o.length,n.visit(n.SOURCE,c=>{a[st(c)]||l(c)}),u=-1),r&&o.length>i){const c=o.length-i;for(let f=0;f<c;++f)a[st(o[f])]=-1,e.rem.push(o[f]);o=o.slice(c)}return n.mod.length&&n.visit(n.MOD,c=>{a[st(c)]&&e.mod.push(c)}),n.add.length&&n.visit(n.ADD,l),(n.add.length||u<0)&&(e.add=o.filter(c=>!a[st(c)])),this.count=s,this.value=e.source=o,e}}),fm.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"}]},V(fm,O,{transform(t,n){if(this.value&&!t.modified())return;const e=n.materialize().fork(n.MOD),r=t.as||"data";return e.rem=this.value?n.rem.concat(this.value):n.rem,this.value=xe(t.start,t.stop,t.step||1).map(i=>{const a={};return a[r]=i,St(a)}),e.add=n.add.concat(this.value),e}}),V(G2,O,{transform(t,n){return this.value=n.source,n.changed()?n.fork(n.NO_SOURCE|n.NO_FIELDS):n.StopPropagation}});const V2=["unit0","unit1"];function Y2(t){O.call(this,Do(),t)}function X2(t){O.call(this,null,t)}dm.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:ix,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:V2}]},V(dm,O,{transform(t,n){const e=t.field,r=t.interval!==!1,i=t.timezone==="utc",a=this._floor(t,n),o=(i?Jh:Kh)(a.unit).offset,s=t.as||V2,u=s[0],l=s[1],c=a.step;let f=a.start||1/0,d=a.stop||-1/0,h=n.ADD;return(t.modified()||n.changed(n.REM)||n.modified(Wn(e)))&&(h=(n=n.reflow(!0)).SOURCE,f=1/0,d=-1/0),n.visit(h,p=>{const m=e(p);let g,y;m==null?(p[u]=null,r&&(p[l]=null)):(p[u]=g=y=a(m),r&&(p[l]=y=o(g,c)),g<f&&(f=g),y>d&&(d=y))}),a.start=f,a.stop=d,n.modifies(r?s:u)},_floor(t,n){const e=t.timezone==="utc",{units:r,step:i}=t.units?{units:t.units,step:t.step||1}:Kb({extent:t.extent||kr(n.materialize(n.SOURCE).source,t.field),maxbins:t.maxbins}),a=Qb(r),o=this.value||{},s=(e?Zb:tx)(a,i);return s.unit=Bt(a),s.units=a,s.step=i,s.start=o.start,s.stop=o.stop,this.value=s}}),V(Y2,O,{transform(t,n){const e=n.dataflow,r=t.field,i=this.value,a=s=>i.set(r(s),s);let o=!0;return t.modified("field")||n.modified(r.fields)?(i.clear(),n.visit(n.SOURCE,a)):n.changed()?(n.visit(n.REM,s=>i.delete(r(s))),n.visit(n.ADD,a)):o=!1,this.modified(o),i.empty>e.cleanThreshold&&e.runAfter(i.clean),n.fork()}}),V(X2,O,{transform(t,n){(!this.value||t.modified("field")||t.modified("sort")||n.changed()||t.sort&&n.modified(t.sort.fields))&&(this.value=(t.sort?n.source.slice().sort(Ma(t.sort)):n.source).map(t.field))}});const Zs={row_number:function(){return{next:t=>t.index+1}},rank:function(){let t;return{init:()=>t=1,next:n=>{const e=n.index,r=n.data;return e&&n.compare(r[e-1],r[e])?t=e+1:t}}},dense_rank:function(){let t;return{init:()=>t=1,next:n=>{const e=n.index,r=n.data;return e&&n.compare(r[e-1],r[e])?++t:t}}},percent_rank:function(){const t=Zs.rank(),n=t.next;return{init:t.init,next:e=>(n(e)-1)/(e.data.length-1)}},cume_dist:function(){let t;return{init:()=>t=0,next:n=>{const e=n.data,r=n.compare;let i=n.index;if(t<i){for(;i+1<e.length&&!r(e[i],e[i+1]);)++i;t=i}return(1+t)/e.length}}},ntile:function(t,n){(n=+n)>0||P("ntile num must be greater than zero.");const e=Zs.cume_dist(),r=e.next;return{init:e.init,next:i=>Math.ceil(n*r(i))}},lag:function(t,n){return n=+n||1,{next:e=>{const r=e.index-n;return r>=0?t(e.data[r]):null}}},lead:function(t,n){return n=+n||1,{next:e=>{const r=e.index+n,i=e.data;return r<i.length?t(i[r]):null}}},first_value:function(t){return{next:n=>t(n.data[n.i0])}},last_value:function(t){return{next:n=>t(n.data[n.i1-1])}},nth_value:function(t,n){return(n=+n)>0||P("nth_value nth must be greater than zero."),{next:e=>{const r=e.i0+(n-1);return r<e.i1?t(e.data[r]):null}}},prev_value:function(t){let n;return{init:()=>n=null,next:e=>{const r=t(e.data[e.index]);return r!=null?n=r:n}}},next_value:function(t){let n,e;return{init:()=>(n=null,e=-1),next:r=>{const i=r.data;return r.index<=e?n:(e=function(a,o,s){for(let u=o.length;s<u;++s)if(a(o[s])!=null)return s;return-1}(t,i,r.index))<0?(e=i.length,n=null):n=t(i[e])}}}},O9=Object.keys(Zs);function J2(t){const n=J(t.ops),e=J(t.fields),r=J(t.params),i=J(t.aggregate_params),a=J(t.as),o=this.outputs=[],s=this.windows=[],u={},l={},c=[],f=[];let d=!0;function h(p){J(Wn(p)).forEach(m=>u[m]=1)}h(t.sort),n.forEach((p,m)=>{const g=e[m],y=r[m],v=i[m]||null,x=en(g),b=k2(p,x,a[m]);if(h(g),o.push(b),tt(Zs,p))s.push(function(w,A,_,k){const D=Zs[w](A,_);return{init:D.init||tp,update:function(C,F){F[k]=D.next(C)}}}(p,g,y,b));else{if(g==null&&p!=="count"&&P("Null aggregate field specified."),p==="count")return void c.push(b);d=!1;let w=l[x];w||(w=l[x]=[],w.field=g,f.push(w)),w.push(D2(p,v,b))}}),(c.length||f.length)&&(this.cell=function(p,m,g){p=p.map(A=>C2(A,A.field));const y={num:0,agg:null,store:!1,count:m};if(!g)for(var v=p.length,x=y.agg=Array(v),b=0;b<v;++b)x[b]=new p[b](y);if(y.store)var w=y.data=new Up;return y.add=function(A){if(y.num+=1,!g){w&&w.add(A);for(let _=0;_<v;++_)x[_].add(x[_].get(A),A)}},y.rem=function(A){if(y.num-=1,!g){w&&w.rem(A);for(let _=0;_<v;++_)x[_].rem(x[_].get(A),A)}},y.set=function(A){let _,k;for(w&&w.values(),_=0,k=m.length;_<k;++_)A[m[_]]=y.num;if(!g)for(_=0,k=x.length;_<k;++_)x[_].set(A)},y.init=function(){y.num=0,w&&w.reset();for(let A=0;A<v;++A)x[A].init()},y}(f,c,d)),this.inputs=Object.keys(u)}const K2=J2.prototype;function hm(t){O.call(this,{},t),this._mlen=0,this._mods=[]}function N9(t,n,e,r){const i=r.sort,a=i&&!r.ignorePeers,o=r.frame||[null,0],s=t.data(e),u=s.length,l=a?nx(i):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:s,compare:i||In(-1)};n.init();for(let f=0;f<u;++f)R9(c,o,f,u),a&&T9(c,l),n.update(c,s[f])}function R9(t,n,e,r){t.p0=t.i0,t.p1=t.i1,t.i0=n[0]==null?0:Math.max(0,e-Math.abs(n[0])),t.i1=n[1]==null?r:Math.min(r,e+Math.abs(n[1])+1),t.index=e}function T9(t,n){const e=t.i0,r=t.i1-1,i=t.compare,a=t.data,o=a.length-1;e>0&&!i(a[e],a[e-1])&&(t.i0=n.left(a,a[e])),r<o&&!i(a[r],a[r+1])&&(t.i1=n.right(a,a[r]))}K2.init=function(){this.windows.forEach(t=>t.init()),this.cell&&this.cell.init()},K2.update=function(t,n){const e=this.cell,r=this.windows,i=t.data,a=r&&r.length;let o;if(e){for(o=t.p0;o<t.i0;++o)e.rem(i[o]);for(o=t.p1;o<t.i1;++o)e.add(i[o]);e.set(n)}for(o=0;o<a;++o)r[o].update(t,n)},hm.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:O9.concat(Qs)},{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}]},V(hm,O,{transform(t,n){this.stamp=n.stamp;const e=t.modified(),r=Ma(t.sort),i=Lp(t.groupby),a=s=>this.group(i(s));let o=this.state;o&&!e||(o=this.state=new J2(t)),e||n.modified(o.inputs)?(this.value={},n.visit(n.SOURCE,s=>a(s).add(s))):(n.visit(n.REM,s=>a(s).remove(s)),n.visit(n.ADD,s=>a(s).add(s)));for(let s=0,u=this._mlen;s<u;++s)N9(this._mods[s],o,r,t);return this._mlen=0,this._mods=[],n.reflow(e).modifies(o.outputs)},group(t){let n=this.value[t];return n||(n=this.value[t]=E2(st),n.stamp=-1),n.stamp<this.stamp&&(n.stamp=this.stamp,this._mods[this._mlen++]=n),n}});const P9=Object.freeze(Object.defineProperty({__proto__:null,aggregate:Li,bin:Ip,collect:Wp,compare:$2,countpattern:Hp,cross:Gp,density:Vp,dotbin:Xp,expression:N2,extent:Jp,facet:dc,field:R2,filter:Qp,flatten:Zp,fold:tm,formula:nm,generate:T2,impute:em,joinaggregate:rm,kde:im,key:P2,load:j2,lookup:om,multiextent:L2,multivalues:q2,params:U2,pivot:sm,prefacet:I2,project:um,proxy:W2,quantile:lm,relay:H2,sample:cm,sequence:fm,sieve:G2,subflow:Kp,timeunit:dm,tupleindex:Y2,values:X2,window:hm},Symbol.toStringTag,{value:"Module"}));function Q2(t,n,e){var r=null,i=Hn(!0),a=null,o=jx,s=null,u=Px(l);function l(f){var d,h,p,m,g,y=(f=_8(f)).length,v=!1,x=new Array(y),b=new Array(y);for(a==null&&(s=o(g=u())),d=0;d<=y;++d){if(!(d<y&&i(m=f[d],d,f))===v)if(v=!v)h=d,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),p=d-1;p>=h;--p)s.point(x[p],b[p]);s.lineEnd(),s.areaEnd()}v&&(x[d]=+t(m,d,f),b[d]=+n(m,d,f),s.point(r?+r(m,d,f):x[d],e?+e(m,d,f):b[d]))}if(g)return s=null,g+""||null}function c(){return Lx().defined(i).curve(o).context(a)}return t=typeof t=="function"?t:t===void 0?k8:Hn(+t),n=typeof n=="function"?n:Hn(n===void 0?0:+n),e=typeof e=="function"?e:e===void 0?D8:Hn(+e),l.x=function(f){return arguments.length?(t=typeof f=="function"?f:Hn(+f),r=null,l):t},l.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Hn(+f),l):t},l.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Hn(+f),l):r},l.y=function(f){return arguments.length?(n=typeof f=="function"?f:Hn(+f),e=null,l):n},l.y0=function(f){return arguments.length?(n=typeof f=="function"?f:Hn(+f),l):n},l.y1=function(f){return arguments.length?(e=f==null?null:typeof f=="function"?f:Hn(+f),l):e},l.lineX0=l.lineY0=function(){return c().x(t).y(n)},l.lineY1=function(){return c().x(t).y(e)},l.lineX1=function(){return c().x(r).y(n)},l.defined=function(f){return arguments.length?(i=typeof f=="function"?f:Hn(!!f),l):i},l.curve=function(f){return arguments.length?(o=f,a!=null&&(s=o(a)),l):o},l.context=function(f){return arguments.length?(f==null?a=s=null:s=o(a=f),l):a},l}const j9={draw(t,n){const e=F8(n/E8);t.moveTo(e,0),t.arc(0,0,e,0,C8)}};function qi(t,n){if(typeof document<"u"&&document.createElement){const e=document.createElement("canvas");if(e&&e.getContext)return e.width=t,e.height=n,e}return null}const L9=()=>typeof Image<"u"?Image:null;function Z2(t){return Math.log(t)}function tw(t){return Math.exp(t)}function q9(t){return-Math.log(-t)}function U9(t){return-Math.exp(-t)}function I9(t){return isFinite(t)?+("1e"+t):t<0?0:t}function nw(t){return(n,e)=>-t(-n,e)}function pm(t){const n=t(Z2,tw),e=n.domain;let r,i,a=10;function o(){return r=function(s){return s===Math.E?Math.log:s===10&&Math.log10||s===2&&Math.log2||(s=Math.log(s),u=>Math.log(u)/s)}(a),i=function(s){return s===10?I9:s===Math.E?Math.exp:u=>Math.pow(s,u)}(a),e()[0]<0?(r=nw(r),i=nw(i),t(q9,U9)):t(Z2,tw),n}return n.base=function(s){return arguments.length?(a=+s,o()):a},n.domain=function(s){return arguments.length?(e(s),o()):e()},n.ticks=s=>{const u=e();let l=u[0],c=u[u.length-1];const f=c<l;f&&([l,c]=[c,l]);let d,h,p=r(l),m=r(c);const g=s==null?10:+s;let y=[];if(!(a%1)&&m-p<g){if(p=Math.floor(p),m=Math.ceil(m),l>0){for(;p<=m;++p)for(d=1;d<a;++d)if(h=p<0?d/i(-p):d*i(p),!(h<l)){if(h>c)break;y.push(h)}}else for(;p<=m;++p)for(d=a-1;d>=1;--d)if(h=p>0?d/i(-p):d*i(p),!(h<l)){if(h>c)break;y.push(h)}2*y.length<g&&(y=ax(l,c,g))}else y=ax(p,m,Math.min(m-p,g)).map(i);return f?y.reverse():y},n.tickFormat=(s,u)=>{if(s==null&&(s=10),u==null&&(u=a===10?"s":","),typeof u!="function"&&(a%1||(u=a6(u)).precision!=null||(u.trim=!0),u=o6(u)),s===1/0)return u;const l=Math.max(1,a*s/n.ticks().length);return c=>{let f=c/i(Math.round(r(c)));return f*a<a-.5&&(f*=a),f<=l?u(c):""}},n.nice=()=>e(I6(e(),{floor:s=>i(Math.floor(r(s))),ceil:s=>i(Math.ceil(r(s)))})),n}function ew(t){return function(n){return Math.sign(n)*Math.log1p(Math.abs(n/t))}}function rw(t){return function(n){return Math.sign(n)*Math.expm1(Math.abs(n))*t}}function mm(t){var n=1,e=t(ew(n),rw(n));return e.constant=function(r){return arguments.length?t(ew(n=+r),rw(n)):n},Co(e)}function iw(t){return function(n){return n<0?-Math.pow(-n,t):Math.pow(n,t)}}function W9(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function H9(t){return t<0?-t*t:t*t}function gm(t){var n=t(Ri,Ri),e=1;return n.exponent=function(r){return arguments.length?(e=+r)==1?t(Ri,Ri):e===.5?t(W9,H9):t(iw(e),iw(1/e)):e},Co(n)}function ym(){var t=gm(up());return t.copy=function(){return lp(t,ym()).exponent(t.exponent())},$a.apply(t,arguments),t}function pc(){var t,n,e,r,i,a=0,o=1,s=Ri,u=!1;function l(f){return f==null||isNaN(f=+f)?i:s(e===0?.5:(f=(r(f)-t)*e,u?Math.max(0,Math.min(1,f)):f))}function c(f){return function(d){var h,p;return arguments.length?([h,p]=d,s=f(h,p),l):[s(0),s(1)]}}return l.domain=function(f){return arguments.length?([a,o]=f,t=r(a=+a),n=r(o=+o),e=t===n?0:1/(n-t),l):[a,o]},l.clamp=function(f){return arguments.length?(u=!!f,l):u},l.interpolator=function(f){return arguments.length?(s=f,l):s},l.range=c(Ws),l.rangeRound=c(Gl),l.unknown=function(f){return arguments.length?(i=f,l):i},function(f){return r=f,t=f(a),n=f(o),e=t===n?0:1/(n-t),l}}function Ui(t,n){return n.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function vm(){var t=Co(pc()(Ri));return t.copy=function(){return Ui(t,vm())},Ti.apply(t,arguments)}function bm(){var t=gm(pc());return t.copy=function(){return Ui(t,bm()).exponent(t.exponent())},Ti.apply(t,arguments)}function mc(){var t,n,e,r,i,a,o,s=0,u=.5,l=1,c=1,f=Ri,d=!1;function h(m){return isNaN(m=+m)?o:(m=.5+((m=+a(m))-n)*(c*m<c*n?r:i),f(d?Math.max(0,Math.min(1,m)):m))}function p(m){return function(g){var y,v,x;return arguments.length?([y,v,x]=g,f=vp(m,[y,v,x]),h):[f(0),f(.5),f(1)]}}return h.domain=function(m){return arguments.length?([s,u,l]=m,t=a(s=+s),n=a(u=+u),e=a(l=+l),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),c=n<t?-1:1,h):[s,u,l]},h.clamp=function(m){return arguments.length?(d=!!m,h):d},h.interpolator=function(m){return arguments.length?(f=m,h):f},h.range=p(Ws),h.rangeRound=p(Gl),h.unknown=function(m){return arguments.length?(o=m,h):o},function(m){return a=m,t=m(s),n=m(u),e=m(l),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),c=n<t?-1:1,h}}function xm(){var t=gm(mc());return t.copy=function(){return Ui(t,xm()).exponent(t.exponent())},Ti.apply(t,arguments)}const G9=Fr("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),V9=Fr("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Y9=Fr("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),X9=Fr("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),J9=Fr("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),K9=Fr("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),Q9=Fr("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),Z9=Fr("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),t7=Fr("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),n7=Fr("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function wm(t,n,e){const r=t-n+2*e;return t?r>0?r:1:0}const Mo="linear",ri="log",tu="pow",nu="sqrt",gc="symlog",za="time",Oa="utc",Cr="sequential",Bo="diverging",zo="quantile",yc="quantize",vc="threshold",Am="ordinal",_m="point",aw="band",km="bin-ordinal",fn="continuous",eu="discrete",ru="discretizing",Re="interpolating",Dm="temporal";function Fm(){const t=Tx().unknown(void 0),n=t.domain,e=t.range;let r,i,a=[0,1],o=!1,s=0,u=0,l=.5;function c(){const f=n().length,d=a[1]<a[0],h=a[1-d],p=wm(f,s,u);let m=a[d-0];r=(h-m)/(p||1),o&&(r=Math.floor(r)),m+=(h-m-r*(f-s))*l,i=r*(1-s),o&&(m=Math.round(m),i=Math.round(i));const g=xe(f).map(y=>m+r*y);return e(d?g.reverse():g)}return delete t.unknown,t.domain=function(f){return arguments.length?(n(f),c()):n()},t.range=function(f){return arguments.length?(a=[+f[0],+f[1]],c()):a.slice()},t.rangeRound=function(f){return a=[+f[0],+f[1]],o=!0,c()},t.bandwidth=function(){return i},t.step=function(){return r},t.round=function(f){return arguments.length?(o=!!f,c()):o},t.padding=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),s=u,c()):s},t.paddingInner=function(f){return arguments.length?(s=Math.max(0,Math.min(1,f)),c()):s},t.paddingOuter=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},t.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},t.invertRange=function(f){if(f[0]==null||f[1]==null)return;const d=a[1]<a[0],h=d?e().reverse():e(),p=h.length-1;let m,g,y,v=+f[0],x=+f[1];return v!=v||x!=x||(x<v&&(y=v,v=x,x=y),x<h[0]||v>a[1-d])?void 0:(m=Math.max(0,Ea(h,v)-1),g=v===x?m:Ea(h,x)-1,v-h[m]>i+1e-10&&++m,d&&(y=m,m=p-g,g=p-y),m>g?void 0:n().slice(m,g+1))},t.invert=function(f){const d=t.invertRange([f,f]);return d&&d[0]},t.copy=function(){return Fm().domain(n()).range(a).round(o).paddingInner(s).paddingOuter(u).align(l)},c()}function ow(t){const n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return ow(n())},t}var e7=Array.prototype.map;const r7=Array.prototype.slice,bc=new Map,sw=Symbol("vega_scale");function uw(t){return t[sw]=!0,t}function lw(t){return t&&t[sw]===!0}function Dt(t,n,e){return arguments.length>1?(bc.set(t,function(r,i,a){const o=function(){const s=i();return s.invertRange||(s.invertRange=s.invert?function(u){return function(l){let c,f=l[0],d=l[1];return d<f&&(c=f,f=d,d=c),[u.invert(f),u.invert(d)]}}(s):s.invertExtent?function(u){return function(l){const c=u.range();let f,d,h,p,m=l[0],g=l[1],y=-1;for(g<m&&(d=m,m=g,g=d),h=0,p=c.length;h<p;++h)c[h]>=m&&c[h]<=g&&(y<0&&(y=h),f=h);if(!(y<0))return m=u.invertExtent(c[y]),g=u.invertExtent(c[f]),[m[0]===void 0?m[1]:m[0],g[1]===void 0?g[0]:g[1]]}}(s):void 0),s.type=r,uw(s)};return o.metadata=Dr(J(a)),o}(t,n,e)),this):cw(t)?bc.get(t):void 0}function cw(t){return bc.has(t)}function Na(t,n){const e=bc.get(t);return e&&e.metadata[n]}function Cm(t){return Na(t,fn)}function Oo(t){return Na(t,eu)}function Em(t){return Na(t,ru)}function fw(t){return Na(t,ri)}function dw(t){return Na(t,Re)}function hw(t){return Na(t,zo)}Dt("identity",function t(n){var e;function r(i){return i==null||isNaN(i=+i)?e:i}return r.invert=r,r.domain=r.range=function(i){return arguments.length?(n=Array.from(i,zx),r):n.slice()},r.unknown=function(i){return arguments.length?(e=i,r):e},r.copy=function(){return t(n).unknown(e)},n=arguments.length?Array.from(n,zx):[0,1],Co(r)}),Dt(Mo,n8,fn),Dt(ri,function t(){const n=pm(up()).domain([1,10]);return n.copy=()=>lp(n,t()).base(n.base()),$a.apply(n,arguments),n},[fn,ri]),Dt(tu,ym,fn),Dt(nu,function(){return ym.apply(null,arguments).exponent(.5)},fn),Dt(gc,function t(){var n=mm(up());return n.copy=function(){return lp(n,t()).constant(n.constant())},$a.apply(n,arguments)},fn),Dt(za,V6,[fn,Dm]),Dt(Oa,function(){return $a.apply(W6(G6,H6,p6,h6,d6,f6,c6,l6,u6,s6).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},[fn,Dm]),Dt(Cr,vm,[fn,Re]),Dt(`${Cr}-${Mo}`,vm,[fn,Re]),Dt(`${Cr}-${ri}`,function t(){var n=pm(pc()).domain([1,10]);return n.copy=function(){return Ui(n,t()).base(n.base())},Ti.apply(n,arguments)},[fn,Re,ri]),Dt(`${Cr}-${tu}`,bm,[fn,Re]),Dt(`${Cr}-${nu}`,function(){return bm.apply(null,arguments).exponent(.5)},[fn,Re]),Dt(`${Cr}-${gc}`,function t(){var n=mm(pc());return n.copy=function(){return Ui(n,t()).constant(n.constant())},Ti.apply(n,arguments)},[fn,Re]),Dt(`${Bo}-${Mo}`,function t(){var n=Co(mc()(Ri));return n.copy=function(){return Ui(n,t())},Ti.apply(n,arguments)},[fn,Re]),Dt(`${Bo}-${ri}`,function t(){var n=pm(mc()).domain([.1,1,10]);return n.copy=function(){return Ui(n,t()).base(n.base())},Ti.apply(n,arguments)},[fn,Re,ri]),Dt(`${Bo}-${tu}`,xm,[fn,Re]),Dt(`${Bo}-${nu}`,function(){return xm.apply(null,arguments).exponent(.5)},[fn,Re]),Dt(`${Bo}-${gc}`,function t(){var n=mm(mc());return n.copy=function(){return Ui(n,t()).constant(n.constant())},Ti.apply(n,arguments)},[fn,Re]),Dt(zo,function t(){var n,e=[],r=[],i=[];function a(){var s=0,u=Math.max(1,r.length);for(i=new Array(u-1);++s<u;)i[s-1]=Hx(e,s/u);return o}function o(s){return s==null||isNaN(s=+s)?n:r[Ea(i,s)]}return o.invertExtent=function(s){var u=r.indexOf(s);return u<0?[NaN,NaN]:[u>0?i[u-1]:e[0],u<i.length?i[u]:e[e.length-1]]},o.domain=function(s){if(!arguments.length)return e.slice();e=[];for(let u of s)u==null||isNaN(u=+u)||e.push(u);return e.sort(qs),a()},o.range=function(s){return arguments.length?(r=Array.from(s),a()):r.slice()},o.unknown=function(s){return arguments.length?(n=s,o):n},o.quantiles=function(){return i.slice()},o.copy=function(){return t().domain(e).range(r).unknown(n)},$a.apply(o,arguments)},[ru,zo]),Dt(yc,function t(){var n,e=0,r=1,i=1,a=[.5],o=[0,1];function s(l){return l!=null&&l<=l?o[Ea(a,l,0,i)]:n}function u(){var l=-1;for(a=new Array(i);++l<i;)a[l]=((l+1)*r-(l-i)*e)/(i+1);return s}return s.domain=function(l){return arguments.length?([e,r]=l,e=+e,r=+r,u()):[e,r]},s.range=function(l){return arguments.length?(i=(o=Array.from(l)).length-1,u()):o.slice()},s.invertExtent=function(l){var c=o.indexOf(l);return c<0?[NaN,NaN]:c<1?[e,a[0]]:c>=i?[a[i-1],r]:[a[c-1],a[c]]},s.unknown=function(l){return arguments.length&&(n=l),s},s.thresholds=function(){return a.slice()},s.copy=function(){return t().domain([e,r]).range(o).unknown(n)},$a.apply(Co(s),arguments)},ru),Dt(vc,function t(){var n,e=[.5],r=[0,1],i=1;function a(o){return o!=null&&o<=o?r[Ea(e,o,0,i)]:n}return a.domain=function(o){return arguments.length?(e=Array.from(o),i=Math.min(e.length,r.length-1),a):e.slice()},a.range=function(o){return arguments.length?(r=Array.from(o),i=Math.min(e.length,r.length-1),a):r.slice()},a.invertExtent=function(o){var s=r.indexOf(o);return[e[s-1],e[s]]},a.unknown=function(o){return arguments.length?(n=o,a):n},a.copy=function(){return t().domain(e).range(r).unknown(n)},$a.apply(a,arguments)},ru),Dt(km,function t(){let n=[],e=[];function r(i){return i==null||i!=i?void 0:e[(Ea(n,i)-1)%e.length]}return r.domain=function(i){return arguments.length?(n=function(a){return e7.call(a,ze)}(i),r):n.slice()},r.range=function(i){return arguments.length?(e=r7.call(i),r):e.slice()},r.tickFormat=function(i,a){return e8(n[0],Bt(n),i??10,a)},r.copy=function(){return t().domain(r.domain()).range(r.range())},r},[eu,ru]),Dt(Am,Tx,eu),Dt(aw,Fm,eu),Dt(_m,function(){return ow(Fm().paddingInner(1))},eu);const i7=["clamp","base","constant","exponent"];function pw(t,n){const e=n[0],r=Bt(n)-e;return function(i){return t(e+i*r)}}function xc(t,n,e){return vp($m(n||"rgb",e),t)}function mw(t,n){const e=new Array(n),r=n+1;for(let i=0;i<n;)e[i]=t(++i/r);return e}function gw(t,n,e){const r=e-n;let i,a,o;return r&&Number.isFinite(r)?(i=(a=t.type).indexOf("-"),a=i<0?a:a.slice(i+1),o=Dt(a)().domain([n,e]).range([0,1]),i7.forEach(s=>t[s]?o[s](t[s]()):0),o):In(.5)}function $m(t,n){const e=o9[function(r){return"interpolate"+r.toLowerCase().split("-").map(i=>i[0].toUpperCase()+i.slice(1)).join("")}(t)];return n!=null&&e&&e.gamma?e.gamma(n):e}function yw(t){if(T(t))return t;const n=t.length/6|0,e=new Array(n);for(let r=0;r<n;)e[r]="#"+t.slice(6*r,6*++r);return e}function vw(t,n){for(const e in t)Sm(e,n(t[e]))}const bw={};function Sm(t,n){return t=t&&t.toLowerCase(),arguments.length>1?(bw[t]=n,this):bw[t]}vw({accent:V9,category10:G9,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:Y9,observable10:X9,paired:J9,pastel1:K9,pastel2:Q9,set1:Z9,set2:t7,set3:n7,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"},yw),vw({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"},t=>xc(yw(t)));const wc="symbol",a7=t=>T(t)?t.map(n=>String(n)):String(t),o7=(t,n)=>t[1]-n[1],s7=(t,n)=>n[1]-t[1];function Mm(t,n,e){let r;return $t(n)&&(t.bins&&(n=Math.max(n,t.bins.length)),e!=null&&(n=Math.min(n,Math.floor(Il(t.domain())/e||1)+1))),Z(n)&&(r=n.step,n=n.interval),Q(n)&&(n=t.type===za?Kh(n):t.type==Oa?Jh(n):P("Only time and utc scales accept interval strings."),r&&(n=n.every(r))),n}function xw(t,n,e){let r=t.range(),i=r[0],a=Bt(r),o=o7;if(i>a&&(r=a,a=i,i=r,o=s7),i=Math.floor(i),a=Math.ceil(a),n=n.map(s=>[s,t(s)]).filter(s=>i<=s[1]&&s[1]<=a).sort(o).map(s=>s[0]),e>0&&n.length>1){const s=[n[0],Bt(n)];for(;n.length>e&&n.length>=3;)n=n.filter((u,l)=>!(l%2));n.length<3&&(n=s)}return n}function Bm(t,n){return t.bins?xw(t,t.bins,n):t.ticks?t.ticks(n):t.domain()}function ww(t,n,e,r,i,a){const o=n.type;let s=a7;if(o===za||i===za)s=t.timeFormat(r);else if(o===Oa||i===Oa)s=t.utcFormat(r);else if(fw(o)){const u=t.formatFloat(r);if(a||n.bins)s=u;else{const l=Aw(n,e,!1);s=c=>l(c)?u(c):""}}else if(n.tickFormat){const u=n.domain();s=t.formatSpan(u[0],u[u.length-1],e,r)}else r&&(s=t.format(r));return s}function Aw(t,n,e){const r=Bm(t,n),i=t.base(),a=Math.log(i),o=Math.max(1,i*n/r.length),s=u=>{let l=u/Math.pow(i,Math.round(Math.log(u)/a));return l*i<i-.5&&(l*=i),l<=o};return e?r.filter(s):s}const zm={[zo]:"quantiles",[yc]:"thresholds",[vc]:"domain"},_w={[zo]:"quantiles",[yc]:"domain"};function kw(t,n){return t.bins?function(e){const r=e.slice(0,-1);return r.max=Bt(e),r}(t.bins):t.type===ri?Aw(t,n,!0):zm[t.type]?function(e){const r=[-1/0].concat(e);return r.max=1/0,r}(t[zm[t.type]]()):Bm(t,n)}function Dw(t,n,e,r,i,a,o){const s=_w[n.type]&&a!==za&&a!==Oa?function(u,l,c){const f=l[_w[l.type]](),d=f.length;let h,p=d>1?f[1]-f[0]:f[0];for(h=1;h<d;++h)p=Math.min(p,f[h]-f[h-1]);return u.formatSpan(0,p,30,c)}(t,n,i):ww(t,n,e,i,a,o);return r===wc&&(u=>zm[u.type]||u.bins)(n)?u7(s):r==="discrete"?l7(s):c7(s)}const u7=t=>(n,e,r)=>{const i=Fw(r[e+1],Fw(r.max,1/0)),a=Cw(n,t),o=Cw(i,t);return a&&o?a+" \u2013 "+o:o?"< "+o:"\u2265 "+a},Fw=(t,n)=>t??n,l7=t=>(n,e)=>e?t(n):null,c7=t=>n=>t(n),Cw=(t,n)=>Number.isFinite(t)?n(t):null;function f7(t,n,e,r){const i=r||n.type;return Q(e)&&function(a){return Na(a,Dm)}(i)&&(e=e.replace(/%a/g,"%A").replace(/%b/g,"%B")),e||i!==za?e||i!==Oa?Dw(t,n,5,null,e,r,!0):t.utcFormat("%A, %d %B %Y, %X UTC"):t.timeFormat("%A, %d %B %Y, %X")}function Ew(t,n,e){e=e||{};const r=Math.max(3,e.maxlen||7),i=f7(t,n,e.format,e.formatType);if(Em(n.type)){const a=kw(n).slice(1).map(i),o=a.length;return`${o} boundar${o===1?"y":"ies"}: ${a.join(", ")}`}if(Oo(n.type)){const a=n.domain(),o=a.length;return`${o} value${o===1?"":"s"}: ${o>r?a.slice(0,r-2).map(i).join(", ")+", ending with "+a.slice(-1).map(i):a.map(i).join(", ")}`}{const a=n.domain();return`values from ${i(a[0])} to ${i(Bt(a))}`}}let $w=0;const Ac="p_";function Om(t){return t&&t.gradient}function Sw(t,n,e){const r=t.gradient;let i=t.id,a=r==="radial"?Ac:"";return i||(i=t.id="gradient_"+$w++,r==="radial"?(t.x1=Er(t.x1,.5),t.y1=Er(t.y1,.5),t.r1=Er(t.r1,0),t.x2=Er(t.x2,.5),t.y2=Er(t.y2,.5),t.r2=Er(t.r2,.5),a=Ac):(t.x1=Er(t.x1,0),t.y1=Er(t.y1,0),t.x2=Er(t.x2,1),t.y2=Er(t.y2,0))),n[i]=t,"url("+(e||"")+"#"+a+i+")"}function Er(t,n){return t??n}function Mw(t,n){var e,r=[];return e={gradient:"linear",x1:t?t[0]:0,y1:t?t[1]:0,x2:n?n[0]:1,y2:n?n[1]:0,stops:r,stop:function(i,a){return r.push({offset:i,color:a}),e}}}const Bw={basis:{curve:H8},"basis-closed":{curve:W8},"basis-open":{curve:I8},bundle:{curve:U8,tension:"beta",value:.85},cardinal:{curve:q8,tension:"tension",value:0},"cardinal-open":{curve:L8,tension:"tension",value:0},"cardinal-closed":{curve:j8,tension:"tension",value:0},"catmull-rom":{curve:P8,tension:"alpha",value:.5},"catmull-rom-closed":{curve:T8,tension:"alpha",value:.5},"catmull-rom-open":{curve:R8,tension:"alpha",value:.5},linear:{curve:jx},"linear-closed":{curve:N8},monotone:{horizontal:O8,vertical:z8},natural:{curve:B8},step:{curve:M8},"step-after":{curve:S8},"step-before":{curve:$8}};function Nm(t,n,e){var r=tt(Bw,t)&&Bw[t],i=null;return r&&(i=r.curve||r[n||"vertical"],r.tension&&e!=null&&(i=i[r.tension](e))),i}const d7={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},h7=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,p7=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,m7=/^((\s+,?\s*)|(,\s*))/,g7=/^[01]/;function No(t){const n=[];return(t.match(h7)||[]).forEach(e=>{let r=e[0];const i=r.toLowerCase(),a=d7[i],o=function(u,l,c){const f=[];for(let d=0;l&&d<c.length;)for(let h=0;h<l;++h){const p=u!=="a"||h!==3&&h!==4?p7:g7,m=c.slice(d).match(p);if(m===null)throw Error("Invalid SVG path, incorrect parameter type");d+=m[0].length,f.push(+m[0]);const g=c.slice(d).match(m7);g!==null&&(d+=g[0].length)}return f}(i,a,e.slice(1).trim()),s=o.length;if(s<a||s&&s%a!==0)throw Error("Invalid SVG path, incorrect parameter count");if(n.push([r,...o.slice(0,a)]),s!==a){i==="m"&&(r=r==="M"?"L":"l");for(let u=a;u<s;u+=a)n.push([r,...o.slice(u,u+a)])}}),n}const Ii=Math.PI/180,Ra=Math.PI/2,$r=2*Math.PI,Ro=Math.sqrt(3)/2;var Rm={},Tm={},zw=[].join;function y7(t){const n=zw.call(t);if(Tm[n])return Tm[n];var e=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5],u=t[6],l=t[7];const c=l*o,f=-u*s,d=u*o,h=l*s,p=Math.cos(i),m=Math.sin(i),g=Math.cos(a),y=Math.sin(a),v=.5*(a-i),x=Math.sin(.5*v),b=8/3*x*x/Math.sin(v),w=e+p-b*m,A=r+m+b*p,_=e+g,k=r+y,D=_+b*y,C=k-b*g;return Tm[n]=[c*w+f*A,d*w+h*A,c*D+f*C,d*D+h*C,c*_+f*k,d*_+h*k]}const Te=["l",0,0,0,0,0,0,0];function v7(t,n,e){const r=Te[0]=t[0];if(r==="a"||r==="A")Te[1]=n*t[1],Te[2]=e*t[2],Te[3]=t[3],Te[4]=t[4],Te[5]=t[5],Te[6]=n*t[6],Te[7]=e*t[7];else if(r==="h"||r==="H")Te[1]=n*t[1];else if(r==="v"||r==="V")Te[1]=e*t[1];else for(var i=1,a=t.length;i<a;++i)Te[i]=(i%2==1?n:e)*t[i];return Te}function iu(t,n,e,r,i,a){var o,s,u,l,c,f=null,d=0,h=0,p=0,m=0,g=0,y=0;e==null&&(e=0),r==null&&(r=0),i==null&&(i=1),a==null&&(a=i),t.beginPath&&t.beginPath();for(var v=0,x=n.length;v<x;++v){switch(o=n[v],i===1&&a===1||(o=v7(o,i,a)),o[0]){case"l":d+=o[1],h+=o[2],t.lineTo(d+e,h+r);break;case"L":d=o[1],h=o[2],t.lineTo(d+e,h+r);break;case"h":d+=o[1],t.lineTo(d+e,h+r);break;case"H":d=o[1],t.lineTo(d+e,h+r);break;case"v":h+=o[1],t.lineTo(d+e,h+r);break;case"V":h=o[1],t.lineTo(d+e,h+r);break;case"m":g=d+=o[1],y=h+=o[2],t.moveTo(d+e,h+r);break;case"M":g=d=o[1],y=h=o[2],t.moveTo(d+e,h+r);break;case"c":s=d+o[5],u=h+o[6],p=d+o[3],m=h+o[4],t.bezierCurveTo(d+o[1]+e,h+o[2]+r,p+e,m+r,s+e,u+r),d=s,h=u;break;case"C":d=o[5],h=o[6],p=o[3],m=o[4],t.bezierCurveTo(o[1]+e,o[2]+r,p+e,m+r,d+e,h+r);break;case"s":s=d+o[3],u=h+o[4],p=2*d-p,m=2*h-m,t.bezierCurveTo(p+e,m+r,d+o[1]+e,h+o[2]+r,s+e,u+r),p=d+o[1],m=h+o[2],d=s,h=u;break;case"S":s=o[3],u=o[4],p=2*d-p,m=2*h-m,t.bezierCurveTo(p+e,m+r,o[1]+e,o[2]+r,s+e,u+r),d=s,h=u,p=o[1],m=o[2];break;case"q":s=d+o[3],u=h+o[4],p=d+o[1],m=h+o[2],t.quadraticCurveTo(p+e,m+r,s+e,u+r),d=s,h=u;break;case"Q":s=o[3],u=o[4],t.quadraticCurveTo(o[1]+e,o[2]+r,s+e,u+r),d=s,h=u,p=o[1],m=o[2];break;case"t":s=d+o[1],u=h+o[2],f[0].match(/[QqTt]/)===null?(p=d,m=h):f[0]==="t"?(p=2*d-l,m=2*h-c):f[0]==="q"&&(p=2*d-p,m=2*h-m),l=p,c=m,t.quadraticCurveTo(p+e,m+r,s+e,u+r),h=u,p=(d=s)+o[1],m=h+o[2];break;case"T":s=o[1],u=o[2],p=2*d-p,m=2*h-m,t.quadraticCurveTo(p+e,m+r,s+e,u+r),d=s,h=u;break;case"a":Ow(t,d+e,h+r,[o[1],o[2],o[3],o[4],o[5],o[6]+d+e,o[7]+h+r]),d+=o[6],h+=o[7];break;case"A":Ow(t,d+e,h+r,[o[1],o[2],o[3],o[4],o[5],o[6]+e,o[7]+r]),d=o[6],h=o[7];break;case"z":case"Z":d=g,h=y,t.closePath()}f=o}}function Ow(t,n,e,r){const i=function(a,o,s,u,l,c,f,d,h){const p=zw.call(arguments);if(Rm[p])return Rm[p];const m=f*Ii,g=Math.sin(m),y=Math.cos(m),v=y*(d-a)*.5+g*(h-o)*.5,x=y*(h-o)*.5-g*(d-a)*.5;let b=v*v/((s=Math.abs(s))*s)+x*x/((u=Math.abs(u))*u);b>1&&(b=Math.sqrt(b),s*=b,u*=b);const w=y/s,A=g/s,_=-g/u,k=y/u,D=w*d+A*h,C=_*d+k*h,F=w*a+A*o,E=_*a+k*o;let $=1/((F-D)*(F-D)+(E-C)*(E-C))-.25;$<0&&($=0);let M=Math.sqrt($);c==l&&(M=-M);const S=.5*(D+F)-M*(E-C),B=.5*(C+E)+M*(F-D),z=Math.atan2(C-B,D-S);let j=Math.atan2(E-B,F-S)-z;j<0&&c===1?j+=$r:j>0&&c===0&&(j-=$r);const W=Math.ceil(Math.abs(j/(Ra+.001))),K=[];for(let q=0;q<W;++q){const at=z+q*j/W,ot=z+(q+1)*j/W;K[q]=[S,B,at,ot,s,u,g,y]}return Rm[p]=K}(r[5],r[6],r[0],r[1],r[3],r[4],r[2],n,e);for(let a=0;a<i.length;++a){const o=y7(i[a]);t.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5])}}const Nw=.5773502691896257,Rw={circle:{draw:function(t,n){const e=Math.sqrt(n)/2;t.moveTo(e,0),t.arc(0,0,e,0,$r)}},cross:{draw:function(t,n){var e=Math.sqrt(n)/2,r=e/2.5;t.moveTo(-e,-r),t.lineTo(-e,r),t.lineTo(-r,r),t.lineTo(-r,e),t.lineTo(r,e),t.lineTo(r,r),t.lineTo(e,r),t.lineTo(e,-r),t.lineTo(r,-r),t.lineTo(r,-e),t.lineTo(-r,-e),t.lineTo(-r,-r),t.closePath()}},diamond:{draw:function(t,n){const e=Math.sqrt(n)/2;t.moveTo(-e,0),t.lineTo(0,-e),t.lineTo(e,0),t.lineTo(0,e),t.closePath()}},square:{draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},arrow:{draw:function(t,n){var e=Math.sqrt(n)/2,r=e/7,i=e/2.5,a=e/8;t.moveTo(-r,e),t.lineTo(r,e),t.lineTo(r,-a),t.lineTo(i,-a),t.lineTo(0,-e),t.lineTo(-i,-a),t.lineTo(-r,-a),t.closePath()}},wedge:{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e,i=r-e*Nw,a=e/4;t.moveTo(0,-r-i),t.lineTo(-a,r-i),t.lineTo(a,r-i),t.closePath()}},triangle:{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e,i=r-e*Nw;t.moveTo(0,-r-i),t.lineTo(-e,r-i),t.lineTo(e,r-i),t.closePath()}},"triangle-up":{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e;t.moveTo(0,-r),t.lineTo(-e,r),t.lineTo(e,r),t.closePath()}},"triangle-down":{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e;t.moveTo(0,r),t.lineTo(-e,-r),t.lineTo(e,-r),t.closePath()}},"triangle-right":{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e;t.moveTo(r,0),t.lineTo(-r,-e),t.lineTo(-r,e),t.closePath()}},"triangle-left":{draw:function(t,n){var e=Math.sqrt(n)/2,r=Ro*e;t.moveTo(-r,0),t.lineTo(r,-e),t.lineTo(r,e),t.closePath()}},stroke:{draw:function(t,n){const e=Math.sqrt(n)/2;t.moveTo(-e,0),t.lineTo(e,0)}}};function Tw(t){return tt(Rw,t)?Rw[t]:function(n){if(!tt(Pm,n)){const e=No(n);Pm[n]={draw:function(r,i){iu(r,e,0,0,Math.sqrt(i)/2)}}}return Pm[n]}(t)}var Pm={};const Wi=.448084975506;function b7(t){return t.x}function x7(t){return t.y}function w7(t){return t.width}function A7(t){return t.height}function ii(t){return typeof t=="function"?t:()=>+t}function _c(t,n,e){return Math.max(n,Math.min(t,e))}function Pw(){var t=b7,n=x7,e=w7,r=A7,i=ii(0),a=i,o=i,s=i,u=null;function l(c,f,d){var h,p=f??+t.call(this,c),m=d??+n.call(this,c),g=+e.call(this,c),y=+r.call(this,c),v=Math.min(g,y)/2,x=_c(+i.call(this,c),0,v),b=_c(+a.call(this,c),0,v),w=_c(+o.call(this,c),0,v),A=_c(+s.call(this,c),0,v);if(u||(u=h=dp()),x<=0&&b<=0&&w<=0&&A<=0)u.rect(p,m,g,y);else{var _=p+g,k=m+y;u.moveTo(p+x,m),u.lineTo(_-b,m),u.bezierCurveTo(_-Wi*b,m,_,m+Wi*b,_,m+b),u.lineTo(_,k-A),u.bezierCurveTo(_,k-Wi*A,_-Wi*A,k,_-A,k),u.lineTo(p+w,k),u.bezierCurveTo(p+Wi*w,k,p,k-Wi*w,p,k-w),u.lineTo(p,m+x),u.bezierCurveTo(p,m+Wi*x,p+Wi*x,m,p+x,m),u.closePath()}if(h)return u=null,h+""||null}return l.x=function(c){return arguments.length?(t=ii(c),l):t},l.y=function(c){return arguments.length?(n=ii(c),l):n},l.width=function(c){return arguments.length?(e=ii(c),l):e},l.height=function(c){return arguments.length?(r=ii(c),l):r},l.cornerRadius=function(c,f,d,h){return arguments.length?(i=ii(c),a=f!=null?ii(f):i,s=d!=null?ii(d):i,o=h!=null?ii(h):a,l):i},l.context=function(c){return arguments.length?(u=c??null,l):u},l}function jw(){var t,n,e,r,i,a,o,s,u=null;function l(f,d,h){const p=h/2;if(i){var m=o-d,g=f-a;if(m||g){var y=Math.hypot(m,g),v=(m/=y)*s,x=(g/=y)*s,b=Math.atan2(g,m);u.moveTo(a-v,o-x),u.lineTo(f-m*p,d-g*p),u.arc(f,d,p,b-Math.PI,b),u.lineTo(a+v,o+x),u.arc(a,o,s,b,b+Math.PI)}else u.arc(f,d,p,0,$r);u.closePath()}else i=1;a=f,o=d,s=p}function c(f){var d,h,p,m=f.length,g=!1;for(u==null&&(u=p=dp()),d=0;d<=m;++d)!(d<m&&r(h=f[d],d,f))===g&&(g=!g)&&(i=0),g&&l(+t(h,d,f),+n(h,d,f),+e(h,d,f));if(p)return u=null,p+""||null}return c.x=function(f){return arguments.length?(t=f,c):t},c.y=function(f){return arguments.length?(n=f,c):n},c.size=function(f){return arguments.length?(e=f,c):e},c.defined=function(f){return arguments.length?(r=f,c):r},c.context=function(f){return arguments.length?(u=f??null,c):u},c}function au(t,n){return t??n}const ou=t=>t.x||0,su=t=>t.y||0,kc=t=>t.defined!==!1,_7=G8().startAngle(t=>t.startAngle||0).endAngle(t=>t.endAngle||0).padAngle(t=>t.padAngle||0).innerRadius(t=>t.innerRadius||0).outerRadius(t=>t.outerRadius||0).cornerRadius(t=>t.cornerRadius||0),k7=Q2().x(ou).y1(su).y0(t=>(t.y||0)+(t.height||0)).defined(kc),D7=Q2().y(su).x1(ou).x0(t=>(t.x||0)+(t.width||0)).defined(kc),F7=Lx().x(ou).y(su).defined(kc),C7=Pw().x(ou).y(su).width(t=>t.width||0).height(t=>t.height||0).cornerRadius(t=>au(t.cornerRadiusTopLeft,t.cornerRadius)||0,t=>au(t.cornerRadiusTopRight,t.cornerRadius)||0,t=>au(t.cornerRadiusBottomRight,t.cornerRadius)||0,t=>au(t.cornerRadiusBottomLeft,t.cornerRadius)||0),E7=function(t,n){let e=null,r=Px(i);function i(){let a;if(e||(e=a=r()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),a)return e=null,a+""||null}return t=typeof t=="function"?t:Hn(t||j9),n=typeof n=="function"?n:Hn(n===void 0?64:+n),i.type=function(a){return arguments.length?(t=typeof a=="function"?a:Hn(a),i):t},i.size=function(a){return arguments.length?(n=typeof a=="function"?a:Hn(+a),i):n},i.context=function(a){return arguments.length?(e=a??null,i):e},i}().type(t=>Tw(t.shape||"circle")).size(t=>au(t.size,64)),$7=jw().x(ou).y(su).defined(kc).size(t=>t.size||1);function jm(t){return t.cornerRadius||t.cornerRadiusTopLeft||t.cornerRadiusTopRight||t.cornerRadiusBottomRight||t.cornerRadiusBottomLeft}function To(t,n,e,r){return C7.context(t)(n,e,r)}var Lw=1;function qw(){Lw=1}function Lm(t,n,e){var r=n.clip,i=t._defs,a=n.clip_id||(n.clip_id="clip"+Lw++),o=i.clipping[a]||(i.clipping[a]={id:a});return bt(r)?o.path=r(null):jm(e)?o.path=To(null,e,0,0):(o.width=e.width||0,o.height=e.height||0),"url(#"+a+")"}function cn(t){this.clear(),t&&this.union(t)}function Dc(t){this.mark=t,this.bounds=this.bounds||new cn}function Fc(t){Dc.call(this,t),this.items=this.items||[]}cn.prototype={clone(){return new cn(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(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2},set(t,n,e,r){return e<t?(this.x2=t,this.x1=e):(this.x1=t,this.x2=e),r<n?(this.y2=n,this.y1=r):(this.y1=n,this.y2=r),this},add(t,n){return t<this.x1&&(this.x1=t),n<this.y1&&(this.y1=n),t>this.x2&&(this.x2=t),n>this.y2&&(this.y2=n),this},expand(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,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(t){return this.x1*=t,this.y1*=t,this.x2*=t,this.y2*=t,this},translate(t,n){return this.x1+=t,this.x2+=t,this.y1+=n,this.y2+=n,this},rotate(t,n,e){const r=this.rotatedPoints(t,n,e);return this.clear().add(r[0],r[1]).add(r[2],r[3]).add(r[4],r[5]).add(r[6],r[7])},rotatedPoints(t,n,e){var{x1:r,y1:i,x2:a,y2:o}=this,s=Math.cos(t),u=Math.sin(t),l=n-n*s+e*u,c=e-n*u-e*s;return[s*r-u*i+l,u*r+s*i+c,s*r-u*o+l,u*r+s*o+c,s*a-u*i+l,u*a+s*i+c,s*a-u*o+l,u*a+s*o+c]},union(t){return t.x1<this.x1&&(this.x1=t.x1),t.y1<this.y1&&(this.y1=t.y1),t.x2>this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},intersect(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2<this.x2&&(this.x2=t.x2),t.y2<this.y2&&(this.y2=t.y2),this},encloses(t){return t&&this.x1<=t.x1&&this.x2>=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},alignsWith(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},intersects(t){return t&&!(this.x2<t.x1||this.x1>t.x2||this.y2<t.y1||this.y1>t.y2)},contains(t,n){return!(t<this.x1||t>this.x2||n<this.y1||n>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}},V(Fc,Dc);class Uw{constructor(n){this._pending=0,this._loader=n||Ul()}pending(){return this._pending}sanitizeURL(n){const e=this;return Iw(e),e._loader.sanitize(n,{context:"href"}).then(r=>(uu(e),r)).catch(()=>(uu(e),null))}loadImage(n){const e=this,r=L9();return Iw(e),e._loader.sanitize(n,{context:"image"}).then(i=>{const a=i.href;if(!a||!r)throw{url:a};const o=new r,s=tt(i,"crossOrigin")?i.crossOrigin:"anonymous";return s!=null&&(o.crossOrigin=s),o.onload=()=>uu(e),o.onerror=()=>uu(e),o.src=a,o}).catch(i=>(uu(e),{complete:!1,width:0,height:0,src:i&&i.url||""}))}ready(){const n=this;return new Promise(e=>{(function r(i){n.pending()?setTimeout(()=>{r(!0)},10):e(i)})(!1)})}}function Iw(t){t._pending+=1}function uu(t){t._pending-=1}function ai(t,n,e){if(n.stroke&&n.opacity!==0&&n.strokeOpacity!==0){const r=n.strokeWidth!=null?+n.strokeWidth:1;t.expand(r+(e?function(i,a){return i.strokeJoin&&i.strokeJoin!=="miter"?0:a}(n,r):0))}return t}const S7=$r-1e-8;let Cc,Ec,$c,Ta,qm,Sc,Um,Im;const Hi=(t,n)=>Cc.add(t,n),Mc=(t,n)=>Hi(Ec=t,$c=n),Ww=t=>Hi(t,Cc.y1),Hw=t=>Hi(Cc.x1,t),Pa=(t,n)=>qm*t+Um*n,ja=(t,n)=>Sc*t+Im*n,Wm=(t,n)=>Hi(Pa(t,n),ja(t,n)),Hm=(t,n)=>Mc(Pa(t,n),ja(t,n));function lu(t,n){return Cc=t,n?(Ta=n*Ii,qm=Im=Math.cos(Ta),Sc=Math.sin(Ta),Um=-Sc):(qm=Im=1,Ta=Sc=Um=0),M7}const M7={beginPath(){},closePath(){},moveTo:Hm,lineTo:Hm,rect(t,n,e,r){Ta?(Wm(t+e,n),Wm(t+e,n+r),Wm(t,n+r),Hm(t,n)):(Hi(t+e,n+r),Mc(t,n))},quadraticCurveTo(t,n,e,r){const i=Pa(t,n),a=ja(t,n),o=Pa(e,r),s=ja(e,r);Gw(Ec,i,o,Ww),Gw($c,a,s,Hw),Mc(o,s)},bezierCurveTo(t,n,e,r,i,a){const o=Pa(t,n),s=ja(t,n),u=Pa(e,r),l=ja(e,r),c=Pa(i,a),f=ja(i,a);Vw(Ec,o,u,c,Ww),Vw($c,s,l,f,Hw),Mc(c,f)},arc(t,n,e,r,i,a){if(r+=Ta,i+=Ta,Ec=e*Math.cos(i)+t,$c=e*Math.sin(i)+n,Math.abs(i-r)>S7)Hi(t-e,n-e),Hi(t+e,n+e);else{const o=l=>Hi(e*Math.cos(l)+t,e*Math.sin(l)+n);let s,u;if(o(r),o(i),i!==r)if((r%=$r)<0&&(r+=$r),(i%=$r)<0&&(i+=$r),i<r&&(a=!a,s=r,r=i,i=s),a)for(i-=$r,s=r-r%Ra,u=0;u<4&&s>i;++u,s-=Ra)o(s);else for(s=r-r%Ra+Ra,u=0;u<4&&s<i;++u,s+=Ra)o(s)}}};function Gw(t,n,e,r){const i=(t-n)/(t+e-2*n);0<i&&i<1&&r(t+(n-t)*i)}function Vw(t,n,e,r,i){const a=r-t+3*n-3*e,o=t+e-2*n,s=t-n;let u,l=0,c=0;Math.abs(a)>1e-14?(u=o*o+s*a,u>=0&&(u=Math.sqrt(u),l=(-o+u)/a,c=(-o-u)/a)):l=.5*s/o,0<l&&l<1&&i(Yw(l,t,n,e,r)),0<c&&c<1&&i(Yw(c,t,n,e,r))}function Yw(t,n,e,r,i){const a=1-t,o=a*a,s=t*t;return o*a*n+3*o*t*e+3*a*s*r+s*t*i}var Gi=(Gi=qi(1,1))?Gi.getContext("2d"):null;const Gm=new cn;function Vm(t){return function(n,e){if(!Gi)return!0;t(Gi,n),Gm.clear().union(n.bounds).intersect(e).round();const{x1:r,y1:i,x2:a,y2:o}=Gm;for(let s=i;s<=o;++s)for(let u=r;u<=a;++u)if(Gi.isPointInPath(u,s))return!0;return!1}}function Ym(t,n){return n.contains(t.x||0,t.y||0)}function Xw(t,n){const e=t.x||0,r=t.y||0,i=t.width||0,a=t.height||0;return n.intersects(Gm.set(e,r,e+i,r+a))}function Jw(t,n){const e=t.x||0,r=t.y||0;return Po(n,e,r,t.x2!=null?t.x2:e,t.y2!=null?t.y2:r)}function Po(t,n,e,r,i){const{x1:a,y1:o,x2:s,y2:u}=t,l=r-n,c=i-e;let f,d,h,p,m=0,g=1;for(p=0;p<4;++p){if(p===0&&(f=-l,d=-(a-n)),p===1&&(f=l,d=s-n),p===2&&(f=-c,d=-(o-e)),p===3&&(f=c,d=u-e),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 jo(t,n){t.globalCompositeOperation=n.blend||"source-over"}function Ke(t,n){return t??n}function Kw(t,n){const e=n.length;for(let r=0;r<e;++r)t.addColorStop(n[r].offset,n[r].color);return t}function Qw(t,n,e){return Om(e)?function(r,i,a){const o=a.width(),s=a.height();let u;if(i.gradient==="radial")u=r.createRadialGradient(a.x1+Ke(i.x1,.5)*o,a.y1+Ke(i.y1,.5)*s,Math.max(o,s)*Ke(i.r1,0),a.x1+Ke(i.x2,.5)*o,a.y1+Ke(i.y2,.5)*s,Math.max(o,s)*Ke(i.r2,.5));else{const l=Ke(i.x1,0),c=Ke(i.y1,0),f=Ke(i.x2,1),d=Ke(i.y2,0);if(l!==f&&c!==d&&o!==s){const h=qi(Math.ceil(o),Math.ceil(s)),p=h.getContext("2d");return p.scale(o,s),p.fillStyle=Kw(p.createLinearGradient(l,c,f,d),i.stops),p.fillRect(0,0,o,s),r.createPattern(h,"no-repeat")}u=r.createLinearGradient(a.x1+l*o,a.y1+c*s,a.x1+f*o,a.y1+d*s)}return Kw(u,i.stops)}(t,e,n.bounds):e}function Bc(t,n,e){return(e*=n.fillOpacity==null?1:n.fillOpacity)>0&&(t.globalAlpha=e,t.fillStyle=Qw(t,n,n.fill),!0)}var B7=[];function Lo(t,n,e){var r=(r=n.strokeWidth)!=null?r:1;return!(r<=0)&&(e*=n.strokeOpacity==null?1:n.strokeOpacity)>0&&(t.globalAlpha=e,t.strokeStyle=Qw(t,n,n.stroke),t.lineWidth=r,t.lineCap=n.strokeCap||"butt",t.lineJoin=n.strokeJoin||"miter",t.miterLimit=n.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(n.strokeDash||B7),t.lineDashOffset=n.strokeDashOffset||0),!0)}function z7(t,n){return t.zindex-n.zindex||t.index-n.index}function Xm(t){if(!t.zdirty)return t.zitems;var n,e,r,i=t.items,a=[];for(e=0,r=i.length;e<r;++e)(n=i[e]).index=e,n.zindex&&a.push(n);return t.zdirty=!1,t.zitems=a.sort(z7)}function Qe(t,n){var e,r,i=t.items;if(!i||!i.length)return;const a=Xm(t);if(a&&a.length){for(e=0,r=i.length;e<r;++e)i[e].zindex||n(i[e]);i=a}for(e=0,r=i.length;e<r;++e)n(i[e])}function zc(t,n){var e,r,i=t.items;if(!i||!i.length)return null;const a=Xm(t);for(a&&a.length&&(i=a),r=i.length;--r>=0;)if(e=n(i[r]))return e;if(i===a){for(r=(i=t.items).length;--r>=0;)if(!i[r].zindex&&(e=n(i[r])))return e}return null}function Jm(t){return function(n,e,r){Qe(e,i=>{r&&!r.intersects(i.bounds)||Zw(t,n,i,i)})}}function O7(t){return function(n,e,r){!e.items.length||r&&!r.intersects(e.bounds)||Zw(t,n,e.items[0],e.items)}}function Zw(t,n,e,r){var i=e.opacity==null?1:e.opacity;i!==0&&(t(n,r)||(jo(n,e),e.fill&&Bc(n,e,i)&&n.fill(),e.stroke&&Lo(n,e,i)&&n.stroke()))}function Oc(t){return t=t||Be,function(n,e,r,i,a,o){return r*=n.pixelRatio,i*=n.pixelRatio,zc(e,s=>{const u=s.bounds;if((!u||u.contains(a,o))&&u)return t(n,s,r,i,a,o)?s:void 0})}}function cu(t,n){return function(e,r,i,a){var o,s,u=Array.isArray(r)?r[0]:r,l=n??u.fill,c=u.stroke&&e.isPointInStroke;return c&&(o=u.strokeWidth,s=u.strokeCap,e.lineWidth=o??1,e.lineCap=s??"butt"),!t(e,r)&&(l&&e.isPointInPath(i,a)||c&&e.isPointInStroke(i,a))}}function Km(t){return Oc(cu(t))}function La(t,n){return"translate("+t+","+n+")"}function Qm(t){return"rotate("+t+")"}function tA(t){return La(t.x||0,t.y||0)}function Zm(t,n,e){function r(i,a){var o=a.x||0,s=a.y||0,u=a.angle||0;i.translate(o,s),u&&i.rotate(u*=Ii),i.beginPath(),n(i,a),u&&i.rotate(-u),i.translate(-o,-s)}return{type:t,tag:"path",nested:!1,attr:function(i,a){i("transform",function(o){return La(o.x||0,o.y||0)+(o.angle?" "+Qm(o.angle):"")}(a)),i("d",n(null,a))},bound:function(i,a){return n(lu(i,a.angle),a),ai(i,a).translate(a.x||0,a.y||0)},draw:Jm(r),pick:Km(r),isect:e||Vm(r)}}var N7=Zm("arc",function(t,n){return _7.context(t)(n)});function t0(t,n,e){function r(a,o){a.beginPath(),n(a,o)}const i=cu(r);return{type:t,tag:"path",nested:!0,attr:function(a,o){var s=o.mark.items;s.length&&a("d",n(null,s))},bound:function(a,o){var s=o.items;return s.length===0?a:(n(lu(a),s),ai(a,s[0]))},draw:O7(r),pick:function(a,o,s,u,l,c){var f=o.items,d=o.bounds;return!f||!f.length||d&&!d.contains(l,c)?null:(s*=a.pixelRatio,u*=a.pixelRatio,i(a,f,s,u)?f[0]:null)},isect:Ym,tip:e}}var R7=t0("area",function(t,n){const e=n[0],r=e.interpolate||"linear";return(e.orient==="horizontal"?D7:k7).curve(Nm(r,e.orient,e.tension)).context(t)(n)},function(t,n){for(var e,r,i=t[0].orient==="horizontal"?n[1]:n[0],a=t[0].orient==="horizontal"?"y":"x",o=t.length,s=1/0;--o>=0;)t[o].defined!==!1&&(r=Math.abs(t[o][a]-i))<s&&(s=r,e=t[o]);return e});function nA(t,n){t.beginPath(),jm(n)?To(t,n,0,0):t.rect(0,0,n.width||0,n.height||0),t.clip()}function eA(t){const n=Ke(t.strokeWidth,1);return t.strokeOffset!=null?t.strokeOffset:t.stroke&&n>.5&&n<1.5?.5-Math.abs(n-1):0}function rA(t,n){const e=eA(n);t("d",To(null,n,e,e))}function fu(t,n,e,r){const i=eA(n);t.beginPath(),To(t,n,(e||0)+i,(r||0)+i)}const T7=cu(fu),P7=cu(fu,!1),j7=cu(fu,!0);var L7={type:"group",tag:"g",nested:!1,attr:function(t,n){t("transform",tA(n))},bound:function(t,n){if(!n.clip&&n.items){const e=n.items,r=e.length;for(let i=0;i<r;++i)t.union(e[i].bounds)}return(n.clip||n.width||n.height)&&!n.noBound&&t.add(0,0).add(n.width||0,n.height||0),ai(t,n),t.translate(n.x||0,n.y||0)},draw:function(t,n,e,r){Qe(n,i=>{const a=i.x||0,o=i.y||0,s=i.strokeForeground,u=i.opacity==null?1:i.opacity;(i.stroke||i.fill)&&u&&(fu(t,i,a,o),jo(t,i),i.fill&&Bc(t,i,u)&&t.fill(),i.stroke&&!s&&Lo(t,i,u)&&t.stroke()),t.save(),t.translate(a,o),i.clip&&nA(t,i),e&&e.translate(-a,-o),Qe(i,l=>{(l.marktype==="group"||r==null||r.includes(l.marktype))&&this.draw(t,l,e,r)}),e&&e.translate(a,o),t.restore(),s&&i.stroke&&u&&(fu(t,i,a,o),jo(t,i),Lo(t,i,u)&&t.stroke())})},pick:function(t,n,e,r,i,a){if(n.bounds&&!n.bounds.contains(i,a)||!n.items)return null;const o=e*t.pixelRatio,s=r*t.pixelRatio;return zc(n,u=>{let l,c,f;const d=u.bounds;if(d&&!d.contains(i,a))return;c=u.x||0,f=u.y||0;const h=c+(u.width||0),p=f+(u.height||0),m=u.clip;if(m&&(i<c||i>h||a<f||a>p))return;if(t.save(),t.translate(c,f),c=i-c,f=a-f,m&&jm(u)&&!j7(t,u,o,s))return t.restore(),null;const g=u.strokeForeground,y=n.interactive!==!1;return y&&g&&u.stroke&&P7(t,u,o,s)?(t.restore(),u):(l=zc(u,v=>function(x,b,w){return(x.interactive!==!1||x.marktype==="group")&&x.bounds&&x.bounds.contains(b,w)}(v,c,f)?this.pick(v,e,r,c,f):null),!l&&y&&(u.fill||!g&&u.stroke)&&T7(t,u,o,s)&&(l=u),t.restore(),l||null)})},isect:Xw,content:function(t,n,e){t("clip-path",n.clip?Lm(e,n,n):null)},background:function(t,n){t("class","background"),t("aria-hidden",!0),rA(t,n)},foreground:function(t,n){t("class","foreground"),t("aria-hidden",!0),n.strokeForeground?rA(t,n):t("d","")}},du={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function n0(t,n){var e=t.image;return(!e||t.url&&t.url!==e.url)&&(e={complete:!1,width:0,height:0},n.loadImage(t.url).then(r=>{t.image=r,t.image.url=t.url})),e}function e0(t,n){return t.width!=null?t.width:n&&n.width?t.aspect!==!1&&t.height?t.height*n.width/n.height:n.width:0}function r0(t,n){return t.height!=null?t.height:n&&n.height?t.aspect!==!1&&t.width?t.width*n.height/n.width:n.height:0}function Nc(t,n){return t==="center"?n/2:t==="right"?n:0}function Rc(t,n){return t==="middle"?n/2:t==="bottom"?n:0}var q7={type:"image",tag:"image",nested:!1,attr:function(t,n,e){const r=n0(n,e),i=e0(n,r),a=r0(n,r),o=(n.x||0)-Nc(n.align,i),s=(n.y||0)-Rc(n.baseline,a);t("href",!r.src&&r.toDataURL?r.toDataURL():r.src||"",du["xmlns:xlink"],"xlink:href"),t("transform",La(o,s)),t("width",i),t("height",a),t("preserveAspectRatio",n.aspect===!1?"none":"xMidYMid")},bound:function(t,n){const e=n.image,r=e0(n,e),i=r0(n,e),a=(n.x||0)-Nc(n.align,r),o=(n.y||0)-Rc(n.baseline,i);return t.set(a,o,a+r,o+i)},draw:function(t,n,e){Qe(n,r=>{if(e&&!e.intersects(r.bounds))return;const i=n0(r,this);let a=e0(r,i),o=r0(r,i);if(a===0||o===0)return;let s,u,l,c,f=(r.x||0)-Nc(r.align,a),d=(r.y||0)-Rc(r.baseline,o);r.aspect!==!1&&(u=i.width/i.height,l=r.width/r.height,u==u&&l==l&&u!==l&&(l<u?(c=a/u,d+=(o-c)/2,o=c):(c=o*u,f+=(a-c)/2,a=c))),(i.complete||i.toDataURL)&&(jo(t,r),t.globalAlpha=(s=r.opacity)!=null?s:1,t.imageSmoothingEnabled=r.smooth!==!1,t.drawImage(i,f,d,a,o))})},pick:Oc(),isect:Be,get:n0,xOffset:Nc,yOffset:Rc},U7=t0("line",function(t,n){const e=n[0],r=e.interpolate||"linear";return F7.curve(Nm(r,e.orient,e.tension)).context(t)(n)},function(t,n){for(var e,r,i=Math.pow(t[0].strokeWidth||1,2),a=t.length;--a>=0;)if(t[a].defined!==!1&&(e=t[a].x-n[0])*e+(r=t[a].y-n[1])*r<i)return t[a];return null});function Tc(t,n){var e=n.path;if(e==null)return!0;var r=n.x||0,i=n.y||0,a=n.scaleX||1,o=n.scaleY||1,s=(n.angle||0)*Ii,u=n.pathCache;u&&u.path===e||((n.pathCache=u=No(e)).path=e),s&&t.rotate&&t.translate?(t.translate(r,i),t.rotate(s),iu(t,u,0,0,a,o),t.rotate(-s),t.translate(-r,-i)):iu(t,u,r,i,a,o)}var I7={type:"path",tag:"path",nested:!1,attr:function(t,n){var e=n.scaleX||1,r=n.scaleY||1;e===1&&r===1||t("vector-effect","non-scaling-stroke"),t("transform",function(i){return La(i.x||0,i.y||0)+(i.angle?" "+Qm(i.angle):"")+(i.scaleX||i.scaleY?" "+function(a,o){return"scale("+a+","+o+")"}(i.scaleX||1,i.scaleY||1):"")}(n)),t("d",n.path)},bound:function(t,n){return Tc(lu(t,n.angle),n)?t.set(0,0,0,0):ai(t,n,!0)},draw:Jm(Tc),pick:Km(Tc),isect:Vm(Tc)};function iA(t,n){t.beginPath(),To(t,n)}var W7={type:"rect",tag:"path",nested:!1,attr:function(t,n){t("d",To(null,n))},bound:function(t,n){var e,r;return ai(t.set(e=n.x||0,r=n.y||0,e+n.width||0,r+n.height||0),n)},draw:Jm(iA),pick:Km(iA),isect:Xw};function aA(t,n,e){var r,i,a,o;return!(!n.stroke||!Lo(t,n,e))&&(r=n.x||0,i=n.y||0,a=n.x2!=null?n.x2:r,o=n.y2!=null?n.y2:i,t.beginPath(),t.moveTo(r,i),t.lineTo(a,o),!0)}var H7={type:"rule",tag:"line",nested:!1,attr:function(t,n){t("transform",tA(n)),t("x2",n.x2!=null?n.x2-(n.x||0):0),t("y2",n.y2!=null?n.y2-(n.y||0):0)},bound:function(t,n){var e,r;return ai(t.set(e=n.x||0,r=n.y||0,n.x2!=null?n.x2:e,n.y2!=null?n.y2:r),n)},draw:function(t,n,e){Qe(n,r=>{if(!e||e.intersects(r.bounds)){var i=r.opacity==null?1:r.opacity;i&&aA(t,r,i)&&(jo(t,r),t.stroke())}})},pick:Oc(function(t,n,e,r){return!!t.isPointInStroke&&aA(t,n,1)&&t.isPointInStroke(e,r)}),isect:Jw},G7=Zm("shape",function(t,n){return(n.mark.shape||n.shape).context(t)(n)}),V7=Zm("symbol",function(t,n){return E7.context(t)(n)},Ym);const oA=ox();var we={height:Sr,measureWidth:i0,estimateWidth:Pc,width:Pc,canvas:sA};function sA(t){we.width=t&&Gi?i0:Pc}function Pc(t,n){return uA(Yi(t,n),Sr(t))}function uA(t,n){return~~(.8*t.length*n)}function i0(t,n){return Sr(t)<=0||!(n=Yi(t,n))?0:lA(n,jc(t))}function lA(t,n){const e=`(${n}) ${t}`;let r=oA.get(e);return r===void 0&&(Gi.font=n,r=Gi.measureText(t).width,oA.set(e,r)),r}function Sr(t){return t.fontSize!=null?+t.fontSize||0:11}function Vi(t){return t.lineHeight!=null?t.lineHeight:Sr(t)+2}function hu(t){return n=t.lineBreak&&t.text&&!T(t.text)?t.text.split(t.lineBreak):t.text,T(n)?n.length>1?n:n[0]:n;var n}function a0(t){const n=hu(t);return(T(n)?n.length-1:0)*Vi(t)}function Yi(t,n){const e=n==null?"":(n+"").trim();return t.limit>0&&e.length?function(r,i){var a=+r.limit,o=function(d){if(we.width===i0){const h=jc(d);return p=>lA(p,h)}if(we.width===Pc){const h=Sr(d);return p=>uA(p,h)}return h=>we.width(d,h)}(r);if(o(i)<a)return i;var s,u=r.ellipsis||"\u2026",l=r.dir==="rtl",c=0,f=i.length;if(a-=o(u),l){for(;c<f;)s=c+f>>>1,o(i.slice(s))>a?c=s+1:f=s;return u+i.slice(c)}for(;c<f;)s=1+(c+f>>>1),o(i.slice(0,s))<a?c=s:f=s-1;return i.slice(0,c)+u}(t,e):e}function pu(t,n){var e=t.font;return(n&&e?String(e).replace(/"/g,"'"):e)||"sans-serif"}function jc(t,n){return(t.fontStyle?t.fontStyle+" ":"")+(t.fontVariant?t.fontVariant+" ":"")+(t.fontWeight?t.fontWeight+" ":"")+Sr(t)+"px "+pu(t,n)}function o0(t){var n=t.baseline,e=Sr(t);return Math.round(n==="top"?.79*e:n==="middle"?.3*e:n==="bottom"?-.21*e:n==="line-top"?.29*e+.5*Vi(t):n==="line-bottom"?.29*e-.5*Vi(t):0)}sA(!0);const Y7={left:"start",center:"middle",right:"end"},mu=new cn;function Lc(t){var n,e=t.x||0,r=t.y||0,i=t.radius||0;return i&&(n=(t.theta||0)-Ra,e+=i*Math.cos(n),r+=i*Math.sin(n)),mu.x1=e,mu.y1=r,mu}function s0(t,n,e){var r,i=we.height(n),a=n.align,o=Lc(n),s=o.x1,u=o.y1,l=n.dx||0,c=(n.dy||0)+o0(n)-Math.round(.8*i),f=hu(n);if(T(f)?(i+=Vi(n)*(f.length-1),r=f.reduce((d,h)=>Math.max(d,we.width(n,h)),0)):r=we.width(n,f),a==="center"?l-=r/2:a==="right"&&(l-=r),t.set(l+=s,c+=u,l+r,c+i),n.angle&&!e)t.rotate(n.angle*Ii,s,u);else if(e===2)return t.rotatedPoints(n.angle*Ii,s,u);return t}var X7={type:"text",tag:"text",nested:!1,attr:function(t,n){var e,r=n.dx||0,i=(n.dy||0)+o0(n),a=Lc(n),o=a.x1,s=a.y1,u=n.angle||0;t("text-anchor",Y7[n.align]||"start"),u?(e=La(o,s)+" "+Qm(u),(r||i)&&(e+=" "+La(r,i))):e=La(o+r,s+i),t("transform",e)},bound:s0,draw:function(t,n,e){Qe(n,r=>{var i,a,o,s,u,l,c,f=r.opacity==null?1:r.opacity;if(!(e&&!e.intersects(r.bounds)||f===0||r.fontSize<=0||r.text==null||r.text.length===0)){if(t.font=jc(r),t.textAlign=r.align||"left",a=(i=Lc(r)).x1,o=i.y1,r.angle&&(t.save(),t.translate(a,o),t.rotate(r.angle*Ii),a=o=0),a+=r.dx||0,o+=(r.dy||0)+o0(r),l=hu(r),jo(t,r),T(l))for(u=Vi(r),s=0;s<l.length;++s)c=Yi(r,l[s]),r.fill&&Bc(t,r,f)&&t.fillText(c,a,o),r.stroke&&Lo(t,r,f)&&t.strokeText(c,a,o),o+=u;else c=Yi(r,l),r.fill&&Bc(t,r,f)&&t.fillText(c,a,o),r.stroke&&Lo(t,r,f)&&t.strokeText(c,a,o);r.angle&&t.restore()}})},pick:Oc(function(t,n,e,r,i,a){if(n.fontSize<=0)return!1;if(!n.angle)return!0;var o=Lc(n),s=o.x1,u=o.y1,l=s0(mu,n,1),c=-n.angle*Ii,f=Math.cos(c),d=Math.sin(c),h=f*i-d*a+(s-f*s+d*u),p=d*i+f*a+(u-d*s-f*u);return l.contains(h,p)}),isect:function(t,n){const e=s0(mu,t,2);return Po(n,e[0],e[1],e[2],e[3])||Po(n,e[0],e[1],e[4],e[5])||Po(n,e[4],e[5],e[6],e[7])||Po(n,e[2],e[3],e[6],e[7])}},J7=t0("trail",function(t,n){return $7.context(t)(n)},function(t,n){for(var e,r,i=t.length;--i>=0;)if(t[i].defined!==!1&&(e=t[i].x-n[0])*e+(r=t[i].y-n[1])*r<(e=t[i].size||1)*e)return t[i];return null}),Ae={arc:N7,area:R7,group:L7,image:q7,line:U7,path:I7,rect:W7,rule:H7,shape:G7,symbol:V7,text:X7,trail:J7};function u0(t,n,e){var r=Ae[t.mark.marktype],i=n||r.bound;return r.nested&&(t=t.mark),i(t.bounds||(t.bounds=new cn),t,e)}var cA={mark:null};function fA(t,n,e){var r,i,a,o,s=Ae[t.marktype],u=s.bound,l=t.items,c=l&&l.length;if(s.nested)return c?a=l[0]:(cA.mark=t,a=cA),o=u0(a,u,e),n=n&&n.union(o)||o;if(n=n||t.bounds&&t.bounds.clear()||new cn,c)for(r=0,i=l.length;r<i;++r)n.union(u0(l[r],u,e));return t.bounds=n}const K7=["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 dA(t,n){return JSON.stringify(t,K7,n)}function hA(t){return pA(typeof t=="string"?JSON.parse(t):t)}function pA(t){var n,e,r,i=t.marktype,a=t.items;if(a)for(e=0,r=a.length;e<r;++e)n=i?"mark":"group",a[e][n]=t,a[e].zindex&&(a[e][n].zdirty=!0),(i||n)==="group"&&pA(a[e]);return i&&fA(t),t}class mA{constructor(n){arguments.length?this.root=hA(n):(this.root=gA({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Fc(this.root)])}toJSON(n){return dA(this.root,n||0)}mark(n,e,r){const i=gA(n,e=e||this.root.items[0]);return e.items[r]=i,i.zindex&&(i.group.zdirty=!0),i}}function gA(t,n){const e={bounds:new cn,clip:!!t.clip,group:n,interactive:t.interactive!==!1,items:[],marktype:t.marktype,name:t.name||void 0,role:t.role||void 0,zindex:t.zindex||0};return t.aria!=null&&(e.aria=t.aria),t.description&&(e.description=t.description),e}function Xi(t,n,e){return!t&&typeof document<"u"&&document.createElement&&(t=document),t?e?t.createElementNS(e,n):t.createElement(n):null}function l0(t,n){n=n.toLowerCase();for(var e=t.childNodes,r=0,i=e.length;r<i;++r)if(e[r].tagName.toLowerCase()===n)return e[r]}function dn(t,n,e,r){var i,a=t.childNodes[n];return a&&a.tagName.toLowerCase()===e.toLowerCase()||(i=a||null,a=Xi(t.ownerDocument,e,r),t.insertBefore(a,i)),a}function Pe(t,n){for(var e=t.childNodes,r=e.length;r>n;)t.removeChild(e[--r]);return t}function yA(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function qc(t,n){const e=n.getBoundingClientRect();return[t.clientX-e.left-(n.clientLeft||0),t.clientY-e.top-(n.clientTop||0)]}class c0{constructor(n,e){this._active=null,this._handlers={},this._loader=n||Ul(),this._tooltip=e||Q7}initialize(n,e,r){return this._el=n,this._obj=r||null,this.origin(e)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}origin(n){return arguments.length?(this._origin=n||[0,0],this):this._origin.slice()}scene(n){return arguments.length?(this._scene=n,this):this._scene}on(){}off(){}_handlerIndex(n,e,r){for(let i=n?n.length:0;--i>=0;)if(n[i].type===e&&(!r||n[i].handler===r))return i;return-1}handlers(n){const e=this._handlers,r=[];if(n)r.push(...e[this.eventName(n)]);else for(const i in e)r.push(...e[i]);return r}eventName(n){const e=n.indexOf(".");return e<0?n:n.slice(0,e)}handleHref(n,e,r){this._loader.sanitize(r,{context:"href"}).then(i=>{const a=new MouseEvent(n.type,n),o=Xi(null,"a");for(const s in i)o.setAttribute(s,i[s]);o.dispatchEvent(a)}).catch(()=>{})}handleTooltip(n,e,r){if(e&&e.tooltip!=null){e=function(a,o,s,u){var l,c,f=a&&a.mark;if(f&&(l=Ae[f.marktype]).tip){for((c=qc(o,s))[0]-=u[0],c[1]-=u[1];a=a.mark.group;)c[0]-=a.x||0,c[1]-=a.y||0;a=l.tip(f.items,c)}return a}(e,n,this.canvas(),this._origin);const i=r&&e&&e.tooltip||null;this._tooltip.call(this._obj,this,n,e,i)}}getItemBoundingClientRect(n){const e=this.canvas();if(!e)return;const r=e.getBoundingClientRect(),i=this._origin,a=n.bounds,o=a.width(),s=a.height();let u=a.x1+i[0]+r.left,l=a.y1+i[1]+r.top;for(;n.mark&&(n=n.mark.group);)u+=n.x||0,l+=n.y||0;return{x:u,y:l,width:o,height:s,left:u,top:l,right:u+o,bottom:l+s}}}function Q7(t,n,e,r){t.element().setAttribute("title",r||"")}class gu{constructor(n){this._el=null,this._bgcolor=null,this._loader=new Uw(n)}initialize(n,e,r,i,a){return this._el=n,this.resize(e,r,i,a)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}background(n){return arguments.length===0?this._bgcolor:(this._bgcolor=n,this)}resize(n,e,r,i){return this._width=n,this._height=e,this._origin=r||[0,0],this._scale=i||1,this}dirty(){}render(n,e){const r=this;return r._call=function(){r._render(n,e)},r._call(),r._call=null,r}_render(){}renderAsync(n,e){const r=this.render(n,e);return this._ready?this._ready.then(()=>r):Promise.resolve(r)}_load(n,e){var r=this,i=r._loader[n](e);if(!r._ready){const a=r._call;r._ready=r._loader.ready().then(o=>{o&&a(),r._ready=null})}return i}sanitizeURL(n){return this._load("sanitizeURL",n)}loadImage(n){return this._load("loadImage",n)}}const vA="dragenter",Uc="dragleave",bA="dragover",f0="pointerdown",Ic="pointermove",Wc="pointerout",xA="pointerover",d0="mousedown",wA="mousemove",Hc="mouseout",AA="mouseover",Gc="click",_A="mousewheel",Vc="touchstart",Yc="touchmove",Xc="touchend",Z7=["keydown","keypress","keyup",vA,Uc,bA,f0,"pointerup",Ic,Wc,xA,d0,"mouseup",wA,Hc,AA,Gc,"dblclick","wheel",_A,Vc,Yc,Xc],h0=Ic,yu=Hc,p0=Gc;class vu extends c0{constructor(n,e){super(n,e),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=Z7,this.pointermove=DA([Ic,wA],[xA,AA],[Wc,Hc]),this.dragover=DA([bA],[vA],[Uc]),this.pointerout=FA([Wc,Hc]),this.dragleave=FA([Uc])}initialize(n,e,r){return this._canvas=n&&l0(n,"canvas"),[Gc,d0,f0,Ic,Wc,Uc].forEach(i=>kA(this,i)),super.initialize(n,e,r)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(n){this.fire(_A,n)}pointerdown(n){this._down=this._active,this.fire(f0,n)}mousedown(n){this._down=this._active,this.fire(d0,n)}click(n){this._down===this._active&&(this.fire(Gc,n),this._down=null)}touchstart(n){this._touch=this.pickEvent(n.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(Vc,n,!0)}touchmove(n){this.fire(Yc,n,!0)}touchend(n){this.fire(Xc,n,!0),this._touch=null}fire(n,e,r){const i=r?this._touch:this._active,a=this._handlers[n];if(e.vegaType=n,n===p0&&i&&i.href?this.handleHref(e,i,i.href):n!==h0&&n!==yu||this.handleTooltip(e,i,n!==yu),a)for(let o=0,s=a.length;o<s;++o)a[o].handler.call(this._obj,e,i)}on(n,e){const r=this.eventName(n),i=this._handlers;return this._handlerIndex(i[r],n,e)<0&&(kA(this,n),(i[r]||(i[r]=[])).push({type:n,handler:e})),this}off(n,e){const r=this.eventName(n),i=this._handlers[r],a=this._handlerIndex(i,n,e);return a>=0&&i.splice(a,1),this}pickEvent(n){const e=qc(n,this._canvas),r=this._origin;return this.pick(this._scene,e[0],e[1],e[0]-r[0],e[1]-r[1])}pick(n,e,r,i,a){const o=this.context();return Ae[n.marktype].pick.call(this,o,n,e,r,i,a)}}const t4=t=>t===Vc||t===Yc||t===Xc?[Vc,Yc,Xc]:[t];function kA(t,n){t4(n).forEach(e=>function(r,i){const a=r.canvas();a&&!r._events[i]&&(r._events[i]=1,a.addEventListener(i,r[i]?o=>r[i](o):o=>r.fire(i,o)))}(t,e))}function Jc(t,n,e){n.forEach(r=>t.fire(r,e))}function DA(t,n,e){return function(r){const i=this._active,a=this.pickEvent(r);a===i||(i&&i.exit||Jc(this,e,r),this._active=a,Jc(this,n,r)),Jc(this,t,r)}}function FA(t){return function(n){Jc(this,t,n),this._active=null}}function n4(t,n,e,r,i,a){const o=typeof HTMLElement<"u"&&t instanceof HTMLElement&&t.parentNode!=null,s=t.getContext("2d"),u=o?typeof window<"u"&&window.devicePixelRatio||1:i;t.width=n*u,t.height=e*u;for(const l in a)s[l]=a[l];return o&&u!==1&&(t.style.width=n+"px",t.style.height=e+"px"),s.pixelRatio=u,s.setTransform(u,0,0,u,u*r[0],u*r[1]),t}class Kc extends gu{constructor(n){super(n),this._options={},this._redraw=!1,this._dirty=new cn,this._tempb=new cn}initialize(n,e,r,i,a,o){return this._options=o||{},this._canvas=this._options.externalContext?null:qi(1,1,this._options.type),n&&this._canvas&&(Pe(n,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),super.initialize(n,e,r,i,a)}resize(n,e,r,i){if(super.resize(n,e,r,i),this._canvas)n4(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const a=this._options.externalContext;a||P("CanvasRenderer is missing a valid canvas or context"),a.scale(this._scale,this._scale),a.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(n){const e=this._tempb.clear().union(n.bounds);let r=n.mark.group;for(;r;)e.translate(r.x||0,r.y||0),r=r.mark.group;this._dirty.union(e)}_render(n,e){const r=this.context(),i=this._origin,a=this._width,o=this._height,s=this._dirty,u=e4(i,a,o);r.save();const l=this._redraw||s.empty()?(this._redraw=!1,u.expand(1)):function(c,f,d){return f.expand(1).round(),c.pixelRatio%1&&f.scale(c.pixelRatio).round().scale(1/c.pixelRatio),f.translate(-d[0]%1,-d[1]%1),c.beginPath(),c.rect(f.x1,f.y1,f.width(),f.height()),c.clip(),f}(r,u.intersect(s),i);return this.clear(-i[0],-i[1],a,o),this.draw(r,n,l,e),r.restore(),s.clear(),this}draw(n,e,r,i){if(e.marktype!=="group"&&i!=null&&!i.includes(e.marktype))return;const a=Ae[e.marktype];e.clip&&function(o,s){var u=s.clip;o.save(),bt(u)?(o.beginPath(),u(o),o.clip()):nA(o,s.group)}(n,e),a.draw.call(this,n,e,r,i),e.clip&&n.restore()}clear(n,e,r,i){const a=this._options,o=this.context();a.type==="pdf"||a.externalContext||o.clearRect(n,e,r,i),this._bgcolor!=null&&(o.fillStyle=this._bgcolor,o.fillRect(n,e,r,i))}}const e4=(t,n,e)=>new cn().set(0,0,n,e).translate(-t[0],-t[1]);class CA extends c0{constructor(n,e){super(n,e);const r=this;r._hrefHandler=m0(r,(i,a)=>{a&&a.href&&r.handleHref(i,a,a.href)}),r._tooltipHandler=m0(r,(i,a)=>{r.handleTooltip(i,a,i.type!==yu)})}initialize(n,e,r){let i=this._svg;return i&&(i.removeEventListener(p0,this._hrefHandler),i.removeEventListener(h0,this._tooltipHandler),i.removeEventListener(yu,this._tooltipHandler)),this._svg=i=n&&l0(n,"svg"),i&&(i.addEventListener(p0,this._hrefHandler),i.addEventListener(h0,this._tooltipHandler),i.addEventListener(yu,this._tooltipHandler)),super.initialize(n,e,r)}canvas(){return this._svg}on(n,e){const r=this.eventName(n),i=this._handlers;if(this._handlerIndex(i[r],n,e)<0){const a={type:n,handler:e,listener:m0(this,e)};(i[r]||(i[r]=[])).push(a),this._svg&&this._svg.addEventListener(r,a.listener)}return this}off(n,e){const r=this.eventName(n),i=this._handlers[r],a=this._handlerIndex(i,n,e);return a>=0&&(this._svg&&this._svg.removeEventListener(r,i[a].listener),i.splice(a,1)),this}}const m0=(t,n)=>e=>{let r=e.target.__data__;r=Array.isArray(r)?r[0]:r,e.vegaType=e.type,n.call(t._obj,e,r)},EA="aria-hidden",g0="aria-label",y0="role",v0="aria-roledescription",$A="graphics-object",b0="graphics-symbol",SA=(t,n,e)=>({[y0]:t,[v0]:n,[g0]:e||void 0}),r4=Dr(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),MA={axis:{desc:"axis",caption:function(t){const n=t.datum,e=t.orient,r=n.title?RA(t):null,i=t.context,a=i.scales[n.scale].value,o=i.dataflow.locale(),s=a.type;return`${e==="left"||e==="right"?"Y":"X"}-axis`+(r?` titled '${r}'`:"")+` for a ${Oo(s)?"discrete":s} scale with ${Ew(o,a,t)}`}},legend:{desc:"legend",caption:function(t){const n=t.datum,e=n.title?RA(t):null,r=`${n.type||""} legend`.trim(),i=n.scales,a=Object.keys(i),o=t.context,s=o.scales[i[a[0]]].value,u=o.dataflow.locale();return l=r,(l.length?l[0].toUpperCase()+l.slice(1):l)+(e?` titled '${e}'`:"")+` for ${function(c){return c=c.map(f=>f+(f==="fill"||f==="stroke"?" color":"")),c.length<2?c[0]:c.slice(0,-1).join(", ")+" and "+Bt(c)}(a)} with ${Ew(u,s,t)}`;var l}},"title-text":{desc:"title",caption:t=>`Title text '${NA(t)}'`},"title-subtitle":{desc:"subtitle",caption:t=>`Subtitle text '${NA(t)}'`}},BA={ariaRole:y0,ariaRoleDescription:v0,description:g0};function zA(t,n){const e=n.aria===!1;if(t(EA,e||void 0),e||n.description==null)for(const r in BA)t(BA[r],void 0);else{const r=n.mark.marktype;t(g0,n.description),t(y0,n.ariaRole||(r==="group"?$A:b0)),t(v0,n.ariaRoleDescription||`${r} mark`)}}function OA(t){return t.aria===!1?{[EA]:!0}:r4[t.role]?null:MA[t.role]?function(n,e){try{const r=n.items[0],i=e.caption||(()=>"");return SA(e.role||b0,e.desc,r.description||i(r))}catch{return null}}(t,MA[t.role]):function(n){const e=n.marktype,r=e==="group"||e==="text"||n.items.some(i=>i.description!=null&&i.aria!==!1);return SA(r?$A:b0,`${e} mark container`,n.description)}(t)}function NA(t){return J(t.text).join(" ")}function RA(t){try{return J(Bt(t.items).items[0].text).join(" ")}catch{return null}}const TA=t=>(t+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");function x0(){let t="",n="",e="";const r=[],i=()=>n=e="",a=(s,u)=>{var l;return u!=null&&(n+=` ${s}="${l=u,TA(l).replace(/"/g,"&quot;").replace(/\t/g,"&#x9;").replace(/\n/g,"&#xA;").replace(/\r/g,"&#xD;")}"`),o},o={open(s){(f=>{n&&(t+=`${n}>${e}`,i()),r.push(f)})(s),n="<"+s;for(var u=arguments.length,l=new Array(u>1?u-1:0),c=1;c<u;c++)l[c-1]=arguments[c];for(const f of l)for(const d in f)a(d,f[d]);return o},close(){const s=r.pop();return t+=n?n+(e?`>${e}</${s}>`:"/>"):`</${s}>`,i(),o},attr:a,text:s=>(e+=TA(s),o),toString:()=>t};return o}const PA=t=>jA(x0(),t)+"";function jA(t,n){if(t.open(n.tagName),n.hasAttributes()){const e=n.attributes,r=e.length;for(let i=0;i<r;++i)t.attr(e[i].name,e[i].value)}if(n.hasChildNodes()){const e=n.childNodes;for(const r of e)r.nodeType===3?t.text(r.nodeValue):jA(t,r)}return t.close()}const Qc={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"},Zc={blend:"mix-blend-mode"},LA={fill:"none","stroke-miterlimit":10},qA="http://www.w3.org/2000/xmlns/",hn=du.xmlns;class w0 extends gu{constructor(n){super(n),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}initialize(n,e,r,i,a){return this._defs={},this._clearDefs(),n&&(this._svg=dn(n,0,"svg",hn),this._svg.setAttributeNS(qA,"xmlns",hn),this._svg.setAttributeNS(qA,"xmlns:xlink",du["xmlns:xlink"]),this._svg.setAttribute("version",du.version),this._svg.setAttribute("class","marks"),Pe(n,1),this._root=dn(this._svg,0,"g",hn),Ji(this._root,LA),Pe(this._svg,1)),this.background(this._bgcolor),super.initialize(n,e,r,i,a)}background(n){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",n),super.background(...arguments)}resize(n,e,r,i){return super.resize(n,e,r,i),this._svg&&(Ji(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 n=this._svg,e=this._bgcolor;if(!n)return null;let r;e&&(n.removeAttribute("style"),r=dn(n,0,"rect",hn),Ji(r,{width:this._width,height:this._height,fill:e}));const i=PA(n);return e&&(n.removeChild(r),this._svg.style.setProperty("background-color",e)),i}_render(n,e){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,n,void 0,e),Pe(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this}dirty(n){n.dirty!==this._dirtyID&&(n.dirty=this._dirtyID,this._dirty.push(n))}isDirty(n){return this._dirtyAll||!n._svg||!n._svg.ownerSVGElement||n.dirty===this._dirtyID}_dirtyCheck(){this._dirtyAll=!0;const n=this._dirty;if(!n.length||!this._dirtyID)return!0;const e=++this._dirtyID;let r,i,a,o,s,u,l;for(s=0,u=n.length;s<u;++s)r=n[s],i=r.mark,i.marktype!==a&&(a=i.marktype,o=Ae[a]),i.zdirty&&i.dirty!==e&&(this._dirtyAll=!1,UA(r,e),i.items.forEach(c=>{c.dirty=e})),i.zdirty||(r.exit?(o.nested&&i.items.length?(l=i.items[0],l._svg&&this._update(o,l._svg,l)):r._svg&&(l=r._svg.parentNode,l&&l.removeChild(r._svg)),r._svg=null):(r=o.nested?i.items[0]:r,r._update!==e&&(r._svg&&r._svg.ownerSVGElement?this._update(o,r._svg,r):(this._dirtyAll=!1,UA(r,e)),r._update=e)));return!this._dirtyAll}mark(n,e,r,i){if(!this.isDirty(e))return e._svg;const a=this._svg,o=e.marktype,s=Ae[o],u=e.interactive===!1?"none":null,l=s.tag==="g",c=IA(e,n,r,"g",a);if(o!=="group"&&i!=null&&!i.includes(o))return Pe(c,0),e._svg;c.setAttribute("class",yA(e));const f=OA(e);for(const m in f)Vn(c,m,f[m]);l||Vn(c,"pointer-events",u),Vn(c,"clip-path",e.clip?Lm(this,e,e.group):null);let d=null,h=0;const p=m=>{const g=this.isDirty(m),y=IA(m,c,d,s.tag,a);g&&(this._update(s,y,m),l&&function(v,x,b,w){x=x.lastChild.previousSibling;let A,_=0;Qe(b,k=>{A=v.mark(x,k,A,w),++_}),Pe(x,1+_)}(this,y,m,i)),d=y,++h};return s.nested?e.items.length&&p(e.items[0]):Qe(e,p),Pe(c,h),c}_update(n,e,r){oi=e,On=e.__values__,zA(bu,r),n.attr(bu,r,this);const i=o4[n.type];i&&i.call(this,n,e,r),oi&&this.style(oi,r)}style(n,e){if(e!=null){for(const r in Qc){let i=r==="font"?pu(e):e[r];if(i===On[r])continue;const a=Qc[r];i==null?n.removeAttribute(a):(Om(i)&&(i=Sw(i,this._defs.gradient,WA())),n.setAttribute(a,i+"")),On[r]=i}for(const r in Zc)tf(n,Zc[r],e[r])}}defs(){const n=this._svg,e=this._defs;let r=e.el,i=0;for(const a in e.gradient)r||(e.el=r=dn(n,1,"defs",hn)),i=i4(r,e.gradient[a],i);for(const a in e.clipping)r||(e.el=r=dn(n,1,"defs",hn)),i=a4(r,e.clipping[a],i);r&&(i===0?(n.removeChild(r),e.el=null):Pe(r,i))}_clearDefs(){const n=this._defs;n.gradient={},n.clipping={}}}function UA(t,n){for(;t&&t.dirty!==n;t=t.mark.group){if(t.dirty=n,!t.mark||t.mark.dirty===n)return;t.mark.dirty=n}}function i4(t,n,e){let r,i,a;if(n.gradient==="radial"){let o=dn(t,e++,"pattern",hn);Ji(o,{id:Ac+n.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),o=dn(o,0,"rect",hn),Ji(o,{width:1,height:1,fill:`url(${WA()}#${n.id})`}),Ji(t=dn(t,e++,"radialGradient",hn),{id:n.id,fx:n.x1,fy:n.y1,fr:n.r1,cx:n.x2,cy:n.y2,r:n.r2})}else Ji(t=dn(t,e++,"linearGradient",hn),{id:n.id,x1:n.x1,x2:n.x2,y1:n.y1,y2:n.y2});for(r=0,i=n.stops.length;r<i;++r)a=dn(t,r,"stop",hn),a.setAttribute("offset",n.stops[r].offset),a.setAttribute("stop-color",n.stops[r].color);return Pe(t,r),e}function a4(t,n,e){let r;return(t=dn(t,e,"clipPath",hn)).setAttribute("id",n.id),n.path?(r=dn(t,0,"path",hn),r.setAttribute("d",n.path)):(r=dn(t,0,"rect",hn),Ji(r,{x:0,y:0,width:n.width,height:n.height})),Pe(t,1),e+1}function IA(t,n,e,r,i){let a,o=t._svg;if(!o&&(a=n.ownerDocument,o=Xi(a,r,hn),t._svg=o,t.mark&&(o.__data__=t,o.__values__={fill:"default"},r==="g"))){const s=Xi(a,"path",hn);o.appendChild(s),s.__data__=t;const u=Xi(a,"g",hn);o.appendChild(u),u.__data__=t;const l=Xi(a,"path",hn);o.appendChild(l),l.__data__=t,l.__values__={fill:"default"}}return(o.ownerSVGElement!==i||function(s,u){return s.parentNode&&s.parentNode.childNodes.length>1&&s.previousSibling!=u}(o,e))&&n.insertBefore(o,e?e.nextSibling:n.firstChild),o}let oi=null,On=null;const o4={group(t,n,e){const r=oi=n.childNodes[2];On=r.__values__,t.foreground(bu,e,this),On=n.__values__,oi=n.childNodes[1],t.content(bu,e,this);const i=oi=n.childNodes[0];t.background(bu,e,this);const a=e.mark.interactive===!1?"none":null;if(a!==On.events&&(Vn(r,"pointer-events",a),Vn(i,"pointer-events",a),On.events=a),e.strokeForeground&&e.stroke){const o=e.fill;Vn(r,"display",null),this.style(i,e),Vn(i,"stroke",null),o&&(e.fill=null),On=r.__values__,this.style(r,e),o&&(e.fill=o),oi=null}else Vn(r,"display","none")},image(t,n,e){e.smooth===!1?(tf(n,"image-rendering","optimizeSpeed"),tf(n,"image-rendering","pixelated")):tf(n,"image-rendering",null)},text(t,n,e){const r=hu(e);let i,a,o,s;T(r)?(a=r.map(u=>Yi(e,u)),i=a.join(`
2
+ `),i!==On.text&&(Pe(n,0),o=n.ownerDocument,s=Vi(e),a.forEach((u,l)=>{const c=Xi(o,"tspan",hn);c.__data__=e,c.textContent=u,l&&(c.setAttribute("x",0),c.setAttribute("dy",s)),n.appendChild(c)}),On.text=i)):(a=Yi(e,r),a!==On.text&&(n.textContent=a,On.text=a)),Vn(n,"font-family",pu(e)),Vn(n,"font-size",Sr(e)+"px"),Vn(n,"font-style",e.fontStyle),Vn(n,"font-variant",e.fontVariant),Vn(n,"font-weight",e.fontWeight)}};function bu(t,n,e){n!==On[t]&&(e?function(r,i,a,o){a!=null?r.setAttributeNS(o,i,a):r.removeAttributeNS(o,i)}(oi,t,n,e):Vn(oi,t,n),On[t]=n)}function tf(t,n,e){e!==On[n]&&(e==null?t.style.removeProperty(n):t.style.setProperty(n,e+""),On[n]=e)}function Ji(t,n){for(const e in n)Vn(t,e,n[e])}function Vn(t,n,e){e!=null?t.setAttribute(n,e):t.removeAttribute(n)}function WA(){let t;return typeof window>"u"?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}class HA extends gu{constructor(n){super(n),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(n){const e=x0();e.open("svg",xt({},du,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const r=this._bgcolor;return r&&r!=="transparent"&&r!=="none"&&e.open("rect",{width:this._width,height:this._height,fill:r}).close(),e.open("g",LA,{transform:"translate("+this._origin+")"}),this.mark(e,n),e.close(),this.defs(e),this._text=e.close()+"",this}mark(n,e){const r=Ae[e.marktype],i=r.tag,a=[zA,r.attr];n.open("g",{class:yA(e),"clip-path":e.clip?Lm(this,e,e.group):null},OA(e),{"pointer-events":i!=="g"&&e.interactive===!1?"none":null});const o=s=>{const u=this.href(s);if(u&&n.open("a",u),n.open(i,this.attr(e,s,a,i!=="g"?i:null)),i==="text"){const l=hu(s);if(T(l)){const c={x:0,dy:Vi(s)};for(let f=0;f<l.length;++f)n.open("tspan",f?c:null).text(Yi(s,l[f])).close()}else n.text(Yi(s,l))}else if(i==="g"){const l=s.strokeForeground,c=s.fill,f=s.stroke;l&&f&&(s.stroke=null),n.open("path",this.attr(e,s,r.background,"bgrect")).close(),n.open("g",this.attr(e,s,r.content)),Qe(s,d=>this.mark(n,d)),n.close(),l&&f?(c&&(s.fill=null),s.stroke=f,n.open("path",this.attr(e,s,r.foreground,"bgrect")).close(),c&&(s.fill=c)):n.open("path",this.attr(e,s,r.foreground,"bgfore")).close()}n.close(),u&&n.close()};return r.nested?e.items&&e.items.length&&o(e.items[0]):Qe(e,o),n.close()}href(n){const e=n.href;let r;if(e){if(r=this._hrefs&&this._hrefs[e])return r;this.sanitizeURL(e).then(i=>{i["xlink:href"]=i.href,i.href=null,(this._hrefs||(this._hrefs={}))[e]=i})}return null}attr(n,e,r,i){const a={},o=(s,u,l,c)=>{a[c||s]=u};return Array.isArray(r)?r.forEach(s=>s(o,e,this)):r(o,e,this),i&&function(s,u,l,c,f){let d;if(u==null||(c==="bgrect"&&l.interactive===!1&&(s["pointer-events"]="none"),c==="bgfore"&&(l.interactive===!1&&(s["pointer-events"]="none"),s.display="none",u.fill!==null)))return s;c==="image"&&u.smooth===!1&&(d=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),c==="text"&&(s["font-family"]=pu(u),s["font-size"]=Sr(u)+"px",s["font-style"]=u.fontStyle,s["font-variant"]=u.fontVariant,s["font-weight"]=u.fontWeight);for(const h in Qc){let p=u[h];const m=Qc[h];(p!=="transparent"||m!=="fill"&&m!=="stroke")&&p!=null&&(Om(p)&&(p=Sw(p,f.gradient,"")),s[m]=p)}for(const h in Zc){const p=u[h];p!=null&&(d=d||[],d.push(`${Zc[h]}: ${p};`))}d&&(s.style=d.join(" "))}(a,e,n,i,this._defs),a}defs(n){const e=this._defs.gradient,r=this._defs.clipping;if(Object.keys(e).length+Object.keys(r).length!==0){n.open("defs");for(const i in e){const a=e[i],o=a.stops;a.gradient==="radial"?(n.open("pattern",{id:Ac+i,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),n.open("rect",{width:"1",height:"1",fill:"url(#"+i+")"}).close(),n.close(),n.open("radialGradient",{id:i,fx:a.x1,fy:a.y1,fr:a.r1,cx:a.x2,cy:a.y2,r:a.r2})):n.open("linearGradient",{id:i,x1:a.x1,x2:a.x2,y1:a.y1,y2:a.y2});for(let s=0;s<o.length;++s)n.open("stop",{offset:o[s].offset,"stop-color":o[s].color}).close();n.close()}for(const i in r){const a=r[i];n.open("clipPath",{id:i}),a.path?n.open("path",{d:a.path}).close():n.open("rect",{x:0,y:0,width:a.width,height:a.height}).close(),n.close()}n.close()}}}const Ze={svgMarkTypes:["text"],svgOnTop:!0,debug:!1};class A0 extends gu{constructor(n){super(n),this._svgRenderer=new w0(n),this._canvasRenderer=new Kc(n)}initialize(n,e,r,i,a){this._root_el=dn(n,0,"div");const o=dn(this._root_el,0,"div"),s=dn(this._root_el,1,"div");return this._root_el.style.position="relative",Ze.debug||(o.style.height="100%",s.style.position="absolute",s.style.top="0",s.style.left="0",s.style.height="100%",s.style.width="100%"),this._svgEl=Ze.svgOnTop?s:o,this._canvasEl=Ze.svgOnTop?o:s,this._svgEl.style.pointerEvents="none",this._canvasRenderer.initialize(this._canvasEl,e,r,i,a),this._svgRenderer.initialize(this._svgEl,e,r,i,a),super.initialize(n,e,r,i,a)}dirty(n){return Ze.svgMarkTypes.includes(n.mark.marktype)?this._svgRenderer.dirty(n):this._canvasRenderer.dirty(n),this}_render(n,e){const r=(e??["arc","area","image","line","path","rect","rule","shape","symbol","text","trail"]).filter(i=>!Ze.svgMarkTypes.includes(i));this._svgRenderer.render(n,Ze.svgMarkTypes),this._canvasRenderer.render(n,r)}resize(n,e,r,i){return super.resize(n,e,r,i),this._svgRenderer.resize(n,e,r,i),this._canvasRenderer.resize(n,e,r,i),this}background(n){return Ze.svgOnTop?this._canvasRenderer.background(n):this._svgRenderer.background(n),this}}class GA extends vu{constructor(n,e){super(n,e)}initialize(n,e,r){const i=dn(dn(n,0,"div"),Ze.svgOnTop?0:1,"div");return super.initialize(i,e,r)}}const VA="canvas",YA="hybrid",XA="none",Ki={Canvas:VA,PNG:"png",SVG:"svg",Hybrid:YA,None:XA},qa={};function nf(t,n){return t=String(t||"").toLowerCase(),arguments.length>1?(qa[t]=n,this):qa[t]}function JA(t,n,e){const r=[],i=new cn().union(n),a=t.marktype;return a?KA(t,i,e,r):a==="group"?QA(t,i,e,r):P("Intersect scene must be mark node or group item.")}function KA(t,n,e,r){if(function(i,a,o){return i.bounds&&a.intersects(i.bounds)&&(i.marktype==="group"||i.interactive!==!1&&(!o||o(i)))}(t,n,e)){const i=t.items,a=t.marktype,o=i.length;let s=0;if(a==="group")for(;s<o;++s)QA(i[s],n,e,r);else for(const u=Ae[a].isect;s<o;++s){const l=i[s];ZA(l,n,u)&&r.push(l)}}return r}function QA(t,n,e,r){e&&e(t.mark)&&ZA(t,n,Ae.group.isect)&&r.push(t);const i=t.items,a=i&&i.length;if(a){const o=t.x||0,s=t.y||0;n.translate(-o,-s);for(let u=0;u<a;++u)KA(i[u],n,e,r);n.translate(o,s)}return r}function ZA(t,n,e){const r=t.bounds;return n.encloses(r)||n.intersects(r)&&e(t,n)}qa[VA]=qa.png={renderer:Kc,headless:Kc,handler:vu},qa.svg={renderer:w0,headless:HA,handler:CA},qa[YA]={renderer:A0,headless:A0,handler:GA},qa[XA]={};const _0=new cn;function t_(t){const n=t.clip;if(bt(n))n(lu(_0.clear()));else{if(!n)return;_0.set(0,0,t.group.width,t.group.height)}t.bounds.intersect(_0)}function k0(t,n,e){return t===n||(e==="path"?n_(t,n):t instanceof Date&&n instanceof Date?+t==+n:$t(t)&&$t(n)?Math.abs(t-n)<=1e-9:t&&n&&(Z(t)||Z(n))?function(r,i){var a,o,s=Object.keys(r),u=Object.keys(i);if(s.length!==u.length)return!1;for(s.sort(),u.sort(),o=s.length-1;o>=0;o--)if(s[o]!=u[o])return!1;for(o=s.length-1;o>=0;o--)if(!k0(r[a=s[o]],i[a],a))return!1;return typeof r==typeof i}(t,n):t==n)}function n_(t,n){return k0(No(t),No(n))}const qo="top",tr="left",nr="right",Qi="bottom",D0="start",F0="middle",Yn="end",ef="group",C0="axis",E0="title",s4="frame",u4="scope",$0="legend",e_="row-header",r_="row-footer",i_="row-title",a_="column-header",o_="column-footer",s_="column-title",l4="padding",u_="fit",l_="fit-x",c_="fit-y",S0="none",rf="all",M0="each",B0="flush",Zi="column",ta="row";function f_(t){O.call(this,null,t)}function af(t,n,e){return n(t.bounds.clear(),t,e)}V(f_,O,{transform(t,n){const e=n.dataflow,r=t.mark,i=r.marktype,a=Ae[i],o=a.bound;let s,u=r.bounds;if(a.nested)r.items.length&&e.dirty(r.items[0]),u=af(r,o),r.items.forEach(l=>{l.bounds.clear().union(u)});else if(i===ef||t.modified())switch(n.visit(n.MOD,l=>e.dirty(l)),u.clear(),r.items.forEach(l=>u.union(af(l,o))),r.role){case C0:case $0:case E0:n.reflow()}else s=n.changed(n.REM),n.visit(n.ADD,l=>{u.union(af(l,o))}),n.visit(n.MOD,l=>{s=s||u.alignsWith(l.bounds),e.dirty(l),u.union(af(l,o))}),s&&(u.clear(),r.items.forEach(l=>u.union(l.bounds)));return t_(r),n.modifies("bounds")}});const d_=":vega_identifier:";function z0(t){O.call(this,0,t)}function h_(t){O.call(this,null,t)}function p_(t){O.call(this,null,t)}z0.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},V(z0,O,{transform(t,n){const e=(i=n.dataflow)._signals[d_]||(i._signals[d_]=i.add(0)),r=t.as;var i;let a=e.value;return n.visit(n.ADD,o=>o[r]=o[r]||++a),e.set(this.value=a),n}}),V(h_,O,{transform(t,n){let e=this.value;e||(e=n.dataflow.scenegraph().mark(t.markdef,function(i){const a=i.groups,o=i.parent;return a&&a.size===1?a.get(Object.keys(a.object)[0]):a&&o?a.lookup(o):null}(t),t.index),e.group.context=t.context,t.context.group||(t.context.group=e.group),e.source=this.source,e.clip=t.clip,e.interactive=t.interactive,this.value=e);const r=e.marktype===ef?Fc:Dc;return n.visit(n.ADD,i=>r.call(i,e)),(t.modified("clip")||t.modified("interactive"))&&(e.clip=t.clip,e.interactive=!!t.interactive,e.zdirty=!0,n.reflow()),e.items=n.source,n}});const m_={parity:t=>t.filter((n,e)=>e%2?n.opacity=0:1),greedy:(t,n)=>{let e;return t.filter((r,i)=>i&&g_(e.bounds,r.bounds,n)?r.opacity=0:(e=r,1))}},g_=(t,n,e)=>e>Math.max(n.x1-t.x2,t.x1-n.x2,n.y1-t.y2,t.y1-n.y2),y_=(t,n)=>{for(var e,r=1,i=t.length,a=t[0].bounds;r<i;a=e,++r)if(g_(a,e=t[r].bounds,n))return!0},c4=t=>{const n=t.bounds;return n.width()>1&&n.height()>1},v_=t=>(t.forEach(n=>n.opacity=1),t),b_=(t,n)=>t.reflow(n.modified()).modifies("opacity");function x_(t){O.call(this,null,t)}V(p_,O,{transform(t,n){const e=m_[t.method]||m_.parity,r=t.separation||0;let i,a,o=n.materialize(n.SOURCE).source;if(!o||!o.length)return;if(!t.method)return t.modified("method")&&(v_(o),n=b_(n,t)),n;if(o=o.filter(c4),!o.length)return;if(t.sort&&(o=o.slice().sort(t.sort)),i=v_(o),n=b_(n,t),i.length>=3&&y_(i,r)){do i=e(i,r);while(i.length>=3&&y_(i,r));i.length<3&&!Bt(o).opacity&&(i.length>1&&(Bt(i).opacity=0),Bt(o).opacity=1)}t.boundScale&&t.boundTolerance>=0&&(a=((u,l,c)=>{var f=u.range(),d=new cn;return l===qo||l===Qi?d.set(f[0],-1/0,f[1],1/0):d.set(-1/0,f[0],1/0,f[1]),d.expand(c||1),h=>d.encloses(h.bounds)})(t.boundScale,t.boundOrient,+t.boundTolerance),o.forEach(u=>{a(u)||(u.opacity=0)}));const s=i[0].mark.bounds.clear();return o.forEach(u=>{u.opacity&&s.union(u.bounds)}),n}}),V(x_,O,{transform(t,n){const e=n.dataflow;if(n.visit(n.ALL,r=>e.dirty(r)),n.fields&&n.fields.zindex){const r=n.source&&n.source[0];r&&(r.mark.zdirty=!0)}}});const Nn=new cn;function Uo(t,n,e){return t[n]===e?0:(t[n]=e,1)}function f4(t){var n=t.items[0].orient;return n===tr||n===nr}function d4(t,n,e,r){var i,a,o=n.items[0],s=o.datum,u=o.translate!=null?o.translate:.5,l=o.orient,c=function(A){let _=+A.grid;return[A.ticks?_++:-1,A.labels?_++:-1,_+ +A.domain]}(s),f=o.range,d=o.offset,h=o.position,p=o.minExtent,m=o.maxExtent,g=s.title&&o.items[c[2]].items[0],y=o.titlePadding,v=o.bounds,x=g&&a0(g),b=0,w=0;switch(Nn.clear().union(v),v.clear(),(i=c[0])>-1&&v.union(o.items[i].bounds),(i=c[1])>-1&&v.union(o.items[i].bounds),l){case qo:b=h||0,w=-d,a=Math.max(p,Math.min(m,-v.y1)),v.add(0,-a).add(f,0),g&&of(t,g,a,y,x,0,-1,v);break;case tr:b=-d,w=h||0,a=Math.max(p,Math.min(m,-v.x1)),v.add(-a,0).add(0,f),g&&of(t,g,a,y,x,1,-1,v);break;case nr:b=e+d,w=h||0,a=Math.max(p,Math.min(m,v.x2)),v.add(0,0).add(a,f),g&&of(t,g,a,y,x,1,1,v);break;case Qi:b=h||0,w=r+d,a=Math.max(p,Math.min(m,v.y2)),v.add(0,0).add(f,a),g&&of(t,g,a,y,0,0,1,v);break;default:b=o.x,w=o.y}return ai(v.translate(b,w),o),Uo(o,"x",b+u)|Uo(o,"y",w+u)&&(o.bounds=Nn,t.dirty(o),o.bounds=v,t.dirty(o)),o.mark.bounds.clear().union(v)}function of(t,n,e,r,i,a,o,s){const u=n.bounds;if(n.auto){const l=o*(e+i+r);let c=0,f=0;t.dirty(n),a?c=(n.x||0)-(n.x=l):f=(n.y||0)-(n.y=l),n.mark.bounds.clear().union(u.translate(-c,-f)),t.dirty(n)}s.union(u)}const w_=(t,n)=>Math.floor(Math.min(t,n)),A_=(t,n)=>Math.ceil(Math.max(t,n));function h4(t){return new cn().set(0,0,t.width||0,t.height||0)}function p4(t){const n=t.bounds.clone();return n.empty()?n.set(0,0,0,0):n.translate(-(t.x||0),-(t.y||0))}function Yt(t,n,e){const r=Z(t)?t[n]:t;return r??(e!==void 0?e:0)}function __(t){return t<0?Math.ceil(-t):0}function k_(t,n,e){var r,i,a,o,s,u,l,c,f,d,h,p=!e.nodirty,m=e.bounds===B0?h4:p4,g=Nn.set(0,0,0,0),y=Yt(e.align,Zi),v=Yt(e.align,ta),x=Yt(e.padding,Zi),b=Yt(e.padding,ta),w=e.columns||n.length,A=w<=0?1:Math.ceil(n.length/w),_=n.length,k=Array(_),D=Array(w),C=0,F=Array(_),E=Array(A),$=0,M=Array(_),S=Array(_),B=Array(_);for(i=0;i<w;++i)D[i]=0;for(i=0;i<A;++i)E[i]=0;for(i=0;i<_;++i)u=n[i],s=B[i]=m(u),u.x=u.x||0,M[i]=0,u.y=u.y||0,S[i]=0,a=i%w,o=~~(i/w),C=Math.max(C,l=Math.ceil(s.x2)),$=Math.max($,c=Math.ceil(s.y2)),D[a]=Math.max(D[a],l),E[o]=Math.max(E[o],c),k[i]=x+__(s.x1),F[i]=b+__(s.y1),p&&t.dirty(n[i]);for(i=0;i<_;++i)i%w===0&&(k[i]=0),i<w&&(F[i]=0);if(y===M0)for(a=1;a<w;++a){for(h=0,i=a;i<_;i+=w)h<k[i]&&(h=k[i]);for(i=a;i<_;i+=w)k[i]=h+D[a-1]}else if(y===rf){for(h=0,i=0;i<_;++i)i%w&&h<k[i]&&(h=k[i]);for(i=0;i<_;++i)i%w&&(k[i]=h+C)}else for(y=!1,a=1;a<w;++a)for(i=a;i<_;i+=w)k[i]+=D[a-1];if(v===M0)for(o=1;o<A;++o){for(h=0,r=(i=o*w)+w;i<r;++i)h<F[i]&&(h=F[i]);for(i=o*w;i<r;++i)F[i]=h+E[o-1]}else if(v===rf){for(h=0,i=w;i<_;++i)h<F[i]&&(h=F[i]);for(i=w;i<_;++i)F[i]=h+$}else for(v=!1,o=1;o<A;++o)for(r=(i=o*w)+w;i<r;++i)F[i]+=E[o-1];for(f=0,i=0;i<_;++i)f=k[i]+(i%w?f:0),M[i]+=f-n[i].x;for(a=0;a<w;++a)for(d=0,i=a;i<_;i+=w)d+=F[i],S[i]+=d-n[i].y;if(y&&Yt(e.center,Zi)&&A>1)for(i=0;i<_;++i)(f=(s=y===rf?C:D[i%w])-B[i].x2-n[i].x-M[i])>0&&(M[i]+=f/2);if(v&&Yt(e.center,ta)&&w!==1)for(i=0;i<_;++i)(d=(s=v===rf?$:E[~~(i/w)])-B[i].y2-n[i].y-S[i])>0&&(S[i]+=d/2);for(i=0;i<_;++i)g.union(B[i].translate(M[i],S[i]));switch(f=Yt(e.anchor,"x"),d=Yt(e.anchor,"y"),Yt(e.anchor,Zi)){case Yn:f-=g.width();break;case F0:f-=g.width()/2}switch(Yt(e.anchor,ta)){case Yn:d-=g.height();break;case F0:d-=g.height()/2}for(f=Math.round(f),d=Math.round(d),g.clear(),i=0;i<_;++i)n[i].mark.bounds.clear();for(i=0;i<_;++i)(u=n[i]).x+=M[i]+=f,u.y+=S[i]+=d,g.union(u.mark.bounds.union(u.bounds.translate(M[i],S[i]))),p&&t.dirty(u);return g}function m4(t,n,e){var r,i,a,o,s,u,l,c=function(v){var x,b,w=v.items,A=w.length,_=0;const k={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;_<A;++_)if(b=(x=w[_]).items,x.marktype===ef)switch(x.role){case C0:case $0:case E0:break;case e_:k.rowheaders.push(...b);break;case r_:k.rowfooters.push(...b);break;case a_:k.colheaders.push(...b);break;case o_:k.colfooters.push(...b);break;case i_:k.rowtitle=b[0];break;case s_:k.coltitle=b[0];break;default:k.marks.push(...b)}return k}(n),f=c.marks,d=e.bounds===B0?g4:y4,h=e.offset,p=e.columns||f.length,m=p<=0?1:Math.ceil(f.length/p),g=m*p;const y=k_(t,f,e);y.empty()&&y.set(0,0,0,0),c.rowheaders&&(u=Yt(e.headerBand,ta,null),r=sf(t,c.rowheaders,f,p,m,-Yt(h,"rowHeader"),w_,0,d,"x1",0,p,1,u)),c.colheaders&&(u=Yt(e.headerBand,Zi,null),i=sf(t,c.colheaders,f,p,p,-Yt(h,"columnHeader"),w_,1,d,"y1",0,1,p,u)),c.rowfooters&&(u=Yt(e.footerBand,ta,null),a=sf(t,c.rowfooters,f,p,m,Yt(h,"rowFooter"),A_,0,d,"x2",p-1,p,1,u)),c.colfooters&&(u=Yt(e.footerBand,Zi,null),o=sf(t,c.colfooters,f,p,p,Yt(h,"columnFooter"),A_,1,d,"y2",g-p,1,p,u)),c.rowtitle&&(s=Yt(e.titleAnchor,ta),l=Yt(h,"rowTitle"),l=s===Yn?a+l:r-l,u=Yt(e.titleBand,ta,.5),D_(t,c.rowtitle,l,0,y,u)),c.coltitle&&(s=Yt(e.titleAnchor,Zi),l=Yt(h,"columnTitle"),l=s===Yn?o+l:i-l,u=Yt(e.titleBand,Zi,.5),D_(t,c.coltitle,l,1,y,u))}function g4(t,n){return n==="x1"?t.x||0:n==="y1"?t.y||0:n==="x2"?(t.x||0)+(t.width||0):n==="y2"?(t.y||0)+(t.height||0):void 0}function y4(t,n){return t.bounds[n]}function sf(t,n,e,r,i,a,o,s,u,l,c,f,d,h){var p,m,g,y,v,x,b,w,A,_=e.length,k=0,D=0;if(!_)return k;for(p=c;p<_;p+=f)e[p]&&(k=o(k,u(e[p],l)));if(!n.length)return k;for(n.length>i&&(t.warn("Grid headers exceed limit: "+i),n=n.slice(0,i)),k+=a,m=0,y=n.length;m<y;++m)t.dirty(n[m]),n[m].mark.bounds.clear();for(p=c,m=0,y=n.length;m<y;++m,p+=f){for(v=(x=n[m]).mark.bounds,g=p;g>=0&&(b=e[g])==null;g-=d);s?(w=h==null?b.x:Math.round(b.bounds.x1+h*b.bounds.width()),A=k):(w=k,A=h==null?b.y:Math.round(b.bounds.y1+h*b.bounds.height())),v.union(x.bounds.translate(w-(x.x||0),A-(x.y||0))),x.x=w,x.y=A,t.dirty(x),D=o(D,v[l])}return D}function D_(t,n,e,r,i,a){if(n){t.dirty(n);var o=e,s=e;r?o=Math.round(i.x1+a*i.width()):s=Math.round(i.y1+a*i.height()),n.bounds.translate(o-(n.x||0),s-(n.y||0)),n.mark.bounds.clear().union(n.bounds),n.x=o,n.y=s,t.dirty(n)}}function v4(t,n,e,r,i,a,o){const s=function(d,h){const p=d[h]||{};return(m,g)=>p[m]!=null?p[m]:d[m]!=null?d[m]:g}(e,n),u=function(d,h){let p=-1/0;return d.forEach(m=>{m.offset!=null&&(p=Math.max(p,m.offset))}),p>-1/0?p:h}(t,s("offset",0)),l=s("anchor",D0),c=l===Yn?1:l===F0?.5:0,f={align:M0,bounds:s("bounds",B0),columns:s("direction")==="vertical"?1:t.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(n){case tr:f.anchor={x:Math.floor(r.x1)-u,column:Yn,y:c*(o||r.height()+2*r.y1),row:l};break;case nr:f.anchor={x:Math.ceil(r.x2)+u,y:c*(o||r.height()+2*r.y1),row:l};break;case qo:f.anchor={y:Math.floor(i.y1)-u,row:Yn,x:c*(a||i.width()+2*i.x1),column:l};break;case Qi:f.anchor={y:Math.ceil(i.y2)+u,x:c*(a||i.width()+2*i.x1),column:l};break;case"top-left":f.anchor={x:u,y:u};break;case"top-right":f.anchor={x:a-u,y:u,column:Yn};break;case"bottom-left":f.anchor={x:u,y:o-u,row:Yn};break;case"bottom-right":f.anchor={x:a-u,y:o-u,column:Yn,row:Yn}}return f}function b4(t,n){var e,r,i=n.items[0],a=i.datum,o=i.orient,s=i.bounds,u=i.x,l=i.y;return i._bounds?i._bounds.clear().union(s):i._bounds=s.clone(),s.clear(),function(c,f,d){var h=f.padding,p=h-d.x,m=h-d.y;if(f.datum.title){var g=f.items[1].items[0],y=g.anchor,v=f.titlePadding||0,x=h-g.x,b=h-g.y;switch(g.orient){case tr:p+=Math.ceil(g.bounds.width())+v;break;case nr:case Qi:break;default:m+=g.bounds.height()+v}switch((p||m)&&xu(c,d,p,m),g.orient){case tr:b+=Io(f,d,g,y,1,1);break;case nr:x+=Io(f,d,g,Yn,0,0)+v,b+=Io(f,d,g,y,1,1);break;case Qi:x+=Io(f,d,g,y,0,0),b+=Io(f,d,g,Yn,-1,0,1)+v;break;default:x+=Io(f,d,g,y,0,0)}(x||b)&&xu(c,g,x,b),(x=Math.round(g.bounds.x1-h))<0&&(xu(c,d,-x,0),xu(c,g,-x,0))}else(p||m)&&xu(c,d,p,m)}(t,i,i.items[0].items[0]),s=function(c,f){return c.items.forEach(d=>f.union(d.bounds)),f.x1=c.padding,f.y1=c.padding,f}(i,s),e=2*i.padding,r=2*i.padding,s.empty()||(e=Math.ceil(s.width()+e),r=Math.ceil(s.height()+r)),a.type==="symbol"&&function(c){const f=c.reduce((d,h)=>(d[h.column]=Math.max(h.bounds.x2-h.x,d[h.column]||0),d),{});c.forEach(d=>{d.width=f[d.column],d.height=d.bounds.y2-d.y})}(i.items[0].items[0].items[0].items),o!==S0&&(i.x=u=0,i.y=l=0),i.width=e,i.height=r,ai(s.set(u,l,u+e,l+r),i),i.mark.bounds.clear().union(s),i}function Io(t,n,e,r,i,a,o){const s=t.datum.type!=="symbol",u=e.datum.vgrad,l=(!s||!a&&u||o?n:n.items[0]).bounds[i?"y2":"x2"]-t.padding,c=u&&a?l:0,f=u&&a?0:l,d=i<=0?0:a0(e);return Math.round(r===D0?c:r===Yn?f-d:.5*(l-d))}function xu(t,n,e,r){n.x+=e,n.y+=r,n.bounds.translate(e,r),n.mark.bounds.translate(e,r),t.dirty(n)}function F_(t){O.call(this,null,t)}V(F_,O,{transform(t,n){const e=n.dataflow;return t.mark.items.forEach(r=>{t.layout&&m4(e,r,t.layout),function(i,a,o){var s,u,l,c,f,d=a.items,h=Math.max(0,a.width||0),p=Math.max(0,a.height||0),m=new cn().set(0,0,h,p),g=m.clone(),y=m.clone(),v=[];for(c=0,f=d.length;c<f;++c)switch((u=d[c]).role){case C0:(f4(u)?g:y).union(d4(i,u,h,p));break;case E0:s=u;break;case $0:v.push(b4(i,u));break;case s4:case u4:case e_:case r_:case i_:case a_:case o_:case s_:g.union(u.bounds),y.union(u.bounds);break;default:m.union(u.bounds)}if(v.length){const x={};v.forEach(b=>{(l=b.orient||nr)!==S0&&(x[l]||(x[l]=[])).push(b)});for(const b in x){const w=x[b];k_(i,w,v4(w,b,o.legends,g,y,h,p))}v.forEach(b=>{const w=b.bounds;if(w.equals(b._bounds)||(b.bounds=b._bounds,i.dirty(b),b.bounds=w,i.dirty(b)),!o.autosize||o.autosize.type!==u_&&o.autosize.type!==l_&&o.autosize.type!==c_)m.union(w);else switch(b.orient){case tr:case nr:m.add(w.x1,0).add(w.x2,0);break;case qo:case Qi:m.add(0,w.y1).add(0,w.y2)}})}m.union(g).union(y),s&&m.union(function(x,b,w,A,_){var k,D=b.items[0],C=D.frame,F=D.orient,E=D.anchor,$=D.offset,M=D.padding,S=D.items[0].items[0],B=D.items[1]&&D.items[1].items[0],z=F===tr||F===nr?A:w,j=0,W=0,K=0,q=0,at=0;if(C!==ef?F===tr?(j=_.y2,z=_.y1):F===nr?(j=_.y1,z=_.y2):(j=_.x1,z=_.x2):F===tr&&(j=A,z=0),k=E===D0?j:E===Yn?z:(j+z)/2,B&&B.text){switch(F){case qo:case Qi:at=S.bounds.height()+M;break;case tr:q=S.bounds.width()+M;break;case nr:q=-S.bounds.width()-M}Nn.clear().union(B.bounds),Nn.translate(q-(B.x||0),at-(B.y||0)),Uo(B,"x",q)|Uo(B,"y",at)&&(x.dirty(B),B.bounds.clear().union(Nn),B.mark.bounds.clear().union(Nn),x.dirty(B)),Nn.clear().union(B.bounds)}else Nn.clear();switch(Nn.union(S.bounds),F){case qo:W=k,K=_.y1-Nn.height()-$;break;case tr:W=_.x1-Nn.width()-$,K=k;break;case nr:W=_.x2+Nn.width()+$,K=k;break;case Qi:W=k,K=_.y2+$;break;default:W=D.x,K=D.y}return Uo(D,"x",W)|Uo(D,"y",K)&&(Nn.translate(W,K),x.dirty(D),D.bounds.clear().union(Nn),b.bounds.clear().union(Nn),x.dirty(D)),D.bounds}(i,s,h,p,m)),a.clip&&m.set(0,0,a.width||0,a.height||0),function(x,b,w,A){const _=A.autosize||{},k=_.type;if(x._autosize<1||!k)return;let D=x._width,C=x._height,F=Math.max(0,b.width||0),E=Math.max(0,Math.ceil(-w.x1)),$=Math.max(0,b.height||0),M=Math.max(0,Math.ceil(-w.y1));const S=Math.max(0,Math.ceil(w.x2-F)),B=Math.max(0,Math.ceil(w.y2-$));if(_.contains===l4){const z=x.padding();D-=z.left+z.right,C-=z.top+z.bottom}k===S0?(E=0,M=0,F=D,$=C):k===u_?(F=Math.max(0,D-E-S),$=Math.max(0,C-M-B)):k===l_?(F=Math.max(0,D-E-S),C=$+M+B):k===c_?(D=F+E+S,$=Math.max(0,C-M-B)):k==="pad"&&(D=F+E+S,C=$+M+B),x._resizeView(D,C,F,$,[E,M],_.resize)}(i,a,m,o)}(e,r,t)}),function(r){return r&&r.mark.role!=="legend-entry"}(t.mark.group)?n.reflow():n}});const x4=Object.freeze(Object.defineProperty({__proto__:null,bound:f_,identifier:z0,mark:h_,overlap:p_,render:x_,viewlayout:F_},Symbol.toStringTag,{value:"Module"}));function C_(t){O.call(this,null,t)}function E_(t){O.call(this,null,t)}function w4(){return St({})}function $_(t){O.call(this,null,t)}function S_(t){O.call(this,[],t)}V(C_,O,{transform(t,n){if(this.value&&!t.modified())return n.StopPropagation;var e=n.dataflow.locale(),r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=this.value,a=t.scale,o=Mm(a,t.count==null?t.values?t.values.length:10:t.count,t.minstep),s=t.format||ww(e,a,o,t.formatSpecifier,t.formatType,!!t.values),u=t.values?xw(a,t.values,o):Bm(a,o);return i&&(r.rem=i),i=u.map((l,c)=>St({index:c/(u.length-1||1),value:l,label:s(l)})),t.extra&&i.length&&i.push(St({index:-1,extra:{value:i[0].value},label:""})),r.source=i,r.add=i,this.value=i,r}}),V(E_,O,{transform(t,n){var e=n.dataflow,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=t.item||w4,a=t.key||st,o=this.value;return T(r.encode)&&(r.encode=null),o&&(t.modified("key")||n.modified(a))&&P("DataJoin does not support modified key function or fields."),o||(n=n.addAll(),this.value=o=function(s){const u=Do().test(l=>l.exit);return u.lookup=l=>u.get(s(l)),u}(a)),n.visit(n.ADD,s=>{const u=a(s);let l=o.get(u);l?l.exit?(o.empty--,r.add.push(l)):r.mod.push(l):(l=i(s),o.set(u,l),r.add.push(l)),l.datum=s,l.exit=!1}),n.visit(n.MOD,s=>{const u=a(s),l=o.get(u);l&&(l.datum=s,r.mod.push(l))}),n.visit(n.REM,s=>{const u=a(s),l=o.get(u);s!==l.datum||l.exit||(r.rem.push(l),l.exit=!0,++o.empty)}),n.changed(n.ADD_MOD)&&r.modifies("datum"),(n.clean()||t.clean&&o.empty>e.cleanThreshold)&&e.runAfter(o.clean),r}}),V($_,O,{transform(t,n){var e=n.fork(n.ADD_REM),r=t.mod||!1,i=t.encoders,a=n.encode;if(T(a)){if(!e.changed()&&!a.every(f=>i[f]))return n.StopPropagation;a=a[0],e.encode=null}var o=a==="enter",s=i.update||Oi,u=i.enter||Oi,l=i.exit||Oi,c=(a&&!o?i[a]:s)||Oi;if(n.changed(n.ADD)&&(n.visit(n.ADD,f=>{u(f,t),s(f,t)}),e.modifies(u.output),e.modifies(s.output),c!==Oi&&c!==s&&(n.visit(n.ADD,f=>{c(f,t)}),e.modifies(c.output))),n.changed(n.REM)&&l!==Oi&&(n.visit(n.REM,f=>{l(f,t)}),e.modifies(l.output)),o||c!==Oi){const f=n.MOD|(t.modified()?n.REFLOW:0);o?(n.visit(f,d=>{const h=u(d,t)||r;(c(d,t)||h)&&e.mod.push(d)}),e.mod.length&&e.modifies(u.output)):n.visit(f,d=>{(c(d,t)||r)&&e.mod.push(d)}),e.mod.length&&e.modifies(c.output)}return e.changed()?e:n.StopPropagation}}),V(S_,O,{transform(t,n){if(this.value!=null&&!t.modified())return n.StopPropagation;var e,r,i,a,o,s=n.dataflow.locale(),u=n.fork(n.NO_SOURCE|n.NO_FIELDS),l=this.value,c=t.type||wc,f=t.scale,d=+t.limit,h=Mm(f,t.count==null?5:t.count,t.minstep),p=!!t.values||c===wc,m=t.format||Dw(s,f,h,c,t.formatSpecifier,t.formatType,p),g=t.values||kw(f,h);return l&&(u.rem=l),c===wc?(d&&g.length>d?(n.dataflow.warn("Symbol legend count exceeds limit, filtering items."),l=g.slice(0,d-1),o=!0):l=g,bt(i=t.size)?(t.values||f(l[0])!==0||(l=l.slice(1)),a=l.reduce((y,v)=>Math.max(y,i(v,t)),0)):i=In(a=i||8),l=l.map((y,v)=>St({index:v,label:m(y,v,l),value:y,offset:a,size:i(y,t)})),o&&(o=g[l.length],l.push(St({index:l.length,label:`\u2026${g.length-l.length} entries`,value:o,offset:a,size:i(o,t)})))):c==="gradient"?(e=f.domain(),r=gw(f,e[0],Bt(e)),g.length<3&&!t.values&&e[0]!==Bt(e)&&(g=[e[0],Bt(e)]),l=g.map((y,v)=>St({index:v,label:m(y,v,g),value:y,perc:r(y)}))):(i=g.length-1,r=function(y){const v=y.domain(),x=v.length-1;let b=+v[0],w=+Bt(v),A=w-b;if(y.type===vc){const _=x?A/x:.1;b-=_,w+=_,A=w-b}return _=>(_-b)/A}(f),l=g.map((y,v)=>St({index:v,label:m(y,v,g),value:y,perc:v?r(y):0,perc2:v===i?1:r(g[v+1])}))),u.source=l,u.add=l,this.value=l,u}});const A4=t=>t.source.x,_4=t=>t.source.y,k4=t=>t.target.x,D4=t=>t.target.y;function O0(t){O.call(this,{},t)}O0.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"}]},V(O0,O,{transform(t,n){var e=t.sourceX||A4,r=t.sourceY||_4,i=t.targetX||k4,a=t.targetY||D4,o=t.as||"path",s=t.orient||"vertical",u=t.shape||"line",l=O_.get(u+"-"+s)||O_.get(u);return l||P("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),n.visit(n.SOURCE,c=>{c[o]=l(e(c),r(c),i(c),a(c))}),n.reflow(t.modified()).modifies(o)}});const M_=(t,n,e,r)=>"M"+t+","+n+"L"+e+","+r,B_=(t,n,e,r)=>{var i=e-t,a=r-n,o=Math.hypot(i,a)/2;return"M"+t+","+n+"A"+o+","+o+" "+180*Math.atan2(a,i)/Math.PI+" 0 1 "+e+","+r},z_=(t,n,e,r)=>{const i=e-t,a=r-n,o=.2*(i+a),s=.2*(a-i);return"M"+t+","+n+"C"+(t+o)+","+(n+s)+" "+(e+s)+","+(r-o)+" "+e+","+r},O_=Do({line:M_,"line-radial":(t,n,e,r)=>M_(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e)),arc:B_,"arc-radial":(t,n,e,r)=>B_(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e)),curve:z_,"curve-radial":(t,n,e,r)=>z_(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e)),"orthogonal-horizontal":(t,n,e,r)=>"M"+t+","+n+"V"+r+"H"+e,"orthogonal-vertical":(t,n,e,r)=>"M"+t+","+n+"H"+e+"V"+r,"orthogonal-radial":(t,n,e,r)=>{const i=Math.cos(t),a=Math.sin(t),o=Math.cos(e),s=Math.sin(e);return"M"+n*i+","+n*a+"A"+n+","+n+" 0 0,"+((Math.abs(e-t)>Math.PI?e<=t:e>t)?1:0)+" "+n*o+","+n*s+"L"+r*o+","+r*s},"diagonal-horizontal":(t,n,e,r)=>{const i=(t+e)/2;return"M"+t+","+n+"C"+i+","+n+" "+i+","+r+" "+e+","+r},"diagonal-vertical":(t,n,e,r)=>{const i=(n+r)/2;return"M"+t+","+n+"C"+t+","+i+" "+e+","+i+" "+e+","+r},"diagonal-radial":(t,n,e,r)=>{const i=Math.cos(t),a=Math.sin(t),o=Math.cos(e),s=Math.sin(e),u=(n+r)/2;return"M"+n*i+","+n*a+"C"+u*i+","+u*a+" "+u*o+","+u*s+" "+r*o+","+r*s}});function N0(t){O.call(this,null,t)}N0.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"]}]},V(N0,O,{transform(t,n){var e,r,i,a=t.as||["startAngle","endAngle"],o=a[0],s=a[1],u=t.field||Is,l=t.startAngle||0,c=t.endAngle!=null?t.endAngle:2*Math.PI,f=n.source,d=f.map(u),h=d.length,p=l,m=(c-l)/Yx(d),g=xe(h);for(t.sort&&g.sort((y,v)=>d[y]-d[v]),e=0;e<h;++e)i=d[g[e]],(r=f[g[e]])[o]=p,r[s]=p+=i*m;return this.value=d,n.reflow(t.modified()).modifies(a)}});function N_(t){return Cm(t)&&t!==Cr}const F4=Dr(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function R_(t){O.call(this,null,t),this.modified(!0)}function T_(t,n,e){return fw(t)&&Math.abs(n.reduce((r,i)=>r+(i<0?-1:i>0?1:0),0))!==n.length&&e.warn("Log scale domain includes zero: "+G(n)),n}function P_(t,n,e){return bt(t)&&(n||e)?pw(t,R0(n||[0,1],e)):t}function R0(t,n){return n?t.slice().reverse():t}function j_(t){O.call(this,null,t)}V(R_,O,{transform(t,n){var e=n.dataflow,r=this.value,i=function(a){var o,s=a.type,u="";return s===Cr?Cr+"-"+Mo:(function(l){const c=l.type;return Cm(c)&&c!==za&&c!==Oa&&(l.scheme||l.range&&l.range.length&&l.range.every(Q))}(a)&&(u=(o=a.rawDomain?a.rawDomain.length:a.domain?a.domain.length+ +(a.domainMid!=null):0)===2?Cr+"-":o===3?Bo+"-":""),(u+s||Mo).toLowerCase())}(t);for(i in r&&i===r.type||(this.value=r=Dt(i)()),t)if(!F4[i]){if(i==="padding"&&N_(r.type))continue;bt(r[i])?r[i](t[i]):e.warn("Unsupported scale property: "+i)}return function(a,o,s){var u=a.type,l=o.round||!1,c=o.range;if(o.rangeStep!=null)c=function(f,d,h){f!==aw&&f!==_m&&P("Only band and point scales support rangeStep.");var p=(d.paddingOuter!=null?d.paddingOuter:d.padding)||0,m=f===_m?1:(d.paddingInner!=null?d.paddingInner:d.padding)||0;return[0,d.rangeStep*wm(h,m,p)]}(u,o,s);else if(o.scheme&&(c=function(f,d,h){var p,m=d.schemeExtent;return T(d.scheme)?p=xc(d.scheme,d.interpolate,d.interpolateGamma):(p=Sm(d.scheme.toLowerCase()))||P(`Unrecognized scheme name: ${d.scheme}`),h=f===vc?h+1:f===km?h-1:f===zo||f===yc?+d.schemeCount||5:h,dw(f)?P_(p,m,d.reverse):bt(p)?mw(P_(p,m),h):f===Am?p:p.slice(0,h)}(u,o,s),bt(c))){if(a.interpolator)return a.interpolator(c);P(`Scale type ${u} does not support interpolating color schemes.`)}if(c&&dw(u))return a.interpolator(xc(R0(c,o.reverse),o.interpolate,o.interpolateGamma));c&&o.interpolate&&a.interpolate?a.interpolate($m(o.interpolate,o.interpolateGamma)):bt(a.round)?a.round(l):bt(a.rangeRound)&&a.interpolate(l?Gl:Ws),c&&a.range(R0(c,o.reverse))}(r,t,function(a,o,s){let u=o.bins;if(u&&!T(u)){const l=a.domain(),c=l[0],f=Bt(l),d=u.step;let h=u.start==null?c:u.start,p=u.stop==null?f:u.stop;d||P("Scale bins parameter missing step property."),h<c&&(h=d*Math.ceil(c/d)),p>f&&(p=d*Math.floor(f/d)),u=xe(h,p+d/2,d)}return u?a.bins=u:a.bins&&delete a.bins,a.type===km&&(u?o.domain||o.domainRaw||(a.domain(u),s=u.length):a.bins=a.domain()),s}(r,t,function(a,o,s){const u=function(p,m,g){return m?(p.domain(T_(p.type,m,g)),m.length):-1}(a,o.domainRaw,s);if(u>-1)return u;var l,c,f=o.domain,d=a.type,h=o.zero||o.zero===void 0&&function(p){const m=p.type;return!p.bins&&(m===Mo||m===tu||m===nu)}(a);if(!f)return 0;if((h||o.domainMin!=null||o.domainMax!=null||o.domainMid!=null)&&(l=(f=f.slice()).length-1||1,h&&(f[0]>0&&(f[0]=0),f[l]<0&&(f[l]=0)),o.domainMin!=null&&(f[0]=o.domainMin),o.domainMax!=null&&(f[l]=o.domainMax),o.domainMid!=null)){const p=(c=o.domainMid)>f[l]?l+1:c<f[0]?0:l;p!==l&&s.warn("Scale domainMid exceeds domain min or max.",c),f.splice(p,0,c)}return N_(d)&&o.padding&&f[0]!==Bt(f)&&(f=function(p,m,g,y,v,x){var b=Math.abs(Bt(g)-g[0]),w=b/(b-2*y),A=p===ri?np(m,null,w):p===nu?Wl(m,null,w,.5):p===tu?Wl(m,null,w,v||1):p===gc?ep(m,null,w,x||1):rp(m,null,w);return m=m.slice(),m[0]=A[0],m[m.length-1]=A[1],m}(d,f,o.range,o.padding,o.exponent,o.constant)),a.domain(T_(d,f,s)),d===Am&&a.unknown(o.domainImplicit?A8:void 0),o.nice&&a.nice&&a.nice(o.nice!==!0&&Mm(a,o.nice)||null),f.length}(r,t,e))),n.fork(n.NO_SOURCE|n.NO_FIELDS)}}),V(j_,O,{transform(t,n){const e=t.modified("sort")||n.changed(n.ADD)||n.modified(t.sort.fields)||n.modified("datum");return e&&n.source.sort(Ma(t.sort)),this.modified(e),n}});const L_="zero",q_="center",U_="normalize",I_=["y0","y1"];function T0(t){O.call(this,null,t)}function C4(t,n,e,r,i){for(var a,o=(n-t.sum)/2,s=t.length,u=0;u<s;++u)(a=t[u])[r]=o,a[i]=o+=Math.abs(e(a))}function E4(t,n,e,r,i){for(var a,o=1/t.sum,s=0,u=t.length,l=0,c=0;l<u;++l)(a=t[l])[r]=s,a[i]=s=o*(c+=Math.abs(e(a)))}function $4(t,n,e,r,i){for(var a,o,s=0,u=0,l=t.length,c=0;c<l;++c)(a=+e(o=t[c]))<0?(o[r]=u,o[i]=u+=a):(o[r]=s,o[i]=s+=a)}T0.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:L_,values:[L_,q_,U_]},{name:"as",type:"string",array:!0,length:2,default:I_}]},V(T0,O,{transform(t,n){var e,r,i,a,o=t.as||I_,s=o[0],u=o[1],l=Ma(t.sort),c=t.field||Is,f=t.offset===q_?C4:t.offset===U_?E4:$4;for(e=function(d,h,p,m){var g,y,v,x,b,w,A,_,k,D=[],C=F=>F(b);if(h==null)D.push(d.slice());else for(g={},y=0,v=d.length;y<v;++y)b=d[y],(A=g[w=h.map(C)])||(g[w]=A=[],D.push(A)),A.push(b);for(w=0,k=0,x=D.length;w<x;++w){for(y=0,_=0,v=(A=D[w]).length;y<v;++y)_+=Math.abs(m(A[y]));A.sum=_,_>k&&(k=_),p&&A.sort(p)}return D.max=k,D}(n.source,t.groupby,l,c),r=0,i=e.length,a=e.max;r<i;++r)f(e[r],a,c,s,u);return n.reflow(t.modified()).modifies(o)}});const S4=Object.freeze(Object.defineProperty({__proto__:null,axisticks:C_,datajoin:E_,encode:$_,legendentries:S_,linkpath:O0,pie:N0,scale:R_,sortitems:j_,stack:T0},Symbol.toStringTag,{value:"Module"}));var dt=1e-6,P0=1e-12,yt=Math.PI,rn=yt/2,uf=yt/4,Xn=2*yt,on=180/yt,gt=yt/180,At=Math.abs,Wo=Math.atan,je=Math.atan2,ct=Math.cos,lf=Math.ceil,W_=Math.exp,j0=Math.hypot,cf=Math.log,L0=Math.pow,ut=Math.sin,Le=Math.sign||function(t){return t>0?1:t<0?-1:0},Jn=Math.sqrt,q0=Math.tan;function H_(t){return t>1?0:t<-1?yt:Math.acos(t)}function le(t){return t>1?rn:t<-1?-rn:Math.asin(t)}function Dn(){}function ff(t,n){t&&V_.hasOwnProperty(t.type)&&V_[t.type](t,n)}var G_={Feature:function(t,n){ff(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)ff(e[r].geometry,n)}},V_={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){U0(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)U0(e[r],n,0)},Polygon:function(t,n){Y_(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)Y_(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)ff(e[r],n)}};function U0(t,n,e){var r,i=-1,a=t.length-e;for(n.lineStart();++i<a;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function Y_(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)U0(t[e],n,1);n.polygonEnd()}function si(t,n){t&&G_.hasOwnProperty(t.type)?G_[t.type](t,n):ff(t,n)}var X_,J_,I0,W0,H0,Kt,ce,an,_e,Ua,K_,Q_,Ho,wu,na,ui,df=new Gn,hf=new Gn,Mr={point:Dn,lineStart:Dn,lineEnd:Dn,polygonStart:function(){df=new Gn,Mr.lineStart=M4,Mr.lineEnd=B4},polygonEnd:function(){var t=+df;hf.add(t<0?Xn+t:t),this.lineStart=this.lineEnd=this.point=Dn},sphere:function(){hf.add(Xn)}};function M4(){Mr.point=z4}function B4(){Z_(X_,J_)}function z4(t,n){Mr.point=Z_,X_=t,J_=n,I0=t*=gt,W0=ct(n=(n*=gt)/2+uf),H0=ut(n)}function Z_(t,n){var e=(t*=gt)-I0,r=e>=0?1:-1,i=r*e,a=ct(n=(n*=gt)/2+uf),o=ut(n),s=H0*o,u=W0*a+s*ct(i),l=s*r*ut(i);df.add(je(l,u)),I0=t,W0=a,H0=o}function pf(t){return[je(t[1],t[0]),le(t[2])]}function Ia(t){var n=t[0],e=t[1],r=ct(e);return[r*ct(n),r*ut(n),ut(e)]}function mf(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Go(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function G0(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function gf(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function yf(t){var n=Jn(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var Au,vf,bf,xf,wf,Af,_f,kf,V0,Y0,X0,tk,nk,Kn,Qn,Zn,li={point:J0,lineStart:rk,lineEnd:ik,polygonStart:function(){li.point=ak,li.lineStart=O4,li.lineEnd=N4,wu=new Gn,Mr.polygonStart()},polygonEnd:function(){Mr.polygonEnd(),li.point=J0,li.lineStart=rk,li.lineEnd=ik,df<0?(Kt=-(an=180),ce=-(_e=90)):wu>dt?_e=90:wu<-1e-6&&(ce=-90),ui[0]=Kt,ui[1]=an},sphere:function(){Kt=-(an=180),ce=-(_e=90)}};function J0(t,n){na.push(ui=[Kt=t,an=t]),n<ce&&(ce=n),n>_e&&(_e=n)}function ek(t,n){var e=Ia([t*gt,n*gt]);if(Ho){var r=Go(Ho,e),i=Go([r[1],-r[0],0],r);yf(i),i=pf(i);var a,o=t-Ua,s=o>0?1:-1,u=i[0]*on*s,l=At(o)>180;l^(s*Ua<u&&u<s*t)?(a=i[1]*on)>_e&&(_e=a):l^(s*Ua<(u=(u+360)%360-180)&&u<s*t)?(a=-i[1]*on)<ce&&(ce=a):(n<ce&&(ce=n),n>_e&&(_e=n)),l?t<Ua?ke(Kt,t)>ke(Kt,an)&&(an=t):ke(t,an)>ke(Kt,an)&&(Kt=t):an>=Kt?(t<Kt&&(Kt=t),t>an&&(an=t)):t>Ua?ke(Kt,t)>ke(Kt,an)&&(an=t):ke(t,an)>ke(Kt,an)&&(Kt=t)}else na.push(ui=[Kt=t,an=t]);n<ce&&(ce=n),n>_e&&(_e=n),Ho=e,Ua=t}function rk(){li.point=ek}function ik(){ui[0]=Kt,ui[1]=an,li.point=J0,Ho=null}function ak(t,n){if(Ho){var e=t-Ua;wu.add(At(e)>180?e+(e>0?360:-360):e)}else K_=t,Q_=n;Mr.point(t,n),ek(t,n)}function O4(){Mr.lineStart()}function N4(){ak(K_,Q_),Mr.lineEnd(),At(wu)>dt&&(Kt=-(an=180)),ui[0]=Kt,ui[1]=an,Ho=null}function ke(t,n){return(n-=t)<0?n+360:n}function R4(t,n){return t[0]-n[0]}function ok(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var er={sphere:Dn,point:K0,lineStart:sk,lineEnd:uk,polygonStart:function(){er.lineStart=j4,er.lineEnd=L4},polygonEnd:function(){er.lineStart=sk,er.lineEnd=uk}};function K0(t,n){t*=gt;var e=ct(n*=gt);_u(e*ct(t),e*ut(t),ut(n))}function _u(t,n,e){++Au,bf+=(t-bf)/Au,xf+=(n-xf)/Au,wf+=(e-wf)/Au}function sk(){er.point=T4}function T4(t,n){t*=gt;var e=ct(n*=gt);Kn=e*ct(t),Qn=e*ut(t),Zn=ut(n),er.point=P4,_u(Kn,Qn,Zn)}function P4(t,n){t*=gt;var e=ct(n*=gt),r=e*ct(t),i=e*ut(t),a=ut(n),o=je(Jn((o=Qn*a-Zn*i)*o+(o=Zn*r-Kn*a)*o+(o=Kn*i-Qn*r)*o),Kn*r+Qn*i+Zn*a);vf+=o,Af+=o*(Kn+(Kn=r)),_f+=o*(Qn+(Qn=i)),kf+=o*(Zn+(Zn=a)),_u(Kn,Qn,Zn)}function uk(){er.point=K0}function j4(){er.point=q4}function L4(){lk(tk,nk),er.point=K0}function q4(t,n){tk=t,nk=n,t*=gt,n*=gt,er.point=lk;var e=ct(n);Kn=e*ct(t),Qn=e*ut(t),Zn=ut(n),_u(Kn,Qn,Zn)}function lk(t,n){t*=gt;var e=ct(n*=gt),r=e*ct(t),i=e*ut(t),a=ut(n),o=Qn*a-Zn*i,s=Zn*r-Kn*a,u=Kn*i-Qn*r,l=j0(o,s,u),c=le(l),f=l&&-c/l;V0.add(f*o),Y0.add(f*s),X0.add(f*u),vf+=c,Af+=c*(Kn+(Kn=r)),_f+=c*(Qn+(Qn=i)),kf+=c*(Zn+(Zn=a)),_u(Kn,Qn,Zn)}function Q0(t,n){function e(r,i){return r=t(r,i),n(r[0],r[1])}return t.invert&&n.invert&&(e.invert=function(r,i){return(r=n.invert(r,i))&&t.invert(r[0],r[1])}),e}function Z0(t,n){return At(t)>yt&&(t-=Math.round(t/Xn)*Xn),[t,n]}function ck(t,n,e){return(t%=Xn)?n||e?Q0(dk(t),hk(n,e)):dk(t):n||e?hk(n,e):Z0}function fk(t){return function(n,e){return At(n+=t)>yt&&(n-=Math.round(n/Xn)*Xn),[n,e]}}function dk(t){var n=fk(t);return n.invert=fk(-t),n}function hk(t,n){var e=ct(t),r=ut(t),i=ct(n),a=ut(n);function o(s,u){var l=ct(u),c=ct(s)*l,f=ut(s)*l,d=ut(u),h=d*e+c*r;return[je(f*i-h*a,c*e-d*r),le(h*i+f*a)]}return o.invert=function(s,u){var l=ct(u),c=ct(s)*l,f=ut(s)*l,d=ut(u),h=d*i-f*a;return[je(f*i+d*a,c*e+h*r),le(h*e-c*r)]},o}function pk(t,n){(n=Ia(n))[0]-=t,yf(n);var e=H_(-n[1]);return((-n[2]<0?-e:e)+Xn-dt)%Xn}function mk(){var t,n=[];return{point:function(e,r,i){t.push([e,r,i])},lineStart:function(){n.push(t=[])},lineEnd:Dn,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function Df(t,n){return At(t[0]-n[0])<dt&&At(t[1]-n[1])<dt}function Ff(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function gk(t,n,e,r,i){var a,o,s=[],u=[];if(t.forEach(function(p){if(!((m=p.length-1)<=0)){var m,g,y=p[0],v=p[m];if(Df(y,v)){if(!y[2]&&!v[2]){for(i.lineStart(),a=0;a<m;++a)i.point((y=p[a])[0],y[1]);return void i.lineEnd()}v[0]+=2e-6}s.push(g=new Ff(y,p,null,!0)),u.push(g.o=new Ff(y,null,g,!1)),s.push(g=new Ff(v,p,null,!1)),u.push(g.o=new Ff(v,null,g,!0))}}),s.length){for(u.sort(n),yk(s),yk(u),a=0,o=u.length;a<o;++a)u[a].e=e=!e;for(var l,c,f=s[0];;){for(var d=f,h=!0;d.v;)if((d=d.n)===f)return;l=d.z,i.lineStart();do{if(d.v=d.o.v=!0,d.e){if(h)for(a=0,o=l.length;a<o;++a)i.point((c=l[a])[0],c[1]);else r(d.x,d.n.x,1,i);d=d.n}else{if(h)for(l=d.p.z,a=l.length-1;a>=0;--a)i.point((c=l[a])[0],c[1]);else r(d.x,d.p.x,-1,i);d=d.p}l=(d=d.o).z,h=!h}while(!d.v);i.lineEnd()}}}function yk(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function tg(t){return At(t[0])<=yt?t[0]:Le(t[0])*((At(t[0])+yt)%Xn-yt)}function vk(t,n,e,r){return function(i){var a,o,s,u=n(i),l=mk(),c=n(l),f=!1,d={point:h,lineStart:m,lineEnd:g,polygonStart:function(){d.point=y,d.lineStart=v,d.lineEnd=x,o=[],a=[]},polygonEnd:function(){d.point=h,d.lineStart=m,d.lineEnd=g,o=Vx(o);var b=function(w,A){var _=tg(A),k=A[1],D=ut(k),C=[ut(_),-ct(_),0],F=0,E=0,$=new Gn;D===1?k=rn+dt:D===-1&&(k=-rn-dt);for(var M=0,S=w.length;M<S;++M)if(z=(B=w[M]).length)for(var B,z,j=B[z-1],W=tg(j),K=j[1]/2+uf,q=ut(K),at=ct(K),ot=0;ot<z;++ot,W=mt,q=X,at=Mt,j=it){var it=B[ot],mt=tg(it),pt=it[1]/2+uf,X=ut(pt),Mt=ct(pt),Tt=mt-W,kt=Tt>=0?1:-1,Et=kt*Tt,tn=Et>yt,nn=q*X;if($.add(je(nn*kt*ut(Et),at*Mt+nn*ct(Et))),F+=tn?Tt+kt*Xn:Tt,tn^W>=_^mt>=_){var It=Go(Ia(j),Ia(it));yf(It);var be=Go(C,It);yf(be);var zn=(tn^Tt>=0?-1:1)*le(be[2]);(k>zn||k===zn&&(It[0]||It[1]))&&(E+=tn^Tt>=0?1:-1)}}return(F<-1e-6||F<dt&&$<-1e-12)^1&E}(a,r);o.length?(f||(i.polygonStart(),f=!0),gk(o,I4,b,e,i)):b&&(f||(i.polygonStart(),f=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),f&&(i.polygonEnd(),f=!1),o=a=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(b,w){t(b,w)&&i.point(b,w)}function p(b,w){u.point(b,w)}function m(){d.point=p,u.lineStart()}function g(){d.point=h,u.lineEnd()}function y(b,w){s.push([b,w]),c.point(b,w)}function v(){c.lineStart(),s=[]}function x(){y(s[0][0],s[0][1]),c.lineEnd();var b,w,A,_,k=c.clean(),D=l.result(),C=D.length;if(s.pop(),a.push(s),s=null,C)if(1&k){if((w=(A=D[0]).length-1)>0){for(f||(i.polygonStart(),f=!0),i.lineStart(),b=0;b<w;++b)i.point((_=A[b])[0],_[1]);i.lineEnd()}}else C>1&&2&k&&D.push(D.pop().concat(D.shift())),o.push(D.filter(U4))}return d}}function U4(t){return t.length>1}function I4(t,n){return((t=t.x)[0]<0?t[1]-rn-dt:rn-t[1])-((n=n.x)[0]<0?n[1]-rn-dt:rn-n[1])}Z0.invert=Z0;const bk=vk(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(a,o){var s=a>0?yt:-yt,u=At(a-e);At(u-yt)<dt?(t.point(e,r=(r+o)/2>0?rn:-rn),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(s,r),t.point(a,r),n=0):i!==s&&u>=yt&&(At(e-i)<dt&&(e-=i*dt),At(a-s)<dt&&(a-=s*dt),r=function(l,c,f,d){var h,p,m=ut(l-f);return At(m)>dt?Wo((ut(c)*(p=ct(d))*ut(f)-ut(d)*(h=ct(c))*ut(l))/(h*p*m)):(c+d)/2}(e,r,a,o),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(s,r),n=0),t.point(e=a,r=o),i=s},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(t==null)i=e*rn,r.point(-yt,i),r.point(0,i),r.point(yt,i),r.point(yt,0),r.point(yt,-i),r.point(0,-i),r.point(-yt,-i),r.point(-yt,0),r.point(-yt,i);else if(At(t[0]-n[0])>dt){var a=t[0]<n[0]?yt:-yt;i=e*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(n[0],n[1])},[-yt,-rn]);function W4(t){var n=ct(t),e=2*gt,r=n>0,i=At(n)>dt;function a(u,l){return ct(u)*ct(l)>n}function o(u,l,c){var f=[1,0,0],d=Go(Ia(u),Ia(l)),h=mf(d,d),p=d[0],m=h-p*p;if(!m)return!c&&u;var g=n*h/m,y=-n*p/m,v=Go(f,d),x=gf(f,g);G0(x,gf(d,y));var b=v,w=mf(x,b),A=mf(b,b),_=w*w-A*(mf(x,x)-1);if(!(_<0)){var k=Jn(_),D=gf(b,(-w-k)/A);if(G0(D,x),D=pf(D),!c)return D;var C,F=u[0],E=l[0],$=u[1],M=l[1];E<F&&(C=F,F=E,E=C);var S=E-F,B=At(S-yt)<dt;if(!B&&M<$&&(C=$,$=M,M=C),B||S<dt?B?$+M>0^D[1]<(At(D[0]-F)<dt?$:M):$<=D[1]&&D[1]<=M:S>yt^(F<=D[0]&&D[0]<=E)){var z=gf(b,(-w+k)/A);return G0(z,x),[D,pf(z)]}}}function s(u,l){var c=r?t:yt-t,f=0;return u<-c?f|=1:u>c&&(f|=2),l<-c?f|=4:l>c&&(f|=8),f}return vk(a,function(u){var l,c,f,d,h;return{lineStart:function(){d=f=!1,h=1},point:function(p,m){var g,y=[p,m],v=a(p,m),x=r?v?0:s(p,m):v?s(p+(p<0?yt:-yt),m):0;if(!l&&(d=f=v)&&u.lineStart(),v!==f&&(!(g=o(l,y))||Df(l,g)||Df(y,g))&&(y[2]=1),v!==f)h=0,v?(u.lineStart(),g=o(y,l),u.point(g[0],g[1])):(g=o(l,y),u.point(g[0],g[1],2),u.lineEnd()),l=g;else if(i&&l&&r^v){var b;x&c||!(b=o(y,l,!0))||(h=0,r?(u.lineStart(),u.point(b[0][0],b[0][1]),u.point(b[1][0],b[1][1]),u.lineEnd()):(u.point(b[1][0],b[1][1]),u.lineEnd(),u.lineStart(),u.point(b[0][0],b[0][1],3)))}!v||l&&Df(l,y)||u.point(y[0],y[1]),l=y,f=v,c=x},lineEnd:function(){f&&u.lineEnd(),l=null},clean:function(){return h|(d&&f)<<1}}},function(u,l,c,f){(function(d,h,p,m,g,y){if(p){var v=ct(h),x=ut(h),b=m*p;g==null?(g=h+m*Xn,y=h-b/2):(g=pk(v,g),y=pk(v,y),(m>0?g<y:g>y)&&(g+=m*Xn));for(var w,A=g;m>0?A>y:A<y;A-=b)w=pf([v,-x*ct(A),-x*ut(A)]),d.point(w[0],w[1])}})(f,t,e,c,u,l)},r?[0,-t]:[-yt,t-yt])}var ku=1e9,Cf=-ku;function xk(t,n,e,r){function i(l,c){return t<=l&&l<=e&&n<=c&&c<=r}function a(l,c,f,d){var h=0,p=0;if(l==null||(h=o(l,f))!==(p=o(c,f))||u(l,c)<0^f>0)do d.point(h===0||h===3?t:e,h>1?r:n);while((h=(h+f+4)%4)!==p);else d.point(c[0],c[1])}function o(l,c){return At(l[0]-t)<dt?c>0?0:3:At(l[0]-e)<dt?c>0?2:1:At(l[1]-n)<dt?c>0?1:0:c>0?3:2}function s(l,c){return u(l.x,c.x)}function u(l,c){var f=o(l,1),d=o(c,1);return f!==d?f-d:f===0?c[1]-l[1]:f===1?l[0]-c[0]:f===2?l[1]-c[1]:c[0]-l[0]}return function(l){var c,f,d,h,p,m,g,y,v,x,b,w=l,A=mk(),_={point:k,lineStart:function(){_.point=D,f&&f.push(d=[]),x=!0,v=!1,g=y=NaN},lineEnd:function(){c&&(D(h,p),m&&v&&A.rejoin(),c.push(A.result())),_.point=k,v&&w.lineEnd()},polygonStart:function(){w=A,c=[],f=[],b=!0},polygonEnd:function(){var C=function(){for(var $=0,M=0,S=f.length;M<S;++M)for(var B,z,j=f[M],W=1,K=j.length,q=j[0],at=q[0],ot=q[1];W<K;++W)B=at,z=ot,at=(q=j[W])[0],ot=q[1],z<=r?ot>r&&(at-B)*(r-z)>(ot-z)*(t-B)&&++$:ot<=r&&(at-B)*(r-z)<(ot-z)*(t-B)&&--$;return $}(),F=b&&C,E=(c=Vx(c)).length;(F||E)&&(l.polygonStart(),F&&(l.lineStart(),a(null,null,1,l),l.lineEnd()),E&&gk(c,s,C,a,l),l.polygonEnd()),w=l,c=f=d=null}};function k(C,F){i(C,F)&&w.point(C,F)}function D(C,F){var E=i(C,F);if(f&&d.push([C,F]),x)h=C,p=F,m=E,x=!1,E&&(w.lineStart(),w.point(C,F));else if(E&&v)w.point(C,F);else{var $=[g=Math.max(Cf,Math.min(ku,g)),y=Math.max(Cf,Math.min(ku,y))],M=[C=Math.max(Cf,Math.min(ku,C)),F=Math.max(Cf,Math.min(ku,F))];(function(S,B,z,j,W,K){var q,at=S[0],ot=S[1],it=0,mt=1,pt=B[0]-at,X=B[1]-ot;if(q=z-at,pt||!(q>0)){if(q/=pt,pt<0){if(q<it)return;q<mt&&(mt=q)}else if(pt>0){if(q>mt)return;q>it&&(it=q)}if(q=W-at,pt||!(q<0)){if(q/=pt,pt<0){if(q>mt)return;q>it&&(it=q)}else if(pt>0){if(q<it)return;q<mt&&(mt=q)}if(q=j-ot,X||!(q>0)){if(q/=X,X<0){if(q<it)return;q<mt&&(mt=q)}else if(X>0){if(q>mt)return;q>it&&(it=q)}if(q=K-ot,X||!(q<0)){if(q/=X,X<0){if(q>mt)return;q>it&&(it=q)}else if(X>0){if(q<it)return;q<mt&&(mt=q)}return it>0&&(S[0]=at+it*pt,S[1]=ot+it*X),mt<1&&(B[0]=at+mt*pt,B[1]=ot+mt*X),!0}}}}})($,M,t,n,e,r)?(v||(w.lineStart(),w.point($[0],$[1])),w.point(M[0],M[1]),E||w.lineEnd(),b=!1):E&&(w.lineStart(),w.point(C,F),b=!1)}g=C,y=F,v=E}return _}}function wk(t,n,e){var r=xe(t,n-dt,e).concat(n);return function(i){return r.map(function(a){return[i,a]})}}function Ak(t,n,e){var r=xe(t,n-dt,e).concat(n);return function(i){return r.map(function(a){return[a,i]})}}const Du=t=>t;var _k,kk,ng,eg,rg=new Gn,ig=new Gn,ci={point:Dn,lineStart:Dn,lineEnd:Dn,polygonStart:function(){ci.lineStart=H4,ci.lineEnd=V4},polygonEnd:function(){ci.lineStart=ci.lineEnd=ci.point=Dn,rg.add(At(ig)),ig=new Gn},result:function(){var t=rg/2;return rg=new Gn,t}};function H4(){ci.point=G4}function G4(t,n){ci.point=Dk,_k=ng=t,kk=eg=n}function Dk(t,n){ig.add(eg*t-ng*n),ng=t,eg=n}function V4(){Dk(_k,kk)}var Vo=1/0,Ef=Vo,Fu=-Vo,$f=Fu,Sf={point:function(t,n){t<Vo&&(Vo=t),t>Fu&&(Fu=t),n<Ef&&(Ef=n),n>$f&&($f=n)},lineStart:Dn,lineEnd:Dn,polygonStart:Dn,polygonEnd:Dn,result:function(){var t=[[Vo,Ef],[Fu,$f]];return Fu=$f=-(Ef=Vo=1/0),t}},Fk,Ck,Br,zr,ag=0,og=0,Cu=0,Mf=0,Bf=0,Yo=0,sg=0,ug=0,Eu=0,qe={point:Wa,lineStart:Ek,lineEnd:$k,polygonStart:function(){qe.lineStart=J4,qe.lineEnd=K4},polygonEnd:function(){qe.point=Wa,qe.lineStart=Ek,qe.lineEnd=$k},result:function(){var t=Eu?[sg/Eu,ug/Eu]:Yo?[Mf/Yo,Bf/Yo]:Cu?[ag/Cu,og/Cu]:[NaN,NaN];return ag=og=Cu=Mf=Bf=Yo=sg=ug=Eu=0,t}};function Wa(t,n){ag+=t,og+=n,++Cu}function Ek(){qe.point=Y4}function Y4(t,n){qe.point=X4,Wa(Br=t,zr=n)}function X4(t,n){var e=t-Br,r=n-zr,i=Jn(e*e+r*r);Mf+=i*(Br+t)/2,Bf+=i*(zr+n)/2,Yo+=i,Wa(Br=t,zr=n)}function $k(){qe.point=Wa}function J4(){qe.point=Q4}function K4(){Sk(Fk,Ck)}function Q4(t,n){qe.point=Sk,Wa(Fk=Br=t,Ck=zr=n)}function Sk(t,n){var e=t-Br,r=n-zr,i=Jn(e*e+r*r);Mf+=i*(Br+t)/2,Bf+=i*(zr+n)/2,Yo+=i,sg+=(i=zr*t-Br*n)*(Br+t),ug+=i*(zr+n),Eu+=3*i,Wa(Br=t,zr=n)}function Mk(t){this._context=t}Mk.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Xn)}},result:Dn};var lg,Bk,zk,$u,Su,cg=new Gn,Mu={point:Dn,lineStart:function(){Mu.point=Z4},lineEnd:function(){lg&&Ok(Bk,zk),Mu.point=Dn},polygonStart:function(){lg=!0},polygonEnd:function(){lg=null},result:function(){var t=+cg;return cg=new Gn,t}};function Z4(t,n){Mu.point=Ok,Bk=$u=t,zk=Su=n}function Ok(t,n){$u-=t,Su-=n,cg.add(Jn($u*$u+Su*Su)),$u=t,Su=n}let Nk,zf,Rk,Tk;class Pk{constructor(n){this._append=n==null?jk:function(e){const r=Math.floor(e);if(!(r>=0))throw new RangeError(`invalid digits: ${e}`);if(r>15)return jk;if(r!==Nk){const i=10**r;Nk=r,zf=function(a){let o=1;this._+=a[0];for(const s=a.length;o<s;++o)this._+=Math.round(arguments[o]*i)/i+a[o]}}return zf}(n),this._radius=4.5,this._=""}pointRadius(n){return this._radius=+n,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(n,e){switch(this._point){case 0:this._append`M${n},${e}`,this._point=1;break;case 1:this._append`L${n},${e}`;break;default:if(this._append`M${n},${e}`,this._radius!==Rk||this._append!==zf){const r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,Rk=r,zf=this._append,Tk=this._,this._=i}this._+=Tk}}result(){const n=this._;return this._="",n.length?n:null}}function jk(t){let n=1;this._+=t[0];for(const e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function Lk(t,n){let e,r,i=3,a=4.5;function o(s){return s&&(typeof a=="function"&&r.pointRadius(+a.apply(this,arguments)),si(s,e(r))),r.result()}return o.area=function(s){return si(s,e(ci)),ci.result()},o.measure=function(s){return si(s,e(Mu)),Mu.result()},o.bounds=function(s){return si(s,e(Sf)),Sf.result()},o.centroid=function(s){return si(s,e(qe)),qe.result()},o.projection=function(s){return arguments.length?(e=s==null?(t=null,Du):(t=s).stream,o):t},o.context=function(s){return arguments.length?(r=s==null?(n=null,new Pk(i)):new Mk(n=s),typeof a!="function"&&r.pointRadius(a),o):n},o.pointRadius=function(s){return arguments.length?(a=typeof s=="function"?s:(r.pointRadius(+s),+s),o):a},o.digits=function(s){if(!arguments.length)return i;if(s==null)i=null;else{const u=Math.floor(s);if(!(u>=0))throw new RangeError(`invalid digits: ${s}`);i=u}return n===null&&(r=new Pk(i)),o},o.projection(t).digits(i).context(n)}function Of(t){return function(n){var e=new fg;for(var r in t)e[r]=t[r];return e.stream=n,e}}function fg(){}function dg(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),si(e,t.stream(Sf)),n(Sf.result()),r!=null&&t.clipExtent(r),t}function Nf(t,n,e){return dg(t,function(r){var i=n[1][0]-n[0][0],a=n[1][1]-n[0][1],o=Math.min(i/(r[1][0]-r[0][0]),a/(r[1][1]-r[0][1])),s=+n[0][0]+(i-o*(r[1][0]+r[0][0]))/2,u=+n[0][1]+(a-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([s,u])},e)}function hg(t,n,e){return Nf(t,[[0,0],n],e)}function pg(t,n,e){return dg(t,function(r){var i=+n,a=i/(r[1][0]-r[0][0]),o=(i-a*(r[1][0]+r[0][0]))/2,s=-a*r[0][1];t.scale(150*a).translate([o,s])},e)}function mg(t,n,e){return dg(t,function(r){var i=+n,a=i/(r[1][1]-r[0][1]),o=-a*r[0][0],s=(i-a*(r[1][1]+r[0][1]))/2;t.scale(150*a).translate([o,s])},e)}fg.prototype={constructor:fg,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var tM=ct(30*gt);function qk(t,n){return+n?function(e,r){function i(a,o,s,u,l,c,f,d,h,p,m,g,y,v){var x=f-a,b=d-o,w=x*x+b*b;if(w>4*r&&y--){var A=u+p,_=l+m,k=c+g,D=Jn(A*A+_*_+k*k),C=le(k/=D),F=At(At(k)-1)<dt||At(s-h)<dt?(s+h)/2:je(_,A),E=e(F,C),$=E[0],M=E[1],S=$-a,B=M-o,z=b*S-x*B;(z*z/w>r||At((x*S+b*B)/w-.5)>.3||u*p+l*m+c*g<tM)&&(i(a,o,s,u,l,c,$,M,F,A/=D,_/=D,k,y,v),v.point($,M),i($,M,F,A,_,k,f,d,h,p,m,g,y,v))}}return function(a){var o,s,u,l,c,f,d,h,p,m,g,y,v={point:x,lineStart:b,lineEnd:A,polygonStart:function(){a.polygonStart(),v.lineStart=_},polygonEnd:function(){a.polygonEnd(),v.lineStart=b}};function x(C,F){C=e(C,F),a.point(C[0],C[1])}function b(){h=NaN,v.point=w,a.lineStart()}function w(C,F){var E=Ia([C,F]),$=e(C,F);i(h,p,d,m,g,y,h=$[0],p=$[1],d=C,m=E[0],g=E[1],y=E[2],16,a),a.point(h,p)}function A(){v.point=x,a.lineEnd()}function _(){b(),v.point=k,v.lineEnd=D}function k(C,F){w(o=C,F),s=h,u=p,l=m,c=g,f=y,v.point=w}function D(){i(h,p,d,m,g,y,s,u,o,l,c,f,16,a),v.lineEnd=A,A()}return v}}(t,n):function(e){return Of({point:function(r,i){r=e(r,i),this.stream.point(r[0],r[1])}})}(t)}var nM=Of({point:function(t,n){this.stream.point(t*gt,n*gt)}});function Uk(t,n,e,r,i,a){if(!a)return function(m,g,y,v,x){function b(w,A){return[g+m*(w*=v),y-m*(A*=x)]}return b.invert=function(w,A){return[(w-g)/m*v,(y-A)/m*x]},b}(t,n,e,r,i);var o=ct(a),s=ut(a),u=o*t,l=s*t,c=o/t,f=s/t,d=(s*e-o*n)/t,h=(s*n+o*e)/t;function p(m,g){return[u*(m*=r)-l*(g*=i)+n,e-l*m-u*g]}return p.invert=function(m,g){return[r*(c*m-f*g+d),i*(h-f*m-c*g)]},p}function Or(t){return Ik(function(){return t})()}function Ik(t){var n,e,r,i,a,o,s,u,l,c,f=150,d=480,h=250,p=0,m=0,g=0,y=0,v=0,x=0,b=1,w=1,A=null,_=bk,k=null,D=Du,C=.5;function F(S){return u(S[0]*gt,S[1]*gt)}function E(S){return(S=u.invert(S[0],S[1]))&&[S[0]*on,S[1]*on]}function $(){var S=Uk(f,0,0,b,w,x).apply(null,n(p,m)),B=Uk(f,d-S[0],h-S[1],b,w,x);return e=ck(g,y,v),s=Q0(n,B),u=Q0(e,s),o=qk(s,C),M()}function M(){return l=c=null,F}return F.stream=function(S){return l&&c===S?l:l=nM(function(B){return Of({point:function(z,j){var W=B(z,j);return this.stream.point(W[0],W[1])}})}(e)(_(o(D(c=S)))))},F.preclip=function(S){return arguments.length?(_=S,A=void 0,M()):_},F.postclip=function(S){return arguments.length?(D=S,k=r=i=a=null,M()):D},F.clipAngle=function(S){return arguments.length?(_=+S?W4(A=S*gt):(A=null,bk),M()):A*on},F.clipExtent=function(S){return arguments.length?(D=S==null?(k=r=i=a=null,Du):xk(k=+S[0][0],r=+S[0][1],i=+S[1][0],a=+S[1][1]),M()):k==null?null:[[k,r],[i,a]]},F.scale=function(S){return arguments.length?(f=+S,$()):f},F.translate=function(S){return arguments.length?(d=+S[0],h=+S[1],$()):[d,h]},F.center=function(S){return arguments.length?(p=S[0]%360*gt,m=S[1]%360*gt,$()):[p*on,m*on]},F.rotate=function(S){return arguments.length?(g=S[0]%360*gt,y=S[1]%360*gt,v=S.length>2?S[2]%360*gt:0,$()):[g*on,y*on,v*on]},F.angle=function(S){return arguments.length?(x=S%360*gt,$()):x*on},F.reflectX=function(S){return arguments.length?(b=S?-1:1,$()):b<0},F.reflectY=function(S){return arguments.length?(w=S?-1:1,$()):w<0},F.precision=function(S){return arguments.length?(o=qk(s,C=S*S),M()):Jn(C)},F.fitExtent=function(S,B){return Nf(F,S,B)},F.fitSize=function(S,B){return hg(F,S,B)},F.fitWidth=function(S,B){return pg(F,S,B)},F.fitHeight=function(S,B){return mg(F,S,B)},function(){return n=t.apply(this,arguments),F.invert=n.invert&&E,$()}}function gg(t){var n=0,e=yt/3,r=Ik(t),i=r(n,e);return i.parallels=function(a){return arguments.length?r(n=a[0]*gt,e=a[1]*gt):[n*on,e*on]},i}function eM(t,n){var e=ut(t),r=(e+ut(n))/2;if(At(r)<dt)return function(s){var u=ct(s);function l(c,f){return[c*u,ut(f)/u]}return l.invert=function(c,f){return[c/u,le(f*u)]},l}(t);var i=1+e*(2*r-e),a=Jn(i)/r;function o(s,u){var l=Jn(i-2*r*ut(u))/r;return[l*ut(s*=r),a-l*ct(s)]}return o.invert=function(s,u){var l=a-u,c=je(s,At(l))*Le(l);return l*r<0&&(c-=yt*Le(s)*Le(l)),[c/r,le((i-(s*s+l*l)*r*r)/(2*r))]},o}function Rf(){return gg(eM).scale(155.424).center([0,33.6442])}function Wk(){return Rf().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Hk(t){return function(n,e){var r=ct(n),i=ct(e),a=t(r*i);return a===1/0?[2,0]:[a*i*ut(n),a*ut(e)]}}function Bu(t){return function(n,e){var r=Jn(n*n+e*e),i=t(r),a=ut(i),o=ct(i);return[je(n*a,r*o),le(r&&e*a/r)]}}var Gk=Hk(function(t){return Jn(2/(1+t))});Gk.invert=Bu(function(t){return 2*le(t/2)});var Vk=Hk(function(t){return(t=H_(t))&&t/ut(t)});function Tf(t,n){return[t,cf(q0((rn+n)/2))]}function Yk(t){var n,e,r,i=Or(t),a=i.center,o=i.scale,s=i.translate,u=i.clipExtent,l=null;function c(){var f=yt*o(),d=i(function(h){function p(m){return(m=h(m[0]*gt,m[1]*gt))[0]*=on,m[1]*=on,m}return h=ck(h[0]*gt,h[1]*gt,h.length>2?h[2]*gt:0),p.invert=function(m){return(m=h.invert(m[0]*gt,m[1]*gt))[0]*=on,m[1]*=on,m},p}(i.rotate()).invert([0,0]));return u(l==null?[[d[0]-f,d[1]-f],[d[0]+f,d[1]+f]]:t===Tf?[[Math.max(d[0]-f,l),n],[Math.min(d[0]+f,e),r]]:[[l,Math.max(d[1]-f,n)],[e,Math.min(d[1]+f,r)]])}return i.scale=function(f){return arguments.length?(o(f),c()):o()},i.translate=function(f){return arguments.length?(s(f),c()):s()},i.center=function(f){return arguments.length?(a(f),c()):a()},i.clipExtent=function(f){return arguments.length?(f==null?l=n=e=r=null:(l=+f[0][0],n=+f[0][1],e=+f[1][0],r=+f[1][1]),c()):l==null?null:[[l,n],[e,r]]},c()}function Pf(t){return q0((rn+t)/2)}function rM(t,n){var e=ct(t),r=t===n?ut(t):cf(e/ct(n))/cf(Pf(n)/Pf(t)),i=e*L0(Pf(t),r)/r;if(!r)return Tf;function a(o,s){i>0?s<-rn+dt&&(s=-rn+dt):s>rn-dt&&(s=rn-dt);var u=i/L0(Pf(s),r);return[u*ut(r*o),i-u*ct(r*o)]}return a.invert=function(o,s){var u=i-s,l=Le(r)*Jn(o*o+u*u),c=je(o,At(u))*Le(u);return u*r<0&&(c-=yt*Le(o)*Le(u)),[c/r,2*Wo(L0(i/l,1/r))-rn]},a}function jf(t,n){return[t,n]}function iM(t,n){var e=ct(t),r=t===n?ut(t):(e-ct(n))/(n-t),i=e/r+t;if(At(r)<dt)return jf;function a(o,s){var u=i-s,l=r*o;return[u*ut(l),i-u*ct(l)]}return a.invert=function(o,s){var u=i-s,l=je(o,At(u))*Le(u);return u*r<0&&(l-=yt*Le(o)*Le(u)),[l/r,i-Le(r)*Jn(o*o+u*u)]},a}Vk.invert=Bu(function(t){return t}),Tf.invert=function(t,n){return[t,2*Wo(W_(n))-rn]},jf.invert=jf;var zu=1.340264,Ou=-.081106,Nu=893e-6,Ru=.003796,Lf=Jn(3)/2;function Xk(t,n){var e=le(Lf*ut(n)),r=e*e,i=r*r*r;return[t*ct(e)/(Lf*(zu+3*Ou*r+i*(7*Nu+9*Ru*r))),e*(zu+Ou*r+i*(Nu+Ru*r))]}function Jk(t,n){var e=ct(n),r=ct(t)*e;return[e*ut(t)/r,ut(n)/r]}function Kk(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function Qk(t,n){return[ct(n)*ut(t),ut(n)]}function Zk(t,n){var e=ct(n),r=1+ct(t)*e;return[e*ut(t)/r,ut(n)/r]}function tD(t,n){return[cf(q0((rn+n)/2)),-t]}Xk.invert=function(t,n){for(var e,r=n,i=r*r,a=i*i*i,o=0;o<12&&(a=(i=(r-=e=(r*(zu+Ou*i+a*(Nu+Ru*i))-n)/(zu+3*Ou*i+a*(7*Nu+9*Ru*i)))*r)*i*i,!(At(e)<P0));++o);return[Lf*t*(zu+3*Ou*i+a*(7*Nu+9*Ru*i))/ct(r),le(ut(r)/Lf)]},Jk.invert=Bu(Wo),Kk.invert=function(t,n){var e,r=n,i=25;do{var a=r*r,o=a*a;r-=e=(r*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-n)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(At(e)>dt&&--i>0);return[t/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]},Qk.invert=Bu(le),Zk.invert=Bu(function(t){return 2*Wo(t)}),tD.invert=function(t,n){return[-n,2*Wo(W_(t))-rn]};var aM=Math.abs,yg=Math.cos,qf=Math.sin,nD=Math.PI,vg=nD/2,eD=function(t){return t>0?Math.sqrt(t):0}(2);function rD(t){return t>1?vg:t<-1?-vg:Math.asin(t)}function oM(t,n){var e,r=t*qf(n),i=30;do n-=e=(n+qf(n)-r)/(1+yg(n));while(aM(e)>1e-6&&--i>0);return n/2}var sM=function(t,n,e){function r(i,a){return[t*i*yg(a=oM(e,a)),n*qf(a)]}return r.invert=function(i,a){return a=rD(a/n),[i/(t*yg(a)),rD((2*a+qf(2*a))/e)]},r}(eD/vg,eD,nD);const uM=Lk(),bg=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function xg(t,n){if(!t||typeof t!="string")throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(Uf[t]=function(e,r){return function i(){const a=r();return a.type=e,a.path=Lk().projection(a),a.copy=a.copy||function(){const o=i();return bg.forEach(s=>{a[s]&&o[s](a[s]())}),o.path.pointRadius(a.path.pointRadius()),o},uw(a)}}(t,n),this):Uf[t]||null}function iD(t){return t&&t.path||uM}const Uf={albers:Wk,albersusa:function(){var t,n,e,r,i,a,o=Wk(),s=Rf().rotate([154,0]).center([-2,58.5]).parallels([55,65]),u=Rf().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(d,h){a=[d,h]}};function c(d){var h=d[0],p=d[1];return a=null,e.point(h,p),a||(r.point(h,p),a)||(i.point(h,p),a)}function f(){return t=n=null,c}return c.invert=function(d){var h=o.scale(),p=o.translate(),m=(d[0]-p[0])/h,g=(d[1]-p[1])/h;return(g>=.12&&g<.234&&m>=-.425&&m<-.214?s:g>=.166&&g<.234&&m>=-.214&&m<-.115?u:o).invert(d)},c.stream=function(d){return t&&n===d?t:(h=[o.stream(n=d),s.stream(d),u.stream(d)],p=h.length,t={point:function(m,g){for(var y=-1;++y<p;)h[y].point(m,g)},sphere:function(){for(var m=-1;++m<p;)h[m].sphere()},lineStart:function(){for(var m=-1;++m<p;)h[m].lineStart()},lineEnd:function(){for(var m=-1;++m<p;)h[m].lineEnd()},polygonStart:function(){for(var m=-1;++m<p;)h[m].polygonStart()},polygonEnd:function(){for(var m=-1;++m<p;)h[m].polygonEnd()}});var h,p},c.precision=function(d){return arguments.length?(o.precision(d),s.precision(d),u.precision(d),f()):o.precision()},c.scale=function(d){return arguments.length?(o.scale(d),s.scale(.35*d),u.scale(d),c.translate(o.translate())):o.scale()},c.translate=function(d){if(!arguments.length)return o.translate();var h=o.scale(),p=+d[0],m=+d[1];return e=o.translate(d).clipExtent([[p-.455*h,m-.238*h],[p+.455*h,m+.238*h]]).stream(l),r=s.translate([p-.307*h,m+.201*h]).clipExtent([[p-.425*h+dt,m+.12*h+dt],[p-.214*h-dt,m+.234*h-dt]]).stream(l),i=u.translate([p-.205*h,m+.212*h]).clipExtent([[p-.214*h+dt,m+.166*h+dt],[p-.115*h-dt,m+.234*h-dt]]).stream(l),f()},c.fitExtent=function(d,h){return Nf(c,d,h)},c.fitSize=function(d,h){return hg(c,d,h)},c.fitWidth=function(d,h){return pg(c,d,h)},c.fitHeight=function(d,h){return mg(c,d,h)},c.scale(1070)},azimuthalequalarea:function(){return Or(Gk).scale(124.75).clipAngle(179.999)},azimuthalequidistant:function(){return Or(Vk).scale(79.4188).clipAngle(179.999)},conicconformal:function(){return gg(rM).scale(109.5).parallels([30,30])},conicequalarea:Rf,conicequidistant:function(){return gg(iM).scale(131.154).center([0,13.9389])},equalEarth:function(){return Or(Xk).scale(177.158)},equirectangular:function(){return Or(jf).scale(152.63)},gnomonic:function(){return Or(Jk).scale(144.049).clipAngle(60)},identity:function(){var t,n,e,r,i,a,o,s=1,u=0,l=0,c=1,f=1,d=0,h=null,p=1,m=1,g=Of({point:function(b,w){var A=x([b,w]);this.stream.point(A[0],A[1])}}),y=Du;function v(){return p=s*c,m=s*f,a=o=null,x}function x(b){var w=b[0]*p,A=b[1]*m;if(d){var _=A*t-w*n;w=w*t+A*n,A=_}return[w+u,A+l]}return x.invert=function(b){var w=b[0]-u,A=b[1]-l;if(d){var _=A*t+w*n;w=w*t-A*n,A=_}return[w/p,A/m]},x.stream=function(b){return a&&o===b?a:a=g(y(o=b))},x.postclip=function(b){return arguments.length?(y=b,h=e=r=i=null,v()):y},x.clipExtent=function(b){return arguments.length?(y=b==null?(h=e=r=i=null,Du):xk(h=+b[0][0],e=+b[0][1],r=+b[1][0],i=+b[1][1]),v()):h==null?null:[[h,e],[r,i]]},x.scale=function(b){return arguments.length?(s=+b,v()):s},x.translate=function(b){return arguments.length?(u=+b[0],l=+b[1],v()):[u,l]},x.angle=function(b){return arguments.length?(n=ut(d=b%360*gt),t=ct(d),v()):d*on},x.reflectX=function(b){return arguments.length?(c=b?-1:1,v()):c<0},x.reflectY=function(b){return arguments.length?(f=b?-1:1,v()):f<0},x.fitExtent=function(b,w){return Nf(x,b,w)},x.fitSize=function(b,w){return hg(x,b,w)},x.fitWidth=function(b,w){return pg(x,b,w)},x.fitHeight=function(b,w){return mg(x,b,w)},x},mercator:function(){return Yk(Tf).scale(961/Xn)},mollweide:function(){return Or(sM).scale(169.529)},naturalEarth1:function(){return Or(Kk).scale(175.295)},orthographic:function(){return Or(Qk).scale(249.5).clipAngle(90.000001)},stereographic:function(){return Or(Zk).scale(250).clipAngle(142)},transversemercator:function(){var t=Yk(tD),n=t.center,e=t.rotate;return t.center=function(r){return arguments.length?n([-r[1],r[0]]):[(r=n())[1],-r[0]]},t.rotate=function(r){return arguments.length?e([r[0],r[1],r.length>2?r[2]+90:90]):[(r=e())[0],r[1],r[2]-90]},e([0,0,90]).scale(159.155)}};for(const t in Uf)xg(t,Uf[t]);function lM(){}const fi=[[],[[[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 aD(){var t=1,n=1,e=o;function r(s,u){return u.map(l=>i(s,l))}function i(s,u){var l=[],c=[];return function(f,d,h){var p,m,g,y,v,x,b=[],w=[];for(p=m=-1,y=f[0]>=d,fi[y<<1].forEach(A);++p<t-1;)g=y,y=f[p+1]>=d,fi[g|y<<1].forEach(A);for(fi[y|0].forEach(A);++m<n-1;){for(p=-1,y=f[m*t+t]>=d,v=f[m*t]>=d,fi[y<<1|v<<2].forEach(A);++p<t-1;)g=y,y=f[m*t+t+p+1]>=d,x=v,v=f[m*t+p+1]>=d,fi[g|y<<1|v<<2|x<<3].forEach(A);fi[y|v<<3].forEach(A)}for(p=-1,v=f[m*t]>=d,fi[v<<2].forEach(A);++p<t-1;)x=v,v=f[m*t+p+1]>=d,fi[v<<2|x<<3].forEach(A);function A(_){var k,D,C=[_[0][0]+p,_[0][1]+m],F=[_[1][0]+p,_[1][1]+m],E=a(C),$=a(F);(k=w[E])?(D=b[$])?(delete w[k.end],delete b[D.start],k===D?(k.ring.push(F),h(k.ring)):b[k.start]=w[D.end]={start:k.start,end:D.end,ring:k.ring.concat(D.ring)}):(delete w[k.end],k.ring.push(F),w[k.end=$]=k):(k=b[$])?(D=w[E])?(delete b[k.start],delete w[D.end],k===D?(k.ring.push(F),h(k.ring)):b[D.start]=w[k.end]={start:D.start,end:k.end,ring:D.ring.concat(k.ring)}):(delete b[k.start],k.ring.unshift(C),b[k.start=E]=k):b[E]=w[$]={start:E,end:$,ring:[C,F]}}fi[v<<3].forEach(A)}(s,u,f=>{e(f,s,u),function(d){for(var h=0,p=d.length,m=d[p-1][1]*d[0][0]-d[p-1][0]*d[0][1];++h<p;)m+=d[h-1][1]*d[h][0]-d[h-1][0]*d[h][1];return m}(f)>0?l.push([f]):c.push(f)}),c.forEach(f=>{for(var d,h=0,p=l.length;h<p;++h)if(cM((d=l[h])[0],f)!==-1)return void d.push(f)}),{type:"MultiPolygon",value:u,coordinates:l}}function a(s){return 2*s[0]+s[1]*(t+1)*4}function o(s,u,l){s.forEach(c=>{var f,d=c[0],h=c[1],p=0|d,m=0|h,g=u[m*t+p];d>0&&d<t&&p===d&&(f=u[m*t+p-1],c[0]=d+(l-f)/(g-f)-.5),h>0&&h<n&&m===h&&(f=u[(m-1)*t+p],c[1]=h+(l-f)/(g-f)-.5)})}return r.contour=i,r.size=function(s){if(!arguments.length)return[t,n];var u=Math.floor(s[0]),l=Math.floor(s[1]);return u>=0&&l>=0||P("invalid size"),t=u,n=l,r},r.smooth=function(s){return arguments.length?(e=s?o:lM,r):e===o},r}function cM(t,n){for(var e,r=-1,i=n.length;++r<i;)if(e=fM(t,n[r]))return e;return 0}function fM(t,n){for(var e=n[0],r=n[1],i=-1,a=0,o=t.length,s=o-1;a<o;s=a++){var u=t[a],l=u[0],c=u[1],f=t[s],d=f[0],h=f[1];if(dM(u,f,n))return 0;c>r!=h>r&&e<(d-l)*(r-c)/(h-c)+l&&(i=-i)}return i}function dM(t,n,e){var r,i,a,o;return function(s,u,l){return(u[0]-s[0])*(l[1]-s[1])===(l[0]-s[0])*(u[1]-s[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],a=e[r],o=n[r],i<=a&&a<=o||o<=a&&a<=i)}function oD(t,n,e){return function(r){var i=kr(r),a=e?Math.min(i[0],0):i[0],o=i[1],s=o-a,u=n?sx(a,o,t):s/(t+1);return xe(a+u,o,u)}}function wg(t){O.call(this,null,t)}function sD(t,n,e,r,i){const a=t.x1||0,o=t.y1||0,s=n*e<0;function u(f){f.forEach(l)}function l(f){s&&f.reverse(),f.forEach(c)}function c(f){f[0]=(f[0]-a)*n+r,f[1]=(f[1]-o)*e+i}return function(f){return f.coordinates.forEach(u),f}}function uD(t,n,e){const r=t>=0?t:Dp(n,e);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function Ag(t){return bt(t)?t:In(+t)}function lD(){var t=u=>u[0],n=u=>u[1],e=Is,r=[-1,-1],i=960,a=500,o=2;function s(u,l){const c=uD(r[0],u,t)>>o,f=uD(r[1],u,n)>>o,d=c?c+2:0,h=f?f+2:0,p=2*d+(i>>o),m=2*h+(a>>o),g=new Float32Array(p*m),y=new Float32Array(p*m);let v=g;u.forEach(b=>{const w=d+(+t(b)>>o),A=h+(+n(b)>>o);w>=0&&w<p&&A>=0&&A<m&&(g[w+A*p]+=+e(b))}),c>0&&f>0?(Xo(p,m,g,y,c),Jo(p,m,y,g,f),Xo(p,m,g,y,c),Jo(p,m,y,g,f),Xo(p,m,g,y,c),Jo(p,m,y,g,f)):c>0?(Xo(p,m,g,y,c),Xo(p,m,y,g,c),Xo(p,m,g,y,c),v=y):f>0&&(Jo(p,m,g,y,f),Jo(p,m,y,g,f),Jo(p,m,g,y,f),v=y);const x=l?Math.pow(2,-2*o):1/Yx(v);for(let b=0,w=p*m;b<w;++b)v[b]*=x;return{values:v,scale:1<<o,width:p,height:m,x1:d,y1:h,x2:d+(i>>o),y2:h+(a>>o)}}return s.x=function(u){return arguments.length?(t=Ag(u),s):t},s.y=function(u){return arguments.length?(n=Ag(u),s):n},s.weight=function(u){return arguments.length?(e=Ag(u),s):e},s.size=function(u){if(!arguments.length)return[i,a];var l=+u[0],c=+u[1];return l>=0&&c>=0||P("invalid size"),i=l,a=c,s},s.cellSize=function(u){return arguments.length?((u=+u)>=1||P("invalid cell size"),o=Math.floor(Math.log(u)/Math.LN2),s):1<<o},s.bandwidth=function(u){return arguments.length?((u=J(u)).length===1&&(u=[+u[0],+u[0]]),u.length!==2&&P("invalid bandwidth"),r=u,s):r},s}function Xo(t,n,e,r,i){const a=1+(i<<1);for(let o=0;o<n;++o)for(let s=0,u=0;s<t+i;++s)s<t&&(u+=e[s+o*t]),s>=i&&(s>=a&&(u-=e[s-a+o*t]),r[s-i+o*t]=u/Math.min(s+1,t-1+a-s,a))}function Jo(t,n,e,r,i){const a=1+(i<<1);for(let o=0;o<t;++o)for(let s=0,u=0;s<n+i;++s)s<n&&(u+=e[o+s*t]),s>=i&&(s>=a&&(u-=e[o+(s-a)*t]),r[o+(s-i)*t]=u/Math.min(s+1,n-1+a-s,a))}function _g(t){O.call(this,null,t)}wg.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"}]},V(wg,O,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e=n.fork(n.NO_SOURCE|n.NO_FIELDS),r=n.materialize(n.SOURCE).source,i=t.field||Me,a=aD().smooth(t.smooth!==!1),o=t.thresholds||function(l,c,f){const d=oD(f.levels||10,f.nice,f.zero!==!1);return f.resolve!=="shared"?d:d(l.map(h=>Ca(c(h).values)))}(r,i,t),s=t.as===null?null:t.as||"contour",u=[];return r.forEach(l=>{const c=i(l),f=a.size([c.width,c.height])(c.values,T(o)?o:o(c.values));(function(d,h,p,m){let g=m.scale||h.scale,y=m.translate||h.translate;if(bt(g)&&(g=g(p,m)),bt(y)&&(y=y(p,m)),(g===1||g==null)&&!y)return;const v=($t(g)?g:g[0])||1,x=($t(g)?g:g[1])||1,b=y&&y[0]||0,w=y&&y[1]||0;d.forEach(sD(h,v,x,b,w))})(f,c,l,t),f.forEach(d=>{u.push(nc(l,St(s!=null?{[s]:d}:d)))})}),this.value&&(e.rem=this.value),this.value=e.source=e.add=u,e}}),_g.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 hM=["x","y","weight","size","cellSize","bandwidth"];function cD(t,n){return hM.forEach(e=>n[e]!=null?t[e](n[e]):0),t}function kg(t){O.call(this,null,t)}V(_g,O,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=function(u,l){var c,f,d,h,p,m,g=[],y=v=>v(h);if(l==null)g.push(u);else for(c={},f=0,d=u.length;f<d;++f)h=u[f],(m=c[p=l.map(y)])||(c[p]=m=[],m.dims=p,g.push(m)),m.push(h);return g}(n.materialize(n.SOURCE).source,t.groupby),a=(t.groupby||[]).map(en),o=cD(lD(),t),s=t.as||"grid";return e=i.map(u=>St(function(l,c){for(let f=0;f<a.length;++f)l[a[f]]=c[f];return l}({[s]:o(u,t.counts)},u.dims))),this.value&&(r.rem=this.value),this.value=r.source=r.add=e,r}}),kg.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}]},V(kg,O,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e,r,i=n.fork(n.NO_SOURCE|n.NO_FIELDS),a=aD().smooth(t.smooth!==!1),o=t.values,s=t.thresholds||oD(t.count||10,t.nice,!!o),u=t.size;return o||(o=n.materialize(n.SOURCE).source,r=sD(e=cD(lD(),t)(o,!0),e.scale||1,e.scale||1,0,0),u=[e.width,e.height],o=e.values),s=T(s)?s:s(o),o=a.size(u)(o,s),r&&o.forEach(r),this.value&&(i.rem=this.value),this.value=i.source=i.add=(o||[]).map(St),i}});const Dg="Feature",Fg="FeatureCollection";function Cg(t){O.call(this,null,t)}function Eg(t){O.call(this,null,t)}function $g(t){O.call(this,null,t)}function Sg(t){O.call(this,null,t)}function Mg(t){O.call(this,[],t),this.generator=function(){var n,e,r,i,a,o,s,u,l,c,f,d,h=10,p=h,m=90,g=360,y=2.5;function v(){return{type:"MultiLineString",coordinates:x()}}function x(){return xe(lf(i/m)*m,r,m).map(f).concat(xe(lf(u/g)*g,s,g).map(d)).concat(xe(lf(e/h)*h,n,h).filter(function(b){return At(b%m)>dt}).map(l)).concat(xe(lf(o/p)*p,a,p).filter(function(b){return At(b%g)>dt}).map(c))}return v.lines=function(){return x().map(function(b){return{type:"LineString",coordinates:b}})},v.outline=function(){return{type:"Polygon",coordinates:[f(i).concat(d(s).slice(1),f(r).reverse().slice(1),d(u).reverse().slice(1))]}},v.extent=function(b){return arguments.length?v.extentMajor(b).extentMinor(b):v.extentMinor()},v.extentMajor=function(b){return arguments.length?(i=+b[0][0],r=+b[1][0],u=+b[0][1],s=+b[1][1],i>r&&(b=i,i=r,r=b),u>s&&(b=u,u=s,s=b),v.precision(y)):[[i,u],[r,s]]},v.extentMinor=function(b){return arguments.length?(e=+b[0][0],n=+b[1][0],o=+b[0][1],a=+b[1][1],e>n&&(b=e,e=n,n=b),o>a&&(b=o,o=a,a=b),v.precision(y)):[[e,o],[n,a]]},v.step=function(b){return arguments.length?v.stepMajor(b).stepMinor(b):v.stepMinor()},v.stepMajor=function(b){return arguments.length?(m=+b[0],g=+b[1],v):[m,g]},v.stepMinor=function(b){return arguments.length?(h=+b[0],p=+b[1],v):[h,p]},v.precision=function(b){return arguments.length?(y=+b,l=wk(o,a,90),c=Ak(e,n,y),f=wk(u,s,90),d=Ak(i,r,y),v):y},v.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}()}function Bg(t){O.call(this,null,t)}function fD(t){if(!bt(t))return!1;const n=Dr(Wn(t));return n.$x||n.$y||n.$value||n.$max}function dD(t){O.call(this,null,t),this.modified(!0)}function hD(t,n,e){bt(t[n])&&t[n](e)}Cg.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},V(Cg,O,{transform(t,n){var e,r=this._features,i=this._points,a=t.fields,o=a&&a[0],s=a&&a[1],u=t.geojson||!a&&Me,l=n.ADD;e=t.modified()||n.changed(n.REM)||n.modified(Wn(u))||o&&n.modified(Wn(o))||s&&n.modified(Wn(s)),this.value&&!e||(l=n.SOURCE,this._features=r=[],this._points=i=[]),u&&n.visit(l,c=>r.push(u(c))),o&&s&&(n.visit(l,c=>{var f=o(c),d=s(c);f!=null&&d!=null&&(f=+f)===f&&(d=+d)===d&&i.push([f,d])}),r=r.concat({type:Dg,geometry:{type:"MultiPoint",coordinates:i}})),this.value={type:Fg,features:r}}}),Eg.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"}]},V(Eg,O,{transform(t,n){var e=n.fork(n.ALL),r=this.value,i=t.field||Me,a=t.as||"path",o=e.SOURCE;!r||t.modified()?(this.value=r=iD(t.projection),e.materialize().reflow()):o=i===Me||n.modified(i.fields)?e.ADD_MOD:e.ADD;const s=function(u,l){const c=u.pointRadius();return u.context(null),l!=null&&u.pointRadius(l),c}(r,t.pointRadius);return e.visit(o,u=>u[a]=r(i(u))),r.pointRadius(s),e.modifies(a)}}),$g.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"]}]},V($g,O,{transform(t,n){var e,r=t.projection,i=t.fields[0],a=t.fields[1],o=t.as||["x","y"],s=o[0],u=o[1];function l(c){const f=r([i(c),a(c)]);f?(c[s]=f[0],c[u]=f[1]):(c[s]=void 0,c[u]=void 0)}return t.modified()?n=n.materialize().reflow(!0).visit(n.SOURCE,l):(e=n.modified(i.fields)||n.modified(a.fields),n.visit(e?n.ADD_MOD:n.ADD,l)),n.modifies(o)}}),Sg.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"}]},V(Sg,O,{transform(t,n){var e=n.fork(n.ALL),r=this.value,i=t.as||"shape",a=e.ADD;return r&&!t.modified()||(this.value=r=function(o,s,u){const l=u==null?c=>o(s(c)):c=>{var f=o.pointRadius(),d=o.pointRadius(u)(s(c));return o.pointRadius(f),d};return l.context=c=>(o.context(c),l),l}(iD(t.projection),t.field||ei("datum"),t.pointRadius),e.materialize().reflow(),a=e.SOURCE),e.visit(a,o=>o[i]=r),e.modifies(i)}}),Mg.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}]},V(Mg,O,{transform(t,n){var e,r=this.value,i=this.generator;if(!r.length||t.modified())for(const a in t)bt(i[a])&&i[a](t[a]);return e=i(),r.length?n.mod.push(r2(r[0],e)):n.add.push(St(e)),r[0]=e,n}}),Bg.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"}]},V(Bg,O,{transform(t,n){if(!n.changed()&&!t.modified())return n.StopPropagation;var e=n.materialize(n.SOURCE).source,r=t.resolve==="shared",i=t.field||Me,a=function(l,c){let f;return bt(l)?(f=d=>l(d,c),f.dep=fD(l)):l?f=In(l):(f=d=>d.$value/d.$max||0,f.dep=!0),f}(t.opacity,t),o=function(l,c){let f;return bt(l)?(f=d=>Vl(l(d,c)),f.dep=fD(l)):f=In(Vl(l||"#888")),f}(t.color,t),s=t.as||"image",u={$x:0,$y:0,$value:0,$max:r?Ca(e.map(l=>Ca(i(l).values))):0};return e.forEach(l=>{const c=i(l),f=xt({},l,u);r||(f.$max=Ca(c.values||[])),l[s]=function(d,h,p,m){const g=d.width,y=d.height,v=d.x1||0,x=d.y1||0,b=d.x2||g,w=d.y2||y,A=d.values,_=A?E=>A[E]:tp,k=qi(b-v,w-x),D=k.getContext("2d"),C=D.getImageData(0,0,b-v,w-x),F=C.data;for(let E=x,$=0;E<w;++E){h.$y=E-x;for(let M=v,S=E*g;M<b;++M,$+=4){h.$x=M-v,h.$value=_(M+S);const B=p(h);F[$+0]=B.r,F[$+1]=B.g,F[$+2]=B.b,F[$+3]=~~(255*m(h))}}return D.putImageData(C,0,0),k}(c,f,o.dep?o:In(o(f)),a.dep?a:In(a(f)))}),n.reflow(!0).modifies(s)}}),V(dD,O,{transform(t,n){let e=this.value;return!e||t.modified("type")?(this.value=e=function(r){const i=xg((r||"mercator").toLowerCase());return i||P("Unrecognized projection type: "+r),i()}(t.type),bg.forEach(r=>{t[r]!=null&&hD(e,r,t[r])})):bg.forEach(r=>{t.modified(r)&&hD(e,r,t[r])}),t.pointRadius!=null&&e.path.pointRadius(t.pointRadius),t.fit&&function(r,i){const a=function(o){return o=J(o),o.length===1?o[0]:{type:Fg,features:o.reduce((s,u)=>s.concat(function(l){return l.type===Fg?l.features:J(l).filter(c=>c!=null).map(c=>c.type===Dg?c:{type:Dg,geometry:c})}(u)),[])}}(i.fit);i.extent?r.fitExtent(i.extent,a):i.size&&r.fitSize(i.size,a)}(e,t),n.fork(n.NO_SOURCE|n.NO_FIELDS)}});const pM=Object.freeze(Object.defineProperty({__proto__:null,contour:kg,geojson:Cg,geopath:Eg,geopoint:$g,geoshape:Sg,graticule:Mg,heatmap:Bg,isocontour:wg,kde2d:_g,projection:dD},Symbol.toStringTag,{value:"Module"}));function pD(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,a,o,s,u,l,c,f,d,h=t._root,p={data:r},m=t._x0,g=t._y0,y=t._x1,v=t._y1;if(!h)return t._root=p,t;for(;h.length;)if((l=n>=(a=(m+y)/2))?m=a:y=a,(c=e>=(o=(g+v)/2))?g=o:v=o,i=h,!(h=h[f=c<<1|l]))return i[f]=p,t;if(s=+t._x.call(null,h.data),u=+t._y.call(null,h.data),n===s&&e===u)return p.next=h,i?i[f]=p:t._root=p,t;do i=i?i[f]=new Array(4):t._root=new Array(4),(l=n>=(a=(m+y)/2))?m=a:y=a,(c=e>=(o=(g+v)/2))?g=o:v=o;while((f=c<<1|l)==(d=(u>=o)<<1|s>=a));return i[d]=h,i[f]=p,t}function te(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function mM(t){return t[0]}function gM(t){return t[1]}function zg(t,n,e){var r=new Og(n??mM,e??gM,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function Og(t,n,e,r,i,a){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function mD(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var ne=zg.prototype=Og.prototype;function ee(t){return function(){return t}}function ea(t){return 1e-6*(t()-.5)}function yM(t){return t.x+t.vx}function vM(t){return t.y+t.vy}function bM(t){return t.index}function gD(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}ne.copy=function(){var t,n,e=new Og(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=mD(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=mD(n));return e},ne.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return pD(this.cover(n,e),n,e,t)},ne.addAll=function(t){var n,e,r,i,a=t.length,o=new Array(a),s=new Array(a),u=1/0,l=1/0,c=-1/0,f=-1/0;for(e=0;e<a;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(o[e]=r,s[e]=i,r<u&&(u=r),r>c&&(c=r),i<l&&(l=i),i>f&&(f=i));if(u>c||l>f)return this;for(this.cover(u,l).cover(c,f),e=0;e<a;++e)pD(this,o[e],s[e],t[e]);return this},ne.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,a=(r=Math.floor(n))+1;else{for(var o,s,u=i-e||1,l=this._root;e>t||t>=i||r>n||n>=a;)switch(s=(n<r)<<1|t<e,(o=new Array(4))[s]=l,l=o,u*=2,s){case 0:i=e+u,a=r+u;break;case 1:e=i-u,a=r+u;break;case 2:i=e+u,r=a-u;break;case 3:e=i-u,r=a-u}this._root&&this._root.length&&(this._root=l)}return this._x0=e,this._y0=r,this._x1=i,this._y1=a,this},ne.data=function(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t},ne.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},ne.find=function(t,n,e){var r,i,a,o,s,u,l,c=this._x0,f=this._y0,d=this._x1,h=this._y1,p=[],m=this._root;for(m&&p.push(new te(m,c,f,d,h)),e==null?e=1/0:(c=t-e,f=n-e,d=t+e,h=n+e,e*=e);u=p.pop();)if(!(!(m=u.node)||(i=u.x0)>d||(a=u.y0)>h||(o=u.x1)<c||(s=u.y1)<f))if(m.length){var g=(i+o)/2,y=(a+s)/2;p.push(new te(m[3],g,y,o,s),new te(m[2],i,y,g,s),new te(m[1],g,a,o,y),new te(m[0],i,a,g,y)),(l=(n>=y)<<1|t>=g)&&(u=p[p.length-1],p[p.length-1]=p[p.length-1-l],p[p.length-1-l]=u)}else{var v=t-+this._x.call(null,m.data),x=n-+this._y.call(null,m.data),b=v*v+x*x;if(b<e){var w=Math.sqrt(e=b);c=t-w,f=n-w,d=t+w,h=n+w,r=m.data}}return r},ne.remove=function(t){if(isNaN(a=+this._x.call(null,t))||isNaN(o=+this._y.call(null,t)))return this;var n,e,r,i,a,o,s,u,l,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((l=a>=(s=(p+g)/2))?p=s:g=s,(c=o>=(u=(m+y)/2))?m=u:y=u,n=h,!(h=h[f=c<<1|l]))return this;if(!h.length)break;(n[f+1&3]||n[f+2&3]||n[f+3&3])&&(e=n,d=f)}for(;h.data!==t;)if(r=h,!(h=h.next))return this;return(i=h.next)&&delete h.next,r?(i?r.next=i:delete r.next,this):n?(i?n[f]=i:delete n[f],(h=n[0]||n[1]||n[2]||n[3])&&h===(n[3]||n[2]||n[1]||n[0])&&!h.length&&(e?e[d]=h:this._root=h),this):(this._root=i,this)},ne.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},ne.root=function(){return this._root},ne.size=function(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t},ne.visit=function(t){var n,e,r,i,a,o,s=[],u=this._root;for(u&&s.push(new te(u,this._x0,this._y0,this._x1,this._y1));n=s.pop();)if(!t(u=n.node,r=n.x0,i=n.y0,a=n.x1,o=n.y1)&&u.length){var l=(r+a)/2,c=(i+o)/2;(e=u[3])&&s.push(new te(e,l,c,a,o)),(e=u[2])&&s.push(new te(e,r,c,l,o)),(e=u[1])&&s.push(new te(e,l,i,a,c)),(e=u[0])&&s.push(new te(e,r,i,l,c))}return this},ne.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new te(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var a,o=n.x0,s=n.y0,u=n.x1,l=n.y1,c=(o+u)/2,f=(s+l)/2;(a=i[0])&&e.push(new te(a,o,s,c,f)),(a=i[1])&&e.push(new te(a,c,s,u,f)),(a=i[2])&&e.push(new te(a,o,f,c,l)),(a=i[3])&&e.push(new te(a,c,f,u,l))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},ne.x=function(t){return arguments.length?(this._x=t,this):this._x},ne.y=function(t){return arguments.length?(this._y=t,this):this._y};const yD=4294967296;function xM(t){return t.x}function wM(t){return t.y}var AM=Math.PI*(3-Math.sqrt(5));function _M(t){var n,e=1,r=.001,i=1-Math.pow(r,1/300),a=0,o=.6,s=new Map,u=b8(f),l=x8("tick","end"),c=function(){let m=1;return()=>(m=(1664525*m+1013904223)%yD)/yD}();function f(){d(),l.call("tick",n),e<r&&(u.stop(),l.call("end",n))}function d(m){var g,y,v=t.length;m===void 0&&(m=1);for(var x=0;x<m;++x)for(e+=(a-e)*i,s.forEach(function(b){b(e)}),g=0;g<v;++g)(y=t[g]).fx==null?y.x+=y.vx*=o:(y.x=y.fx,y.vx=0),y.fy==null?y.y+=y.vy*=o:(y.y=y.fy,y.vy=0);return n}function h(){for(var m,g=0,y=t.length;g<y;++g){if((m=t[g]).index=g,m.fx!=null&&(m.x=m.fx),m.fy!=null&&(m.y=m.fy),isNaN(m.x)||isNaN(m.y)){var v=10*Math.sqrt(.5+g),x=g*AM;m.x=v*Math.cos(x),m.y=v*Math.sin(x)}(isNaN(m.vx)||isNaN(m.vy))&&(m.vx=m.vy=0)}}function p(m){return m.initialize&&m.initialize(t,c),m}return t==null&&(t=[]),h(),n={tick:d,restart:function(){return u.restart(f),n},stop:function(){return u.stop(),n},nodes:function(m){return arguments.length?(t=m,h(),s.forEach(p),n):t},alpha:function(m){return arguments.length?(e=+m,n):e},alphaMin:function(m){return arguments.length?(r=+m,n):r},alphaDecay:function(m){return arguments.length?(i=+m,n):+i},alphaTarget:function(m){return arguments.length?(a=+m,n):a},velocityDecay:function(m){return arguments.length?(o=1-m,n):1-o},randomSource:function(m){return arguments.length?(c=m,s.forEach(p),n):c},force:function(m,g){return arguments.length>1?(g==null?s.delete(m):s.set(m,p(g)),n):s.get(m)},find:function(m,g,y){var v,x,b,w,A,_=0,k=t.length;for(y==null?y=1/0:y*=y,_=0;_<k;++_)(b=(v=m-(w=t[_]).x)*v+(x=g-w.y)*x)<y&&(A=w,y=b);return A},on:function(m,g){return arguments.length>1?(l.on(m,g),n):l.on(m)}}}const vD={center:function(t,n){var e,r=1;function i(){var a,o,s=e.length,u=0,l=0;for(a=0;a<s;++a)u+=(o=e[a]).x,l+=o.y;for(u=(u/s-t)*r,l=(l/s-n)*r,a=0;a<s;++a)(o=e[a]).x-=u,o.y-=l}return t==null&&(t=0),n==null&&(n=0),i.initialize=function(a){e=a},i.x=function(a){return arguments.length?(t=+a,i):t},i.y=function(a){return arguments.length?(n=+a,i):n},i.strength=function(a){return arguments.length?(r=+a,i):r},i},collide:function(t){var n,e,r,i=1,a=1;function o(){for(var l,c,f,d,h,p,m,g=n.length,y=0;y<a;++y)for(c=zg(n,yM,vM).visitAfter(s),l=0;l<g;++l)f=n[l],p=e[f.index],m=p*p,d=f.x+f.vx,h=f.y+f.vy,c.visit(v);function v(x,b,w,A,_){var k=x.data,D=x.r,C=p+D;if(!k)return b>d+C||A<d-C||w>h+C||_<h-C;if(k.index>f.index){var F=d-k.x-k.vx,E=h-k.y-k.vy,$=F*F+E*E;$<C*C&&(F===0&&($+=(F=ea(r))*F),E===0&&($+=(E=ea(r))*E),$=(C-($=Math.sqrt($)))/$*i,f.vx+=(F*=$)*(C=(D*=D)/(m+D)),f.vy+=(E*=$)*C,k.vx-=F*(C=1-C),k.vy-=E*C)}}}function s(l){if(l.data)return l.r=e[l.data.index];for(var c=l.r=0;c<4;++c)l[c]&&l[c].r>l.r&&(l.r=l[c].r)}function u(){if(n){var l,c,f=n.length;for(e=new Array(f),l=0;l<f;++l)c=n[l],e[c.index]=+t(c,l,n)}}return typeof t!="function"&&(t=ee(t==null?1:+t)),o.initialize=function(l,c){n=l,r=c,u()},o.iterations=function(l){return arguments.length?(a=+l,o):a},o.strength=function(l){return arguments.length?(i=+l,o):i},o.radius=function(l){return arguments.length?(t=typeof l=="function"?l:ee(+l),u(),o):t},o},nbody:function(){var t,n,e,r,i,a=ee(-30),o=1,s=1/0,u=.81;function l(h){var p,m=t.length,g=zg(t,xM,wM).visitAfter(f);for(r=h,p=0;p<m;++p)n=t[p],g.visit(d)}function c(){if(t){var h,p,m=t.length;for(i=new Array(m),h=0;h<m;++h)p=t[h],i[p.index]=+a(p,h,t)}}function f(h){var p,m,g,y,v,x=0,b=0;if(h.length){for(g=y=v=0;v<4;++v)(p=h[v])&&(m=Math.abs(p.value))&&(x+=p.value,b+=m,g+=m*p.x,y+=m*p.y);h.x=g/b,h.y=y/b}else{(p=h).x=p.data.x,p.y=p.data.y;do x+=i[p.data.index];while(p=p.next)}h.value=x}function d(h,p,m,g){if(!h.value)return!0;var y=h.x-n.x,v=h.y-n.y,x=g-p,b=y*y+v*v;if(x*x/u<b)return b<s&&(y===0&&(b+=(y=ea(e))*y),v===0&&(b+=(v=ea(e))*v),b<o&&(b=Math.sqrt(o*b)),n.vx+=y*h.value*r/b,n.vy+=v*h.value*r/b),!0;if(!(h.length||b>=s)){(h.data!==n||h.next)&&(y===0&&(b+=(y=ea(e))*y),v===0&&(b+=(v=ea(e))*v),b<o&&(b=Math.sqrt(o*b)));do h.data!==n&&(x=i[h.data.index]*r/b,n.vx+=y*x,n.vy+=v*x);while(h=h.next)}}return l.initialize=function(h,p){t=h,e=p,c()},l.strength=function(h){return arguments.length?(a=typeof h=="function"?h:ee(+h),c(),l):a},l.distanceMin=function(h){return arguments.length?(o=h*h,l):Math.sqrt(o)},l.distanceMax=function(h){return arguments.length?(s=h*h,l):Math.sqrt(s)},l.theta=function(h){return arguments.length?(u=h*h,l):Math.sqrt(u)},l},link:function(t){var n,e,r,i,a,o,s=bM,u=function(m){return 1/Math.min(i[m.source.index],i[m.target.index])},l=ee(30),c=1;function f(m){for(var g=0,y=t.length;g<c;++g)for(var v,x,b,w,A,_,k,D=0;D<y;++D)x=(v=t[D]).source,w=(b=v.target).x+b.vx-x.x-x.vx||ea(o),A=b.y+b.vy-x.y-x.vy||ea(o),w*=_=((_=Math.sqrt(w*w+A*A))-e[D])/_*m*n[D],A*=_,b.vx-=w*(k=a[D]),b.vy-=A*k,x.vx+=w*(k=1-k),x.vy+=A*k}function d(){if(r){var m,g,y=r.length,v=t.length,x=new Map(r.map((b,w)=>[s(b,w,r),b]));for(m=0,i=new Array(y);m<v;++m)(g=t[m]).index=m,typeof g.source!="object"&&(g.source=gD(x,g.source)),typeof g.target!="object"&&(g.target=gD(x,g.target)),i[g.source.index]=(i[g.source.index]||0)+1,i[g.target.index]=(i[g.target.index]||0)+1;for(m=0,a=new Array(v);m<v;++m)g=t[m],a[m]=i[g.source.index]/(i[g.source.index]+i[g.target.index]);n=new Array(v),h(),e=new Array(v),p()}}function h(){if(r)for(var m=0,g=t.length;m<g;++m)n[m]=+u(t[m],m,t)}function p(){if(r)for(var m=0,g=t.length;m<g;++m)e[m]=+l(t[m],m,t)}return t==null&&(t=[]),f.initialize=function(m,g){r=m,o=g,d()},f.links=function(m){return arguments.length?(t=m,d(),f):t},f.id=function(m){return arguments.length?(s=m,f):s},f.iterations=function(m){return arguments.length?(c=+m,f):c},f.strength=function(m){return arguments.length?(u=typeof m=="function"?m:ee(+m),h(),f):u},f.distance=function(m){return arguments.length?(l=typeof m=="function"?m:ee(+m),p(),f):l},f},x:function(t){var n,e,r,i=ee(.1);function a(s){for(var u,l=0,c=n.length;l<c;++l)(u=n[l]).vx+=(r[l]-u.x)*e[l]*s}function o(){if(n){var s,u=n.length;for(e=new Array(u),r=new Array(u),s=0;s<u;++s)e[s]=isNaN(r[s]=+t(n[s],s,n))?0:+i(n[s],s,n)}}return typeof t!="function"&&(t=ee(t==null?0:+t)),a.initialize=function(s){n=s,o()},a.strength=function(s){return arguments.length?(i=typeof s=="function"?s:ee(+s),o(),a):i},a.x=function(s){return arguments.length?(t=typeof s=="function"?s:ee(+s),o(),a):t},a},y:function(t){var n,e,r,i=ee(.1);function a(s){for(var u,l=0,c=n.length;l<c;++l)(u=n[l]).vy+=(r[l]-u.y)*e[l]*s}function o(){if(n){var s,u=n.length;for(e=new Array(u),r=new Array(u),s=0;s<u;++s)e[s]=isNaN(r[s]=+t(n[s],s,n))?0:+i(n[s],s,n)}}return typeof t!="function"&&(t=ee(t==null?0:+t)),a.initialize=function(s){n=s,o()},a.strength=function(s){return arguments.length?(i=typeof s=="function"?s:ee(+s),o(),a):i},a.y=function(s){return arguments.length?(t=typeof s=="function"?s:ee(+s),o(),a):t},a}},Tu="forces",Ng=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],kM=["static","iterations"],bD=["x","y","vx","vy"];function Rg(t){O.call(this,null,t)}function xD(t,n,e,r){var i,a,o,s,u=J(n.forces);for(i=0,a=Ng.length;i<a;++i)(o=Ng[i])!==Tu&&n.modified(o)&&t[o](n[o]);for(i=0,a=u.length;i<a;++i)s=Tu+i,(o=e||n.modified(Tu,i)?FM(u[i]):r&&DM(u[i],r)?t.force(s):null)&&t.force(s,o);for(a=t.numForces||0;i<a;++i)t.force(Tu+i,null);return t.numForces=u.length,t}function DM(t,n){var e,r;for(e in t)if(bt(r=t[e])&&n.modified(Wn(r)))return 1;return 0}function FM(t){var n,e;for(e in tt(vD,t.force)||P("Unrecognized force: "+t.force),n=vD[t.force](),t)bt(n[e])&&CM(n[e],t[e],t);return n}function CM(t,n,e){t(bt(n)?r=>n(r,e):n)}Rg.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:bD}]},V(Rg,O,{transform(t,n){var e,r,i=this.value,a=n.changed(n.ADD_REM),o=t.modified(Ng),s=t.iterations||300;if(i?(a&&(n.modifies("index"),i.nodes(n.source)),(o||n.changed(n.MOD))&&xD(i,t,0,n)):(this.value=i=function(u,l){const c=_M(u),f=c.stop,d=c.restart;let h=!1;return c.stopped=()=>h,c.restart=()=>(h=!1,d()),c.stop=()=>(h=!0,f()),xD(c,l,!0).on("end",()=>h=!0)}(n.source,t),i.on("tick",(e=n.dataflow,r=this,()=>e.touch(r).run())),t.static||(a=!0,i.tick()),n.modifies("index")),o||a||t.modified(kM)||n.changed()&&t.restart){if(i.alpha(Math.max(i.alpha(),t.alpha||1)).alphaDecay(1-Math.pow(i.alphaMin(),1/s)),t.static)for(i.stop();--s>=0;)i.tick();else if(i.stopped()&&i.restart(),!a)return n.StopPropagation}return this.finish(t,n)},finish(t,n){const e=n.dataflow;for(let s,u=this._argops,l=0,c=u.length;l<c;++l)if(s=u[l],s.name===Tu&&s.op._argval.force==="link"){for(var r,i=s.op._argops,a=0,o=i.length;a<o;++a)if(i[a].name==="links"&&(r=i[a].op.source)){e.pulse(r,e.changeset().reflow());break}}return n.reflow(t.modified()).modifies(bD)}});const EM=Object.freeze(Object.defineProperty({__proto__:null,force:Rg},Symbol.toStringTag,{value:"Module"}));function $M(t,n){return t.parent===n.parent?1:2}function SM(t,n){return t+n.x}function MM(t,n){return Math.max(t,n.y)}const wD=4294967296;function BM(t,n){var e,r;if(Tg(n,t))return[n];for(e=0;e<t.length;++e)if(If(n,t[e])&&Tg(Pu(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(If(Pu(t[e],t[r]),n)&&If(Pu(t[e],n),t[r])&&If(Pu(t[r],n),t[e])&&Tg(_D(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}function If(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function AD(t,n){var e=t.r-n.r+1e-9*Math.max(t.r,n.r,1),r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function Tg(t,n){for(var e=0;e<n.length;++e)if(!AD(t,n[e]))return!1;return!0}function zM(t){switch(t.length){case 1:return function(n){return{x:n.x,y:n.y,r:n.r}}(t[0]);case 2:return Pu(t[0],t[1]);case 3:return _D(t[0],t[1],t[2])}}function Pu(t,n){var e=t.x,r=t.y,i=t.r,a=n.x,o=n.y,s=n.r,u=a-e,l=o-r,c=s-i,f=Math.sqrt(u*u+l*l);return{x:(e+a+u/f*c)/2,y:(r+o+l/f*c)/2,r:(f+i+s)/2}}function _D(t,n,e){var r=t.x,i=t.y,a=t.r,o=n.x,s=n.y,u=n.r,l=e.x,c=e.y,f=e.r,d=r-o,h=r-l,p=i-s,m=i-c,g=u-a,y=f-a,v=r*r+i*i-a*a,x=v-o*o-s*s+u*u,b=v-l*l-c*c+f*f,w=h*p-d*m,A=(p*b-m*x)/(2*w)-r,_=(m*g-p*y)/w,k=(h*x-d*b)/(2*w)-i,D=(d*y-h*g)/w,C=_*_+D*D-1,F=2*(a+A*_+k*D),E=A*A+k*k-a*a,$=-(Math.abs(C)>1e-6?(F+Math.sqrt(F*F-4*C*E))/(2*C):E/F);return{x:r+A+_*$,y:i+k+D*$,r:$}}function kD(t,n,e){var r,i,a,o,s=t.x-n.x,u=t.y-n.y,l=s*s+u*u;l?(i=n.r+e.r,i*=i,o=t.r+e.r,i>(o*=o)?(r=(l+o-i)/(2*l),a=Math.sqrt(Math.max(0,o/l-r*r)),e.x=t.x-r*s-a*u,e.y=t.y-r*u+a*s):(r=(l+i-o)/(2*l),a=Math.sqrt(Math.max(0,i/l-r*r)),e.x=n.x+r*s-a*u,e.y=n.y+r*u+a*s)):(e.x=n.x+e.r,e.y=n.y)}function DD(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function FD(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,a=(n.y*e.r+e.y*n.r)/r;return i*i+a*a}function Wf(t){this._=t,this.next=null,this.previous=null}function OM(t,n){if(!(a=(t=function(h){return typeof h=="object"&&"length"in h?h:Array.from(h)}(t)).length))return 0;var e,r,i,a,o,s,u,l,c,f,d;if((e=t[0]).x=0,e.y=0,!(a>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(a>2))return e.r+r.r;kD(r,e,i=t[2]),e=new Wf(e),r=new Wf(r),i=new Wf(i),e.next=i.previous=r,r.next=e.previous=i,i.next=r.previous=e;t:for(u=3;u<a;++u){kD(e._,r._,i=t[u]),i=new Wf(i),l=r.next,c=e.previous,f=r._.r,d=e._.r;do if(f<=d){if(DD(l._,i._)){r=l,e.next=r,r.previous=e,--u;continue t}f+=l._.r,l=l.next}else{if(DD(c._,i._)){(e=c).next=r,r.previous=e,--u;continue t}d+=c._.r,c=c.previous}while(l!==c.next);for(i.previous=e,i.next=r,e.next=r.previous=r=i,o=FD(e);(i=i.next)!==r;)(s=FD(i))<o&&(e=i,o=s);r=e.next}for(e=[r._],i=r;(i=i.next)!==r;)e.push(i._);for(i=function(h,p){for(var m,g,y=0,v=(h=function(b,w){let A,_,k=b.length;for(;k;)_=w()*k--|0,A=b[k],b[k]=b[_],b[_]=A;return b}(Array.from(h),p)).length,x=[];y<v;)m=h[y],g&&AD(g,m)?++y:(g=zM(x=BM(x,m)),y=0);return g}(e,n),u=0;u<a;++u)(e=t[u]).x-=i.x,e.y-=i.y;return i.r}function NM(t){return Math.sqrt(t.value)}function CD(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Pg(t,n,e){return function(r){if(i=r.children){var i,a,o,s=i.length,u=t(r)*n||0;if(u)for(a=0;a<s;++a)i[a].r+=u;if(o=OM(i,e),u)for(a=0;a<s;++a)i[a].r-=u;r.r=o+u}}}function ED(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}var RM={depth:-1},$D={},jg={};function TM(t){return t.id}function PM(t){return t.parentId}function SD(){var t,n=TM,e=PM;function r(i){var a,o,s,u,l,c,f,d,h=Array.from(i),p=n,m=e,g=new Map;if(t!=null){const y=h.map((b,w)=>function(A){A=`${A}`;let _=A.length;return Lg(A,_-1)&&!Lg(A,_-2)&&(A=A.slice(0,-1)),A[0]==="/"?A:`/${A}`}(t(b,w,i))),v=y.map(MD),x=new Set(y).add("");for(const b of v)x.has(b)||(x.add(b),y.push(b),v.push(MD(b)),h.push(jg));p=(b,w)=>y[w],m=(b,w)=>v[w]}for(s=0,a=h.length;s<a;++s)o=h[s],c=h[s]=new Ux(o),(f=p(o,s,i))!=null&&(f+="")&&(d=c.id=f,g.set(d,g.has(d)?$D:c)),(f=m(o,s,i))!=null&&(f+="")&&(c.parent=f);for(s=0;s<a;++s)if(f=(c=h[s]).parent){if(!(l=g.get(f)))throw new Error("missing: "+f);if(l===$D)throw new Error("ambiguous: "+f);l.children?l.children.push(c):l.children=[c],c.parent=l}else{if(u)throw new Error("multiple roots");u=c}if(!u)throw new Error("no root");if(t!=null){for(;u.data===jg&&u.children.length===1;)u=u.children[0],--a;for(let y=h.length-1;y>=0&&(c=h[y]).data===jg;--y)c.data=null}if(u.parent=RM,u.eachBefore(function(y){y.depth=y.parent.depth+1,--a}).eachBefore(X8),u.parent=null,a>0)throw new Error("cycle");return u}return r.id=function(i){return arguments.length?(n=Xl(i),r):n},r.parentId=function(i){return arguments.length?(e=Xl(i),r):e},r.path=function(i){return arguments.length?(t=Xl(i),r):t},r}function MD(t){let n=t.length;if(n<2)return"";for(;--n>1&&!Lg(t,n););return t.slice(0,n)}function Lg(t,n){if(t[n]==="/"){let e=0;for(;n>0&&t[--n]==="\\";)++e;if(!(1&e))return!0}return!1}function jM(t,n){return t.parent===n.parent?1:2}function qg(t){var n=t.children;return n?n[0]:t.t}function Ug(t){var n=t.children;return n?n[n.length-1]:t.t}function LM(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function qM(t,n,e){return t.a.parent===n.parent?t.a:e}function Hf(t,n){this._=t,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=n}Hf.prototype=Object.create(Ux.prototype);const UM=function t(n){function e(r,i,a,o,s){if((u=r._squarify)&&u.ratio===n)for(var u,l,c,f,d,h=-1,p=u.length,m=r.value;++h<p;){for(c=(l=u[h]).children,f=l.value=0,d=c.length;f<d;++f)l.value+=c[f].value;l.dice?Jl(l,i,a,o,m?a+=(s-a)*l.value/m:s):hp(l,i,a,m?i+=(o-i)*l.value/m:o,s),m-=l.value}else r._squarify=u=J8(n,r,i,a,o,s),u.ratio=n}return e.ratio=function(r){return t((r=+r)>1?r:1)},e}(K8);function Ig(t,n,e){const r={};return t.each(i=>{const a=i.data;e(a)&&(r[n(a)]=i)}),t.lookup=r,t}function Wg(t){O.call(this,null,t)}Wg.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const IM=t=>t.values;function WM(){const t=[],n={entries:i=>r(e(i,0),0),key:i=>(t.push(i),n)};function e(i,a){if(a>=t.length)return i;const o=i.length,s=t[a++],u={},l={};let c,f,d,h=-1;for(;++h<o;)c=s(f=i[h])+"",(d=u[c])?d.push(f):u[c]=[f];for(c in u)l[c]=e(u[c],a);return l}function r(i,a){if(++a>t.length)return i;const o=[];for(const s in i)o.push({key:s,values:r(i[s],a)});return o}return n}function di(t){O.call(this,null,t)}V(Wg,O,{transform(t,n){n.source||P("Nest transform requires an upstream data source.");var e=t.generate,r=t.modified(),i=n.clone(),a=this.value;return(!a||r||n.changed())&&(a&&a.each(o=>{o.children&&tc(o.data)&&i.rem.push(o.data)}),this.value=a=Q8({values:J(t.keys).reduce((o,s)=>(o.key(s),o),WM()).entries(i.source)},IM),e&&a.each(o=>{o.children&&(o=St(o.data),i.add.push(o),i.source.push(o))}),Ig(a,st,st)),i.source.root=a,i}});const HM=(t,n)=>t.parent===n.parent?1:2;V(di,O,{transform(t,n){n.source&&n.source.root||P(this.constructor.name+" transform requires a backing tree data source.");const e=this.layout(t.method),r=this.fields,i=n.source.root,a=t.as||r;t.field?i.sum(t.field):i.count(),t.sort&&i.sort(Ma(t.sort,o=>o.data)),function(o,s,u){for(let l,c=0,f=s.length;c<f;++c)l=s[c],l in u&&o[l](u[l])}(e,this.params,t),e.separation&&e.separation(t.separation!==!1?HM:Is);try{this.value=e(i)}catch(o){P(o)}return i.each(o=>function(s,u,l){const c=s.data,f=u.length-1;for(let d=0;d<f;++d)c[l[d]]=s[u[d]];c[l[f]]=s.children?s.children.length:0}(o,r,a)),n.reflow(t.modified()).modifies(a).modifies("leaf")}});const Hg=["x","y","r","depth","children"];function Gg(t){di.call(this,t)}Gg.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:Hg.length,default:Hg}]},V(Gg,di,{layout:function(){var t=null,n=1,e=1,r=qx;function i(a){const o=function(){let s=1;return()=>(s=(1664525*s+1013904223)%wD)/wD}();return a.x=n/2,a.y=e/2,t?a.eachBefore(CD(t)).eachAfter(Pg(r,.5,o)).eachBefore(ED(1)):a.eachBefore(CD(NM)).eachAfter(Pg(qx,1,o)).eachAfter(Pg(r,a.r/Math.min(n,e),o)).eachBefore(ED(Math.min(n,e)/(2*a.r))),a}return i.radius=function(a){return arguments.length?(t=Xl(a),i):t},i.size=function(a){return arguments.length?(n=+a[0],e=+a[1],i):[n,e]},i.padding=function(a){return arguments.length?(r=typeof a=="function"?a:V8(+a),i):r},i},params:["radius","size","padding"],fields:Hg});const Vg=["x0","y0","x1","y1","depth","children"];function Yg(t){di.call(this,t)}function Xg(t){O.call(this,null,t)}Yg.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:Vg.length,default:Vg}]},V(Yg,di,{layout:function(){var t=1,n=1,e=0,r=!1;function i(a){var o=a.height+1;return a.x0=a.y0=e,a.x1=t,a.y1=n/o,a.eachBefore(function(s,u){return function(l){l.children&&Jl(l,l.x0,s*(l.depth+1)/u,l.x1,s*(l.depth+2)/u);var c=l.x0,f=l.y0,d=l.x1-e,h=l.y1-e;d<c&&(c=d=(c+d)/2),h<f&&(f=h=(f+h)/2),l.x0=c,l.y0=f,l.x1=d,l.y1=h}}(n,o)),r&&a.eachBefore(Y8),a}return i.round=function(a){return arguments.length?(r=!!a,i):r},i.size=function(a){return arguments.length?(t=+a[0],n=+a[1],i):[t,n]},i.padding=function(a){return arguments.length?(e=+a,i):e},i},params:["size","round","padding"],fields:Vg}),Xg.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},V(Xg,O,{transform(t,n){n.source||P("Stratify transform requires an upstream data source.");let e=this.value;const r=t.modified(),i=n.fork(n.ALL).materialize(n.SOURCE),a=!e||r||n.changed(n.ADD_REM)||n.modified(t.key.fields)||n.modified(t.parentKey.fields);return i.source=i.source.slice(),a&&(e=i.source.length?Ig(SD().id(t.key).parentId(t.parentKey)(i.source),t.key,Be):Ig(SD()([{}]),t.key,t.key)),i.source.root=this.value=e,i}});const BD={tidy:function(){var t=jM,n=1,e=1,r=null;function i(u){var l=function(y){for(var v,x,b,w,A,_=new Hf(y,0),k=[_];v=k.pop();)if(b=v._.children)for(v.children=new Array(A=b.length),w=A-1;w>=0;--w)k.push(x=v.children[w]=new Hf(b[w],w)),x.parent=v;return(_.parent=new Hf(null,0)).children=[_],_}(u);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),r)u.eachBefore(s);else{var c=u,f=u,d=u;u.eachBefore(function(y){y.x<c.x&&(c=y),y.x>f.x&&(f=y),y.depth>d.depth&&(d=y)});var h=c===f?1:t(c,f)/2,p=h-c.x,m=n/(f.x+h+p),g=e/(d.depth||1);u.eachBefore(function(y){y.x=(y.x+p)*m,y.y=y.depth*g})}return u}function a(u){var l=u.children,c=u.parent.children,f=u.i?c[u.i-1]:null;if(l){(function(h){for(var p,m=0,g=0,y=h.children,v=y.length;--v>=0;)(p=y[v]).z+=m,p.m+=m,m+=p.s+(g+=p.c)})(u);var d=(l[0].z+l[l.length-1].z)/2;f?(u.z=f.z+t(u._,f._),u.m=u.z-d):u.z=d}else f&&(u.z=f.z+t(u._,f._));u.parent.A=function(h,p,m){if(p){for(var g,y=h,v=h,x=p,b=y.parent.children[0],w=y.m,A=v.m,_=x.m,k=b.m;x=Ug(x),y=qg(y),x&&y;)b=qg(b),(v=Ug(v)).a=h,(g=x.z+_-y.z-w+t(x._,y._))>0&&(LM(qM(x,h,m),h,g),w+=g,A+=g),_+=x.m,w+=y.m,k+=b.m,A+=v.m;x&&!Ug(v)&&(v.t=x,v.m+=_-A),y&&!qg(b)&&(b.t=y,b.m+=w-k,m=h)}return m}(u,f,u.parent.A||c[0])}function o(u){u._.x=u.z+u.parent.m,u.m+=u.parent.m}function s(u){u.x*=n,u.y=u.depth*e}return i.separation=function(u){return arguments.length?(t=u,i):t},i.size=function(u){return arguments.length?(r=!1,n=+u[0],e=+u[1],i):r?null:[n,e]},i.nodeSize=function(u){return arguments.length?(r=!0,n=+u[0],e=+u[1],i):r?[n,e]:null},i},cluster:function(){var t=$M,n=1,e=1,r=!1;function i(a){var o,s=0;a.eachAfter(function(d){var h=d.children;h?(d.x=function(p){return p.reduce(SM,0)/p.length}(h),d.y=function(p){return 1+p.reduce(MM,0)}(h)):(d.x=o?s+=t(d,o):0,d.y=0,o=d)});var u=function(d){for(var h;h=d.children;)d=h[0];return d}(a),l=function(d){for(var h;h=d.children;)d=h[h.length-1];return d}(a),c=u.x-t(u,l)/2,f=l.x+t(l,u)/2;return a.eachAfter(r?function(d){d.x=(d.x-a.x)*n,d.y=(a.y-d.y)*e}:function(d){d.x=(d.x-c)/(f-c)*n,d.y=(1-(a.y?d.y/a.y:1))*e})}return i.separation=function(a){return arguments.length?(t=a,i):t},i.size=function(a){return arguments.length?(r=!1,n=+a[0],e=+a[1],i):r?null:[n,e]},i.nodeSize=function(a){return arguments.length?(r=!0,n=+a[0],e=+a[1],i):r?[n,e]:null},i}},Jg=["x","y","depth","children"];function Kg(t){di.call(this,t)}function Qg(t){O.call(this,[],t)}Kg.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:Jg.length,default:Jg}]},V(Kg,di,{layout(t){const n=t||"tidy";if(tt(BD,n))return BD[n]();P("Unrecognized Tree layout method: "+n)},params:["size","nodeSize"],fields:Jg}),Qg.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},V(Qg,O,{transform(t,n){const e=this.value,r=n.source&&n.source.root,i=n.fork(n.NO_SOURCE),a={};return r||P("TreeLinks transform requires a tree data source."),n.changed(n.ADD_REM)?(i.rem=e,n.visit(n.SOURCE,o=>a[st(o)]=1),r.each(o=>{const s=o.data,u=o.parent&&o.parent.data;u&&a[st(s)]&&a[st(u)]&&i.add.push(St({source:u,target:s}))}),this.value=i.add):n.changed(n.MOD)&&(n.visit(n.MOD,o=>a[st(o)]=1),e.forEach(o=>{(a[st(o.source)]||a[st(o.target)])&&i.mod.push(o)})),i}});const zD={binary:function(t,n,e,r,i){var a,o,s=t.children,u=s.length,l=new Array(u+1);for(l[0]=o=a=0;a<u;++a)l[a+1]=o+=s[a].value;(function c(f,d,h,p,m,g,y){if(f>=d-1){var v=s[f];return v.x0=p,v.y0=m,v.x1=g,void(v.y1=y)}for(var x=l[f],b=h/2+x,w=f+1,A=d-1;w<A;){var _=w+A>>>1;l[_]<b?w=_+1:A=_}b-l[w-1]<l[w]-b&&f+1<w&&--w;var k=l[w]-x,D=h-k;if(g-p>y-m){var C=h?(p*D+g*k)/h:g;c(f,w,k,p,m,C,y),c(w,d,D,C,m,g,y)}else{var F=h?(m*D+y*k)/h:y;c(f,w,k,p,m,g,F),c(w,d,D,p,F,g,y)}})(0,u,t.value,n,e,r,i)},dice:Jl,slice:hp,slicedice:function(t,n,e,r,i){(1&t.depth?hp:Jl)(t,n,e,r,i)},squarify:t9,resquarify:UM},Zg=["x0","y0","x1","y1","depth","children"];function t1(t){di.call(this,t)}t1.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:Zg.length,default:Zg}]},V(t1,di,{layout(){const t=Z8();return t.ratio=n=>{const e=t.tile();e.ratio&&t.tile(e.ratio(n))},t.method=n=>{tt(zD,n)?t.tile(zD[n]):P("Unrecognized Treemap layout method: "+n)},t},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:Zg});const GM=Object.freeze(Object.defineProperty({__proto__:null,nest:Wg,pack:Gg,partition:Yg,stratify:Xg,tree:Kg,treelinks:Qg,treemap:t1},Symbol.toStringTag,{value:"Module"})),n1=4278190080;function e1(t,n,e){return new Uint32Array(t.getImageData(0,0,n,e).data.buffer)}function Gf(t,n,e){if(!n.length)return;const r=n[0].mark.marktype;r==="group"?n.forEach(i=>{i.items.forEach(a=>Gf(t,a.items,e))}):Ae[r].draw(t,{items:e?n.map(VM):n})}function VM(t){const n=nc(t,{});return n.stroke&&n.strokeOpacity!==0||n.fill&&n.fillOpacity!==0?{...n,strokeOpacity:1,stroke:"#000",fillOpacity:0}:n}const re=31,ra=new Uint32Array(33),rr=new Uint32Array(33);rr[0]=0,ra[0]=~rr[0];for(let t=1;t<=32;++t)rr[t]=rr[t-1]<<1|1,ra[t]=~rr[t];function YM(t,n,e){const r=Math.max(1,Math.sqrt(t*n/1e6)),i=~~((t+2*e+r)/r),a=~~((n+2*e+r)/r),o=s=>~~((s+e)/r);return o.invert=s=>s*r-e,o.bitmap=()=>function(s,u){const l=new Uint32Array(~~((s*u+32)/32));function c(d,h){l[d]|=h}function f(d,h){l[d]&=h}return{array:l,get:(d,h)=>{const p=h*s+d;return l[p>>>5]&1<<(p&re)},set:(d,h)=>{const p=h*s+d;c(p>>>5,1<<(p&re))},clear:(d,h)=>{const p=h*s+d;f(p>>>5,~(1<<(p&re)))},getRange:(d,h,p,m)=>{let g,y,v,x,b=m;for(;b>=h;--b)if(g=b*s+d,y=b*s+p,v=g>>>5,x=y>>>5,v===x){if(l[v]&ra[g&re]&rr[1+(y&re)])return!0}else{if(l[v]&ra[g&re]||l[x]&rr[1+(y&re)])return!0;for(let w=v+1;w<x;++w)if(l[w])return!0}return!1},setRange:(d,h,p,m)=>{let g,y,v,x,b;for(;h<=m;++h)if(g=h*s+d,y=h*s+p,v=g>>>5,x=y>>>5,v===x)c(v,ra[g&re]&rr[1+(y&re)]);else for(c(v,ra[g&re]),c(x,rr[1+(y&re)]),b=v+1;b<x;++b)c(b,4294967295)},clearRange:(d,h,p,m)=>{let g,y,v,x,b;for(;h<=m;++h)if(g=h*s+d,y=h*s+p,v=g>>>5,x=y>>>5,v===x)f(v,rr[g&re]|ra[1+(y&re)]);else for(f(v,rr[g&re]),f(x,ra[1+(y&re)]),b=v+1;b<x;++b)f(b,0)},outOfBounds:(d,h,p,m)=>d<0||h<0||m>=u||p>=s}}(i,a),o.ratio=r,o.padding=e,o.width=t,o.height=n,o}function Vf(t,n,e,r,i,a){let o=e/2;return t-o<0||t+o>i||n-(o=r/2)<0||n+o>a}function ia(t,n,e,r,i,a,o,s){const u=i*a/(2*r),l=t(n-u),c=t(n+u),f=t(e-(a/=2)),d=t(e+a);return o.outOfBounds(l,f,c,d)||o.getRange(l,f,c,d)||s&&s.getRange(l,f,c,d)}const XM=[-1,-1,1,1],JM=[-1,1,-1,1],KM=["right","center","left"],QM=["bottom","middle","top"];function OD(t,n,e,r,i,a,o,s,u,l,c,f){return!(i.outOfBounds(t,e,n,r)||(f&&a||i).getRange(t,e,n,r))}const ZM={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},tB={naive:function(t,n,e,r){const i=t.width,a=t.height;return function(o){const s=o.datum.datum.items[r].items,u=s.length,l=o.datum.fontSize,c=we.width(o.datum,o.datum.text);let f,d,h,p,m,g,y,v=0;for(let x=0;x<u;++x)f=s[x].x,h=s[x].y,d=s[x].x2===void 0?f:s[x].x2,p=s[x].y2===void 0?h:s[x].y2,m=(f+d)/2,g=(h+p)/2,y=Math.abs(d-f+p-h),y>=v&&(v=y,o.x=m,o.y=g);return m=c/2,g=l/2,f=o.x-m,d=o.x+m,h=o.y-g,p=o.y+g,o.align="center",f<0&&d<=i?o.align="left":0<=f&&i<d&&(o.align="right"),o.baseline="middle",h<0&&p<=a?o.baseline="top":0<=h&&a<p&&(o.baseline="bottom"),!0}},"reduced-search":function(t,n,e,r){const i=t.width,a=t.height,o=n[0],s=n[1];function u(l,c,f,d,h){const p=t.invert(l),m=t.invert(c);let g,y=f,v=a;if(!Vf(p,m,d,h,i,a)&&!ia(t,p,m,h,d,y,o,s)&&!ia(t,p,m,h,d,h,o,null)){for(;v-y>=1;)g=(y+v)/2,ia(t,p,m,h,d,g,o,s)?v=g:y=g;if(y>f)return[p,m,y,!0]}}return function(l){const c=l.datum.datum.items[r].items,f=c.length,d=l.datum.fontSize,h=we.width(l.datum,l.datum.text);let p,m,g,y,v,x,b,w,A,_,k,D,C,F,E,$,M,S=e?d:0,B=!1,z=!1,j=0;for(let W=0;W<f;++W){for(p=c[W].x,g=c[W].y,m=c[W].x2===void 0?p:c[W].x2,y=c[W].y2===void 0?g:c[W].y2,p>m&&(M=p,p=m,m=M),g>y&&(M=g,g=y,y=M),A=t(p),k=t(m),_=~~((A+k)/2),D=t(g),F=t(y),C=~~((D+F)/2),b=_;b>=A;--b)for(w=C;w>=D;--w)$=u(b,w,S,h,d),$&&([l.x,l.y,S,B]=$);for(b=_;b<=k;++b)for(w=C;w<=F;++w)$=u(b,w,S,h,d),$&&([l.x,l.y,S,B]=$);B||e||(E=Math.abs(m-p+y-g),v=(p+m)/2,x=(g+y)/2,E>=j&&!Vf(v,x,h,d,i,a)&&!ia(t,v,x,d,h,d,o,null)&&(j=E,l.x=v,l.y=x,z=!0))}return!(!B&&!z)&&(v=h/2,x=d/2,o.setRange(t(l.x-v),t(l.y-x),t(l.x+v),t(l.y+x)),l.align="center",l.baseline="middle",!0)}},floodfill:function(t,n,e,r){const i=t.width,a=t.height,o=n[0],s=n[1],u=t.bitmap();return function(l){const c=l.datum.datum.items[r].items,f=c.length,d=l.datum.fontSize,h=we.width(l.datum,l.datum.text),p=[];let m,g,y,v,x,b,w,A,_,k,D,C,F=e?d:0,E=!1,$=!1,M=0;for(let S=0;S<f;++S){for(m=c[S].x,y=c[S].y,g=c[S].x2===void 0?m:c[S].x2,v=c[S].y2===void 0?y:c[S].y2,p.push([t((m+g)/2),t((y+v)/2)]);p.length;)if([w,A]=p.pop(),!(o.get(w,A)||s.get(w,A)||u.get(w,A))){u.set(w,A);for(let B=0;B<4;++B)x=w+XM[B],b=A+JM[B],u.outOfBounds(x,b,x,b)||p.push([x,b]);if(x=t.invert(w),b=t.invert(A),_=F,k=a,!Vf(x,b,h,d,i,a)&&!ia(t,x,b,d,h,_,o,s)&&!ia(t,x,b,d,h,d,o,null)){for(;k-_>=1;)D=(_+k)/2,ia(t,x,b,d,h,D,o,s)?k=D:_=D;_>F&&(l.x=x,l.y=b,F=_,E=!0)}}E||e||(C=Math.abs(g-m+v-y),x=(m+g)/2,b=(y+v)/2,C>=M&&!Vf(x,b,h,d,i,a)&&!ia(t,x,b,d,h,d,o,null)&&(M=C,l.x=x,l.y=b,$=!0))}return!(!E&&!$)&&(x=h/2,b=d/2,o.setRange(t(l.x-x),t(l.y-b),t(l.x+x),t(l.y+b)),l.align="center",l.baseline="middle",!0)}}};function nB(t,n,e,r,i,a,o,s,u,l,c){if(!t.length)return t;const f=Math.max(r.length,i.length),d=function(F,E){const $=new Float64Array(E),M=F.length;for(let S=0;S<M;++S)$[S]=F[S]||0;for(let S=M;S<E;++S)$[S]=$[M-1];return $}(r,f),h=function(F,E){const $=new Int8Array(E),M=F.length;for(let S=0;S<M;++S)$[S]|=ZM[F[S]];for(let S=M;S<E;++S)$[S]=$[M-1];return $}(i,f),p=(b=t[0].datum)&&b.mark&&b.mark.marktype,m=p==="group"&&t[0].datum.items[u].marktype,g=m==="area",y=function(F,E,$,M){const S=B=>[B.x,B.x,B.x,B.y,B.y,B.y];return F?F==="line"||F==="area"?B=>S(B.datum):E==="line"?B=>{const z=B.datum.items[M].items;return S(z.length?z[$==="start"?0:z.length-1]:{x:NaN,y:NaN})}:B=>{const z=B.datum.bounds;return[z.x1,(z.x1+z.x2)/2,z.x2,z.y1,(z.y1+z.y2)/2,z.y2]}:S}(p,m,s,u),v=l===null||l===1/0,x=g&&c==="naive";var b;let w=-1,A=-1;const _=t.map(F=>{const E=v?we.width(F,F.text):void 0;return w=Math.max(w,E),A=Math.max(A,F.fontSize),{datum:F,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(F),textWidth:E}});l=l===null||l===1/0?Math.max(w,A)+Math.max(...r):l;const k=YM(n[0],n[1],l);let D;if(!x){e&&_.sort(($,M)=>e($.datum,M.datum));let F=!1;for(let $=0;$<h.length&&!F;++$)F=h[$]===5||d[$]<0;const E=(p&&o||g)&&t.map($=>$.datum);D=a.length||E?function($,M,S,B,z){const j=$.width,W=$.height,K=B||z,q=qi(j,W).getContext("2d"),at=qi(j,W).getContext("2d"),ot=K&&qi(j,W).getContext("2d");S.forEach(ti=>Gf(q,ti,!1)),Gf(at,M,!1),K&&Gf(ot,M,!0);const it=e1(q,j,W),mt=e1(at,j,W),pt=K&&e1(ot,j,W),X=$.bitmap(),Mt=K&&$.bitmap();let Tt,kt,Et,tn,nn,It,be,zn;for(kt=0;kt<W;++kt)for(Tt=0;Tt<j;++Tt)nn=kt*j+Tt,It=it[nn]&n1,zn=mt[nn]&n1,be=K&&pt[nn]&n1,(It||be||zn)&&(Et=$(Tt),tn=$(kt),z||!It&&!zn||X.set(Et,tn),K&&(It||be)&&Mt.set(Et,tn));return[X,Mt]}(k,E||[],a,F,g):function($,M){const S=$.bitmap();return(M||[]).forEach(B=>S.set($(B.boundary[0]),$(B.boundary[3]))),[S,void 0]}(k,o&&_)}const C=g?tB[c](k,D,o,u):function(F,E,$,M){const S=F.width,B=F.height,z=E[0],j=E[1],W=M.length;return function(K){const q=K.boundary,at=K.datum.fontSize;if(q[2]<0||q[5]<0||q[0]>S||q[3]>B)return!1;let ot,it,mt,pt,X,Mt,Tt,kt,Et,tn,nn,It,be,zn,ti,Je=K.textWidth??0;for(let Se=0;Se<W;++Se){if(ot=(3&$[Se])-1,it=($[Se]>>>2&3)-1,mt=ot===0&&it===0||M[Se]<0,pt=ot&&it?Math.SQRT1_2:1,X=M[Se]<0?-1:1,Mt=q[1+ot]+M[Se]*ot*pt,nn=q[4+it]+X*at*it/2+M[Se]*it*pt,kt=nn-at/2,Et=nn+at/2,It=F(Mt),zn=F(kt),ti=F(Et),!Je){if(!OD(It,It,zn,ti,z,j,0,0,0,0,0,mt))continue;Je=we.width(K.datum,K.datum.text)}if(tn=Mt+X*Je*ot/2,Mt=tn-Je/2,Tt=tn+Je/2,It=F(Mt),be=F(Tt),OD(It,be,zn,ti,z,j,0,0,0,0,0,mt))return K.x=ot?ot*X<0?Tt:Mt:tn,K.y=it?it*X<0?Et:kt:nn,K.align=KM[ot*X+1],K.baseline=QM[it*X+1],z.setRange(It,zn,be,ti),!0}return!1}}(k,D,h,d);return _.forEach(F=>F.opacity=+C(F)),_}const r1=["x","y","opacity","align","baseline"],ND=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function i1(t){O.call(this,null,t)}i1.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:ND},{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:r1.length,default:r1}]},V(i1,O,{transform(t,n){const e=t.modified();if(!(e||n.changed(n.ADD_REM)||function(i){const a=t[i];return bt(a)&&n.modified(a.fields)}("sort")))return;t.size&&t.size.length===2||P("Size parameter should be specified as a [width, height] array.");const r=t.as||r1;return nB(n.materialize(n.SOURCE).source||[],t.size,t.sort,J(t.offset==null?1:t.offset),J(t.anchor||ND),t.avoidMarks||[],t.avoidBaseMark!==!1,t.lineAnchor||"end",t.markIndex||0,t.padding===void 0?0:t.padding,t.method||"naive").forEach(i=>{const a=i.datum;a[r[0]]=i.x,a[r[1]]=i.y,a[r[2]]=i.opacity,a[r[3]]=i.align,a[r[4]]=i.baseline}),n.reflow(e).modifies(r)}});const eB=Object.freeze(Object.defineProperty({__proto__:null,label:i1},Symbol.toStringTag,{value:"Module"}));function RD(t,n){var e,r,i,a,o,s,u=[],l=function(c){return c(a)};if(n==null)u.push(t);else for(e={},r=0,i=t.length;r<i;++r)a=t[r],(s=e[o=n.map(l)])||(e[o]=s=[],s.dims=o,u.push(s)),s.push(a);return u}function a1(t){O.call(this,null,t)}a1.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}]},V(a1,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=RD(n.materialize(n.SOURCE).source,t.groupby),i=(t.groupby||[]).map(en),a=i.length,o=t.as||[en(t.x),en(t.y)],s=[];r.forEach(u=>{_2(u,t.x,t.y,t.bandwidth||.3).forEach(l=>{const c={};for(let f=0;f<a;++f)c[i[f]]=u.dims[f];c[o[0]]=l[0],c[o[1]]=l[1],s.push(St(c))})}),this.value&&(e.rem=this.value),this.value=e.add=e.source=s}return e}});const o1={constant:Tp,linear:Pp,log:b2,exp:x2,pow:w2,quad:jp,poly:A2};function s1(t){O.call(this,null,t)}s1.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(o1)},{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}]},V(s1,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=RD(n.materialize(n.SOURCE).source,t.groupby),i=(t.groupby||[]).map(en),a=t.method||"linear",o=t.order==null?3:t.order,s=((d,h)=>d==="poly"?h:d==="quad"?2:1)(a,o),u=t.as||[en(t.x),en(t.y)],l=o1[a],c=[];let f=t.extent;tt(o1,a)||P("Invalid regression method: "+a),f!=null&&a==="log"&&f[0]<=0&&(n.dataflow.warn("Ignoring extent with values <= 0 for log regression."),f=null),r.forEach(d=>{if(d.length<=s)return void n.dataflow.warn("Skipping regression with more parameters than data points.");const h=l(d,t.x,t.y,o);if(t.params)return void c.push(St({keys:d.dims,coef:h.coef,rSquared:h.rSquared}));const p=f||kr(d,t.x),m=g=>{const y={};for(let v=0;v<i.length;++v)y[i[v]]=d.dims[v];y[u[0]]=g[0],y[u[1]]=g[1],c.push(St(y))};a==="linear"||a==="constant"?p.forEach(g=>m([g,h.predict(g)])):fc(h.predict,p,25,200).forEach(m)}),this.value&&(e.rem=this.value),this.value=e.add=e.source=c}return e}});const rB=Object.freeze(Object.defineProperty({__proto__:null,loess:a1,regression:s1},Symbol.toStringTag,{value:"Module"})),Rn=134217729;function u1(t,n,e,r,i){let a,o,s,u,l=n[0],c=r[0],f=0,d=0;c>l==c>-l?(a=l,l=n[++f]):(a=c,c=r[++d]);let h=0;if(f<t&&d<e)for(c>l==c>-l?(o=l+a,s=a-(o-l),l=n[++f]):(o=c+a,s=a-(o-c),c=r[++d]),a=o,s!==0&&(i[h++]=s);f<t&&d<e;)c>l==c>-l?(o=a+l,u=o-a,s=a-(o-u)+(l-u),l=n[++f]):(o=a+c,u=o-a,s=a-(o-u)+(c-u),c=r[++d]),a=o,s!==0&&(i[h++]=s);for(;f<t;)o=a+l,u=o-a,s=a-(o-u)+(l-u),l=n[++f],a=o,s!==0&&(i[h++]=s);for(;d<e;)o=a+c,u=o-a,s=a-(o-u)+(c-u),c=r[++d],a=o,s!==0&&(i[h++]=s);return a===0&&h!==0||(i[h++]=a),h}function ju(t){return new Float64Array(t)}const Ko=ju(4),TD=ju(8),PD=ju(12),jD=ju(16),ie=ju(4);function Yf(t,n,e,r,i,a){const o=(n-a)*(e-i),s=(t-i)*(r-a),u=o-s,l=Math.abs(o+s);return Math.abs(u)>=33306690738754716e-32*l?u:-function(c,f,d,h,p,m,g){let y,v,x,b,w,A,_,k,D,C,F,E,$,M,S,B,z,j;const W=c-p,K=d-p,q=f-m,at=h-m;M=W*at,A=Rn*W,_=A-(A-W),k=W-_,A=Rn*at,D=A-(A-at),C=at-D,S=k*C-(M-_*D-k*D-_*C),B=q*K,A=Rn*q,_=A-(A-q),k=q-_,A=Rn*K,D=A-(A-K),C=K-D,z=k*C-(B-_*D-k*D-_*C),F=S-z,w=S-F,Ko[0]=S-(F+w)+(w-z),E=M+F,w=E-M,$=M-(E-w)+(F-w),F=$-B,w=$-F,Ko[1]=$-(F+w)+(w-B),j=E+F,w=j-E,Ko[2]=E-(j-w)+(F-w),Ko[3]=j;let ot=function(Mt,Tt){let kt=Tt[0];for(let Et=1;Et<Mt;Et++)kt+=Tt[Et];return kt}(4,Ko),it=22204460492503146e-32*g;if(ot>=it||-ot>=it||(w=c-W,y=c-(W+w)+(w-p),w=d-K,x=d-(K+w)+(w-p),w=f-q,v=f-(q+w)+(w-m),w=h-at,b=h-(at+w)+(w-m),y===0&&v===0&&x===0&&b===0)||(it=11093356479670487e-47*g+33306690738754706e-32*Math.abs(ot),ot+=W*b+at*y-(q*x+K*v),ot>=it||-ot>=it))return ot;M=y*at,A=Rn*y,_=A-(A-y),k=y-_,A=Rn*at,D=A-(A-at),C=at-D,S=k*C-(M-_*D-k*D-_*C),B=v*K,A=Rn*v,_=A-(A-v),k=v-_,A=Rn*K,D=A-(A-K),C=K-D,z=k*C-(B-_*D-k*D-_*C),F=S-z,w=S-F,ie[0]=S-(F+w)+(w-z),E=M+F,w=E-M,$=M-(E-w)+(F-w),F=$-B,w=$-F,ie[1]=$-(F+w)+(w-B),j=E+F,w=j-E,ie[2]=E-(j-w)+(F-w),ie[3]=j;const mt=u1(4,Ko,4,ie,TD);M=W*b,A=Rn*W,_=A-(A-W),k=W-_,A=Rn*b,D=A-(A-b),C=b-D,S=k*C-(M-_*D-k*D-_*C),B=q*x,A=Rn*q,_=A-(A-q),k=q-_,A=Rn*x,D=A-(A-x),C=x-D,z=k*C-(B-_*D-k*D-_*C),F=S-z,w=S-F,ie[0]=S-(F+w)+(w-z),E=M+F,w=E-M,$=M-(E-w)+(F-w),F=$-B,w=$-F,ie[1]=$-(F+w)+(w-B),j=E+F,w=j-E,ie[2]=E-(j-w)+(F-w),ie[3]=j;const pt=u1(mt,TD,4,ie,PD);M=y*b,A=Rn*y,_=A-(A-y),k=y-_,A=Rn*b,D=A-(A-b),C=b-D,S=k*C-(M-_*D-k*D-_*C),B=v*x,A=Rn*v,_=A-(A-v),k=v-_,A=Rn*x,D=A-(A-x),C=x-D,z=k*C-(B-_*D-k*D-_*C),F=S-z,w=S-F,ie[0]=S-(F+w)+(w-z),E=M+F,w=E-M,$=M-(E-w)+(F-w),F=$-B,w=$-F,ie[1]=$-(F+w)+(w-B),j=E+F,w=j-E,ie[2]=E-(j-w)+(F-w),ie[3]=j;const X=u1(pt,PD,4,ie,jD);return jD[X-1]}(t,n,e,r,i,a,l)}const LD=Math.pow(2,-52),Xf=new Uint32Array(512);class Nh{static from(n,e=oB,r=sB){const i=n.length,a=new Float64Array(2*i);for(let o=0;o<i;o++){const s=n[o];a[2*o]=e(s),a[2*o+1]=r(s)}return new Nh(a)}constructor(n){const e=n.length>>1;if(e>0&&typeof n[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=n;const r=Math.max(2*e-5,0);this._triangles=new Uint32Array(3*r),this._halfedges=new Int32Array(3*r),this._hashSize=Math.ceil(Math.sqrt(e)),this._hullPrev=new Uint32Array(e),this._hullNext=new Uint32Array(e),this._hullTri=new Uint32Array(e),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(e),this._dists=new Float64Array(e),this.update()}update(){const{coords:n,_hullPrev:e,_hullNext:r,_hullTri:i,_hullHash:a}=this,o=n.length>>1;let s=1/0,u=1/0,l=-1/0,c=-1/0;for(let D=0;D<o;D++){const C=n[2*D],F=n[2*D+1];C<s&&(s=C),F<u&&(u=F),C>l&&(l=C),F>c&&(c=F),this._ids[D]=D}const f=(s+l)/2,d=(u+c)/2;let h,p,m;for(let D=0,C=1/0;D<o;D++){const F=l1(f,d,n[2*D],n[2*D+1]);F<C&&(h=D,C=F)}const g=n[2*h],y=n[2*h+1];for(let D=0,C=1/0;D<o;D++){if(D===h)continue;const F=l1(g,y,n[2*D],n[2*D+1]);F<C&&F>0&&(p=D,C=F)}let v=n[2*p],x=n[2*p+1],b=1/0;for(let D=0;D<o;D++){if(D===h||D===p)continue;const C=aB(g,y,v,x,n[2*D],n[2*D+1]);C<b&&(m=D,b=C)}let w=n[2*m],A=n[2*m+1];if(b===1/0){for(let F=0;F<o;F++)this._dists[F]=n[2*F]-n[0]||n[2*F+1]-n[1];Qo(this._ids,this._dists,0,o-1);const D=new Uint32Array(o);let C=0;for(let F=0,E=-1/0;F<o;F++){const $=this._ids[F],M=this._dists[$];M>E&&(D[C++]=$,E=M)}return this.hull=D.subarray(0,C),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Yf(g,y,v,x,w,A)<0){const D=p,C=v,F=x;p=m,v=w,x=A,m=D,w=C,A=F}const _=function(D,C,F,E,$,M){const S=F-D,B=E-C,z=$-D,j=M-C,W=S*S+B*B,K=z*z+j*j,q=.5/(S*j-B*z),at=D+(j*W-B*K)*q,ot=C+(S*K-z*W)*q;return{x:at,y:ot}}(g,y,v,x,w,A);this._cx=_.x,this._cy=_.y;for(let D=0;D<o;D++)this._dists[D]=l1(n[2*D],n[2*D+1],_.x,_.y);Qo(this._ids,this._dists,0,o-1),this._hullStart=h;let k=3;r[h]=e[m]=p,r[p]=e[h]=m,r[m]=e[p]=h,i[h]=0,i[p]=1,i[m]=2,a.fill(-1),a[this._hashKey(g,y)]=h,a[this._hashKey(v,x)]=p,a[this._hashKey(w,A)]=m,this.trianglesLen=0,this._addTriangle(h,p,m,-1,-1,-1);for(let D,C,F=0;F<this._ids.length;F++){const E=this._ids[F],$=n[2*E],M=n[2*E+1];if(F>0&&Math.abs($-D)<=LD&&Math.abs(M-C)<=LD||(D=$,C=M,E===h||E===p||E===m))continue;let S=0;for(let K=0,q=this._hashKey($,M);K<this._hashSize&&(S=a[(q+K)%this._hashSize],S===-1||S===r[S]);K++);S=e[S];let B,z=S;for(;B=r[z],Yf($,M,n[2*z],n[2*z+1],n[2*B],n[2*B+1])>=0;)if(z=B,z===S){z=-1;break}if(z===-1)continue;let j=this._addTriangle(z,E,r[z],-1,-1,i[z]);i[E]=this._legalize(j+2),i[z]=j,k++;let W=r[z];for(;B=r[W],Yf($,M,n[2*W],n[2*W+1],n[2*B],n[2*B+1])<0;)j=this._addTriangle(W,E,B,i[E],-1,i[W]),i[E]=this._legalize(j+2),r[W]=W,k--,W=B;if(z===S)for(;B=e[z],Yf($,M,n[2*B],n[2*B+1],n[2*z],n[2*z+1])<0;)j=this._addTriangle(B,E,z,-1,i[z],i[B]),this._legalize(j+2),i[B]=j,r[z]=z,k--,z=B;this._hullStart=e[E]=z,r[z]=e[W]=E,r[E]=W,a[this._hashKey($,M)]=E,a[this._hashKey(n[2*z],n[2*z+1])]=z}this.hull=new Uint32Array(k);for(let D=0,C=this._hullStart;D<k;D++)this.hull[D]=C,C=r[C];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(n,e){return Math.floor(function(r,i){const a=r/(Math.abs(r)+Math.abs(i));return(i>0?3-a:1+a)/4}(n-this._cx,e-this._cy)*this._hashSize)%this._hashSize}_legalize(n){const{_triangles:e,_halfedges:r,coords:i}=this;let a=0,o=0;for(;;){const s=r[n],u=n-n%3;if(o=u+(n+2)%3,s===-1){if(a===0)break;n=Xf[--a];continue}const l=s-s%3,c=u+(n+1)%3,f=l+(s+2)%3,d=e[o],h=e[n],p=e[c],m=e[f];if(iB(i[2*d],i[2*d+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1],i[2*m],i[2*m+1])){e[n]=m,e[s]=d;const g=r[f];if(g===-1){let v=this._hullStart;do{if(this._hullTri[v]===f){this._hullTri[v]=n;break}v=this._hullPrev[v]}while(v!==this._hullStart)}this._link(n,g),this._link(s,r[o]),this._link(o,f);const y=l+(s+1)%3;a<Xf.length&&(Xf[a++]=y)}else{if(a===0)break;n=Xf[--a]}}return o}_link(n,e){this._halfedges[n]=e,e!==-1&&(this._halfedges[e]=n)}_addTriangle(n,e,r,i,a,o){const s=this.trianglesLen;return this._triangles[s]=n,this._triangles[s+1]=e,this._triangles[s+2]=r,this._link(s,i),this._link(s+1,a),this._link(s+2,o),this.trianglesLen+=3,s}}function l1(t,n,e,r){const i=t-e,a=n-r;return i*i+a*a}function iB(t,n,e,r,i,a,o,s){const u=t-o,l=n-s,c=e-o,f=r-s,d=i-o,h=a-s,p=c*c+f*f,m=d*d+h*h;return u*(f*m-p*h)-l*(c*m-p*d)+(u*u+l*l)*(c*h-f*d)<0}function aB(t,n,e,r,i,a){const o=e-t,s=r-n,u=i-t,l=a-n,c=o*o+s*s,f=u*u+l*l,d=.5/(o*l-s*u),h=(l*c-s*f)*d,p=(o*f-u*c)*d;return h*h+p*p}function Qo(t,n,e,r){if(r-e<=20)for(let i=e+1;i<=r;i++){const a=t[i],o=n[a];let s=i-1;for(;s>=e&&n[t[s]]>o;)t[s+1]=t[s--];t[s+1]=a}else{let i=e+1,a=r;Lu(t,e+r>>1,i),n[t[e]]>n[t[r]]&&Lu(t,e,r),n[t[i]]>n[t[r]]&&Lu(t,i,r),n[t[e]]>n[t[i]]&&Lu(t,e,i);const o=t[i],s=n[o];for(;;){do i++;while(n[t[i]]<s);do a--;while(n[t[a]]>s);if(a<i)break;Lu(t,i,a)}t[e+1]=t[a],t[a]=o,r-i+1>=a-e?(Qo(t,n,i,r),Qo(t,n,e,a-1)):(Qo(t,n,e,a-1),Qo(t,n,i,r))}}function Lu(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function oB(t){return t[0]}function sB(t){return t[1]}const qD=1e-6;class Ha{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(n,e){this._+=`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(n,e){this._+=`L${this._x1=+n},${this._y1=+e}`}arc(n,e,r){const i=(n=+n)+(r=+r),a=e=+e;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${a}`:(Math.abs(this._x1-i)>qD||Math.abs(this._y1-a)>qD)&&(this._+="L"+i+","+a),r&&(this._+=`A${r},${r},0,1,1,${n-r},${e}A${r},${r},0,1,1,${this._x1=i},${this._y1=a}`)}rect(n,e,r,i){this._+=`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}h${+r}v${+i}h${-r}Z`}value(){return this._||null}}class c1{constructor(){this._=[]}moveTo(n,e){this._.push([n,e])}closePath(){this._.push(this._[0].slice())}lineTo(n,e){this._.push([n,e])}value(){return this._.length?this._:null}}let uB=class{constructor(t,[n,e,r,i]=[0,0,960,500]){if(!((r=+r)>=(n=+n)&&(i=+i)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=r,this.xmin=n,this.ymax=i,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:e},vectors:r}=this;let i,a;const o=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let p,m,g=0,y=0,v=e.length;g<v;g+=3,y+=2){const x=2*e[g],b=2*e[g+1],w=2*e[g+2],A=t[x],_=t[x+1],k=t[b],D=t[b+1],C=t[w],F=t[w+1],E=k-A,$=D-_,M=C-A,S=F-_,B=2*(E*S-$*M);if(Math.abs(B)<1e-9){if(i===void 0){i=a=0;for(const j of n)i+=t[2*j],a+=t[2*j+1];i/=n.length,a/=n.length}const z=1e9*Math.sign((i-A)*S-(a-_)*M);p=(A+C)/2-z*S,m=(_+F)/2+z*M}else{const z=1/B,j=E*E+$*$,W=M*M+S*S;p=A+(S*j-$*W)*z,m=_+(E*W-M*j)*z}o[y]=p,o[y+1]=m}let s,u,l,c=n[n.length-1],f=4*c,d=t[2*c],h=t[2*c+1];r.fill(0);for(let p=0;p<n.length;++p)c=n[p],s=f,u=d,l=h,f=4*c,d=t[2*c],h=t[2*c+1],r[s+2]=r[f]=l-h,r[s+3]=r[f+1]=d-u}render(t){const n=t==null?t=new Ha:void 0,{delaunay:{halfedges:e,inedges:r,hull:i},circumcenters:a,vectors:o}=this;if(i.length<=1)return null;for(let l=0,c=e.length;l<c;++l){const f=e[l];if(f<l)continue;const d=2*Math.floor(l/3),h=2*Math.floor(f/3),p=a[d],m=a[d+1],g=a[h],y=a[h+1];this._renderSegment(p,m,g,y,t)}let s,u=i[i.length-1];for(let l=0;l<i.length;++l){s=u,u=i[l];const c=2*Math.floor(r[u]/3),f=a[c],d=a[c+1],h=4*s,p=this._project(f,d,o[h+2],o[h+3]);p&&this._renderSegment(f,d,p[0],p[1],t)}return n&&n.value()}renderBounds(t){const n=t==null?t=new Ha:void 0;return t.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(t,n){const e=n==null?n=new Ha:void 0,r=this._clip(t);if(r===null||!r.length)return;n.moveTo(r[0],r[1]);let i=r.length;for(;r[0]===r[i-2]&&r[1]===r[i-1]&&i>1;)i-=2;for(let a=2;a<i;a+=2)r[a]===r[a-2]&&r[a+1]===r[a-1]||n.lineTo(r[a],r[a+1]);return n.closePath(),e&&e.value()}*cellPolygons(){const{delaunay:{points:t}}=this;for(let n=0,e=t.length/2;n<e;++n){const r=this.cellPolygon(n);r&&(r.index=n,yield r)}}cellPolygon(t){const n=new c1;return this.renderCell(t,n),n.value()}_renderSegment(t,n,e,r,i){let a;const o=this._regioncode(t,n),s=this._regioncode(e,r);o===0&&s===0?(i.moveTo(t,n),i.lineTo(e,r)):(a=this._clipSegment(t,n,e,r,o,s))&&(i.moveTo(a[0],a[1]),i.lineTo(a[2],a[3]))}contains(t,n,e){return(n=+n)==n&&(e=+e)==e&&this.delaunay._step(t,n,e)===t}*neighbors(t){const n=this._clip(t);if(n)for(const e of this.delaunay.neighbors(t)){const r=this._clip(e);if(r){t:for(let i=0,a=n.length;i<a;i+=2)for(let o=0,s=r.length;o<s;o+=2)if(n[i]===r[o]&&n[i+1]===r[o+1]&&n[(i+2)%a]===r[(o+s-2)%s]&&n[(i+3)%a]===r[(o+s-1)%s]){yield e;break t}}}}_cell(t){const{circumcenters:n,delaunay:{inedges:e,halfedges:r,triangles:i}}=this,a=e[t];if(a===-1)return null;const o=[];let s=a;do{const u=Math.floor(s/3);if(o.push(n[2*u],n[2*u+1]),s=s%3==2?s-2:s+1,i[s]!==t)break;s=r[s]}while(s!==a&&s!==-1);return o}_clip(t){if(t===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(t);if(n===null)return null;const{vectors:e}=this,r=4*t;return this._simplify(e[r]||e[r+1]?this._clipInfinite(t,n,e[r],e[r+1],e[r+2],e[r+3]):this._clipFinite(t,n))}_clipFinite(t,n){const e=n.length;let r,i,a,o,s=null,u=n[e-2],l=n[e-1],c=this._regioncode(u,l),f=0;for(let d=0;d<e;d+=2)if(r=u,i=l,u=n[d],l=n[d+1],a=c,c=this._regioncode(u,l),a===0&&c===0)o=f,f=0,s?s.push(u,l):s=[u,l];else{let h,p,m,g,y;if(a===0){if((h=this._clipSegment(r,i,u,l,a,c))===null)continue;[p,m,g,y]=h}else{if((h=this._clipSegment(u,l,r,i,c,a))===null)continue;[g,y,p,m]=h,o=f,f=this._edgecode(p,m),o&&f&&this._edge(t,o,f,s,s.length),s?s.push(p,m):s=[p,m]}o=f,f=this._edgecode(g,y),o&&f&&this._edge(t,o,f,s,s.length),s?s.push(g,y):s=[g,y]}if(s)o=f,f=this._edgecode(s[0],s[1]),o&&f&&this._edge(t,o,f,s,s.length);else if(this.contains(t,(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(t,n,e,r,i,a){const o=i<a;for(o&&([t,n,e,r,i,a]=[e,r,t,n,a,i]);;){if(i===0&&a===0)return o?[e,r,t,n]:[t,n,e,r];if(i&a)return null;let s,u,l=i||a;8&l?(s=t+(e-t)*(this.ymax-n)/(r-n),u=this.ymax):4&l?(s=t+(e-t)*(this.ymin-n)/(r-n),u=this.ymin):2&l?(u=n+(r-n)*(this.xmax-t)/(e-t),s=this.xmax):(u=n+(r-n)*(this.xmin-t)/(e-t),s=this.xmin),i?(t=s,n=u,i=this._regioncode(t,n)):(e=s,r=u,a=this._regioncode(e,r))}}_clipInfinite(t,n,e,r,i,a){let o,s=Array.from(n);if((o=this._project(s[0],s[1],e,r))&&s.unshift(o[0],o[1]),(o=this._project(s[s.length-2],s[s.length-1],i,a))&&s.push(o[0],o[1]),s=this._clipFinite(t,s))for(let u,l=0,c=s.length,f=this._edgecode(s[c-2],s[c-1]);l<c;l+=2)u=f,f=this._edgecode(s[l],s[l+1]),u&&f&&(l=this._edge(t,u,f,s,l),c=s.length);else this.contains(t,(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(t,n,e,r,i){for(;n!==e;){let a,o;switch(n){case 5:n=4;continue;case 4:n=6,a=this.xmax,o=this.ymin;break;case 6:n=2;continue;case 2:n=10,a=this.xmax,o=this.ymax;break;case 10:n=8;continue;case 8:n=9,a=this.xmin,o=this.ymax;break;case 9:n=1;continue;case 1:n=5,a=this.xmin,o=this.ymin}r[i]===a&&r[i+1]===o||!this.contains(t,a,o)||(r.splice(i,0,a,o),i+=2)}return i}_project(t,n,e,r){let i,a,o,s=1/0;if(r<0){if(n<=this.ymin)return null;(i=(this.ymin-n)/r)<s&&(o=this.ymin,a=t+(s=i)*e)}else if(r>0){if(n>=this.ymax)return null;(i=(this.ymax-n)/r)<s&&(o=this.ymax,a=t+(s=i)*e)}if(e>0){if(t>=this.xmax)return null;(i=(this.xmax-t)/e)<s&&(a=this.xmax,o=n+(s=i)*r)}else if(e<0){if(t<=this.xmin)return null;(i=(this.xmin-t)/e)<s&&(a=this.xmin,o=n+(s=i)*r)}return[a,o]}_edgecode(t,n){return(t===this.xmin?1:t===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(t,n){return(t<this.xmin?1:t>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(t){if(t&&t.length>4){for(let n=0;n<t.length;n+=2){const e=(n+2)%t.length,r=(n+4)%t.length;(t[n]===t[e]&&t[e]===t[r]||t[n+1]===t[e+1]&&t[e+1]===t[r+1])&&(t.splice(e,2),n-=2)}t.length||(t=null)}return t}};const lB=2*Math.PI,Zo=Math.pow;function cB(t){return t[0]}function fB(t){return t[1]}function dB(t,n,e){return[t+Math.sin(t+n)*e,n+Math.cos(t-n)*e]}class Pb{static from(n,e=cB,r=fB,i){return new Pb("length"in n?function(a,o,s,u){const l=a.length,c=new Float64Array(2*l);for(let f=0;f<l;++f){const d=a[f];c[2*f]=o.call(u,d,f,a),c[2*f+1]=s.call(u,d,f,a)}return c}(n,e,r,i):Float64Array.from(function*(a,o,s,u){let l=0;for(const c of a)yield o.call(u,c,l,a),yield s.call(u,c,l,a),++l}(n,e,r,i)))}constructor(n){this._delaunator=new Nh(n),this.inedges=new Int32Array(n.length/2),this._hullIndex=new Int32Array(n.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const n=this._delaunator,e=this.points;if(n.hull&&n.hull.length>2&&function(u){const{triangles:l,coords:c}=u;for(let f=0;f<l.length;f+=3){const d=2*l[f],h=2*l[f+1],p=2*l[f+2];if((c[p]-c[d])*(c[h+1]-c[d+1])-(c[h]-c[d])*(c[p+1]-c[d+1])>1e-10)return!1}return!0}(n)){this.collinear=Int32Array.from({length:e.length/2},(d,h)=>h).sort((d,h)=>e[2*d]-e[2*h]||e[2*d+1]-e[2*h+1]);const u=this.collinear[0],l=this.collinear[this.collinear.length-1],c=[e[2*u],e[2*u+1],e[2*l],e[2*l+1]],f=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let d=0,h=e.length/2;d<h;++d){const p=dB(e[2*d],e[2*d+1],f);e[2*d]=p[0],e[2*d+1]=p[1]}this._delaunator=new Nh(e)}else delete this.collinear;const r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,a=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),s=this._hullIndex.fill(-1);for(let u=0,l=r.length;u<l;++u){const c=a[u%3==2?u-2:u+1];r[u]!==-1&&o[c]!==-1||(o[c]=u)}for(let u=0,l=i.length;u<l;++u)s[i[u]]=u;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,i.length===2&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(n){return new uB(this,n)}*neighbors(n){const{inedges:e,hull:r,_hullIndex:i,halfedges:a,triangles:o,collinear:s}=this;if(s){const f=s.indexOf(n);return f>0&&(yield s[f-1]),void(f<s.length-1&&(yield s[f+1]))}const u=e[n];if(u===-1)return;let l=u,c=-1;do{if(yield c=o[l],l=l%3==2?l-2:l+1,o[l]!==n)return;if(l=a[l],l===-1){const f=r[(i[n]+1)%r.length];return void(f!==c&&(yield f))}}while(l!==u)}find(n,e,r=0){if((n=+n)!=n||(e=+e)!=e)return-1;const i=r;let a;for(;(a=this._step(r,n,e))>=0&&a!==r&&a!==i;)r=a;return a}_step(n,e,r){const{inedges:i,hull:a,_hullIndex:o,halfedges:s,triangles:u,points:l}=this;if(i[n]===-1||!l.length)return(n+1)%(l.length>>1);let c=n,f=Zo(e-l[2*n],2)+Zo(r-l[2*n+1],2);const d=i[n];let h=d;do{let p=u[h];const m=Zo(e-l[2*p],2)+Zo(r-l[2*p+1],2);if(m<f&&(f=m,c=p),h=h%3==2?h-2:h+1,u[h]!==n)break;if(h=s[h],h===-1){if(h=a[(o[n]+1)%a.length],h!==p&&Zo(e-l[2*h],2)+Zo(r-l[2*h+1],2)<f)return h;break}}while(h!==d);return c}render(n){const e=n==null?n=new Ha:void 0,{points:r,halfedges:i,triangles:a}=this;for(let o=0,s=i.length;o<s;++o){const u=i[o];if(u<o)continue;const l=2*a[o],c=2*a[u];n.moveTo(r[l],r[l+1]),n.lineTo(r[c],r[c+1])}return this.renderHull(n),e&&e.value()}renderPoints(n,e){e!==void 0||n&&typeof n.moveTo=="function"||(e=n,n=null),e=e==null?2:+e;const r=n==null?n=new Ha:void 0,{points:i}=this;for(let a=0,o=i.length;a<o;a+=2){const s=i[a],u=i[a+1];n.moveTo(s+e,u),n.arc(s,u,e,0,lB)}return r&&r.value()}renderHull(n){const e=n==null?n=new Ha:void 0,{hull:r,points:i}=this,a=2*r[0],o=r.length;n.moveTo(i[a],i[a+1]);for(let s=1;s<o;++s){const u=2*r[s];n.lineTo(i[u],i[u+1])}return n.closePath(),e&&e.value()}hullPolygon(){const n=new c1;return this.renderHull(n),n.value()}renderTriangle(n,e){const r=e==null?e=new Ha:void 0,{points:i,triangles:a}=this,o=2*a[n*=3],s=2*a[n+1],u=2*a[n+2];return e.moveTo(i[o],i[o+1]),e.lineTo(i[s],i[s+1]),e.lineTo(i[u],i[u+1]),e.closePath(),r&&r.value()}*trianglePolygons(){const{triangles:n}=this;for(let e=0,r=n.length/3;e<r;++e)yield this.trianglePolygon(e)}trianglePolygon(n){const e=new c1;return this.renderTriangle(n,e),e.value()}}function f1(t){O.call(this,null,t)}f1.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 hB=[-1e5,-1e5,1e5,1e5];function pB(t){const n=t[0][0],e=t[0][1];let r=t.length-1;for(;t[r][0]===n&&t[r][1]===e;--r);return"M"+t.slice(0,r+1).join("L")+"Z"}function mB(t){return t.length===2&&t[0][0]===t[1][0]&&t[0][1]===t[1][1]}V(f1,O,{transform(t,n){const e=t.as||"path",r=n.source;if(!r||!r.length)return n;let i=t.size;i=i?[0,0,i[0],i[1]]:(i=t.extent)?[i[0][0],i[0][1],i[1][0],i[1][1]]:hB;const a=this.value=Pb.from(r,t.x,t.y).voronoi(i);for(let o=0,s=r.length;o<s;++o){const u=a.cellPolygon(o);r[o][e]=u&&!mB(u)?pB(u):null}return n.reflow(t.modified()).modifies(e)}});const gB=Object.freeze(Object.defineProperty({__proto__:null,voronoi:f1},Symbol.toStringTag,{value:"Module"}));var d1=Math.PI/180,Jf=2048;function yB(){var t,n,e,r,i,a,o,s=[256,256],u=UD,l=[],c=Math.random,f={};function d(h,p,m){for(var g,y,v,x=p.x,b=p.y,w=Math.hypot(s[0],s[1]),A=u(s),_=c()<.5?1:-1,k=-_;(g=A(k+=_))&&(y=~~g[0],v=~~g[1],!(Math.min(Math.abs(y),Math.abs(v))>=w));)if(p.x=x+y,p.y=b+v,!(p.x+p.x0<0||p.y+p.y0<0||p.x+p.x1>s[0]||p.y+p.y1>s[1])&&(!m||!bB(p,h,s[0]))&&(!m||wB(p,m))){for(var D,C=p.sprite,F=p.width>>5,E=s[0]>>5,$=p.x-(F<<4),M=127&$,S=32-M,B=p.y1-p.y0,z=(p.y+p.y0)*E+($>>5),j=0;j<B;j++){D=0;for(var W=0;W<=F;W++)h[z+W]|=D<<S|(W<F?(D=C[j*F+W])>>>M:0);z+=E}return p.sprite=null,!0}return!1}return f.layout=function(){for(var h=function(w){w.width=w.height=1;var A=Math.sqrt(w.getContext("2d").getImageData(0,0,1,1).data.length>>2);w.width=2048/A,w.height=Jf/A;var _=w.getContext("2d");return _.fillStyle=_.strokeStyle="red",_.textAlign="center",{context:_,ratio:A}}(qi()),p=function(w){for(var A=[],_=-1;++_<w;)A[_]=0;return A}((s[0]>>5)*s[1]),m=null,g=l.length,y=-1,v=[],x=l.map(w=>({text:t(w),font:n(w),style:r(w),weight:i(w),rotate:a(w),size:~~(e(w)+1e-14),padding:o(w),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:w})).sort((w,A)=>A.size-w.size);++y<g;){var b=x[y];b.x=s[0]*(c()+.5)>>1,b.y=s[1]*(c()+.5)>>1,vB(h,b,x,y),b.hasText&&d(p,b,m)&&(v.push(b),m?xB(m,b):m=[{x:b.x+b.x0,y:b.y+b.y0},{x:b.x+b.x1,y:b.y+b.y1}],b.x-=s[0]>>1,b.y-=s[1]>>1)}return v},f.words=function(h){return arguments.length?(l=h,f):l},f.size=function(h){return arguments.length?(s=[+h[0],+h[1]],f):s},f.font=function(h){return arguments.length?(n=Ga(h),f):n},f.fontStyle=function(h){return arguments.length?(r=Ga(h),f):r},f.fontWeight=function(h){return arguments.length?(i=Ga(h),f):i},f.rotate=function(h){return arguments.length?(a=Ga(h),f):a},f.text=function(h){return arguments.length?(t=Ga(h),f):t},f.spiral=function(h){return arguments.length?(u=AB[h]||h,f):u},f.fontSize=function(h){return arguments.length?(e=Ga(h),f):e},f.padding=function(h){return arguments.length?(o=Ga(h),f):o},f.random=function(h){return arguments.length?(c=h,f):c},f}function vB(t,n,e,r){if(!n.sprite){var i=t.context,a=t.ratio;i.clearRect(0,0,2048/a,Jf/a);var o,s,u,l,c,f=0,d=0,h=0,p=e.length;for(--r;++r<p;){if(n=e[r],i.save(),i.font=n.style+" "+n.weight+" "+~~((n.size+1)/a)+"px "+n.font,o=i.measureText(n.text+"m").width*a,u=n.size<<1,n.rotate){var m=Math.sin(n.rotate*d1),g=Math.cos(n.rotate*d1),y=o*g,v=o*m,x=u*g,b=u*m;o=Math.max(Math.abs(y+b),Math.abs(y-b))+31>>5<<5,u=~~Math.max(Math.abs(v+x),Math.abs(v-x))}else o=o+31>>5<<5;if(u>h&&(h=u),f+o>=2048&&(f=0,d+=h,h=0),d+u>=Jf)break;i.translate((f+(o>>1))/a,(d+(u>>1))/a),n.rotate&&i.rotate(n.rotate*d1),i.fillText(n.text,0,0),n.padding&&(i.lineWidth=2*n.padding,i.strokeText(n.text,0,0)),i.restore(),n.width=o,n.height=u,n.xoff=f,n.yoff=d,n.x1=o>>1,n.y1=u>>1,n.x0=-n.x1,n.y0=-n.y1,n.hasText=!0,f+=o}for(var w=i.getImageData(0,0,2048/a,Jf/a).data,A=[];--r>=0;)if((n=e[r]).hasText){for(s=(o=n.width)>>5,u=n.y1-n.y0,l=0;l<u*s;l++)A[l]=0;if((f=n.xoff)==null)return;d=n.yoff;var _=0,k=-1;for(c=0;c<u;c++){for(l=0;l<o;l++){var D=s*c+(l>>5),C=w[2048*(d+c)+(f+l)<<2]?1<<31-l%32:0;A[D]|=C,_|=C}_?k=c:(n.y0++,u--,c--,d++)}n.y1=n.y0+k,n.sprite=A.slice(0,(n.y1-n.y0)*s)}}}function bB(t,n,e){e>>=5;for(var r,i=t.sprite,a=t.width>>5,o=t.x-(a<<4),s=127&o,u=32-s,l=t.y1-t.y0,c=(t.y+t.y0)*e+(o>>5),f=0;f<l;f++){r=0;for(var d=0;d<=a;d++)if((r<<u|(d<a?(r=i[f*a+d])>>>s:0))&n[c+d])return!0;c+=e}return!1}function xB(t,n){var e=t[0],r=t[1];n.x+n.x0<e.x&&(e.x=n.x+n.x0),n.y+n.y0<e.y&&(e.y=n.y+n.y0),n.x+n.x1>r.x&&(r.x=n.x+n.x1),n.y+n.y1>r.y&&(r.y=n.y+n.y1)}function wB(t,n){return t.x+t.x1>n[0].x&&t.x+t.x0<n[1].x&&t.y+t.y1>n[0].y&&t.y+t.y0<n[1].y}function UD(t){var n=t[0]/t[1];return function(e){return[n*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function Ga(t){return typeof t=="function"?t:function(){return t}}var AB={archimedean:UD,rectangular:function(t){var n=4*t[0]/t[1],e=0,r=0;return function(i){var a=i<0?-1:1;switch(Math.sqrt(1+4*a*i)-a&3){case 0:e+=n;break;case 1:r+=4;break;case 2:e-=n;break;default:r-=4}return[e,r]}}};const ID=["x","y","font","fontSize","fontStyle","fontWeight","angle"],_B=["text","font","rotate","fontSize","fontStyle","fontWeight"];function h1(t){O.call(this,yB(),t)}h1.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:ID}]},V(h1,O,{transform(t,n){!t.size||t.size[0]&&t.size[1]||P("Wordcloud size dimensions must be non-zero.");const e=t.modified();if(!(e||n.changed(n.ADD_REM)||_B.some(function(h){const p=t[h];return bt(p)&&n.modified(p.fields)})))return;const r=n.materialize(n.SOURCE).source,i=this.value,a=t.as||ID;let o,s=t.fontSize||14;if(bt(s)?o=t.fontSizeRange:s=In(s),o){const h=s,p=Dt("sqrt")().domain(kr(r,h)).range(o);s=m=>p(h(m))}r.forEach(h=>{h[a[0]]=NaN,h[a[1]]=NaN,h[a[3]]=0});const u=i.words(r).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(s).random(Ne).layout(),l=i.size(),c=l[0]>>1,f=l[1]>>1,d=u.length;for(let h,p,m=0;m<d;++m)h=u[m],p=h.datum,p[a[0]]=h.x+c,p[a[1]]=h.y+f,p[a[2]]=h.font,p[a[3]]=h.size,p[a[4]]=h.style,p[a[5]]=h.weight,p[a[6]]=h.rotate;return n.reflow(e).modifies(a)}});const kB=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:h1},Symbol.toStringTag,{value:"Module"})),DB=t=>new Uint8Array(t),FB=t=>new Uint16Array(t),qu=t=>new Uint32Array(t);function Kf(t,n,e){const r=(n<257?DB:n<65537?FB:qu)(t);return e&&r.set(e),r}function WD(t,n,e){const r=1<<n;return{one:r,zero:~r,range:e.slice(),bisect:t.bisect,index:t.index,size:t.size,onAdd(i,a){const o=this,s=o.bisect(o.range,i.value),u=i.index,l=s[0],c=s[1],f=u.length;let d;for(d=0;d<l;++d)a[u[d]]|=r;for(d=c;d<f;++d)a[u[d]]|=r;return o}}}function HD(){let t=qu(0),n=[],e=0;return{insert:function(r,i,a){if(!i.length)return[];const o=e,s=i.length,u=qu(s);let l,c,f,d=Array(s);for(f=0;f<s;++f)d[f]=r(i[f]),u[f]=f;if(d=function(h,p){return h.sort.call(p,(m,g)=>{const y=h[m],v=h[g];return y<v?-1:y>v?1:0}),function(m,g){return Array.from(g,y=>m[y])}(h,p)}(d,u),o)l=n,c=t,n=Array(o+s),t=qu(o+s),function(h,p,m,g,y,v,x,b,w){let A,_=0,k=0;for(A=0;_<g&&k<x;++A)p[_]<y[k]?(b[A]=p[_],w[A]=m[_++]):(b[A]=y[k],w[A]=v[k++]+h);for(;_<g;++_,++A)b[A]=p[_],w[A]=m[_];for(;k<x;++k,++A)b[A]=y[k],w[A]=v[k]+h}(a,l,c,o,d,u,s,n,t);else{if(a>0)for(f=0;f<s;++f)u[f]+=a;n=d,t=u}return e=o+s,{index:u,value:d}},remove:function(r,i){const a=e;let o,s,u;for(s=0;!i[t[s]]&&s<a;++s);for(u=s;s<a;++s)i[o=t[s]]||(t[u]=o,n[u]=n[s],++u);e=a-r},bisect:function(r,i){let a;return i?a=i.length:(i=n,a=e),[r8(i,r[0],0,a),Ea(i,r[1],0,a)]},reindex:function(r){for(let i=0,a=e;i<a;++i)t[i]=r[t[i]]},index:()=>t,size:()=>e}}function p1(t){O.call(this,function(){let n=8,e=[],r=qu(0),i=Kf(0,n),a=Kf(0,n);return{data:()=>e,seen:()=>r=function(o,s,u){return o.length>=s?o:((u=u||new o.constructor(s)).set(o),u)}(r,e.length),add(o){for(let s,u=0,l=e.length,c=o.length;u<c;++u)s=o[u],s._index=l++,e.push(s)},remove(o,s){const u=e.length,l=Array(u-o),c=e;let f,d,h;for(d=0;!s[d]&&d<u;++d)l[d]=e[d],c[d]=d;for(h=d;d<u;++d)f=e[d],s[d]?c[d]=-1:(c[d]=h,i[h]=i[d],a[h]=a[d],l[h]=f,f._index=h++),i[d]=0;return e=l,c},size:()=>e.length,curr:()=>i,prev:()=>a,reset:o=>a[o]=i[o],all:()=>n<257?255:n<65537?65535:4294967295,set(o,s){i[o]|=s},clear(o,s){i[o]&=~s},resize(o,s){(o>i.length||s>n)&&(n=Math.max(s,n),i=Kf(o,n,i),a=Kf(o,n))}}}(),t),this._indices=null,this._dims=null}function m1(t){O.call(this,null,t)}p1.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}}]},V(p1,O,{transform(t,n){return this._dims?t.modified("fields")||t.fields.some(e=>n.modified(e.fields))?this.reinit(t,n):this.eval(t,n):this.init(t,n)},init(t,n){const e=t.fields,r=t.query,i=this._indices={},a=this._dims=[],o=r.length;let s,u,l=0;for(;l<o;++l)s=e[l].fname,u=i[s]||(i[s]=HD()),a.push(WD(u,l,r[l]));return this.eval(t,n)},reinit(t,n){const e=n.materialize().fork(),r=t.fields,i=t.query,a=this._indices,o=this._dims,s=this.value,u=s.curr(),l=s.prev(),c=s.all(),f=e.rem=e.add,d=e.mod,h=i.length,p={};let m,g,y,v,x,b,w,A,_;if(l.set(u),n.rem.length&&(x=this.remove(t,n,e)),n.add.length&&s.add(n.add),n.mod.length)for(b={},v=n.mod,w=0,A=v.length;w<A;++w)b[v[w]._index]=1;for(w=0;w<h;++w)_=r[w],(!o[w]||t.modified("fields",w)||n.modified(_.fields))&&(y=_.fname,(m=p[y])||(a[y]=g=HD(),p[y]=m=g.insert(_,n.source,0)),o[w]=WD(g,w,i[w]).onAdd(m,u));for(w=0,A=s.data().length;w<A;++w)x[w]||(l[w]!==u[w]?f.push(w):b[w]&&u[w]!==c&&d.push(w));return s.mask=(1<<h)-1,e},eval(t,n){const e=n.materialize().fork(),r=this._dims.length;let i=0;return n.rem.length&&(this.remove(t,n,e),i|=(1<<r)-1),t.modified("query")&&!t.modified("fields")&&(i|=this.update(t,n,e)),n.add.length&&(this.insert(t,n,e),i|=(1<<r)-1),n.mod.length&&(this.modify(n,e),i|=(1<<r)-1),this.value.mask=i,e},insert(t,n,e){const r=n.add,i=this.value,a=this._dims,o=this._indices,s=t.fields,u={},l=e.add,c=i.size()+r.length,f=a.length;let d,h,p,m=i.size();i.resize(c,f),i.add(r);const g=i.curr(),y=i.prev(),v=i.all();for(d=0;d<f;++d)h=s[d].fname,p=u[h]||(u[h]=o[h].insert(s[d],r,m)),a[d].onAdd(p,g);for(;m<c;++m)y[m]=v,g[m]!==v&&l.push(m)},modify(t,n){const e=n.mod,r=this.value,i=r.curr(),a=r.all(),o=t.mod;let s,u,l;for(s=0,u=o.length;s<u;++s)l=o[s]._index,i[l]!==a&&e.push(l)},remove(t,n,e){const r=this._indices,i=this.value,a=i.curr(),o=i.prev(),s=i.all(),u={},l=e.rem,c=n.rem;let f,d,h,p;for(f=0,d=c.length;f<d;++f)h=c[f]._index,u[h]=1,o[h]=p=a[h],a[h]=s,p!==s&&l.push(h);for(h in r)r[h].remove(d,u);return this.reindex(n,d,u),u},reindex(t,n,e){const r=this._indices,i=this.value;t.runAfter(()=>{const a=i.remove(n,e);for(const o in r)r[o].reindex(a)})},update(t,n,e){const r=this._dims,i=t.query,a=n.stamp,o=r.length;let s,u,l=0;for(e.filters=0,u=0;u<o;++u)t.modified("query",u)&&(s=u,++l);if(l===1)l=r[s].one,this.incrementOne(r[s],i[s],e.add,e.rem);else for(u=0,l=0;u<o;++u)t.modified("query",u)&&(l|=r[u].one,this.incrementAll(r[u],i[u],a,e.add),e.rem=e.add);return l},incrementAll(t,n,e,r){const i=this.value,a=i.seen(),o=i.curr(),s=i.prev(),u=t.index(),l=t.bisect(t.range),c=t.bisect(n),f=c[0],d=c[1],h=l[0],p=l[1],m=t.one;let g,y,v;if(f<h)for(g=f,y=Math.min(h,d);g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;else if(f>h)for(g=h,y=Math.min(f,p);g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;if(d>p)for(g=Math.max(f,p),y=d;g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;else if(d<p)for(g=Math.max(h,d),y=p;g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;t.range=n.slice()},incrementOne(t,n,e,r){const i=this.value.curr(),a=t.index(),o=t.bisect(t.range),s=t.bisect(n),u=s[0],l=s[1],c=o[0],f=o[1],d=t.one;let h,p,m;if(u<c)for(h=u,p=Math.min(c,l);h<p;++h)m=a[h],i[m]^=d,e.push(m);else if(u>c)for(h=c,p=Math.min(u,f);h<p;++h)m=a[h],i[m]^=d,r.push(m);if(l>f)for(h=Math.max(u,f),p=l;h<p;++h)m=a[h],i[m]^=d,e.push(m);else if(l<f)for(h=Math.max(c,l),p=f;h<p;++h)m=a[h],i[m]^=d,r.push(m);t.range=n.slice()}}),m1.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."}]},V(m1,O,{transform(t,n){const e=~(t.ignore||0),r=t.filter,i=r.mask;if((i&e)===0)return n.StopPropagation;const a=n.fork(n.ALL),o=r.data(),s=r.curr(),u=r.prev(),l=c=>s[c]&e?null:o[c];return a.filter(a.MOD,l),i&i-1?(a.filter(a.ADD,c=>{const f=s[c]&e;return!f&&f^u[c]&e?o[c]:null}),a.filter(a.REM,c=>{const f=s[c]&e;return f&&!(f^f^u[c]&e)?o[c]:null})):(a.filter(a.ADD,l),a.filter(a.REM,c=>(s[c]&e)===i?o[c]:null)),a.filter(a.SOURCE,c=>l(c._index))}});const CB=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:p1,resolvefilter:m1},Symbol.toStringTag,{value:"Module"})),ts="Literal",EB="Property",$B="ArrayExpression",SB="BinaryExpression",GD="CallExpression",MB="ConditionalExpression",BB="LogicalExpression",zB="MemberExpression",OB="ObjectExpression",NB="UnaryExpression";function ir(t){this.type=t}var hi,nt,N,Tn,zt;ir.prototype.visit=function(t){let n,e,r;if(t(this))return 1;for(n=function(i){switch(i.type){case $B:return i.elements;case SB:case BB:return[i.left,i.right];case GD:return[i.callee].concat(i.arguments);case MB:return[i.test,i.consequent,i.alternate];case zB:return[i.object,i.property];case OB:return i.properties;case EB:return[i.key,i.value];case NB:return[i.argument];default:return[]}}(this),e=0,r=n.length;e<r;++e)if(n[e].visit(t))return 1},(hi={})[1]="Boolean",hi[2]="<end>",hi[3]="Identifier",hi[4]="Keyword",hi[5]="Null",hi[6]="Numeric",hi[7]="Punctuator",hi[8]="String",hi[9]="RegularExpression";var VD="Identifier",gn="Unexpected token %0",g1="Invalid regular expression",y1="Invalid regular expression: missing /",YD="Octal literals are not allowed in strict mode.",Fn="ILLEGAL",Uu="Disabled.",RB=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]"),TB=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 Qf(t,n){if(!t)throw new Error("ASSERT: "+n)}function pi(t){return t>=48&&t<=57}function v1(t){return"0123456789abcdefABCDEF".includes(t)}function Iu(t){return"01234567".includes(t)}function PB(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(t)}function Wu(t){return t===10||t===13||t===8232||t===8233}function Hu(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&RB.test(String.fromCharCode(t))}function Zf(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&TB.test(String.fromCharCode(t))}const jB={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 XD(){for(;N<Tn;){const t=nt.charCodeAt(N);if(!PB(t)&&!Wu(t))break;++N}}function b1(t){var n,e,r,i=0;for(e=t==="u"?4:2,n=0;n<e;++n)N<Tn&&v1(nt[N])?(r=nt[N++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):Ft({},gn,Fn);return String.fromCharCode(i)}function LB(){var t,n,e,r;for(n=0,(t=nt[N])==="}"&&Ft({},gn,Fn);N<Tn&&v1(t=nt[N++]);)n=16*n+"0123456789abcdef".indexOf(t.toLowerCase());return(n>1114111||t!=="}")&&Ft({},gn,Fn),n<=65535?String.fromCharCode(n):(e=55296+(n-65536>>10),r=56320+(n-65536&1023),String.fromCharCode(e,r))}function JD(){var t,n;for(t=nt.charCodeAt(N++),n=String.fromCharCode(t),t===92&&(nt.charCodeAt(N)!==117&&Ft({},gn,Fn),++N,(t=b1("u"))&&t!=="\\"&&Hu(t.charCodeAt(0))||Ft({},gn,Fn),n=t);N<Tn&&Zf(t=nt.charCodeAt(N));)++N,n+=String.fromCharCode(t),t===92&&(n=n.substr(0,n.length-1),nt.charCodeAt(N)!==117&&Ft({},gn,Fn),++N,(t=b1("u"))&&t!=="\\"&&Zf(t.charCodeAt(0))||Ft({},gn,Fn),n+=t);return n}function qB(){var t,n;return t=N,n=nt.charCodeAt(N)===92?JD():function(){var e,r;for(e=N++;N<Tn;){if((r=nt.charCodeAt(N))===92)return N=e,JD();if(!Zf(r))break;++N}return nt.slice(e,N)}(),{type:n.length===1?3:jB.hasOwnProperty(n)?4:n==="null"?5:n==="true"||n==="false"?1:3,value:n,start:t,end:N}}function x1(){var t,n,e,r,i=N,a=nt.charCodeAt(N),o=nt[N];switch(a){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++N,{type:7,value:String.fromCharCode(a),start:i,end:N};default:if((t=nt.charCodeAt(N+1))===61)switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return N+=2,{type:7,value:String.fromCharCode(a)+String.fromCharCode(t),start:i,end:N};case 33:case 61:return N+=2,nt.charCodeAt(N)===61&&++N,{type:7,value:nt.slice(i,N),start:i,end:N}}}return(r=nt.substr(N,4))===">>>="?{type:7,value:r,start:i,end:N+=4}:(e=r.substr(0,3))===">>>"||e==="<<="||e===">>="?{type:7,value:e,start:i,end:N+=3}:o===(n=e.substr(0,2))[1]&&"+-<>&|".includes(o)||n==="=>"?{type:7,value:n,start:i,end:N+=2}:(n==="//"&&Ft({},gn,Fn),"<>=!+-*%&|^/".includes(o)?{type:7,value:o,start:i,end:++N}:void Ft({},gn,Fn))}function KD(){var t,n,e;if(Qf(pi((e=nt[N]).charCodeAt(0))||e===".","Numeric literal must start with a decimal digit or a decimal point"),n=N,t="",e!=="."){if(t=nt[N++],e=nt[N],t==="0"){if(e==="x"||e==="X")return++N,function(r){let i="";for(;N<Tn&&v1(nt[N]);)i+=nt[N++];return i.length===0&&Ft({},gn,Fn),Hu(nt.charCodeAt(N))&&Ft({},gn,Fn),{type:6,value:parseInt("0x"+i,16),start:r,end:N}}(n);if(Iu(e))return function(r){let i="0"+nt[N++];for(;N<Tn&&Iu(nt[N]);)i+=nt[N++];return(Hu(nt.charCodeAt(N))||pi(nt.charCodeAt(N)))&&Ft({},gn,Fn),{type:6,value:parseInt(i,8),octal:!0,start:r,end:N}}(n);e&&pi(e.charCodeAt(0))&&Ft({},gn,Fn)}for(;pi(nt.charCodeAt(N));)t+=nt[N++];e=nt[N]}if(e==="."){for(t+=nt[N++];pi(nt.charCodeAt(N));)t+=nt[N++];e=nt[N]}if(e==="e"||e==="E")if(t+=nt[N++],(e=nt[N])!=="+"&&e!=="-"||(t+=nt[N++]),pi(nt.charCodeAt(N)))for(;pi(nt.charCodeAt(N));)t+=nt[N++];else Ft({},gn,Fn);return Hu(nt.charCodeAt(N))&&Ft({},gn,Fn),{type:6,value:parseFloat(t),start:n,end:N}}function UB(){var t,n,e,r;return zt=null,XD(),t=N,n=function(){var i,a,o,s;for(Qf((i=nt[N])==="/","Regular expression literal must start with a slash"),a=nt[N++],o=!1,s=!1;N<Tn;)if(a+=i=nt[N++],i==="\\")Wu((i=nt[N++]).charCodeAt(0))&&Ft({},y1),a+=i;else if(Wu(i.charCodeAt(0)))Ft({},y1);else if(o)i==="]"&&(o=!1);else{if(i==="/"){s=!0;break}i==="["&&(o=!0)}return s||Ft({},y1),{value:a.substr(1,a.length-2),literal:a}}(),e=function(){var i,a,o;for(a="",o="";N<Tn&&Zf((i=nt[N]).charCodeAt(0));)++N,i==="\\"&&N<Tn?Ft({},gn,Fn):(o+=i,a+=i);return o.search(/[^gimuy]/g)>=0&&Ft({},g1,o),{value:o,literal:a}}(),r=function(i,a){let o=i;a.includes("u")&&(o=o.replace(/\\u\{([0-9a-fA-F]+)\}/g,(s,u)=>{if(parseInt(u,16)<=1114111)return"x";Ft({},g1)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(o)}catch{Ft({},g1)}try{return new RegExp(i,a)}catch{return null}}(n.value,e.value),{literal:n.literal+e.literal,value:r,regex:{pattern:n.value,flags:e.value},start:t,end:N}}function QD(){if(XD(),N>=Tn)return{type:2,start:N,end:N};const t=nt.charCodeAt(N);return Hu(t)?qB():t===40||t===41||t===59?x1():t===39||t===34?function(){var n,e,r,i,a="",o=!1;for(Qf((n=nt[N])==="'"||n==='"',"String literal must starts with a quote"),e=N,++N;N<Tn;){if((r=nt[N++])===n){n="";break}if(r==="\\")if((r=nt[N++])&&Wu(r.charCodeAt(0)))r==="\r"&&nt[N]===`
3
3
  `&&++N;else switch(r){case"u":case"x":nt[N]==="{"?(++N,a+=LB()):a+=b1(r);break;case"n":a+=`
4
- `;break;case"r":a+="\r";break;case"t":a+=" ";break;case"b":a+="\b";break;case"f":a+="\f";break;case"v":a+="\v";break;default:Iu(r)?((i="01234567".indexOf(r))!==0&&(o=!0),N<Tn&&Iu(nt[N])&&(o=!0,i=8*i+"01234567".indexOf(nt[N++]),"0123".includes(r)&&N<Tn&&Iu(nt[N])&&(i=8*i+"01234567".indexOf(nt[N++]))),a+=String.fromCharCode(i)):a+=r}else{if(Wu(r.charCodeAt(0)))break;a+=r}}return n!==""&&Ft({},gn,Fn),{type:8,value:a,octal:o,start:e,end:N}}():t===46?pi(nt.charCodeAt(N+1))?KD():x1():pi(t)?KD():x1()}function fe(){const t=zt;return N=t.end,zt=QD(),N=t.end,t}function ZD(){const t=N;zt=QD(),N=t}function tF(t,n,e){const r=new ir(t==="||"||t==="&&"?"LogicalExpression":"BinaryExpression");return r.operator=t,r.left=n,r.right=e,r}function IB(t,n){const e=new ir("CallExpression");return e.callee=t,e.arguments=n,e}function w1(t){const n=new ir(VD);return n.name=t,n}function Gu(t){const n=new ir("Literal");return n.value=t.value,n.raw=nt.slice(t.start,t.end),t.regex&&(n.raw==="//"&&(n.raw="/(?:)/"),n.regex=t.regex),n}function nF(t,n,e){const r=new ir("MemberExpression");return r.computed=t==="[",r.object=n,r.property=e,r.computed||(e.member=!0),r}function eF(t,n,e){const r=new ir("Property");return r.key=n,r.value=e,r.kind=t,r}function Ft(t,n){var e,r=Array.prototype.slice.call(arguments,2),i=n.replace(/%(\d)/g,(a,o)=>(Qf(o<r.length,"Message reference must be in range"),r[o]));throw(e=new Error(i)).index=N,e.description=i,e}function td(t){t.type===2&&Ft(t,"Unexpected end of input"),t.type===6&&Ft(t,"Unexpected number"),t.type===8&&Ft(t,"Unexpected string"),t.type===3&&Ft(t,"Unexpected identifier"),t.type===4&&Ft(t,"Unexpected reserved word"),Ft(t,gn,t.value)}function Pn(t){const n=fe();n.type===7&&n.value===t||td(n)}function Ht(t){return zt.type===7&&zt.value===t}function A1(t){return zt.type===4&&zt.value===t}function WB(){const t=[];for(N=zt.start,Pn("[");!Ht("]");)Ht(",")?(fe(),t.push(null)):(t.push(Va()),Ht("]")||Pn(","));return fe(),function(n){const e=new ir("ArrayExpression");return e.elements=n,e}(t)}function rF(){N=zt.start;const t=fe();return t.type===8||t.type===6?(t.octal&&Ft(t,YD),Gu(t)):w1(t.value)}function HB(){var t,n,e;return N=zt.start,(t=zt).type===3?(e=rF(),Pn(":"),eF("init",e,Va())):t.type!==2&&t.type!==7?(n=rF(),Pn(":"),eF("init",n,Va())):void td(t)}function GB(){var t,n,e=[],r={},i=String;for(N=zt.start,Pn("{");!Ht("}");)n="$"+((t=HB()).key.type===VD?t.key.name:i(t.key.value)),Object.prototype.hasOwnProperty.call(r,n)?Ft({},"Duplicate data property in object literal not allowed in strict mode"):r[n]=!0,e.push(t),Ht("}")||Pn(",");return Pn("}"),function(a){const o=new ir("ObjectExpression");return o.properties=a,o}(e)}const VB={if:1};function YB(){var t,n,e;if(Ht("("))return function(){Pn("(");const r=_1();return Pn(")"),r}();if(Ht("["))return WB();if(Ht("{"))return GB();if(t=zt.type,N=zt.start,t===3||VB[zt.value])e=w1(fe().value);else if(t===8||t===6)zt.octal&&Ft(zt,YD),e=Gu(fe());else{if(t===4)throw new Error(Uu);t===1?((n=fe()).value=n.value==="true",e=Gu(n)):t===5?((n=fe()).value=null,e=Gu(n)):Ht("/")||Ht("/=")?(e=Gu(UB()),ZD()):td(fe())}return e}function XB(){const t=[];if(Pn("("),!Ht(")"))for(;N<Tn&&(t.push(Va()),!Ht(")"));)Pn(",");return Pn(")"),t}function JB(){return Pn("."),function(){N=zt.start;const t=fe();return function(n){return n.type===3||n.type===4||n.type===1||n.type===5}(t)||td(t),w1(t.value)}()}function KB(){Pn("[");const t=_1();return Pn("]"),t}function iF(){const t=function(){var n;for(n=YB();;)if(Ht("."))n=nF(".",n,JB());else if(Ht("("))n=IB(n,XB());else{if(!Ht("["))break;n=nF("[",n,KB())}return n}();if(zt.type===7&&(Ht("++")||Ht("--")))throw new Error(Uu);return t}function nd(){var t,n;if(zt.type!==7&&zt.type!==4)n=iF();else{if(Ht("++")||Ht("--"))throw new Error(Uu);if(Ht("+")||Ht("-")||Ht("~")||Ht("!"))t=fe(),n=nd(),n=function(e,r){const i=new ir("UnaryExpression");return i.operator=e,i.argument=r,i.prefix=!0,i}(t.value,n);else{if(A1("delete")||A1("void")||A1("typeof"))throw new Error(Uu);n=iF()}}return n}function aF(t){let n=0;if(t.type!==7&&t.type!==4)return 0;switch(t.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":n=7;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function Va(){var t,n;return t=function(){var e,r,i,a,o,s,u,l,c,f;if(e=zt,c=nd(),(o=aF(a=zt))===0)return c;for(a.prec=o,fe(),r=[e,zt],s=[c,a,u=nd()];(o=aF(zt))>0;){for(;s.length>2&&o<=s[s.length-2].prec;)u=s.pop(),l=s.pop().value,c=s.pop(),r.pop(),i=tF(l,c,u),s.push(i);(a=fe()).prec=o,s.push(a),r.push(zt),i=nd(),s.push(i)}for(i=s[f=s.length-1],r.pop();f>1;)r.pop(),i=tF(s[f-1].value,s[f-2],i),f-=2;return i}(),Ht("?")&&(fe(),n=Va(),Pn(":"),t=function(e,r,i){const a=new ir("ConditionalExpression");return a.test=e,a.consequent=r,a.alternate=i,a}(t,n,Va())),t}function _1(){const t=Va();if(Ht(","))throw new Error(Uu);return t}function oF(t){N=0,Tn=(nt=t).length,zt=null,ZD();const n=_1();if(zt.type!==2)throw new Error("Unexpect token after expression.");return n}var sF={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 uF(t){function n(a,o,s){return u=>function(l,c,f,d){let h=t(c[0]);return f&&(h=f+"("+h+")",f.lastIndexOf("new ",0)===0&&(h="("+h+")")),h+"."+l+(d<0?"":d===0?"()":"("+c.slice(1).map(t).join(",")+")")}(a,u,o,s)}const e="new Date",r="String",i="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(a){a.length<3&&P("Missing arguments to clamp function."),a.length>3&&P("Too many arguments to clamp function.");const o=a.map(t);return"Math.max("+o[1]+", Math.min("+o[2]+","+o[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:e,date:n("getDate",e,0),day:n("getDay",e,0),year:n("getFullYear",e,0),month:n("getMonth",e,0),hours:n("getHours",e,0),minutes:n("getMinutes",e,0),seconds:n("getSeconds",e,0),milliseconds:n("getMilliseconds",e,0),time:n("getTime",e,0),timezoneoffset:n("getTimezoneOffset",e,0),utcdate:n("getUTCDate",e,0),utcday:n("getUTCDay",e,0),utcyear:n("getUTCFullYear",e,0),utcmonth:n("getUTCMonth",e,0),utchours:n("getUTCHours",e,0),utcminutes:n("getUTCMinutes",e,0),utcseconds:n("getUTCSeconds",e,0),utcmilliseconds:n("getUTCMilliseconds",e,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",r,0),lower:n("toLowerCase",r,0),substring:n("substring",r),split:n("split",r),trim:n("trim",r,0),btoa:"btoa",atob:"atob",regexp:i,test:n("test",i),if:function(a){a.length<3&&P("Missing arguments to if function."),a.length>3&&P("Too many arguments to if function.");const o=a.map(t);return"("+o[0]+"?"+o[1]+":"+o[2]+")"}}}function lF(t){const n=(t=t||{}).allowed?Dr(t.allowed):{},e=t.forbidden?Dr(t.forbidden):{},r=t.constants||sF,i=(t.functions||uF)(f),a=t.globalvar,o=t.fieldvar,s=bt(a)?a:p=>`${a}["${p}"]`;let u={},l={},c=0;function f(p){if(Q(p))return p;const m=d[p.type];return m==null&&P("Unsupported type: "+p.type),m(p)}const d={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:tt(e,m)?P("Illegal identifier: "+m):tt(r,m)?r[m]:tt(n,m)?m:(u[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,g=f(p.object);m&&(c+=1);const y=f(p.property);return g===o&&(l[function(v){const x=v&&v.length-1;return x&&(v[0]==='"'&&v[x]==='"'||v[0]==="'"&&v[x]==="'")?v.slice(1,-1):v}(y)]=1),m&&(c-=1),g+(m?"."+y:"["+y+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&P("Illegal callee type: "+p.callee.type);const m=p.callee.name,g=p.arguments,y=tt(i,m)&&i[m];return y||P("Unrecognized function: "+m),bt(y)?y(g):y+"("+g.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function h(p){const m={code:f(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},m}return h.functions=i,h.constants=r,h}const cF=Symbol("vega_selection_getter");function fF(t){return t.getter&&t.getter[cF]||(t.getter=ei(t.field),t.getter[cF]=!0),t.getter}const k1="intersect",dF="union",hF="or",QB="and",Nr="_vgsid_",Vu=ei(Nr),ed="index:unit";function pF(t,n){for(var e,r,i=n.fields,a=n.values,o=i.length,s=0;s<o;++s)if(e=fF(r=i[s])(t),Da(e)&&(e=ze(e)),Da(a[s])&&(a[s]=ze(a[s])),T(a[s])&&Da(a[s][0])&&(a[s]=a[s].map(ze)),r.type==="E"){if(T(a[s])?!a[s].includes(e):e!==a[s])return!1}else if(r.type==="R"){if(!Fo(e,a[s]))return!1}else if(r.type==="R-RE"){if(!Fo(e,a[s],!0,!1))return!1}else if(r.type==="R-E"){if(!Fo(e,a[s],!1,!1))return!1}else if(r.type==="R-LE"){if(!Fo(e,a[s],!1,!0))return!1}else if(r.type==="E-LT"){if(e>=a[s])return!1}else if(r.type==="E-LTE"){if(e>a[s])return!1}else if(r.type==="E-GT"){if(e<=a[s])return!1}else if(r.type==="E-GTE"){if(e<a[s])return!1}else if(r.type==="E-VALID"){if(e===null||isNaN(e))return!1}else if(r.type==="E-ONE"&&a[s].indexOf(e)===-1)return!1;return!0}const mF=nx(Vu),ZB=mF.left,tz=mF.right;var D1={[`${Nr}_union`]:function(...t){const n=new Yl;for(const e of t)for(const r of e)n.add(r);return n},[`${Nr}_intersect`]:function(t,...n){t=new Yl(t),n=n.map(n9);t:for(const e of t)for(const r of n)if(!r.has(e)){t.delete(e);continue t}return t},E_union:function(t,n){if(!t.length)return n;for(var e=0,r=n.length;e<r;++e)t.includes(n[e])||t.push(n[e]);return t},E_intersect:function(t,n){return t.length?t.filter(e=>n.includes(e)):n},R_union:function(t,n){var e=ze(n[0]),r=ze(n[1]);return e>r&&(e=n[1],r=n[0]),t.length?(t[0]>e&&(t[0]=e),t[1]<r&&(t[1]=r),t):[e,r]},R_intersect:function(t,n){var e=ze(n[0]),r=ze(n[1]);return e>r&&(e=n[1],r=n[0]),t.length?r<t[0]||t[1]<e?[]:(t[0]<e&&(t[0]=e),t[1]>r&&(t[1]=r),t):[e,r]}};function F1(t,n,e,r){n[0].type!==ts&&P("First argument to selection functions must be a string literal.");const i=n[0].value,a="unit",o="@"+a,s=":"+i;(n.length>=2&&Bt(n).value)!==k1||tt(r,o)||(r[o]=e.getData(i).indataRef(e,a)),tt(r,s)||(r[s]=e.getData(i).tuplesRef())}function gF(t){const n=this.context.data[t];return n?n.values.value:[]}const Yu=t=>function(n,e){const r=this.context.dataflow.locale();return n===null?"null":r[t](e)(n)},nz=Yu("format"),yF=Yu("timeFormat"),ez=Yu("utcFormat"),rz=Yu("timeParse"),iz=Yu("utcParse"),rd=new Date(2e3,0,1);function id(t,n,e){return Number.isInteger(t)&&Number.isInteger(n)?(rd.setYear(2e3),rd.setMonth(t),rd.setDate(n),yF.call(this,rd,e)):""}function C1(t,n,e,r){n[0].type!==ts&&P("First argument to data functions must be a string literal.");const i=n[0].value,a=":"+i;if(!tt(a,r))try{r[a]=e.getData(i).tuplesRef()}catch{}}function ae(t,n,e,r){if(n[0].type===ts)vF(e,r,n[0].value);else for(t in e.scales)vF(e,r,t)}function vF(t,n,e){const r="%"+e;if(!tt(n,r))try{n[r]=t.scaleRef(e)}catch{}}function Rr(t,n){if(Q(t)){const e=n.scales[t];return e&&lw(e.value)?e.value:void 0}if(bt(t))return lw(t)?t:void 0}function az(t,n,e){n.__bandwidth=i=>i&&i.bandwidth?i.bandwidth():0,e._bandwidth=ae,e._range=ae,e._scale=ae;const r=i=>"_["+(i.type===ts?G("%"+i.value):G("%")+"+"+t(i))+"]";return{_bandwidth:i=>`this.__bandwidth(${r(i[0])})`,_range:i=>`${r(i[0])}.range()`,_scale:i=>`${r(i[0])}(${t(i[1])})`}}function E1(t,n){return function(e,r,i){if(e){const a=Rr(e,(i||this).context);return a&&a.path[t](r)}return n(r)}}const oz=E1("area",function(t){return hf=new Gn,si(t,Mr),2*hf}),sz=E1("bounds",function(t){var n,e,r,i,a,o,s;if(_e=an=-(Kt=ce=1/0),na=[],si(t,li),e=na.length){for(na.sort(R4),n=1,a=[r=na[0]];n<e;++n)ok(r,(i=na[n])[0])||ok(r,i[1])?(ke(r[0],i[1])>ke(r[0],r[1])&&(r[1]=i[1]),ke(i[0],r[1])>ke(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(o=-1/0,n=0,r=a[e=a.length-1];n<=e;r=i,++n)i=a[n],(s=ke(r[1],i[0]))>o&&(o=s,Kt=i[0],an=r[1])}return na=ui=null,Kt===1/0||ce===1/0?[[NaN,NaN],[NaN,NaN]]:[[Kt,ce],[an,_e]]}),uz=E1("centroid",function(t){Au=vf=bf=xf=wf=Af=_f=kf=0,V0=new Gn,Y0=new Gn,X0=new Gn,si(t,er);var n=+V0,e=+Y0,r=+X0,i=j0(n,e,r);return i<P0&&(n=Af,e=_f,r=kf,vf<dt&&(n=bf,e=xf,r=wf),(i=j0(n,e,r))<P0)?[NaN,NaN]:[je(e,n)*on,le(r/i)*on]});function $1(t,n,e){try{t[n].apply(t,["EXPRESSION"].concat([].slice.call(e)))}catch(r){t.warn(r)}return e[e.length-1]}function S1(t){const n=t/255;return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}function M1(t){const n=Vl(t);return .2126*S1(n.r)+.7152*S1(n.g)+.0722*S1(n.b)}function bF(t,n){return t===n||t!=t&&n!=n||(T(t)?!(!T(n)||t.length!==n.length)&&function(e,r){for(let i=0,a=e.length;i<a;++i)if(!bF(e[i],r[i]))return!1;return!0}(t,n):!(!Z(t)||!Z(n))&&xF(t,n))}function xF(t,n){for(const e in t)if(!bF(t[e],n[e]))return!1;return!0}function wF(t){return n=>xF(t,n)}const AF={};function ad(t){return T(t)||ArrayBuffer.isView(t)?t:null}function B1(t){return ad(t)||(Q(t)?t:null)}const _F=t=>t.data;function kF(t,n){const e=gF.call(n,t);return e.root&&e.root.lookup||{}}const DF=()=>typeof window<"u"&&window||null;function FF(t,n,e){if(!t)return[];const[r,i]=t,a=new cn().set(r[0],r[1],i[0],i[1]);return JA(e||this.context.dataflow.scenegraph().root,a,function(o){let s=null;if(o){const u=J(o.marktype),l=J(o.markname);s=c=>(!u.length||u.some(f=>c.marktype===f))&&(!l.length||l.some(f=>c.name===f))}return s}(n))}const Xu={random:()=>Ne(),cumulativeNormal:sc,cumulativeLogNormal:Cp,cumulativeUniform:Mp,densityNormal:Ap,densityLogNormal:Fp,densityUniform:Sp,quantileNormal:uc,quantileLogNormal:Ep,quantileUniform:Bp,sampleNormal:oc,sampleLogNormal:Dp,sampleUniform:$p,isArray:T,isBoolean:Fa,isDate:Da,isDefined:t=>t!==void 0,isNumber:$t,isObject:Z,isRegExp:ip,isString:Q,isTuple:Zl,isValid:t=>t!=null&&t==t,toBoolean:$x,toDate:t=>Sx(t),toNumber:ze,toString:Ex,indexof:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return B1(t).indexOf(...e)},join:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return ad(t).join(...e)},lastindexof:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return B1(t).lastIndexOf(...e)},replace:function(t,n,e){return bt(e)&&P("Function argument passed to replace."),Q(n)||ip(n)||P("Please pass a string or RegExp argument to replace."),String(t).replace(n,e)},reverse:function(t){return ad(t).slice().reverse()},sort:function(t){return ad(t).slice().sort(Xh)},slice:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return B1(t).slice(...e)},flush:Cx,lerp:Fx,merge:function(){const t=[].slice.call(arguments);return t.unshift({}),xt(...t)},pad:Dx,peek:Bt,pluck:function(t,n){const e=AF[n]||(AF[n]=ei(n));return T(t)?t.map(e):e(t)},span:Il,inrange:Fo,truncate:kx,rgb:Vl,lab:sp,hcl:Y6,hsl:fp,luminance:M1,contrast:function(t,n){const e=M1(t),r=M1(n);return(Math.max(e,r)+.05)/(Math.min(e,r)+.05)},sequence:xe,format:nz,utcFormat:ez,utcParse:iz,utcOffset:_x,utcSequence:Ax,timeFormat:yF,timeParse:rz,timeOffset:wx,timeSequence:xx,timeUnitSpecifier:bx,monthFormat:function(t){return id.call(this,t,1,"%B")},monthAbbrevFormat:function(t){return id.call(this,t,1,"%b")},dayFormat:function(t){return id.call(this,0,2+t,"%A")},dayAbbrevFormat:function(t){return id.call(this,0,2+t,"%a")},quarter:vx,utcquarter:yx,week:gx,utcweek:mx,dayofyear:px,utcdayofyear:hx,warn:function(){return $1(this.context.dataflow,"warn",arguments)},info:function(){return $1(this.context.dataflow,"info",arguments)},debug:function(){return $1(this.context.dataflow,"debug",arguments)},extent:t=>kr(t),inScope:function(t){const n=this.context.group;let e=!1;if(n)for(;t;){if(t===n){e=!0;break}t=t.mark.group}return e},intersect:FF,clampRange:dx,pinchDistance:function(t){const n=t.touches,e=n[0].clientX-n[1].clientX,r=n[0].clientY-n[1].clientY;return Math.hypot(e,r)},pinchAngle:function(t){const n=t.touches;return Math.atan2(n[0].clientY-n[1].clientY,n[0].clientX-n[1].clientX)},screen:function(){const t=DF();return t?t.screen:{}},containerSize:function(){const t=this.context.dataflow,n=t.container&&t.container();return n?[n.clientWidth,n.clientHeight]:[void 0,void 0]},windowSize:function(){const t=DF();return t?[t.innerWidth,t.innerHeight]:[void 0,void 0]},bandspace:function(t,n,e){return wm(t||0,n||0,e||0)},setdata:function(t,n){const e=this.context.dataflow,r=this.context.data[t].input;return e.pulse(r,e.changeset().remove(Be).insert(n)),1},pathShape:function(t){let n=null;return function(e){return e?iu(e,n=n||No(t)):t}},panLinear:fx,panLog:cx,panPow:lx,panSymlog:ux,zoomLinear:rp,zoomLog:np,zoomPow:Wl,zoomSymlog:ep,encode:function(t,n,e){if(t){const r=this.context.dataflow,i=t.mark.source;r.pulse(i,r.changeset().encode(t,n))}return e!==void 0?e:t},modify:function(t,n,e,r,i,a){const o=this.context.dataflow,s=this.context.data[t],u=s.input,l=o.stamp();let c,f,d=s.changes;if(o._trigger===!1||!(u.value.length||n||r))return 0;if((!d||d.stamp<l)&&(s.changes=d=o.changeset(),d.stamp=l,o.runAfter(()=>{s.modified=!0,o.pulse(u,d).run()},!0,1)),e&&(c=e===!0?Be:T(e)||Zl(e)?e:wF(e),d.remove(c)),n&&d.insert(n),r&&(c=wF(r),u.value.some(c)?d.remove(c):d.insert(r)),i)for(f in a)d.modify(i,f,a[f]);return 1},lassoAppend:function(t,n,e){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5;const i=(t=J(t))[t.length-1];return i===void 0||Math.hypot(i[0]-n,i[1]-e)>r?[...t,[n,e]]:t},lassoPath:function(t){return J(t).reduce((n,e,r)=>{let[i,a]=e;return n+(r==0?`M ${i},${a} `:r===t.length-1?" Z":`L ${i},${a} `)},"")},intersectLasso:function(t,n,e){const{x:r,y:i,mark:a}=e,o=new cn().set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[s,u]of n)s<o.x1&&(o.x1=s),s>o.x2&&(o.x2=s),u<o.y1&&(o.y1=u),u>o.y2&&(o.y2=u);return o.translate(r,i),FF([[o.x1,o.y1],[o.x2,o.y2]],t,a).filter(s=>function(u,l,c){let f=0;for(let d=0,h=c.length-1;d<c.length;h=d++){const[p,m]=c[h],[g,y]=c[d];y>l!=m>l&&u<(p-g)*(l-y)/(m-y)+g&&f++}return 1&f}(s.x,s.y,n))}},lz=["view","item","group","xy","x","y"],CF="this.",z1={},EF={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>`_[${G("$"+t)}]`,functions:function(t){const n=uF(t);lz.forEach(e=>n[e]="event.vega."+e);for(const e in Xu)n[e]=CF+e;return xt(n,az(t,Xu,z1)),n},constants:sF,visitors:z1},O1=lF(EF);function sn(t,n,e){return arguments.length===1?Xu[t]:(Xu[t]=n,e&&(z1[t]=e),O1&&(O1.functions[t]=CF+t),this)}function Tr(t,n){const e={};let r;try{r=oF(t=Q(t)?t:G(t)+"")}catch{P("Expression parse error: "+t)}r.visit(a=>{if(a.type!==GD)return;const o=a.callee.name,s=EF.visitors[o];s&&s(o,a.arguments,n,e)});const i=O1(r);return i.globals.forEach(a=>{const o="$"+a;!tt(e,o)&&n.getSignal(a)&&(e[o]=n.signalRef(a))}),{$expr:xt({code:i.code},n.options.ast?{ast:r}:null),$fields:i.fields,$params:e}}sn("bandwidth",function(t,n){const e=Rr(t,(n||this).context);return e&&e.bandwidth?e.bandwidth():0},ae),sn("copy",function(t,n){const e=Rr(t,(n||this).context);return e?e.copy():void 0},ae),sn("domain",function(t,n){const e=Rr(t,(n||this).context);return e?e.domain():[]},ae),sn("range",function(t,n){const e=Rr(t,(n||this).context);return e&&e.range?e.range():[]},ae),sn("invert",function(t,n,e){const r=Rr(t,(e||this).context);return r?T(n)?(r.invertRange||r.invert)(n):(r.invert||r.invertExtent)(n):void 0},ae),sn("scale",function(t,n,e){const r=Rr(t,(e||this).context);return r?r(n):void 0},ae),sn("gradient",function(t,n,e,r,i){t=Rr(t,(i||this).context);const a=Mw(n,e);let o=t.domain(),s=o[0],u=Bt(o),l=Me;return u-s?l=gw(t,s,u):t=(t.interpolator?Dt("sequential")().interpolator(t.interpolator()):Dt("linear")().interpolate(t.interpolate()).range(t.range())).domain([s=0,u=1]),t.ticks&&(o=t.ticks(+r||15),s!==o[0]&&o.unshift(s),u!==Bt(o)&&o.push(u)),o.forEach(c=>a.stop(l(c),t(c))),a},ae),sn("geoArea",oz,ae),sn("geoBounds",sz,ae),sn("geoCentroid",uz,ae),sn("geoShape",function(t,n,e){const r=Rr(t,(e||this).context);return function(i){return r?r.path.context(i)(n):""}},ae),sn("geoScale",function(t,n){const e=Rr(t,(n||this).context);return e&&e.scale()},ae),sn("indata",function(t,n,e){const r=this.context.data[t]["index:"+n],i=r?r.value.get(e):void 0;return i&&i.count},function(t,n,e,r){n[0].type!==ts&&P("First argument to indata must be a string literal."),n[1].type!==ts&&P("Second argument to indata must be a string literal.");const i=n[0].value,a=n[1].value,o="@"+a;tt(o,r)||(r[o]=e.getData(i).indataRef(e,a))}),sn("data",gF,C1),sn("treePath",function(t,n,e){const r=kF(t,this),i=r[n],a=r[e];return i&&a?i.path(a).map(_F):void 0},C1),sn("treeAncestors",function(t,n){const e=kF(t,this)[n];return e?e.ancestors().map(_F):void 0},C1),sn("vlSelectionTest",function(t,n,e){for(var r,i,a,o,s,u=this.context.data[t],l=u?u.values.value:[],c=u?u[ed]&&u[ed].value:void 0,f=e===k1,d=l.length,h=0;h<d;++h)if(r=l[h],c&&f){if((a=(i=i||{})[o=r.unit]||0)===-1)continue;if(s=pF(n,r),i[o]=s?-1:++a,s&&c.size===1)return!0;if(!s&&a===c.get(o).count)return!1}else if(f^(s=pF(n,r)))return s;return d&&f},F1),sn("vlSelectionIdTest",function(t,n,e){const r=this.context.data[t],i=r?r.values.value:[],a=r?r[ed]&&r[ed].value:void 0,o=e===k1,s=Vu(n),u=ZB(i,s);if(u===i.length||Vu(i[u])!==s)return!1;if(a&&o){if(a.size===1)return!0;if(tz(i,s)-u<a.size)return!1}return!0},F1),sn("vlSelectionResolve",function(t,n,e,r){for(var i,a,o,s,u,l,c,f,d,h,p,m,g=this.context.data[t],y=g?g.values.value:[],v={},x={},b={},w=y.length,A=0;A<w;++A)if(s=(i=y[A]).unit,a=i.fields,o=i.values,a&&o){for(p=0,m=a.length;p<m;++p)u=a[p],f=(c=v[u.field]||(v[u.field]={}))[s]||(c[s]=[]),b[u.field]=d=u.type.charAt(0),h=D1[`${d}_union`],c[s]=h(f,J(o[p]));e&&(f=x[s]||(x[s]=[])).push(J(o).reduce((_,k,D)=>(_[a[D].field]=k,_),{}))}else u=Nr,l=Vu(i),(f=(c=v[u]||(v[u]={}))[s]||(c[s]=[])).push(l),e&&(f=x[s]||(x[s]=[])).push({[Nr]:l});return n=n||dF,v[Nr]?v[Nr]=D1[`${Nr}_${n}`](...Object.values(v[Nr])):Object.keys(v).forEach(_=>{v[_]=Object.keys(v[_]).map(k=>v[_][k]).reduce((k,D)=>k===void 0?D:D1[`${b[_]}_${n}`](k,D))}),y=Object.keys(x),e&&y.length&&(v[r?"vlPoint":"vlMulti"]=n===dF?{[hF]:y.reduce((_,k)=>(_.push(...x[k]),_),[])}:{[QB]:y.map(_=>({[hF]:x[_]}))}),v},F1),sn("vlSelectionTuples",function(t,n){return t.map(e=>xt(n.fields?{values:n.fields.map(r=>fF(r)(e.datum))}:{[Nr]:Vu(e.datum)},n))});const cz=Dr(["rule"]),$F=Dr(["group","image","rect"]);function N1(t){return(t+"").toLowerCase()}function Ju(t,n,e){e.endsWith(";")||(e="return("+e+");");const r=Function(...n.concat(e));return t&&t.functions?r.bind(t.functions):r}var fz={operator:(t,n)=>Ju(t,["_"],n.code),parameter:(t,n)=>Ju(t,["datum","_"],n.code),event:(t,n)=>Ju(t,["event"],n.code),handler:(t,n)=>Ju(t,["_","event"],`var datum=event.item&&event.item.datum;return ${n.code};`),encode:(t,n)=>{const{marktype:e,channels:r}=n;let i="var o=item,datum=o.datum,m=0,$;";for(const a in r){const o="o["+G(a)+"]";i+=`$=${r[a].code};if(${o}!==$)${o}=$,m=1;`}return i+=function(a,o){let s="";return cz[o]||(a.x2&&(a.x?($F[o]&&(s+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),s+="o.width=o.x2-o.x;"):s+="o.x=o.x2-(o.width||0);"),a.xc&&(s+="o.x=o.xc-(o.width||0)/2;"),a.y2&&(a.y?($F[o]&&(s+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),s+="o.height=o.y2-o.y;"):s+="o.y=o.y2-(o.height||0);"),a.yc&&(s+="o.y=o.yc-(o.height||0)/2;")),s}(r,e),i+="return m;",Ju(t,["item","_"],i)},codegen:{get(t){const n=`[${t.map(G).join("][")}]`,e=Function("_",`return _${n};`);return e.path=n,e},comparator(t,n){let e;const r=Function("a","b","var u, v; return "+t.map((i,a)=>{const o=n[a];let s,u;return i.path?(s=`a${i.path}`,u=`b${i.path}`):((e=e||{})["f"+a]=i,s=`this.f${a}(a)`,u=`this.f${a}(b)`),function(l,c,f,d){return`((u = ${l}) < (v = ${c}) || u == null) && v != null ? ${f}
4
+ `;break;case"r":a+="\r";break;case"t":a+=" ";break;case"b":a+="\b";break;case"f":a+="\f";break;case"v":a+="\v";break;default:Iu(r)?((i="01234567".indexOf(r))!==0&&(o=!0),N<Tn&&Iu(nt[N])&&(o=!0,i=8*i+"01234567".indexOf(nt[N++]),"0123".includes(r)&&N<Tn&&Iu(nt[N])&&(i=8*i+"01234567".indexOf(nt[N++]))),a+=String.fromCharCode(i)):a+=r}else{if(Wu(r.charCodeAt(0)))break;a+=r}}return n!==""&&Ft({},gn,Fn),{type:8,value:a,octal:o,start:e,end:N}}():t===46?pi(nt.charCodeAt(N+1))?KD():x1():pi(t)?KD():x1()}function fe(){const t=zt;return N=t.end,zt=QD(),N=t.end,t}function ZD(){const t=N;zt=QD(),N=t}function tF(t,n,e){const r=new ir(t==="||"||t==="&&"?"LogicalExpression":"BinaryExpression");return r.operator=t,r.left=n,r.right=e,r}function IB(t,n){const e=new ir("CallExpression");return e.callee=t,e.arguments=n,e}function w1(t){const n=new ir(VD);return n.name=t,n}function Gu(t){const n=new ir("Literal");return n.value=t.value,n.raw=nt.slice(t.start,t.end),t.regex&&(n.raw==="//"&&(n.raw="/(?:)/"),n.regex=t.regex),n}function nF(t,n,e){const r=new ir("MemberExpression");return r.computed=t==="[",r.object=n,r.property=e,r.computed||(e.member=!0),r}function eF(t,n,e){const r=new ir("Property");return r.key=n,r.value=e,r.kind=t,r}function Ft(t,n){var e,r=Array.prototype.slice.call(arguments,2),i=n.replace(/%(\d)/g,(a,o)=>(Qf(o<r.length,"Message reference must be in range"),r[o]));throw(e=new Error(i)).index=N,e.description=i,e}function td(t){t.type===2&&Ft(t,"Unexpected end of input"),t.type===6&&Ft(t,"Unexpected number"),t.type===8&&Ft(t,"Unexpected string"),t.type===3&&Ft(t,"Unexpected identifier"),t.type===4&&Ft(t,"Unexpected reserved word"),Ft(t,gn,t.value)}function Pn(t){const n=fe();n.type===7&&n.value===t||td(n)}function Ht(t){return zt.type===7&&zt.value===t}function A1(t){return zt.type===4&&zt.value===t}function WB(){const t=[];for(N=zt.start,Pn("[");!Ht("]");)Ht(",")?(fe(),t.push(null)):(t.push(Va()),Ht("]")||Pn(","));return fe(),function(n){const e=new ir("ArrayExpression");return e.elements=n,e}(t)}function rF(){N=zt.start;const t=fe();return t.type===8||t.type===6?(t.octal&&Ft(t,YD),Gu(t)):w1(t.value)}function HB(){var t,n,e;return N=zt.start,(t=zt).type===3?(e=rF(),Pn(":"),eF("init",e,Va())):t.type!==2&&t.type!==7?(n=rF(),Pn(":"),eF("init",n,Va())):void td(t)}function GB(){var t,n,e=[],r={},i=String;for(N=zt.start,Pn("{");!Ht("}");)n="$"+((t=HB()).key.type===VD?t.key.name:i(t.key.value)),Object.prototype.hasOwnProperty.call(r,n)?Ft({},"Duplicate data property in object literal not allowed in strict mode"):r[n]=!0,e.push(t),Ht("}")||Pn(",");return Pn("}"),function(a){const o=new ir("ObjectExpression");return o.properties=a,o}(e)}const VB={if:1};function YB(){var t,n,e;if(Ht("("))return function(){Pn("(");const r=_1();return Pn(")"),r}();if(Ht("["))return WB();if(Ht("{"))return GB();if(t=zt.type,N=zt.start,t===3||VB[zt.value])e=w1(fe().value);else if(t===8||t===6)zt.octal&&Ft(zt,YD),e=Gu(fe());else{if(t===4)throw new Error(Uu);t===1?((n=fe()).value=n.value==="true",e=Gu(n)):t===5?((n=fe()).value=null,e=Gu(n)):Ht("/")||Ht("/=")?(e=Gu(UB()),ZD()):td(fe())}return e}function XB(){const t=[];if(Pn("("),!Ht(")"))for(;N<Tn&&(t.push(Va()),!Ht(")"));)Pn(",");return Pn(")"),t}function JB(){return Pn("."),function(){N=zt.start;const t=fe();return function(n){return n.type===3||n.type===4||n.type===1||n.type===5}(t)||td(t),w1(t.value)}()}function KB(){Pn("[");const t=_1();return Pn("]"),t}function iF(){const t=function(){var n;for(n=YB();;)if(Ht("."))n=nF(".",n,JB());else if(Ht("("))n=IB(n,XB());else{if(!Ht("["))break;n=nF("[",n,KB())}return n}();if(zt.type===7&&(Ht("++")||Ht("--")))throw new Error(Uu);return t}function nd(){var t,n;if(zt.type!==7&&zt.type!==4)n=iF();else{if(Ht("++")||Ht("--"))throw new Error(Uu);if(Ht("+")||Ht("-")||Ht("~")||Ht("!"))t=fe(),n=nd(),n=function(e,r){const i=new ir("UnaryExpression");return i.operator=e,i.argument=r,i.prefix=!0,i}(t.value,n);else{if(A1("delete")||A1("void")||A1("typeof"))throw new Error(Uu);n=iF()}}return n}function aF(t){let n=0;if(t.type!==7&&t.type!==4)return 0;switch(t.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":n=7;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function Va(){var t,n;return t=function(){var e,r,i,a,o,s,u,l,c,f;if(e=zt,c=nd(),(o=aF(a=zt))===0)return c;for(a.prec=o,fe(),r=[e,zt],s=[c,a,u=nd()];(o=aF(zt))>0;){for(;s.length>2&&o<=s[s.length-2].prec;)u=s.pop(),l=s.pop().value,c=s.pop(),r.pop(),i=tF(l,c,u),s.push(i);(a=fe()).prec=o,s.push(a),r.push(zt),i=nd(),s.push(i)}for(i=s[f=s.length-1],r.pop();f>1;)r.pop(),i=tF(s[f-1].value,s[f-2],i),f-=2;return i}(),Ht("?")&&(fe(),n=Va(),Pn(":"),t=function(e,r,i){const a=new ir("ConditionalExpression");return a.test=e,a.consequent=r,a.alternate=i,a}(t,n,Va())),t}function _1(){const t=Va();if(Ht(","))throw new Error(Uu);return t}function oF(t){N=0,Tn=(nt=t).length,zt=null,ZD();const n=_1();if(zt.type!==2)throw new Error("Unexpect token after expression.");return n}var sF={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 uF(t){function n(a,o,s){return u=>function(l,c,f,d){let h=t(c[0]);return f&&(h=f+"("+h+")",f.lastIndexOf("new ",0)===0&&(h="("+h+")")),h+"."+l+(d<0?"":d===0?"()":"("+c.slice(1).map(t).join(",")+")")}(a,u,o,s)}const e="new Date",r="String",i="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(a){a.length<3&&P("Missing arguments to clamp function."),a.length>3&&P("Too many arguments to clamp function.");const o=a.map(t);return"Math.max("+o[1]+", Math.min("+o[2]+","+o[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:e,date:n("getDate",e,0),day:n("getDay",e,0),year:n("getFullYear",e,0),month:n("getMonth",e,0),hours:n("getHours",e,0),minutes:n("getMinutes",e,0),seconds:n("getSeconds",e,0),milliseconds:n("getMilliseconds",e,0),time:n("getTime",e,0),timezoneoffset:n("getTimezoneOffset",e,0),utcdate:n("getUTCDate",e,0),utcday:n("getUTCDay",e,0),utcyear:n("getUTCFullYear",e,0),utcmonth:n("getUTCMonth",e,0),utchours:n("getUTCHours",e,0),utcminutes:n("getUTCMinutes",e,0),utcseconds:n("getUTCSeconds",e,0),utcmilliseconds:n("getUTCMilliseconds",e,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",r,0),lower:n("toLowerCase",r,0),substring:n("substring",r),split:n("split",r),trim:n("trim",r,0),btoa:"btoa",atob:"atob",regexp:i,test:n("test",i),if:function(a){a.length<3&&P("Missing arguments to if function."),a.length>3&&P("Too many arguments to if function.");const o=a.map(t);return"("+o[0]+"?"+o[1]+":"+o[2]+")"}}}function lF(t){const n=(t=t||{}).allowed?Dr(t.allowed):{},e=t.forbidden?Dr(t.forbidden):{},r=t.constants||sF,i=(t.functions||uF)(f),a=t.globalvar,o=t.fieldvar,s=bt(a)?a:p=>`${a}["${p}"]`;let u={},l={},c=0;function f(p){if(Q(p))return p;const m=d[p.type];return m==null&&P("Unsupported type: "+p.type),m(p)}const d={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:tt(e,m)?P("Illegal identifier: "+m):tt(r,m)?r[m]:tt(n,m)?m:(u[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,g=f(p.object);m&&(c+=1);const y=f(p.property);return g===o&&(l[function(v){const x=v&&v.length-1;return x&&(v[0]==='"'&&v[x]==='"'||v[0]==="'"&&v[x]==="'")?v.slice(1,-1):v}(y)]=1),m&&(c-=1),g+(m?"."+y:"["+y+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&P("Illegal callee type: "+p.callee.type);const m=p.callee.name,g=p.arguments,y=tt(i,m)&&i[m];return y||P("Unrecognized function: "+m),bt(y)?y(g):y+"("+g.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function h(p){const m={code:f(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},m}return h.functions=i,h.constants=r,h}const cF=Symbol("vega_selection_getter");function fF(t){return t.getter&&t.getter[cF]||(t.getter=ei(t.field),t.getter[cF]=!0),t.getter}const k1="intersect",dF="union",hF="or",QB="and",Nr="_vgsid_",Vu=ei(Nr),ed="index:unit";function pF(t,n){for(var e,r,i=n.fields,a=n.values,o=i.length,s=0;s<o;++s)if(e=fF(r=i[s])(t),Da(e)&&(e=ze(e)),Da(a[s])&&(a[s]=ze(a[s])),T(a[s])&&Da(a[s][0])&&(a[s]=a[s].map(ze)),r.type==="E"){if(T(a[s])?!a[s].includes(e):e!==a[s])return!1}else if(r.type==="R"){if(!Fo(e,a[s]))return!1}else if(r.type==="R-RE"){if(!Fo(e,a[s],!0,!1))return!1}else if(r.type==="R-E"){if(!Fo(e,a[s],!1,!1))return!1}else if(r.type==="R-LE"){if(!Fo(e,a[s],!1,!0))return!1}else if(r.type==="E-LT"){if(e>=a[s])return!1}else if(r.type==="E-LTE"){if(e>a[s])return!1}else if(r.type==="E-GT"){if(e<=a[s])return!1}else if(r.type==="E-GTE"){if(e<a[s])return!1}else if(r.type==="E-VALID"){if(e===null||isNaN(e))return!1}else if(r.type==="E-ONE"&&a[s].indexOf(e)===-1)return!1;return!0}const mF=nx(Vu),ZB=mF.left,tz=mF.right;var D1={[`${Nr}_union`]:function(...t){const n=new Yl;for(const e of t)for(const r of e)n.add(r);return n},[`${Nr}_intersect`]:function(t,...n){t=new Yl(t),n=n.map(n9);t:for(const e of t)for(const r of n)if(!r.has(e)){t.delete(e);continue t}return t},E_union:function(t,n){if(!t.length)return n;for(var e=0,r=n.length;e<r;++e)t.includes(n[e])||t.push(n[e]);return t},E_intersect:function(t,n){return t.length?t.filter(e=>n.includes(e)):n},R_union:function(t,n){var e=ze(n[0]),r=ze(n[1]);return e>r&&(e=n[1],r=n[0]),t.length?(t[0]>e&&(t[0]=e),t[1]<r&&(t[1]=r),t):[e,r]},R_intersect:function(t,n){var e=ze(n[0]),r=ze(n[1]);return e>r&&(e=n[1],r=n[0]),t.length?r<t[0]||t[1]<e?[]:(t[0]<e&&(t[0]=e),t[1]>r&&(t[1]=r),t):[e,r]}};function F1(t,n,e,r){n[0].type!==ts&&P("First argument to selection functions must be a string literal.");const i=n[0].value,a="unit",o="@"+a,s=":"+i;(n.length>=2&&Bt(n).value)!==k1||tt(r,o)||(r[o]=e.getData(i).indataRef(e,a)),tt(r,s)||(r[s]=e.getData(i).tuplesRef())}function gF(t){const n=this.context.data[t];return n?n.values.value:[]}const Yu=t=>function(n,e){const r=this.context.dataflow.locale();return n===null?"null":r[t](e)(n)},nz=Yu("format"),yF=Yu("timeFormat"),ez=Yu("utcFormat"),rz=Yu("timeParse"),iz=Yu("utcParse"),rd=new Date(2e3,0,1);function id(t,n,e){return Number.isInteger(t)&&Number.isInteger(n)?(rd.setYear(2e3),rd.setMonth(t),rd.setDate(n),yF.call(this,rd,e)):""}function C1(t,n,e,r){n[0].type!==ts&&P("First argument to data functions must be a string literal.");const i=n[0].value,a=":"+i;if(!tt(a,r))try{r[a]=e.getData(i).tuplesRef()}catch{}}function ae(t,n,e,r){if(n[0].type===ts)vF(e,r,n[0].value);else for(t in e.scales)vF(e,r,t)}function vF(t,n,e){const r="%"+e;if(!tt(n,r))try{n[r]=t.scaleRef(e)}catch{}}function Rr(t,n){if(Q(t)){const e=n.scales[t];return e&&lw(e.value)?e.value:void 0}if(bt(t))return lw(t)?t:void 0}function az(t,n,e){n.__bandwidth=i=>i&&i.bandwidth?i.bandwidth():0,e._bandwidth=ae,e._range=ae,e._scale=ae;const r=i=>"_["+(i.type===ts?G("%"+i.value):G("%")+"+"+t(i))+"]";return{_bandwidth:i=>`this.__bandwidth(${r(i[0])})`,_range:i=>`${r(i[0])}.range()`,_scale:i=>`${r(i[0])}(${t(i[1])})`}}function E1(t,n){return function(e,r,i){if(e){const a=Rr(e,(i||this).context);return a&&a.path[t](r)}return n(r)}}const oz=E1("area",function(t){return hf=new Gn,si(t,Mr),2*hf}),sz=E1("bounds",function(t){var n,e,r,i,a,o,s;if(_e=an=-(Kt=ce=1/0),na=[],si(t,li),e=na.length){for(na.sort(R4),n=1,a=[r=na[0]];n<e;++n)ok(r,(i=na[n])[0])||ok(r,i[1])?(ke(r[0],i[1])>ke(r[0],r[1])&&(r[1]=i[1]),ke(i[0],r[1])>ke(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(o=-1/0,n=0,r=a[e=a.length-1];n<=e;r=i,++n)i=a[n],(s=ke(r[1],i[0]))>o&&(o=s,Kt=i[0],an=r[1])}return na=ui=null,Kt===1/0||ce===1/0?[[NaN,NaN],[NaN,NaN]]:[[Kt,ce],[an,_e]]}),uz=E1("centroid",function(t){Au=vf=bf=xf=wf=Af=_f=kf=0,V0=new Gn,Y0=new Gn,X0=new Gn,si(t,er);var n=+V0,e=+Y0,r=+X0,i=j0(n,e,r);return i<P0&&(n=Af,e=_f,r=kf,vf<dt&&(n=bf,e=xf,r=wf),(i=j0(n,e,r))<P0)?[NaN,NaN]:[je(e,n)*on,le(r/i)*on]});function $1(t,n,e){try{t[n].apply(t,["EXPRESSION"].concat([].slice.call(e)))}catch(r){t.warn(r)}return e[e.length-1]}function S1(t){const n=t/255;return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}function M1(t){const n=Vl(t);return .2126*S1(n.r)+.7152*S1(n.g)+.0722*S1(n.b)}function bF(t,n){return t===n||t!=t&&n!=n||(T(t)?!(!T(n)||t.length!==n.length)&&function(e,r){for(let i=0,a=e.length;i<a;++i)if(!bF(e[i],r[i]))return!1;return!0}(t,n):!(!Z(t)||!Z(n))&&xF(t,n))}function xF(t,n){for(const e in t)if(!bF(t[e],n[e]))return!1;return!0}function wF(t){return n=>xF(t,n)}const AF={};function ad(t){return T(t)||ArrayBuffer.isView(t)?t:null}function B1(t){return ad(t)||(Q(t)?t:null)}const _F=t=>t.data;function kF(t,n){const e=gF.call(n,t);return e.root&&e.root.lookup||{}}const DF=()=>typeof window<"u"&&window||null;function FF(t,n,e){if(!t)return[];const[r,i]=t,a=new cn().set(r[0],r[1],i[0],i[1]);return JA(e||this.context.dataflow.scenegraph().root,a,function(o){let s=null;if(o){const u=J(o.marktype),l=J(o.markname);s=c=>(!u.length||u.some(f=>c.marktype===f))&&(!l.length||l.some(f=>c.name===f))}return s}(n))}const Xu={random:()=>Ne(),cumulativeNormal:uc,cumulativeLogNormal:Mp,cumulativeUniform:Np,densityNormal:Fp,densityLogNormal:Sp,densityUniform:Op,quantileNormal:lc,quantileLogNormal:Bp,quantileUniform:Rp,sampleNormal:sc,sampleLogNormal:$p,sampleUniform:zp,isArray:T,isBoolean:Fa,isDate:Da,isDefined:t=>t!==void 0,isNumber:$t,isObject:Z,isRegExp:ip,isString:Q,isTuple:tc,isValid:t=>t!=null&&t==t,toBoolean:$x,toDate:t=>Sx(t),toNumber:ze,toString:Ex,indexof:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return B1(t).indexOf(...e)},join:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return ad(t).join(...e)},lastindexof:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return B1(t).lastIndexOf(...e)},replace:function(t,n,e){return bt(e)&&P("Function argument passed to replace."),Q(n)||ip(n)||P("Please pass a string or RegExp argument to replace."),String(t).replace(n,e)},reverse:function(t){return ad(t).slice().reverse()},sort:function(t){return ad(t).slice().sort(Xh)},slice:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return B1(t).slice(...e)},flush:Cx,lerp:Fx,merge:function(){const t=[].slice.call(arguments);return t.unshift({}),xt(...t)},pad:Dx,peek:Bt,pluck:function(t,n){const e=AF[n]||(AF[n]=ei(n));return T(t)?t.map(e):e(t)},span:Il,inrange:Fo,truncate:kx,rgb:Vl,lab:sp,hcl:Y6,hsl:fp,luminance:M1,contrast:function(t,n){const e=M1(t),r=M1(n);return(Math.max(e,r)+.05)/(Math.min(e,r)+.05)},sequence:xe,format:nz,utcFormat:ez,utcParse:iz,utcOffset:_x,utcSequence:Ax,timeFormat:yF,timeParse:rz,timeOffset:wx,timeSequence:xx,timeUnitSpecifier:bx,monthFormat:function(t){return id.call(this,t,1,"%B")},monthAbbrevFormat:function(t){return id.call(this,t,1,"%b")},dayFormat:function(t){return id.call(this,0,2+t,"%A")},dayAbbrevFormat:function(t){return id.call(this,0,2+t,"%a")},quarter:vx,utcquarter:yx,week:gx,utcweek:mx,dayofyear:px,utcdayofyear:hx,warn:function(){return $1(this.context.dataflow,"warn",arguments)},info:function(){return $1(this.context.dataflow,"info",arguments)},debug:function(){return $1(this.context.dataflow,"debug",arguments)},extent:t=>kr(t),inScope:function(t){const n=this.context.group;let e=!1;if(n)for(;t;){if(t===n){e=!0;break}t=t.mark.group}return e},intersect:FF,clampRange:dx,pinchDistance:function(t){const n=t.touches,e=n[0].clientX-n[1].clientX,r=n[0].clientY-n[1].clientY;return Math.hypot(e,r)},pinchAngle:function(t){const n=t.touches;return Math.atan2(n[0].clientY-n[1].clientY,n[0].clientX-n[1].clientX)},screen:function(){const t=DF();return t?t.screen:{}},containerSize:function(){const t=this.context.dataflow,n=t.container&&t.container();return n?[n.clientWidth,n.clientHeight]:[void 0,void 0]},windowSize:function(){const t=DF();return t?[t.innerWidth,t.innerHeight]:[void 0,void 0]},bandspace:function(t,n,e){return wm(t||0,n||0,e||0)},setdata:function(t,n){const e=this.context.dataflow,r=this.context.data[t].input;return e.pulse(r,e.changeset().remove(Be).insert(n)),1},pathShape:function(t){let n=null;return function(e){return e?iu(e,n=n||No(t)):t}},panLinear:fx,panLog:cx,panPow:lx,panSymlog:ux,zoomLinear:rp,zoomLog:np,zoomPow:Wl,zoomSymlog:ep,encode:function(t,n,e){if(t){const r=this.context.dataflow,i=t.mark.source;r.pulse(i,r.changeset().encode(t,n))}return e!==void 0?e:t},modify:function(t,n,e,r,i,a){const o=this.context.dataflow,s=this.context.data[t],u=s.input,l=o.stamp();let c,f,d=s.changes;if(o._trigger===!1||!(u.value.length||n||r))return 0;if((!d||d.stamp<l)&&(s.changes=d=o.changeset(),d.stamp=l,o.runAfter(()=>{s.modified=!0,o.pulse(u,d).run()},!0,1)),e&&(c=e===!0?Be:T(e)||tc(e)?e:wF(e),d.remove(c)),n&&d.insert(n),r&&(c=wF(r),u.value.some(c)?d.remove(c):d.insert(r)),i)for(f in a)d.modify(i,f,a[f]);return 1},lassoAppend:function(t,n,e){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5;const i=(t=J(t))[t.length-1];return i===void 0||Math.hypot(i[0]-n,i[1]-e)>r?[...t,[n,e]]:t},lassoPath:function(t){return J(t).reduce((n,e,r)=>{let[i,a]=e;return n+(r==0?`M ${i},${a} `:r===t.length-1?" Z":`L ${i},${a} `)},"")},intersectLasso:function(t,n,e){const{x:r,y:i,mark:a}=e,o=new cn().set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[s,u]of n)s<o.x1&&(o.x1=s),s>o.x2&&(o.x2=s),u<o.y1&&(o.y1=u),u>o.y2&&(o.y2=u);return o.translate(r,i),FF([[o.x1,o.y1],[o.x2,o.y2]],t,a).filter(s=>function(u,l,c){let f=0;for(let d=0,h=c.length-1;d<c.length;h=d++){const[p,m]=c[h],[g,y]=c[d];y>l!=m>l&&u<(p-g)*(l-y)/(m-y)+g&&f++}return 1&f}(s.x,s.y,n))}},lz=["view","item","group","xy","x","y"],CF="this.",z1={},EF={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>`_[${G("$"+t)}]`,functions:function(t){const n=uF(t);lz.forEach(e=>n[e]="event.vega."+e);for(const e in Xu)n[e]=CF+e;return xt(n,az(t,Xu,z1)),n},constants:sF,visitors:z1},O1=lF(EF);function sn(t,n,e){return arguments.length===1?Xu[t]:(Xu[t]=n,e&&(z1[t]=e),O1&&(O1.functions[t]=CF+t),this)}function Tr(t,n){const e={};let r;try{r=oF(t=Q(t)?t:G(t)+"")}catch{P("Expression parse error: "+t)}r.visit(a=>{if(a.type!==GD)return;const o=a.callee.name,s=EF.visitors[o];s&&s(o,a.arguments,n,e)});const i=O1(r);return i.globals.forEach(a=>{const o="$"+a;!tt(e,o)&&n.getSignal(a)&&(e[o]=n.signalRef(a))}),{$expr:xt({code:i.code},n.options.ast?{ast:r}:null),$fields:i.fields,$params:e}}sn("bandwidth",function(t,n){const e=Rr(t,(n||this).context);return e&&e.bandwidth?e.bandwidth():0},ae),sn("copy",function(t,n){const e=Rr(t,(n||this).context);return e?e.copy():void 0},ae),sn("domain",function(t,n){const e=Rr(t,(n||this).context);return e?e.domain():[]},ae),sn("range",function(t,n){const e=Rr(t,(n||this).context);return e&&e.range?e.range():[]},ae),sn("invert",function(t,n,e){const r=Rr(t,(e||this).context);return r?T(n)?(r.invertRange||r.invert)(n):(r.invert||r.invertExtent)(n):void 0},ae),sn("scale",function(t,n,e){const r=Rr(t,(e||this).context);return r?r(n):void 0},ae),sn("gradient",function(t,n,e,r,i){t=Rr(t,(i||this).context);const a=Mw(n,e);let o=t.domain(),s=o[0],u=Bt(o),l=Me;return u-s?l=gw(t,s,u):t=(t.interpolator?Dt("sequential")().interpolator(t.interpolator()):Dt("linear")().interpolate(t.interpolate()).range(t.range())).domain([s=0,u=1]),t.ticks&&(o=t.ticks(+r||15),s!==o[0]&&o.unshift(s),u!==Bt(o)&&o.push(u)),o.forEach(c=>a.stop(l(c),t(c))),a},ae),sn("geoArea",oz,ae),sn("geoBounds",sz,ae),sn("geoCentroid",uz,ae),sn("geoShape",function(t,n,e){const r=Rr(t,(e||this).context);return function(i){return r?r.path.context(i)(n):""}},ae),sn("geoScale",function(t,n){const e=Rr(t,(n||this).context);return e&&e.scale()},ae),sn("indata",function(t,n,e){const r=this.context.data[t]["index:"+n],i=r?r.value.get(e):void 0;return i&&i.count},function(t,n,e,r){n[0].type!==ts&&P("First argument to indata must be a string literal."),n[1].type!==ts&&P("Second argument to indata must be a string literal.");const i=n[0].value,a=n[1].value,o="@"+a;tt(o,r)||(r[o]=e.getData(i).indataRef(e,a))}),sn("data",gF,C1),sn("treePath",function(t,n,e){const r=kF(t,this),i=r[n],a=r[e];return i&&a?i.path(a).map(_F):void 0},C1),sn("treeAncestors",function(t,n){const e=kF(t,this)[n];return e?e.ancestors().map(_F):void 0},C1),sn("vlSelectionTest",function(t,n,e){for(var r,i,a,o,s,u=this.context.data[t],l=u?u.values.value:[],c=u?u[ed]&&u[ed].value:void 0,f=e===k1,d=l.length,h=0;h<d;++h)if(r=l[h],c&&f){if((a=(i=i||{})[o=r.unit]||0)===-1)continue;if(s=pF(n,r),i[o]=s?-1:++a,s&&c.size===1)return!0;if(!s&&a===c.get(o).count)return!1}else if(f^(s=pF(n,r)))return s;return d&&f},F1),sn("vlSelectionIdTest",function(t,n,e){const r=this.context.data[t],i=r?r.values.value:[],a=r?r[ed]&&r[ed].value:void 0,o=e===k1,s=Vu(n),u=ZB(i,s);if(u===i.length||Vu(i[u])!==s)return!1;if(a&&o){if(a.size===1)return!0;if(tz(i,s)-u<a.size)return!1}return!0},F1),sn("vlSelectionResolve",function(t,n,e,r){for(var i,a,o,s,u,l,c,f,d,h,p,m,g=this.context.data[t],y=g?g.values.value:[],v={},x={},b={},w=y.length,A=0;A<w;++A)if(s=(i=y[A]).unit,a=i.fields,o=i.values,a&&o){for(p=0,m=a.length;p<m;++p)u=a[p],f=(c=v[u.field]||(v[u.field]={}))[s]||(c[s]=[]),b[u.field]=d=u.type.charAt(0),h=D1[`${d}_union`],c[s]=h(f,J(o[p]));e&&(f=x[s]||(x[s]=[])).push(J(o).reduce((_,k,D)=>(_[a[D].field]=k,_),{}))}else u=Nr,l=Vu(i),(f=(c=v[u]||(v[u]={}))[s]||(c[s]=[])).push(l),e&&(f=x[s]||(x[s]=[])).push({[Nr]:l});return n=n||dF,v[Nr]?v[Nr]=D1[`${Nr}_${n}`](...Object.values(v[Nr])):Object.keys(v).forEach(_=>{v[_]=Object.keys(v[_]).map(k=>v[_][k]).reduce((k,D)=>k===void 0?D:D1[`${b[_]}_${n}`](k,D))}),y=Object.keys(x),e&&y.length&&(v[r?"vlPoint":"vlMulti"]=n===dF?{[hF]:y.reduce((_,k)=>(_.push(...x[k]),_),[])}:{[QB]:y.map(_=>({[hF]:x[_]}))}),v},F1),sn("vlSelectionTuples",function(t,n){return t.map(e=>xt(n.fields?{values:n.fields.map(r=>fF(r)(e.datum))}:{[Nr]:Vu(e.datum)},n))});const cz=Dr(["rule"]),$F=Dr(["group","image","rect"]);function N1(t){return(t+"").toLowerCase()}function Ju(t,n,e){e.endsWith(";")||(e="return("+e+");");const r=Function(...n.concat(e));return t&&t.functions?r.bind(t.functions):r}var fz={operator:(t,n)=>Ju(t,["_"],n.code),parameter:(t,n)=>Ju(t,["datum","_"],n.code),event:(t,n)=>Ju(t,["event"],n.code),handler:(t,n)=>Ju(t,["_","event"],`var datum=event.item&&event.item.datum;return ${n.code};`),encode:(t,n)=>{const{marktype:e,channels:r}=n;let i="var o=item,datum=o.datum,m=0,$;";for(const a in r){const o="o["+G(a)+"]";i+=`$=${r[a].code};if(${o}!==$)${o}=$,m=1;`}return i+=function(a,o){let s="";return cz[o]||(a.x2&&(a.x?($F[o]&&(s+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),s+="o.width=o.x2-o.x;"):s+="o.x=o.x2-(o.width||0);"),a.xc&&(s+="o.x=o.xc-(o.width||0)/2;"),a.y2&&(a.y?($F[o]&&(s+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),s+="o.height=o.y2-o.y;"):s+="o.y=o.y2-(o.height||0);"),a.yc&&(s+="o.y=o.yc-(o.height||0)/2;")),s}(r,e),i+="return m;",Ju(t,["item","_"],i)},codegen:{get(t){const n=`[${t.map(G).join("][")}]`,e=Function("_",`return _${n};`);return e.path=n,e},comparator(t,n){let e;const r=Function("a","b","var u, v; return "+t.map((i,a)=>{const o=n[a];let s,u;return i.path?(s=`a${i.path}`,u=`b${i.path}`):((e=e||{})["f"+a]=i,s=`this.f${a}(a)`,u=`this.f${a}(b)`),function(l,c,f,d){return`((u = ${l}) < (v = ${c}) || u == null) && v != null ? ${f}
5
5
  : (u > v || v == null) && u != null ? ${d}
6
6
  : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${f}
7
- : v !== v && u === u ? ${d} : `}(s,u,-o,o)}).join("")+"0;");return e?r.bind(e):r}}};function SF(t,n,e){if(!t||!Z(t))return t;for(let r,i=0,a=MF.length;i<a;++i)if(r=MF[i],tt(t,r.key))return r.parse(t,n,e);return t}var MF=[{key:"$ref",parse:function(t,n){return n.get(t.$ref)||P("Operator not defined: "+t.$ref)}},{key:"$key",parse:function(t,n){const e="k:"+t.$key+"_"+!!t.$flat;return n.fn[e]||(n.fn[e]=Zh(t.$key,t.$flat,n.expr.codegen))}},{key:"$expr",parse:function(t,n,e){t.$params&&n.parseParameters(t.$params,e);const r="e:"+t.$expr.code;return n.fn[r]||(n.fn[r]=ko(n.parameterExpression(t.$expr),t.$fields))}},{key:"$field",parse:function(t,n){if(!t.$field)return null;const e="f:"+t.$field+"_"+t.$name;return n.fn[e]||(n.fn[e]=ei(t.$field,t.$name,n.expr.codegen))}},{key:"$encode",parse:function(t,n){const e=t.$encode,r={};for(const i in e){const a=e[i];r[i]=ko(n.encodeExpression(a.$expr),a.$fields),r[i].output=a.$output}return r}},{key:"$compare",parse:function(t,n){const e="c:"+t.$compare+"_"+t.$order,r=J(t.$compare).map(i=>i&&i.$tupleid?st:i);return n.fn[e]||(n.fn[e]=Qh(r,t.$order,n.expr.codegen))}},{key:"$context",parse:function(t,n){return n}},{key:"$subflow",parse:function(t,n){const e=t.$subflow;return function(r,i,a){const o=n.fork().parse(e),s=o.get(e.operators[0].id),u=o.signals.parent;return u&&u.set(a),s.detachSubflow=()=>n.detach(o),s}}},{key:"$tupleid",parse:function(){return st}}];const dz={skip:!0};function BF(t,n,e,r){return new zF(t,n,e,r)}function zF(t,n,e,r){this.dataflow=t,this.transforms=n,this.events=t.events.bind(t),this.expr=r||fz,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},e&&(this.functions=Object.create(e),this.functions.context=this)}function OF(t){this.dataflow=t.dataflow,this.transforms=t.transforms,this.events=t.events,this.expr=t.expr,this.signals=Object.create(t.signals),this.scales=Object.create(t.scales),this.nodes=Object.create(t.nodes),this.data=Object.create(t.data),this.fn=Object.create(t.fn),t.functions&&(this.functions=Object.create(t.functions),this.functions.context=this)}function NF(t,n){t&&(n==null?t.removeAttribute("aria-label"):t.setAttribute("aria-label",n))}zF.prototype=OF.prototype={fork(){const t=new OF(this);return(this.subcontext||(this.subcontext=[])).push(t),t},detach(t){this.subcontext=this.subcontext.filter(e=>e!==t);const n=Object.keys(t.nodes);for(const e of n)t.nodes[e]._targets=null;for(const e of n)t.nodes[e].detach();t.nodes=null},get(t){return this.nodes[t]},set(t,n){return this.nodes[t]=n},add(t,n){const e=this,r=e.dataflow,i=t.value;if(e.set(t.id,n),function(a){return N1(a)==="collect"}(t.type)&&i&&(i.$ingest?r.ingest(n,i.$ingest,i.$format):i.$request?r.preload(n,i.$request,i.$format):r.pulse(n,r.changeset().insert(i))),t.root&&(e.root=n),t.parent){let a=e.get(t.parent.$ref);a?(r.connect(a,[n]),n.targets().add(a)):(e.unresolved=e.unresolved||[]).push(()=>{a=e.get(t.parent.$ref),r.connect(a,[n]),n.targets().add(a)})}if(t.signal&&(e.signals[t.signal]=n),t.scale&&(e.scales[t.scale]=n),t.data)for(const a in t.data){const o=e.data[a]||(e.data[a]={});t.data[a].forEach(s=>o[s]=n)}},resolve(){return(this.unresolved||[]).forEach(t=>t()),delete this.unresolved,this},operator(t,n){this.add(t,this.dataflow.add(t.value,n))},transform(t,n){this.add(t,this.dataflow.add(this.transforms[N1(n)]))},stream(t,n){this.set(t.id,n)},update(t,n,e,r,i){this.dataflow.on(n,e,r,i,t.options)},operatorExpression(t){return this.expr.operator(this,t)},parameterExpression(t){return this.expr.parameter(this,t)},eventExpression(t){return this.expr.event(this,t)},handlerExpression(t){return this.expr.handler(this,t)},encodeExpression(t){return this.expr.encode(this,t)},parse:function(t){const n=this,e=t.operators||[];return t.background&&(n.background=t.background),t.eventConfig&&(n.eventConfig=t.eventConfig),t.locale&&(n.locale=t.locale),e.forEach(r=>n.parseOperator(r)),e.forEach(r=>n.parseOperatorParameters(r)),(t.streams||[]).forEach(r=>n.parseStream(r)),(t.updates||[]).forEach(r=>n.parseUpdate(r)),n.resolve()},parseOperator:function(t){const n=this;!function(e){return N1(e)==="operator"}(t.type)&&t.type?n.transform(t,t.type):n.operator(t,t.update?n.operatorExpression(t.update):null)},parseOperatorParameters:function(t){const n=this;if(t.params){const e=n.get(t.id);e||P("Invalid operator id: "+t.id),n.dataflow.connect(e,e.parameters(n.parseParameters(t.params),t.react,t.initonly))}},parseParameters:function(t,n){n=n||{};const e=this;for(const r in t){const i=t[r];n[r]=T(i)?i.map(a=>SF(a,e,n)):SF(i,e,n)}return n},parseStream:function(t){var n,e=this,r=t.filter!=null?e.eventExpression(t.filter):void 0,i=t.stream!=null?e.get(t.stream):void 0;t.source?i=e.events(t.source,t.type,r):t.merge&&(i=(n=t.merge.map(a=>e.get(a)))[0].merge.apply(n[0],n.slice(1))),t.between&&(n=t.between.map(a=>e.get(a)),i=i.between(n[0],n[1])),t.filter&&(i=i.filter(r)),t.throttle!=null&&(i=i.throttle(+t.throttle)),t.debounce!=null&&(i=i.debounce(+t.debounce)),i==null&&P("Invalid stream definition: "+JSON.stringify(t)),t.consume&&i.consume(!0),e.stream(t,i)},parseUpdate:function(t){var n,e=this,r=Z(r=t.source)?r.$ref:r,i=e.get(r),a=t.update,o=void 0;i||P("Source not defined: "+t.source),n=t.target&&t.target.$expr?e.eventExpression(t.target.$expr):e.get(t.target),a&&a.$expr&&(a.$params&&(o=e.parseParameters(a.$params)),a=e.handlerExpression(a.$expr)),e.update(t,i,n,a,o)},getState:function(t){var n=this,e={};if(t.signals){var r=e.signals={};Object.keys(n.signals).forEach(a=>{const o=n.signals[a];t.signals(a,o)&&(r[a]=o.value)})}if(t.data){var i=e.data={};Object.keys(n.data).forEach(a=>{const o=n.data[a];t.data(a,o)&&(i[a]=o.input.value)})}return n.subcontext&&t.recurse!==!1&&(e.subcontext=n.subcontext.map(a=>a.getState(t))),e},setState:function(t){var n=this,e=n.dataflow,r=t.data,i=t.signals;Object.keys(i||{}).forEach(a=>{e.update(n.signals[a],i[a],dz)}),Object.keys(r||{}).forEach(a=>{e.pulse(n.data[a].input,e.changeset().remove(Be).insert(r[a]))}),(t.subcontext||[]).forEach((a,o)=>{const s=n.subcontext[o];s&&s.setState(a)})}};const R1="default";function T1(t,n){const e=t.globalCursor()?typeof document<"u"&&document.body:t.container();if(e)return n==null?e.style.removeProperty("cursor"):e.style.cursor=n}function od(t,n){var e=t._runtime.data;return tt(e,n)||P("Unrecognized data set: "+n),e[n]}function sd(t,n){Qx(n)||P("Second argument to changes must be a changeset.");const e=od(this,t);return e.modified=!0,this.pulse(e.input,n)}function RF(t){var n=t.padding();return Math.max(0,t._viewWidth+n.left+n.right)}function TF(t){var n=t.padding();return Math.max(0,t._viewHeight+n.top+n.bottom)}function ud(t){var n=t.padding(),e=t._origin;return[n.left+e[0],n.top+e[1]]}function hz(t,n,e){var r,i,a=t._renderer,o=a&&a.canvas();return o&&(i=ud(t),(r=qc(n.changedTouches?n.changedTouches[0]:n,o))[0]-=i[0],r[1]-=i[1]),n.dataflow=t,n.item=e,n.vega=function(s,u,l){const c=u?u.mark.marktype==="group"?u:u.mark.group:null;function f(h){var p,m=c;if(h){for(p=u;p;p=p.mark.group)if(p.mark.name===h){m=p;break}}return m&&m.mark&&m.mark.interactive?m:{}}function d(h){if(!h)return l;Q(h)&&(h=f(h));const p=l.slice();for(;h;)p[0]-=h.x||0,p[1]-=h.y||0,h=h.mark&&h.mark.group;return p}return{view:In(s),item:In(u||{}),group:f,xy:d,x:h=>d(h)[0],y:h=>d(h)[1]}}(t,e,r),n}const PF="view",pz={trap:!1};function jF(t,n,e,r){t._eventListeners.push({type:e,sources:J(n),handler:r})}function ld(t,n,e){const r=t._eventConfig&&t._eventConfig[n];return!(r===!1||Z(r)&&!r[e])||(t.warn(`Blocked ${n} ${e} event listener.`),!1)}function LF(t){return t.item}function qF(t){return t.item.mark.source}function UF(t){return function(n,e){return e.vega.view().changeset().encode(e.item,t)}}function De(t,n,e){const r=document.createElement(t);for(const i in n)r.setAttribute(i,n[i]);return e!=null&&(r.textContent=e),r}function mz(t,n,e,r){const i=e.event||"input",a=()=>t.update(n.value);r.signal(e.signal,n.value),n.addEventListener(i,a),jF(r,n,i,a),t.set=o=>{n.value=o,n.dispatchEvent(function(s){return typeof Event<"u"?new Event(s):{type:s}}(i))}}function gz(t,n,e,r){const i=r.signal(e.signal),a=De("div",{class:"vega-bind"}),o=e.input==="radio"?a:a.appendChild(De("label"));o.appendChild(De("span",{class:"vega-bind-name"},e.name||e.signal)),n.appendChild(a);let s=yz;switch(e.input){case"checkbox":s=vz;break;case"select":s=bz;break;case"radio":s=xz;break;case"range":s=wz}s(t,o,e,i)}function yz(t,n,e,r){const i=De("input");for(const a in e)a!=="signal"&&a!=="element"&&i.setAttribute(a==="input"?"type":a,e[a]);i.setAttribute("name",e.signal),i.value=r,n.appendChild(i),i.addEventListener("input",()=>t.update(i.value)),t.elements=[i],t.set=a=>i.value=a}function vz(t,n,e,r){const i={type:"checkbox",name:e.signal};r&&(i.checked=!0);const a=De("input",i);n.appendChild(a),a.addEventListener("change",()=>t.update(a.checked)),t.elements=[a],t.set=o=>a.checked=!!o||null}function bz(t,n,e,r){const i=De("select",{name:e.signal}),a=e.labels||[];e.options.forEach((o,s)=>{const u={value:o};cd(o,r)&&(u.selected=!0),i.appendChild(De("option",u,(a[s]||o)+""))}),n.appendChild(i),i.addEventListener("change",()=>{t.update(e.options[i.selectedIndex])}),t.elements=[i],t.set=o=>{for(let s=0,u=e.options.length;s<u;++s)if(cd(e.options[s],o))return void(i.selectedIndex=s)}}function xz(t,n,e,r){const i=De("span",{class:"vega-bind-radio"}),a=e.labels||[];n.appendChild(i),t.elements=e.options.map((o,s)=>{const u={type:"radio",name:e.signal,value:o};cd(o,r)&&(u.checked=!0);const l=De("input",u);l.addEventListener("change",()=>t.update(o));const c=De("label",{},(a[s]||o)+"");return c.prepend(l),i.appendChild(c),l}),t.set=o=>{const s=t.elements,u=s.length;for(let l=0;l<u;++l)cd(s[l].value,o)&&(s[l].checked=!0)}}function wz(t,n,e,r){r=r!==void 0?r:(+e.max+ +e.min)/2;const i=e.max!=null?e.max:Math.max(100,+r)||100,a=e.min||Math.min(0,i,+r)||0,o=e.step||sx(a,i,100),s=De("input",{type:"range",name:e.signal,min:a,max:i,step:o});s.value=r;const u=De("span",{},+r);n.appendChild(s),n.appendChild(u);const l=()=>{u.textContent=s.value,t.update(+s.value)};s.addEventListener("input",l),s.addEventListener("change",l),t.elements=[s],t.set=c=>{s.value=c,u.textContent=c}}function cd(t,n){return t===n||t+""==n+""}function IF(t,n,e,r,i,a){return(n=n||new r(t.loader())).initialize(e,RF(t),TF(t),ud(t),i,a).background(t.background())}function P1(t,n){return n?function(){try{n.apply(this,arguments)}catch(e){t.error(e)}}:null}function j1(t,n,e){if(typeof n=="string"){if(typeof document>"u")return t.error("DOM document instance not found."),null;if(!(n=document.querySelector(n)))return t.error("Signal bind element not found: "+n),null}if(n&&e)try{n.textContent=""}catch(r){n=null,t.error(r)}return n}const Ku=t=>+t||0;function WF(t){return Z(t)?{top:Ku(t.top),bottom:Ku(t.bottom),left:Ku(t.left),right:Ku(t.right)}:(n=>({top:n,bottom:n,left:n,right:n}))(Ku(t))}async function L1(t,n,e,r){const i=nf(n),a=i&&i.headless;return a||P("Unrecognized renderer type: "+n),await t.runAsync(),IF(t,null,null,a,e,r).renderAsync(t._scenegraph.root)}var HF="width",GF="height",q1="padding",VF={skip:!0};function YF(t,n){var e=t.autosize(),r=t.padding();return n-(e&&e.contains===q1?r.left+r.right:0)}function XF(t,n){var e=t.autosize(),r=t.padding();return n-(e&&e.contains===q1?r.top+r.bottom:0)}function Az(t,n){return n.modified&&T(n.input.value)&&!t.startsWith("_:vega:_")}function _z(t,n){return!(t==="parent"||n instanceof $o.proxy)}function kz(t,n,e,r){const i=t.element();i&&i.setAttribute("title",function(a){return a==null?"":T(a)?JF(a):Z(a)&&!Da(a)?(o=a,Object.keys(o).map(s=>{const u=o[s];return s+": "+(T(u)?JF(u):KF(u))}).join(`
8
- `)):a+"";var o}(r))}function JF(t){return"["+t.map(KF).join(", ")+"]"}function KF(t){return T(t)?"[\u2026]":Z(t)&&!Da(t)?"{\u2026}":t}function QF(t,n){const e=this;if(n=n||{},Eo.call(e),n.loader&&e.loader(n.loader),n.logger&&e.logger(n.logger),n.logLevel!=null&&e.logLevel(n.logLevel),n.locale||t.locale){const a=xt({},t.locale,n.locale);e.locale(Mx(a.number,a.time))}e._el=null,e._elBind=null,e._renderType=n.renderer||Ki.Canvas,e._scenegraph=new mA;const r=e._scenegraph.root;e._renderer=null,e._tooltip=n.tooltip||kz,e._redraw=!0,e._handler=new vu().scene(r),e._globalCursor=!1,e._preventDefault=!1,e._timers=[],e._eventListeners=[],e._resizeListeners=[],e._eventConfig=function(a){const o=xt({defaults:{}},a),s=(u,l)=>{l.forEach(c=>{T(u[c])&&(u[c]=Dr(u[c]))})};return s(o.defaults,["prevent","allow"]),s(o,["view","window","selector"]),o}(t.eventConfig),e.globalCursor(e._eventConfig.globalCursor);const i=function(a,o,s){return BF(a,$o,Xu,s).parse(o)}(e,t,n.expr);e._runtime=i,e._signals=i.signals,e._bind=(t.bindings||[]).map(a=>({state:null,param:xt({},a)})),i.root&&i.root.set(r),r.source=i.data.root.input,e.pulse(i.data.root.input,e.changeset().insert(r.items)),e._width=e.width(),e._height=e.height(),e._viewWidth=YF(e,e._width),e._viewHeight=XF(e,e._height),e._origin=[0,0],e._resize=0,e._autosize=1,function(a){var o=a._signals,s=o[HF],u=o[GF],l=o[q1];function c(){a._autosize=a._resize=1}a._resizeWidth=a.add(null,d=>{a._width=d.size,a._viewWidth=YF(a,d.size),c()},{size:s}),a._resizeHeight=a.add(null,d=>{a._height=d.size,a._viewHeight=XF(a,d.size),c()},{size:u});const f=a.add(null,c,{pad:l});a._resizeWidth.rank=s.rank+1,a._resizeHeight.rank=u.rank+1,f.rank=l.rank+1}(e),function(a){a.add(null,o=>(a._background=o.bg,a._resize=1,o.bg),{bg:a._signals.background})}(e),function(a){const o=a._signals.cursor||(a._signals.cursor=a.add({user:R1,item:null}));a.on(a.events("view","pointermove"),o,(s,u)=>{const l=o.value,c=l?Q(l)?l:l.user:R1,f=u.item&&u.item.cursor||null;return l&&c===l.user&&f==l.item?l:{user:c,item:f}}),a.add(null,function(s){let u=s.cursor,l=this.value;return Q(u)||(l=u.item,u=u.user),T1(a,u&&u!==R1?u:l||u),l},{cursor:o})}(e),e.description(t.description),n.hover&&e.hover(),n.container&&e.initialize(n.container,n.bind),n.watchPixelRatio&&e._watchPixelRatio()}function fd(t,n){return tt(t._signals,n)?t._signals[n]:P("Unrecognized signal name: "+G(n))}function ZF(t,n){const e=(t._targets||[]).filter(r=>r._update&&r._update.handler===n);return e.length?e[0]:null}function tC(t,n,e,r){let i=ZF(e,r);return i||(i=P1(t,()=>r(n,e.value)),i.handler=r,t.on(e,null,i)),t}function nC(t,n,e){const r=ZF(n,e);return r&&n._targets.remove(r),t}V(QF,Eo,{async evaluate(t,n,e){if(await Eo.prototype.evaluate.call(this,t,n),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,function(r){var i=ud(r),a=RF(r),o=TF(r);r._renderer.background(r.background()),r._renderer.resize(a,o,i),r._handler.origin(i),r._resizeListeners.forEach(s=>{try{s(a,o)}catch(u){r.error(u)}})}(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return e&&Ql(this,e),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const n=t!=null?t+"":null;return n!==this._desc&&NF(this._el,this._desc=n),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(t,n,e){const r=fd(this,t);return arguments.length===1?r.value:this.update(r,n,e)},width(t){return arguments.length?this.signal("width",t):this.signal("width")},height(t){return arguments.length?this.signal("height",t):this.signal("height")},padding(t){return arguments.length?this.signal("padding",WF(t)):WF(this.signal("padding"))},autosize(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},background(t){return arguments.length?this.signal("background",t):this.signal("background")},renderer(t){return arguments.length?(nf(t)||P("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},tooltip(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},loader(t){return arguments.length?(t!==this._loader&&(Eo.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(fd(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(t,n,e,r,i,a){this.runAfter(o=>{let s=0;o._autosize=0,o.width()!==e&&(s=1,o.signal(HF,e,VF),o._resizeWidth.skip(!0)),o.height()!==r&&(s=1,o.signal(GF,r,VF),o._resizeHeight.skip(!0)),o._viewWidth!==t&&(o._resize=1,o._viewWidth=t),o._viewHeight!==n&&(o._resize=1,o._viewHeight=n),o._origin[0]===i[0]&&o._origin[1]===i[1]||(o._resize=1,o._origin=i),s&&o.run("enter"),a&&o.runAfter(u=>u.resize())},!1,1)},addEventListener(t,n,e){let r=n;return e&&e.trap===!1||(r=P1(this,n),r.raw=n),this._handler.on(t,r),this},removeEventListener(t,n){for(var e,r,i=this._handler.handlers(t),a=i.length;--a>=0;)if(r=i[a].type,e=i[a].handler,t===r&&(n===e||n===e.raw)){this._handler.off(r,e);break}return this},addResizeListener(t){const n=this._resizeListeners;return n.includes(t)||n.push(t),this},removeResizeListener(t){var n=this._resizeListeners,e=n.indexOf(t);return e>=0&&n.splice(e,1),this},addSignalListener(t,n){return tC(this,t,fd(this,t),n)},removeSignalListener(t,n){return nC(this,fd(this,t),n)},addDataListener(t,n){return tC(this,t,od(this,t).values,n)},removeDataListener(t,n){return nC(this,od(this,t).values,n)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const n=T1(this,null);this._globalCursor=!!t,n&&T1(this,n)}return this}return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:function(t,n){this._timers.push(function(e,r,i){var a=new y8,o=r;return r==null?(a.restart(e,r,i),a):(a._restart=a.restart,a.restart=function(s,u,l){u=+u,l=l==null?v8():+l,a._restart(function c(f){f+=o,a._restart(c,o+=u,l),s(f)},u,l)},a.restart(e,r,i),a)}(function(e){t({timestamp:Date.now(),elapsed:e})},n))},events:function(t,n,e){var r,i=this,a=new rc(e),o=function(l,c){i.runAsync(null,()=>{t===PF&&function(f,d){var h=f._eventConfig.defaults,p=h.prevent,m=h.allow;return p!==!1&&m!==!0&&(p===!0||m===!1||(p?p[d]:m?!m[d]:f.preventDefault()))}(i,n)&&l.preventDefault(),a.receive(hz(i,l,c))})};if(t==="timer")ld(i,"timer",n)&&i.timer(o,n);else if(t===PF)ld(i,"view",n)&&i.addEventListener(n,o,pz);else if(t==="window"?ld(i,"window",n)&&typeof window<"u"&&(r=[window]):typeof document<"u"&&ld(i,"selector",n)&&(r=Array.from(document.querySelectorAll(t))),r){for(var s=0,u=r.length;s<u;++s)r[s].addEventListener(n,o);jF(i,r,n,o)}else i.warn("Can not resolve event source: "+t);return a},finalize:function(){var t,n,e,r,i,a=this._tooltip,o=this._timers,s=this._handler.handlers(),u=this._eventListeners;for(t=o.length;--t>=0;)o[t].stop();for(t=u.length;--t>=0;)for(n=(e=u[t]).sources.length;--n>=0;)e.sources[n].removeEventListener(e.type,e.handler);for(a&&a.call(this,this._handler,null,null,null),t=s.length;--t>=0;)i=s[t].type,r=s[t].handler,this._handler.off(i,r);return this},hover:function(t,n){return n=[n||"update",(t=[t||"hover"])[0]],this.on(this.events("view","pointerover",LF),qF,UF(t)),this.on(this.events("view","pointerout",LF),qF,UF(n)),this},data:function(t,n){return arguments.length<2?od(this,t).values.value:sd.call(this,t,Ma().remove(Be).insert(n))},change:sd,insert:function(t,n){return sd.call(this,t,Ma().insert(n))},remove:function(t,n){return sd.call(this,t,Ma().remove(n))},scale:function(t){var n=this._runtime.scales;return tt(n,t)||P("Unrecognized scale or projection: "+t),n[t].value},initialize:function(t,n){const e=this,r=e._renderType,i=e._eventConfig.bind,a=nf(r);t=e._el=t?j1(e,t,!0):null,function(u){const l=u.container();l&&(l.setAttribute("role","graphics-document"),l.setAttribute("aria-roleDescription","visualization"),NF(l,u.description()))}(e),a||e.error("Unrecognized renderer type: "+r);const o=a.handler||vu,s=t?a.renderer:a.headless;return e._renderer=s?IF(e,e._renderer,t,s):null,e._handler=function(u,l,c,f){const d=new f(u.loader(),P1(u,u.tooltip())).scene(u.scenegraph().root).initialize(c,ud(u),u);return l&&l.handlers().forEach(h=>{d.on(h.type,h.handler)}),d}(e,e._handler,t,o),e._redraw=!0,t&&i!=="none"&&(n=n?e._elBind=j1(e,n,!0):t.appendChild(De("form",{class:"vega-bindings"})),e._bind.forEach(u=>{u.param.element&&i!=="container"&&(u.element=j1(e,u.param.element,!!u.param.input))}),e._bind.forEach(u=>{(function(l,c,f){if(!c)return;const d=f.param;let h=f.state;h||(h=f.state={elements:null,active:!1,set:null,update:p=>{p!=l.signal(d.signal)&&l.runAsync(null,()=>{h.source=!0,l.signal(d.signal,p)})}},d.debounce&&(h.update=Yh(d.debounce,h.update))),(d.input==null&&d.element?mz:gz)(h,c,d,l),h.active||(l.on(l._signals[d.signal],null,()=>{h.source?h.source=!1:h.set(l.signal(d.signal))}),h.active=!0)})(e,u.element||n,u)})),e},toImageURL:async function(t,n){t!==Ki.Canvas&&t!==Ki.SVG&&t!==Ki.PNG&&P("Unrecognized image type: "+t);const e=await L1(this,t,n);return t===Ki.SVG?function(r,i){const a=new Blob([r],{type:i});return window.URL.createObjectURL(a)}(e.svg(),"image/svg+xml"):e.canvas().toDataURL("image/png")},toCanvas:async function(t,n){return(await L1(this,Ki.Canvas,t,n)).canvas()},toSVG:async function(t){return(await L1(this,Ki.SVG,t)).svg()},getState:function(t){return this._runtime.getState(t||{data:Az,signals:_z,recurse:!0})},setState:function(t){return this.runAsync(null,n=>{n._trigger=!1,n._runtime.setState(t)},n=>{n._trigger=!0}),this},_watchPixelRatio:function(){if(this.renderer()==="canvas"&&this._renderer._canvas){let t=null;const n=()=>{t!=null&&t();const e=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);e.addEventListener("change",n),t=()=>{e.removeEventListener("change",n)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};n()}}});const U1="[",I1="]",Dz=/[[\]{}]/,Fz={"*":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 eC,rC;function aa(t,n,e){return eC=n||"view",rC=e||Fz,iC(t.trim()).map(W1)}function Qu(t,n,e,r,i){const a=t.length;let o,s=0;for(;n<a;++n){if(o=t[n],!s&&o===e)return n;i&&i.indexOf(o)>=0?--s:r&&r.indexOf(o)>=0&&++s}return n}function iC(t){const n=[],e=t.length;let r=0,i=0;for(;i<e;)i=Qu(t,i,",","[{","]}"),n.push(t.substring(r,i).trim()),r=++i;if(n.length===0)throw"Empty event selector: "+t;return n}function W1(t){return t[0]==="["?function(n){const e=n.length;let r,i=1;if(i=Qu(n,i,I1,U1,I1),i===e)throw"Empty between selector: "+n;if(r=iC(n.substring(1,i)),r.length!==2)throw"Between selector must have two elements: "+n;if(n=n.slice(i+1).trim(),n[0]!==">")throw"Expected '>' after between selector: "+n;r=r.map(W1);const a=W1(n.slice(1).trim());return a.between?{between:r,stream:a}:(a.between=r,a)}(t):function(n){const e={source:eC},r=[];let i,a,o=[0,0],s=0,u=0,l=n.length,c=0;if(n[l-1]==="}"){if(c=n.lastIndexOf("{"),!(c>=0))throw"Unmatched right brace: "+n;try{o=function(f){const d=f.split(",");if(!f.length||d.length>2)throw f;return d.map(h=>{const p=+h;if(p!=p)throw f;return p})}(n.substring(c+1,l-1))}catch{throw"Invalid throttle specification: "+n}l=(n=n.slice(0,c).trim()).length,c=0}if(!l)throw n;if(n[0]==="@"&&(s=++c),i=Qu(n,c,":"),i<l&&(r.push(n.substring(u,i).trim()),u=c=++i),c=Qu(n,c,U1),c===l)r.push(n.substring(u,l).trim());else if(r.push(n.substring(u,c).trim()),a=[],u=++c,u===l)throw"Unmatched left bracket: "+n;for(;c<l;){if(c=Qu(n,c,I1),c===l)throw"Unmatched left bracket: "+n;if(a.push(n.substring(u,c).trim()),c<l-1&&n[++c]!==U1)throw"Expected left bracket: "+n;u=++c}if(!(l=r.length)||Dz.test(r[l-1]))throw"Invalid event selector: "+n;return l>1?(e.type=r[1],s?e.markname=r[0].slice(1):function(f){return rC[f]}(r[0])?e.marktype=r[0]:e.source=r[0]):e.type=r[0],e.type.slice(-1)==="!"&&(e.consume=!0,e.type=e.type.slice(0,-1)),a!=null&&(e.filter=a),o[0]&&(e.throttle=o[0]),o[1]&&(e.debounce=o[1]),e}(t)}function Cz(t){return Z(t)?t:{type:t||"pad"}}const Zu=t=>+t||0;function Ez(t){return Z(t)?t.signal?t:{top:Zu(t.top),bottom:Zu(t.bottom),left:Zu(t.left),right:Zu(t.right)}:{top:n=Zu(t),bottom:n,left:n,right:n};var n}const yn=t=>Z(t)&&!T(t)?xt({},t):{value:t};function aC(t,n,e,r){return e!=null?(Z(e)&&!T(e)||T(e)&&e.length&&Z(e[0])?t.update[n]=e:t[r||"enter"][n]={value:e},1):0}function Cn(t,n,e){for(const r in n)aC(t,r,n[r]);for(const r in e)aC(t,r,e[r],"update")}function ns(t,n,e){for(const r in n)e&&tt(e,r)||(t[r]=xt(t[r]||{},n[r]));return t}function es(t,n){return n&&(n.enter&&n.enter[t]||n.update&&n.update[t])}const H1="mark",G1="frame",V1="scope",oC="legend-label",$z="title-text",Sz="title-subtitle";function Y1(t,n,e){t[n]=e&&e.signal?{signal:e.signal}:{value:e}}const sC=t=>Q(t)?G(t):t.signal?`(${t.signal})`:uC(t);function dd(t){if(t.gradient!=null)return function(e){const r=[e.start,e.stop,e.count].map(i=>i==null?null:G(i));for(;r.length&&Bt(r)==null;)r.pop();return r.unshift(sC(e.gradient)),`gradient(${r.join(",")})`}(t);let n=t.signal?`(${t.signal})`:t.color?function(e){return e.c?hd("hcl",e.h,e.c,e.l):e.h||e.s?hd("hsl",e.h,e.s,e.l):e.l||e.a?hd("lab",e.l,e.a,e.b):e.r||e.g||e.b?hd("rgb",e.r,e.g,e.b):null}(t.color):t.field!=null?uC(t.field):t.value!==void 0?G(t.value):void 0;return t.scale!=null&&(n=function(e,r){const i=sC(e.scale);return e.range!=null?r=`lerp(_range(${i}), ${+e.range})`:(r!==void 0&&(r=`_scale(${i}, ${r})`),e.band&&(r=(r?r+"+":"")+`_bandwidth(${i})`+(+e.band==1?"":"*"+pd(e.band)),e.extra&&(r=`(datum.extra ? _scale(${i}, datum.extra.value) : ${r})`)),r==null&&(r="0")),r}(t,n)),n===void 0&&(n=null),t.exponent!=null&&(n=`pow(${n},${pd(t.exponent)})`),t.mult!=null&&(n+=`*${pd(t.mult)}`),t.offset!=null&&(n+=`+${pd(t.offset)}`),t.round&&(n=`round(${n})`),n}const hd=(t,n,e,r)=>`(${t}(${[n,e,r].map(dd).join(",")})+'')`;function pd(t){return Z(t)?"("+dd(t)+")":t}function uC(t){return lC(Z(t)?t:{datum:t})}function lC(t){let n,e,r;if(t.signal)n="datum",r=t.signal;else if(t.group||t.parent){for(e=Math.max(1,t.level||1),n="item";e-- >0;)n+=".mark.group";t.parent?(r=t.parent,n+=".datum"):r=t.group}else t.datum?(n="datum",r=t.datum):P("Invalid field reference: "+G(t));return t.signal||(r=Q(r)?Ni(r).map(G).join("]["):lC(r)),n+"["+r+"]"}function cC(t,n,e,r,i,a){const o={};(a=a||{}).encoders={$encode:o},t=function(s,u,l,c,f){const d={},h={};let p,m,g,y;for(m in m="lineBreak",u!=="text"||f[m]==null||es(m,s)||Y1(d,m,f[m]),(l=="legend"||String(l).startsWith("axis"))&&(l=null),y=l===G1?f.group:l===H1?xt({},f.mark,f[u]):null,y)g=es(m,s)||(m==="fill"||m==="stroke")&&(es("fill",s)||es("stroke",s)),g||Y1(d,m,y[m]);for(m in J(c).forEach(v=>{const x=f.style&&f.style[v];for(const b in x)es(b,s)||Y1(d,b,x[b])}),s=xt({},s),d)y=d[m],y.signal?(p=p||{})[m]=y:h[m]=y;return s.enter=xt(h,s.enter),p&&(s.update=xt(p,s.update)),s}(t,n,e,r,i.config);for(const s in t)o[s]=Mz(t[s],n,a,i);return a}function Mz(t,n,e,r){const i={},a={};for(const o in t)t[o]!=null&&(i[o]=zz(Bz(t[o]),r,e,a));return{$expr:{marktype:n,channels:i},$fields:Object.keys(a),$output:Object.keys(t)}}function Bz(t){return T(t)?function(n){let e="";return n.forEach(r=>{const i=dd(r);e+=r.test?`(${r.test})?${i}:`:i}),Bt(e)===":"&&(e+="null"),e}(t):dd(t)}function zz(t,n,e,r){const i=Tr(t,n);return i.$fields.forEach(a=>r[a]=1),xt(e,i.$params),i.$expr}const Oz=["value","update","init","react","bind"];function fC(t,n){P(t+' for "outer" push: '+G(n))}function dC(t,n){const e=t.name;if(t.push==="outer")n.signals[e]||fC("No prior signal definition",e),Oz.forEach(r=>{t[r]!==void 0&&fC("Invalid property ",r)});else{const r=n.addSignal(e,t.value);t.react===!1&&(r.react=!1),t.bind&&n.addBinding(e,t.bind)}}function X1(t,n,e,r){this.id=-1,this.type=t,this.value=n,this.params=e,r&&(this.parent=r)}function md(t,n,e,r){return new X1(t,n,e,r)}function gd(t,n){return md("operator",t,n)}function lt(t){const n={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(n),n}function tl(t,n){return n?{$field:t,$name:n}:{$field:t}}const J1=tl("key");function hC(t,n){return{$compare:t,$order:n}}function yd(t,n){return(t&&t.signal?"$"+t.signal:t||"")+(t&&n?"_":"")+(n&&n.signal?"$"+n.signal:n||"")}const K1="scope",Q1="view";function pn(t){return t&&t.signal}function vd(t){if(pn(t))return!0;if(Z(t)){for(const n in t)if(vd(t[n]))return!0}return!1}function ar(t,n){return t??n}function Ya(t){return t&&t.signal||t}const pC="timer";function nl(t,n){return(t.merge?Nz:t.stream?Rz:t.type?Tz:P("Invalid stream specification: "+G(t)))(t,n)}function Nz(t,n){const e=Z1({merge:t.merge.map(r=>nl(r,n))},t,n);return n.addStream(e).id}function Rz(t,n){const e=Z1({stream:nl(t.stream,n)},t,n);return n.addStream(e).id}function Tz(t,n){let e;t.type===pC?(e=n.event(pC,t.throttle),t={between:t.between,filter:t.filter}):e=n.event(function(i){return i===K1?Q1:i||Q1}(t.source),t.type);const r=Z1({stream:e},t,n);return Object.keys(r).length===1?e:n.addStream(r).id}function Z1(t,n,e){let r=n.between;return r&&(r.length!==2&&P('Stream "between" parameter must have 2 entries: '+G(n)),t.between=[nl(r[0],e),nl(r[1],e)]),r=n.filter?[].concat(n.filter):[],(n.marktype||n.markname||n.markrole)&&r.push(function(i,a,o){const s="event.item";return s+(i&&i!=="*"?"&&"+s+".mark.marktype==='"+i+"'":"")+(o?"&&"+s+".mark.role==='"+o+"'":"")+(a?"&&"+s+".mark.name==='"+a+"'":"")}(n.marktype,n.markname,n.markrole)),n.source===K1&&r.push("inScope(event.item)"),r.length&&(t.filter=Tr("("+r.join(")&&(")+")",e).$expr),(r=n.throttle)!=null&&(t.throttle=+r),(r=n.debounce)!=null&&(t.debounce=+r),n.consume&&(t.consume=!0),t}const Pz={code:"_.$value",ast:{type:"Identifier",value:"value"}};function jz(t,n,e){const r=t.encode,i={target:e};let a=t.events,o=t.update,s=[];a||P("Signal update missing events specification."),Q(a)&&(a=aa(a,n.isSubscope()?K1:Q1)),a=J(a).filter(u=>u.signal||u.scale?(s.push(u),0):1),s.length>1&&(s=[Lz(s)]),a.length&&s.push(a.length>1?{merge:a}:a[0]),r!=null&&(o&&P("Signal encode and update are mutually exclusive."),o="encode(item(),"+G(r)+")"),i.update=Q(o)?Tr(o,n):o.expr!=null?Tr(o.expr,n):o.value!=null?o.value:o.signal!=null?{$expr:Pz,$params:{$value:n.signalRef(o.signal)}}:P("Invalid signal update specification."),t.force&&(i.options={force:!0}),s.forEach(u=>n.addUpdate(xt(function(l,c){return{source:l.signal?c.signalRef(l.signal):l.scale?c.scaleRef(l.scale):nl(l,c)}}(u,n),i)))}function Lz(t){return{signal:"["+t.map(n=>n.scale?'scale("'+n.scale+'")':n.signal)+"]"}}const Pt=t=>(n,e,r)=>md(t,e,n||void 0,r),mC=Pt("aggregate"),qz=Pt("axisticks"),gC=Pt("bound"),or=Pt("collect"),yC=Pt("compare"),Uz=Pt("datajoin"),vC=Pt("encode"),Iz=Pt("expression"),Wz=Pt("facet"),Hz=Pt("field"),Gz=Pt("key"),Vz=Pt("legendentries"),Yz=Pt("load"),Xz=Pt("mark"),Jz=Pt("multiextent"),Kz=Pt("multivalues"),Qz=Pt("overlap"),Zz=Pt("params"),bC=Pt("prefacet"),tO=Pt("projection"),nO=Pt("proxy"),eO=Pt("relay"),xC=Pt("render"),rO=Pt("scale"),Xa=Pt("sieve"),iO=Pt("sortitems"),wC=Pt("viewlayout"),aO=Pt("values");let oO=0;const AC={min:"min",max:"max",count:"sum"};function sO(t,n){const e=n.getScale(t.name).params;let r;for(r in e.domain=_C(t.domain,t,n),t.range!=null&&(e.range=DC(t,n,e)),t.interpolate!=null&&function(i,a){a.interpolate=Ue(i.type||i),i.gamma!=null&&(a.interpolateGamma=Ue(i.gamma))}(t.interpolate,e),t.nice!=null&&(e.nice=function(i,a){return i.signal?a.signalRef(i.signal):Z(i)?{interval:Ue(i.interval),step:Ue(i.step)}:Ue(i)}(t.nice,n)),t.bins!=null&&(e.bins=function(i,a){return i.signal||T(i)?bd(i,a):a.objectProperty(i)}(t.bins,n)),t)tt(e,r)||r==="name"||(e[r]=Ue(t[r],n))}function Ue(t,n){return Z(t)?t.signal?n.signalRef(t.signal):P("Unsupported object: "+G(t)):t}function bd(t,n){return t.signal?n.signalRef(t.signal):t.map(e=>Ue(e,n))}function xd(t){P("Can not find data set: "+G(t))}function _C(t,n,e){if(t)return t.signal?e.signalRef(t.signal):(T(t)?uO:t.fields?cO:lO)(t,n,e);n.domainMin==null&&n.domainMax==null||P("No scale domain defined for domainMin/domainMax to override.")}function uO(t,n,e){return t.map(r=>Ue(r,e))}function lO(t,n,e){const r=e.getData(t.data);return r||xd(t.data),Oo(n.type)?r.valuesRef(e,t.field,kC(t.sort,!1)):hw(n.type)?r.domainRef(e,t.field):r.extentRef(e,t.field)}function cO(t,n,e){const r=t.data,i=t.fields.reduce((a,o)=>(o=Q(o)?{data:r,field:o}:T(o)||o.signal?function(s,u){const l="_:vega:_"+oO++,c=or({});if(T(s))c.value={$ingest:s};else if(s.signal){const f="setdata("+G(l)+","+s.signal+")";c.params.input=u.signalRef(f)}return u.addDataPipeline(l,[c,Xa({})]),{data:l,field:"data"}}(o,e):o,a.push(o),a),[]);return(Oo(n.type)?fO:hw(n.type)?dO:hO)(t,e,i)}function fO(t,n,e){const r=kC(t.sort,!0);let i,a;const o=e.map(l=>{const c=n.getData(l.data);return c||xd(l.data),c.countsRef(n,l.field,r)}),s={groupby:J1,pulse:o};r&&(i=r.op||"count",a=r.field?yd(i,r.field):"count",s.ops=[AC[i]],s.fields=[n.fieldRef(a)],s.as=[a]),i=n.add(mC(s));const u=n.add(or({pulse:lt(i)}));return a=n.add(aO({field:J1,sort:n.sortRef(r),pulse:lt(u)})),lt(a)}function kC(t,n){return t&&(t.field||t.op?t.field||t.op==="count"?n&&t.field&&t.op&&!AC[t.op]&&P("Multiple domain scales can not be sorted using "+t.op):P("No field provided for sort aggregate op: "+t.op):Z(t)?t.field="key":t={field:"key"}),t}function dO(t,n,e){const r=e.map(i=>{const a=n.getData(i.data);return a||xd(i.data),a.domainRef(n,i.field)});return lt(n.add(Kz({values:r})))}function hO(t,n,e){const r=e.map(i=>{const a=n.getData(i.data);return a||xd(i.data),a.extentRef(n,i.field)});return lt(n.add(Jz({extents:r})))}function DC(t,n,e){const r=n.config.range;let i=t.range;if(i.signal)return n.signalRef(i.signal);if(Q(i)){if(r&&tt(r,i))return DC(t=xt({},t,{range:r[i]}),n,e);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=Oo(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:P("Unrecognized scale range value: "+G(i))}else{if(i.scheme)return e.scheme=T(i.scheme)?bd(i.scheme,n):Ue(i.scheme,n),i.extent&&(e.schemeExtent=bd(i.extent,n)),void(i.count&&(e.schemeCount=Ue(i.count,n)));if(i.step)return void(e.rangeStep=Ue(i.step,n));if(Oo(t.type)&&!T(i))return _C(i,t,n);T(i)||P("Unsupported range type: "+G(i))}return i.map(a=>(T(a)?bd:Ue)(a,n))}function ty(t,n,e){return T(t)?t.map(r=>ty(r,n,e)):Z(t)?t.signal?e.signalRef(t.signal):n==="fit"?t:P("Unsupported parameter object: "+G(t)):t}const sr="top",rs="left",is="right",oa="bottom",FC="center",ny="index",ey="label",as="perc",Ie="value",el="guide-label",ry="guide-title",pO="group-title",mO="group-subtitle",CC="symbol",wd="gradient",iy="discrete",ay="size",oy=[ay,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],rl={name:1,style:1,interactive:1},_t={value:0},We={value:1},Ad="group",EC="rect",sy="rule",Ja="text";function il(t){return t.type=Ad,t.interactive=t.interactive||!1,t}function de(t,n){const e=(r,i)=>ar(t[r],ar(n[r],i));return e.isVertical=r=>ar(t.direction,n.direction||(r?n.symbolDirection:n.gradientDirection))==="vertical",e.gradientLength=()=>ar(t.gradientLength,n.gradientLength||n.gradientWidth),e.gradientThickness=()=>ar(t.gradientThickness,n.gradientThickness||n.gradientHeight),e.entryColumns=()=>ar(t.columns,ar(n.columns,+e.isVertical(!0))),e}function $C(t,n){const e=n&&(n.update&&n.update[t]||n.enter&&n.enter[t]);return e&&e.signal?e:e?e.value:null}function _d(t,n,e){return`item.anchor === 'start' ? ${t} : item.anchor === 'end' ? ${n} : ${e}`}const uy=_d(G(rs),G(is),G(FC));function SC(t,n){return n?t?Z(t)?Object.assign({},t,{offset:SC(t.offset,n)}):{value:t,offset:n}:n:t}function Fe(t,n){return n?(t.name=n.name,t.style=n.style||t.style,t.interactive=!!n.interactive,t.encode=ns(t.encode,n,rl)):t.interactive=!1,t}function gO(t,n,e,r){const i=de(t,e),a=i.isVertical(),o=i.gradientThickness(),s=i.gradientLength();let u,l,c,f,d;a?(l=[0,1],c=[0,0],f=o,d=s):(l=[0,0],c=[1,0],f=s,d=o);const h={enter:u={opacity:_t,x:_t,y:_t,width:yn(f),height:yn(d)},update:xt({},u,{opacity:We,fill:{gradient:n,start:l,stop:c}}),exit:{opacity:_t}};return Cn(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),Fe({type:EC,role:"legend-gradient",encode:h},r)}function yO(t,n,e,r,i){const a=de(t,e),o=a.isVertical(),s=a.gradientThickness(),u=a.gradientLength();let l,c,f,d,h="";o?(l="y",f="y2",c="x",d="width",h="1-"):(l="x",f="x2",c="y",d="height");const p={opacity:_t,fill:{scale:n,field:Ie}};p[l]={signal:h+"datum."+as,mult:u},p[c]=_t,p[f]={signal:h+"datum.perc2",mult:u},p[d]=yn(s);const m={enter:p,update:xt({},p,{opacity:We}),exit:{opacity:_t}};return Cn(m,{stroke:a("gradientStrokeColor"),strokeWidth:a("gradientStrokeWidth")},{opacity:a("gradientOpacity")}),Fe({type:EC,role:"legend-band",key:Ie,from:i,encode:m},r)}const vO=`datum.${as}<=0?"${rs}":datum.${as}>=1?"${is}":"${FC}"`,bO=`datum.${as}<=0?"${oa}":datum.${as}>=1?"${sr}":"middle"`;function MC(t,n,e,r){const i=de(t,n),a=i.isVertical(),o=yn(i.gradientThickness()),s=i.gradientLength();let u,l,c,f,d=i("labelOverlap"),h="";const p={enter:u={opacity:_t},update:l={opacity:We,text:{field:ey}},exit:{opacity:_t}};return Cn(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:ar(t.labelLimit,n.gradientLabelLimit)}),a?(u.align={value:"left"},u.baseline=l.baseline={signal:bO},c="y",f="x",h="1-"):(u.align=l.align={signal:vO},u.baseline={value:"top"},c="x",f="y"),u[c]=l[c]={signal:h+"datum."+as,mult:s},u[f]=l[f]=o,o.offset=ar(t.labelOffset,n.gradientLabelOffset)||0,d=d?{separation:i("labelSeparation"),method:d,order:"datum."+ny}:void 0,Fe({type:Ja,role:oC,style:el,key:Ie,from:r,encode:p,overlap:d},e)}function xO(t,n,e,r,i){const a=de(t,n),o=e.entries,s=!(!o||!o.interactive),u=o?o.name:void 0,l=a("clipHeight"),c=a("symbolOffset"),f={data:"value"},d=`(${i}) ? datum.offset : datum.${ay}`,h=l?yn(l):{field:ay},p=`datum.${ny}`,m=`max(1, ${i})`;let g,y,v,x,b;h.mult=.5,g={enter:y={opacity:_t,x:{signal:d,mult:.5,offset:c},y:h},update:v={opacity:We,x:y.x,y:y.y},exit:{opacity:_t}};let w=null,A=null;t.fill||(w=n.symbolBaseFillColor,A=n.symbolBaseStrokeColor),Cn(g,{fill:a("symbolFillColor",w),shape:a("symbolType"),size:a("symbolSize"),stroke:a("symbolStrokeColor",A),strokeDash:a("symbolDash"),strokeDashOffset:a("symbolDashOffset"),strokeWidth:a("symbolStrokeWidth")},{opacity:a("symbolOpacity")}),oy.forEach(C=>{t[C]&&(v[C]=y[C]={scale:t[C],field:Ie})});const _=Fe({type:"symbol",role:"legend-symbol",key:Ie,from:f,clip:!!l||void 0,encode:g},e.symbols),k=yn(c);k.offset=a("labelOffset"),g={enter:y={opacity:_t,x:{signal:d,offset:k},y:h},update:v={opacity:We,text:{field:ey},x:y.x,y:y.y},exit:{opacity:_t}},Cn(g,{align:a("labelAlign"),baseline:a("labelBaseline"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontStyle:a("labelFontStyle"),fontWeight:a("labelFontWeight"),limit:a("labelLimit")});const D=Fe({type:Ja,role:oC,style:el,key:Ie,from:f,encode:g},e.labels);return g={enter:{noBound:{value:!l},width:_t,height:l?yn(l):_t,opacity:_t},exit:{opacity:_t},update:v={opacity:We,row:{signal:null},column:{signal:null}}},a.isVertical(!0)?(x=`ceil(item.mark.items.length / ${m})`,v.row.signal=`${p}%${x}`,v.column.signal=`floor(${p} / ${x})`,b={field:["row",p]}):(v.row.signal=`floor(${p} / ${m})`,v.column.signal=`${p} % ${m}`,b={field:p}),v.column.signal=`(${i})?${v.column.signal}:${p}`,il({role:V1,from:r={facet:{data:r,name:"value",groupby:ny}},encode:ns(g,o,rl),marks:[_,D],name:u,interactive:s,sort:b})}const ly='item.orient === "left"',cy='item.orient === "right"',kd=`(${ly} || ${cy})`,wO=`datum.vgrad && ${kd}`,AO=_d('"top"','"bottom"','"middle"'),_O=`datum.vgrad && ${cy} ? (${_d('"right"','"left"','"center"')}) : (${kd} && !(datum.vgrad && ${ly})) ? "left" : ${uy}`,kO=`item._anchor || (${kd} ? "middle" : "start")`,DO=`${wO} ? (${ly} ? -90 : 90) : 0`,FO=`${kd} ? (datum.vgrad ? (${cy} ? "bottom" : "top") : ${AO}) : "top"`;function CO(t,n){let e;return Z(t)&&(t.signal?e=t.signal:t.path?e="pathShape("+BC(t.path)+")":t.sphere&&(e="geoShape("+BC(t.sphere)+', {type: "Sphere"})')),e?n.signalRef(e):!!t}function BC(t){return Z(t)&&t.signal?t.signal:G(t)}function zC(t){const n=t.role||"";return n.startsWith("axis")||n.startsWith("legend")||n.startsWith("title")?n:t.type===Ad?V1:n||H1}function EO(t){return{marktype:t.type,name:t.name||void 0,role:t.role||zC(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function $O(t,n){return t&&t.signal?n.signalRef(t.signal):t!==!1}function fy(t,n){const e=r2(t.type);e||P("Unrecognized transform type: "+G(t.type));const r=md(e.type.toLowerCase(),null,OC(e,t,n));return t.signal&&n.addSignal(t.signal,n.proxy(r)),r.metadata=e.metadata||{},r}function OC(t,n,e){const r={},i=t.params.length;for(let a=0;a<i;++a){const o=t.params[a];r[o.name]=SO(o,n,e)}return r}function SO(t,n,e){const r=t.type,i=n[t.name];return r==="index"?function(a,o,s){return Q(o.from)||P('Lookup "from" parameter must be a string literal.'),s.getData(o.from).lookupRef(s,o.key)}(0,n,e):i!==void 0?r==="param"?function(a,o,s){const u=o[a.name];return a.array?(T(u)||P("Expected an array of sub-parameters. Instead: "+G(u)),u.map(l=>RC(a,l,s))):RC(a,u,s)}(t,n,e):r==="projection"?e.projectionRef(n[t.name]):t.array&&!pn(i)?i.map(a=>NC(t,a,e)):NC(t,i,e):void(t.required&&P("Missing required "+G(n.type)+" parameter: "+G(t.name)))}function NC(t,n,e){const r=t.type;if(pn(n))return TC(r)?P("Expression references can not be signals."):dy(r)?e.fieldRef(n):PC(r)?e.compareRef(n):e.signalRef(n.signal);{const i=t.expr||dy(r);return i&&MO(n)?e.exprRef(n.expr,n.as):i&&BO(n)?tl(n.field,n.as):TC(r)?Tr(n,e):zO(r)?lt(e.getData(n).values):dy(r)?tl(n):PC(r)?e.compareRef(n):n}}function RC(t,n,e){const r=t.params.length;let i;for(let o=0;o<r;++o){i=t.params[o];for(const s in i.key)if(i.key[s]!==n[s]){i=null;break}if(i)break}i||P("Unsupported parameter: "+G(n));const a=xt(OC(i,n,e),i.key);return lt(e.add(Zz(a)))}const MO=t=>t&&t.expr,BO=t=>t&&t.field,zO=t=>t==="data",TC=t=>t==="expr",dy=t=>t==="field",PC=t=>t==="compare";function Dd(t,n){return t.$ref?t:t.data&&t.data.$ref?t.data:lt(n.getData(t.data).output)}function Ka(t,n,e,r,i){this.scope=t,this.input=n,this.output=e,this.values=r,this.aggregate=i,this.index={}}function jC(t){return Q(t)?t:null}function LC(t,n,e){const r=yd(e.op,e.field);let i;if(n.ops){for(let a=0,o=n.as.length;a<o;++a)if(n.as[a]===r)return}else n.ops=["count"],n.fields=[null],n.as=["count"];e.op&&(n.ops.push((i=e.op.signal)?t.signalRef(i):e.op),n.fields.push(t.fieldRef(e.field)),n.as.push(r))}function al(t,n,e,r,i,a,o){const s=n[e]||(n[e]={}),u=function(d){return Z(d)?(d.order==="descending"?"-":"+")+yd(d.op,d.field):""}(a);let l,c,f=jC(i);if(f!=null&&(t=n.scope,f+=u?"|"+u:"",l=s[f]),!l){const d=a?{field:J1,pulse:n.countsRef(t,i,a)}:{field:t.fieldRef(i),pulse:lt(n.output)};u&&(d.sort=t.sortRef(a)),c=t.add(md(r,void 0,d)),o&&(n.index[i]=c),l=lt(c),f!=null&&(s[f]=l)}return l}function qC(t,n,e){const r=t.remove,i=t.insert,a=t.toggle,o=t.modify,s=t.values,u=n.add(gd()),l=Tr("if("+t.trigger+',modify("'+e+'",'+[i,r,a,o,s].map(c=>c??"null").join(",")+"),0)",n);u.update=l.$expr,u.params=l.$params}function Fd(t,n){const e=zC(t),r=t.type===Ad,i=t.from&&t.from.facet,a=t.overlap;let o,s,u,l,c,f,d,h=t.layout||e===V1||e===G1;const p=e===H1||h||i,m=function(A,_,k){let D,C,F,E,$;return A?(D=A.facet)&&(_||P("Only group marks can be faceted."),D.field!=null?E=$=Dd(D,k):(A.data?$=lt(k.getData(A.data).aggregate):(F=fy(xt({type:"aggregate",groupby:J(D.groupby)},D.aggregate),k),F.params.key=k.keyRef(D.groupby),F.params.pulse=Dd(D,k),E=$=lt(k.add(F))),C=k.keyRef(D.groupby,!0))):E=lt(k.add(or(null,[{}]))),E||(E=Dd(A,k)),{key:C,pulse:E,parent:$}}(t.from,r,n);s=n.add(Uz({key:m.key||(t.key?tl(t.key):void 0),pulse:m.pulse,clean:!r}));const g=lt(s);s=u=n.add(or({pulse:g})),s=n.add(Xz({markdef:EO(t),interactive:$O(t.interactive,n),clip:CO(t.clip,n),context:{$context:!0},groups:n.lookup(),parent:n.signals.parent?n.signalRef("parent"):null,index:n.markpath(),pulse:lt(s)}));const y=lt(s);s=l=n.add(vC(cC(t.encode,t.type,e,t.style,n,{mod:!1,pulse:y}))),s.params.parent=n.encode(),t.transform&&t.transform.forEach(A=>{const _=fy(A,n),k=_.metadata;(k.generates||k.changes)&&P("Mark transforms should not generate new data."),k.nomod||(l.params.mod=!0),_.params.pulse=lt(s),n.add(s=_)}),t.sort&&(s=n.add(iO({sort:n.compareRef(t.sort),pulse:lt(s)})));const v=lt(s);(i||h)&&(h=n.add(wC({layout:n.objectProperty(t.layout),legends:n.legends,mark:y,pulse:v})),f=lt(h));const x=n.add(gC({mark:y,pulse:f||v}));d=lt(x),r&&(p&&(o=n.operators,o.pop(),h&&o.pop()),n.pushState(v,f||d,g),i?function(A,_,k){const D=A.from.facet,C=D.name,F=Dd(D,_);let E;D.name||P("Facet must have a name: "+G(D)),D.data||P("Facet must reference a data set: "+G(D)),D.field?E=_.add(bC({field:_.fieldRef(D.field),pulse:F})):D.groupby?E=_.add(Wz({key:_.keyRef(D.groupby),group:lt(_.proxy(k.parent)),pulse:F})):P("Facet must specify groupby or field: "+G(D));const $=_.fork(),M=$.add(or()),S=$.add(Xa({pulse:lt(M)}));$.addData(C,new Ka($,M,M,S)),$.addSignal("parent",null),E.params.subflow={$subflow:$.parse(A).toRuntime()}}(t,n,m):p?function(A,_,k){const D=_.add(bC({pulse:k.pulse})),C=_.fork();C.add(Xa()),C.addSignal("parent",null),D.params.subflow={$subflow:C.parse(A).toRuntime()}}(t,n,m):n.parse(t),n.popState(),p&&(h&&o.push(h),o.push(x))),a&&(d=function(A,_,k){const D=A.method,C=A.bound,F=A.separation,E={separation:pn(F)?k.signalRef(F.signal):F,method:pn(D)?k.signalRef(D.signal):D,pulse:_};if(A.order&&(E.sort=k.compareRef({field:A.order})),C){const $=C.tolerance;E.boundTolerance=pn($)?k.signalRef($.signal):+$,E.boundScale=k.scaleRef(C.scale),E.boundOrient=C.orient}return lt(k.add(Qz(E)))}(a,d,n));const b=n.add(xC({pulse:d})),w=n.add(Xa({pulse:lt(b)},void 0,n.parent()));t.name!=null&&(c=t.name,n.addData(c,new Ka(n,u,b,w)),t.on&&t.on.forEach(A=>{(A.insert||A.remove||A.toggle)&&P("Marks only support modify triggers."),qC(A,n,c)}))}function OO(t,n){const e=n.config.legend,r=t.encode||{},i=de(t,e),a=r.legend||{},o=a.name||void 0,s=a.interactive,u=a.style,l={};let c,f,d,h=0;oy.forEach(v=>t[v]?(l[v]=t[v],h=h||t[v]):0),h||P("Missing valid scale for legend.");const p=function(v,x){let b=v.type||CC;return v.type||function(w){return oy.reduce((A,_)=>A+(w[_]?1:0),0)}(v)!==1||!v.fill&&!v.stroke||(b=Cm(x)?wd:Em(x)?iy:CC),b!==wd?b:Em(x)?iy:wd}(t,n.scaleType(h)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=lt(n.add(or(null,[m]))),y=lt(n.add(Vz(f={type:p,scale:n.scaleRef(h),count:n.objectProperty(i("tickCount")),limit:n.property(i("symbolLimit")),values:n.objectProperty(t.values),minstep:n.property(t.tickMinStep),formatType:n.property(t.formatType),formatSpecifier:n.property(t.format)})));return p===wd?(d=[gO(t,h,e,r.gradient),MC(t,e,r.labels,y)],f.count=f.count||n.signalRef(`max(2,2*floor((${Ya(i.gradientLength())})/100))`)):p===iy?d=[yO(t,h,e,r.gradient,y),MC(t,e,r.labels,y)]:(c=function(v,x){const b=de(v,x);return{align:b("gridAlign"),columns:b.entryColumns(),center:{row:!0,column:!1},padding:{row:b("rowPadding"),column:b("columnPadding")}}}(t,e),d=[xO(t,e,r,y,Ya(c.columns))],f.size=function(v,x,b){const w=Ya(UC("size",v,b)),A=Ya(UC("strokeWidth",v,b)),_=Ya(function(k,D,C){return $C("fontSize",k)||function(F,E,$){const M=E.config.style[$];return M&&M[F]}("fontSize",D,C)}(b[1].encode,x,el));return Tr(`max(ceil(sqrt(${w})+${A}),${_})`,x)}(t,n,d[0].marks)),d=[il({role:"legend-entry",from:g,encode:{enter:{x:{value:0},y:{value:0}}},marks:d,layout:c,interactive:s})],m.title&&d.push(function(v,x,b,w){const A=de(v,x),_={enter:{opacity:_t},update:{opacity:We,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:_t}};return Cn(_,{orient:A("titleOrient"),_anchor:A("titleAnchor"),anchor:{signal:kO},angle:{signal:DO},align:{signal:_O},baseline:{signal:FO},text:v.title,fill:A("titleColor"),fillOpacity:A("titleOpacity"),font:A("titleFont"),fontSize:A("titleFontSize"),fontStyle:A("titleFontStyle"),fontWeight:A("titleFontWeight"),limit:A("titleLimit"),lineHeight:A("titleLineHeight")},{align:A("titleAlign"),baseline:A("titleBaseline")}),Fe({type:Ja,role:"legend-title",style:ry,from:w,encode:_},b)}(t,e,r.title,g)),Fd(il({role:"legend",from:g,encode:ns(NO(i,t,e),a,rl),marks:d,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:s,style:u}),n)}function NO(t,n,e){const r={enter:{},update:{}};return Cn(r,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:e.strokeWidth,strokeDash:e.strokeDash,x:t("legendX"),y:t("legendY"),format:n.format,formatType:n.formatType}),r}function UC(t,n,e){return n[t]?`scale("${n[t]}",datum)`:$C(t,e[0].encode)}Ka.fromEntries=function(t,n){const e=n.length,r=n[e-1],i=n[e-2];let a=n[0],o=null,s=1;for(a&&a.type==="load"&&(a=n[1]),t.add(n[0]);s<e;++s)n[s].params.pulse=lt(n[s-1]),t.add(n[s]),n[s].type==="aggregate"&&(o=n[s]);return new Ka(t,a,i,r,o)},Ka.prototype={countsRef(t,n,e){const r=this,i=r.counts||(r.counts={}),a=jC(n);let o,s,u;return a!=null&&(t=r.scope,o=i[a]),o?e&&e.field&&LC(t,o.agg.params,e):(u={groupby:t.fieldRef(n,"key"),pulse:lt(r.output)},e&&e.field&&LC(t,u,e),s=t.add(mC(u)),o=t.add(or({pulse:lt(s)})),o={agg:s,ref:lt(o)},a!=null&&(i[a]=o)),o.ref},tuplesRef(){return lt(this.values)},extentRef(t,n){return al(t,this,"extent","extent",n,!1)},domainRef(t,n){return al(t,this,"domain","values",n,!1)},valuesRef(t,n,e){return al(t,this,"vals","values",n,e||!0)},lookupRef(t,n){return al(t,this,"lookup","tupleindex",n,!1)},indataRef(t,n){return al(t,this,"indata","tupleindex",n,!0,!0)}};const RO=`item.orient==="${rs}"?-90:item.orient==="${is}"?90:0`;function TO(t,n){const e=de(t=Q(t)?{text:t}:t,n.config.title),r=t.encode||{},i=r.group||{},a=i.name||void 0,o=i.interactive,s=i.style,u=[],l=lt(n.add(or(null,[{}])));return u.push(function(c,f,d,h){const p={value:0},m=c.text,g={enter:{opacity:p},update:{opacity:{value:1}},exit:{opacity:p}};return Cn(g,{text:m,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:f("dx"),dy:f("dy"),fill:f("color"),font:f("font"),fontSize:f("fontSize"),fontStyle:f("fontStyle"),fontWeight:f("fontWeight"),lineHeight:f("lineHeight")},{align:f("align"),angle:f("angle"),baseline:f("baseline")}),Fe({type:Ja,role:$z,style:pO,from:h,encode:g},d)}(t,e,function(c){const f=c.encode;return f&&f.title||xt({name:c.name,interactive:c.interactive,style:c.style},f)}(t),l)),t.subtitle&&u.push(function(c,f,d,h){const p={value:0},m=c.subtitle,g={enter:{opacity:p},update:{opacity:{value:1}},exit:{opacity:p}};return Cn(g,{text:m,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:f("dx"),dy:f("dy"),fill:f("subtitleColor"),font:f("subtitleFont"),fontSize:f("subtitleFontSize"),fontStyle:f("subtitleFontStyle"),fontWeight:f("subtitleFontWeight"),lineHeight:f("subtitleLineHeight")},{align:f("align"),angle:f("angle"),baseline:f("baseline")}),Fe({type:Ja,role:Sz,style:mO,from:h,encode:g},d)}(t,e,r.subtitle,l)),Fd(il({role:"title",from:l,encode:PO(e,i),marks:u,aria:e("aria"),description:e("description"),zindex:e("zindex"),name:a,interactive:o,style:s}),n)}function PO(t,n){const e={enter:{},update:{}};return Cn(e,{orient:t("orient"),anchor:t("anchor"),align:{signal:uy},angle:{signal:RO},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),ns(e,n,rl)}function jO(t,n){const e=[];t.transform&&t.transform.forEach(r=>{e.push(fy(r,n))}),t.on&&t.on.forEach(r=>{qC(r,n,t.name)}),n.addDataPipeline(t.name,function(r,i,a){const o=[];let s,u,l,c,f,d=null,h=!1,p=!1;for(r.values?pn(r.values)||vd(r.format)?(o.push(IC(i,r)),o.push(d=Qa())):o.push(d=Qa({$ingest:r.values,$format:r.format})):r.url?vd(r.url)||vd(r.format)?(o.push(IC(i,r)),o.push(d=Qa())):o.push(d=Qa({$request:r.url,$format:r.format})):r.source&&(d=s=J(r.source).map(m=>lt(i.getData(m).output)),o.push(null)),u=0,l=a.length;u<l;++u)c=a[u],f=c.metadata,d||f.source||o.push(d=Qa()),o.push(c),f.generates&&(p=!0),f.modifies&&!p&&(h=!0),f.source?d=c:f.changes&&(d=null);return s&&(l=s.length-1,o[0]=eO({derive:h,pulse:l?s:s[0]}),(h||l)&&o.splice(1,0,Qa())),d||o.push(Qa()),o.push(Xa({})),o}(t,n,e))}function Qa(t){const n=or({},t);return n.metadata={source:!0},n}function IC(t,n){return Yz({url:n.url?t.property(n.url):void 0,async:n.async?t.property(n.async):void 0,values:n.values?t.property(n.values):void 0,format:t.objectProperty(n.format)})}const WC=t=>t===oa||t===sr,Cd=(t,n,e)=>pn(t)?UO(t.signal,n,e):t===rs||t===sr?n:e,vn=(t,n,e)=>pn(t)?LO(t.signal,n,e):WC(t)?n:e,ur=(t,n,e)=>pn(t)?qO(t.signal,n,e):WC(t)?e:n,HC=(t,n,e)=>pn(t)?IO(t.signal,n,e):t===sr?{value:n}:{value:e},LO=(t,n,e)=>GC(`${t} === '${sr}' || ${t} === '${oa}'`,n,e),qO=(t,n,e)=>GC(`${t} !== '${sr}' && ${t} !== '${oa}'`,n,e),UO=(t,n,e)=>hy(`${t} === '${rs}' || ${t} === '${sr}'`,n,e),IO=(t,n,e)=>hy(`${t} === '${sr}'`,n,e),WO=(t,n,e)=>hy(`${t} === '${is}'`,n,e),GC=(t,n,e)=>(n=n!=null?yn(n):n,e=e!=null?yn(e):e,VC(n)&&VC(e)?{signal:`${t} ? (${n=n?n.signal||G(n.value):null}) : (${e=e?e.signal||G(e.value):null})`}:[xt({test:t},n)].concat(e||[])),VC=t=>t==null||Object.keys(t).length===1,hy=(t,n,e)=>({signal:`${t} ? (${os(n)}) : (${os(e)})`}),HO=(t,n,e,r,i)=>({signal:(r!=null?`${t} === '${rs}' ? (${os(r)}) : `:"")+(e!=null?`${t} === '${oa}' ? (${os(e)}) : `:"")+(i!=null?`${t} === '${is}' ? (${os(i)}) : `:"")+(n!=null?`${t} === '${sr}' ? (${os(n)}) : `:"")+"(null)"}),os=t=>pn(t)?t.signal:t==null?null:G(t),ss=(t,n)=>{const e=t.signal;return e&&e.endsWith("(null)")?{signal:e.slice(0,-6)+n.signal}:t};function us(t,n,e,r){let i;if(n&&tt(n,t))return n[t];if(tt(e,t))return e[t];if(t.startsWith("title")){switch(t){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=t[5].toLowerCase()+t.slice(6)}return r[ry][i]}if(t.startsWith("label")){switch(t){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=t[5].toLowerCase()+t.slice(6)}return r[el][i]}return null}function YC(t){const n={};for(const e of t)if(e)for(const r in e)n[r]=1;return Object.keys(n)}function XC(t,n){return{scale:t.scale,range:n}}function GO(t,n,e,r,i){const a=de(t,n),o=t.orient,s=t.gridScale,u=Cd(o,1,-1),l=function(v,x){if(x!==1)if(Z(v)){let b=v=xt({},v);for(;b.mult!=null;){if(!Z(b.mult))return b.mult=pn(x)?{signal:`(${b.mult}) * (${x.signal})`}:b.mult*x,v;b=b.mult=xt({},b.mult)}b.mult=x}else v=pn(x)?{signal:`(${x.signal}) * (${v||0})`}:x*(v||0);return v}(t.offset,u);let c,f,d;const h={enter:c={opacity:_t},update:d={opacity:We},exit:f={opacity:_t}};Cn(h,{stroke:a("gridColor"),strokeCap:a("gridCap"),strokeDash:a("gridDash"),strokeDashOffset:a("gridDashOffset"),strokeOpacity:a("gridOpacity"),strokeWidth:a("gridWidth")});const p={scale:t.scale,field:Ie,band:i.band,extra:i.extra,offset:i.offset,round:a("tickRound")},m=vn(o,{signal:"height"},{signal:"width"}),g=s?{scale:s,range:0,mult:u,offset:l}:{value:0,offset:l},y=s?{scale:s,range:1,mult:u,offset:l}:xt(m,{mult:u,offset:l});return c.x=d.x=vn(o,p,g),c.y=d.y=ur(o,p,g),c.x2=d.x2=ur(o,y),c.y2=d.y2=vn(o,y),f.x=vn(o,p),f.y=ur(o,p),Fe({type:sy,role:"axis-grid",key:Ie,from:r,encode:h},e)}function py(t,n,e,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+n+","+e+","+r+","+i+")"}}function VO(t,n,e,r,i,a){const o=de(t,n),s=t.orient,u=t.scale,l=Cd(s,-1,1),c=Ya(o("labelFlush")),f=Ya(o("labelFlushOffset")),d=o("labelAlign"),h=o("labelBaseline");let p,m=c===0||!!c;const g=yn(i);g.mult=l,g.offset=yn(o("labelPadding")||0),g.offset.mult=l;const y={scale:u,field:Ie,band:.5,offset:SC(a.offset,o("labelOffset"))},v=vn(s,m?py(u,c,'"left"','"right"','"center"'):{value:"center"},((D,C,F)=>pn(D)?WO(D.signal,C,F):D===is?{value:C}:{value:F})(s,"left","right")),x=vn(s,HC(s,"bottom","top"),m?py(u,c,'"top"','"bottom"','"middle"'):{value:"middle"}),b=py(u,c,`-(${f})`,f,0);m=m&&f;const w={opacity:_t,x:vn(s,y,g),y:ur(s,y,g)},A={enter:w,update:p={opacity:We,text:{field:ey},x:w.x,y:w.y,align:v,baseline:x},exit:{opacity:_t,x:w.x,y:w.y}};Cn(A,{dx:!d&&m?vn(s,b):null,dy:!h&&m?ur(s,b):null}),Cn(A,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:d,baseline:h});const _=o("labelBound");let k=o("labelOverlap");return k=k||_?{separation:o("labelSeparation"),method:k,order:"datum.index",bound:_?{scale:u,orient:s,tolerance:_}:null}:void 0,p.align!==v&&(p.align=ss(p.align,v)),p.baseline!==x&&(p.baseline=ss(p.baseline,x)),Fe({type:Ja,role:"axis-label",style:el,key:Ie,from:r,encode:A,overlap:k},e)}function YO(t,n,e,r){const i=de(t,n),a=t.orient,o=Cd(a,-1,1);let s,u;const l={enter:s={opacity:_t,anchor:yn(i("titleAnchor",null)),align:{signal:uy}},update:u=xt({},s,{opacity:We,text:yn(t.title)}),exit:{opacity:_t}},c={signal:`lerp(range("${t.scale}"), ${_d(0,1,.5)})`};return u.x=vn(a,c),u.y=ur(a,c),s.angle=vn(a,_t,((f,d)=>d===0?0:pn(f)?{signal:`(${f.signal}) * ${d}`}:{value:f*d})(o,90)),s.baseline=vn(a,HC(a,oa,sr),{value:oa}),u.angle=s.angle,u.baseline=s.baseline,Cn(l,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),function(f,d,h,p){const m=(v,x)=>v!=null?(h.update[x]=ss(yn(v),h.update[x]),!1):!es(x,p),g=m(f("titleX"),"x"),y=m(f("titleY"),"y");h.enter.auto=y===g?yn(y):vn(d,yn(y),yn(g))}(i,a,l,e),l.update.align=ss(l.update.align,s.align),l.update.angle=ss(l.update.angle,s.angle),l.update.baseline=ss(l.update.baseline,s.baseline),Fe({type:Ja,role:"axis-title",style:ry,from:r,encode:l},e)}function XO(t,n){const e=function(m,g){var y,v,x,b=g.config,w=b.style,A=b.axis,_=g.scaleType(m.scale)==="band"&&b.axisBand,k=m.orient;if(pn(k)){const D=YC([b.axisX,b.axisY]),C=YC([b.axisTop,b.axisBottom,b.axisLeft,b.axisRight]);for(x of(y={},D))y[x]=vn(k,us(x,b.axisX,A,w),us(x,b.axisY,A,w));for(x of(v={},C))v[x]=HO(k.signal,us(x,b.axisTop,A,w),us(x,b.axisBottom,A,w),us(x,b.axisLeft,A,w),us(x,b.axisRight,A,w))}else y=k===sr||k===oa?b.axisX:b.axisY,v=b["axis"+k[0].toUpperCase()+k.slice(1)];return y||v||_?xt({},A,y,v,_):A}(t,n),r=t.encode||{},i=r.axis||{},a=i.name||void 0,o=i.interactive,s=i.style,u=de(t,e),l=function(m){const g=m("tickBand");let y,v,x=m("tickOffset");return g?g.signal?(y={signal:`(${g.signal}) === 'extent' ? 1 : 0.5`},v={signal:`(${g.signal}) === 'extent'`},Z(x)||(x={signal:`(${g.signal}) === 'extent' ? 0 : ${x}`})):g==="extent"?(y=1,v=!0,x=0):(y=.5,v=!1):(y=m("bandPosition"),v=m("tickExtra")),{extra:v,band:y,offset:x}}(u),c={scale:t.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:t.title!=null},f=lt(n.add(or({},[c]))),d=lt(n.add(qz({scale:n.scaleRef(t.scale),extra:n.property(l.extra),count:n.objectProperty(t.tickCount),values:n.objectProperty(t.values),minstep:n.property(t.tickMinStep),formatType:n.property(t.formatType),formatSpecifier:n.property(t.format)}))),h=[];let p;return c.grid&&h.push(GO(t,e,r.grid,d,l)),c.ticks&&(p=u("tickSize"),h.push(function(m,g,y,v,x,b){const w=de(m,g),A=m.orient,_=Cd(A,-1,1);let k,D,C;const F={enter:k={opacity:_t},update:C={opacity:We},exit:D={opacity:_t}};Cn(F,{stroke:w("tickColor"),strokeCap:w("tickCap"),strokeDash:w("tickDash"),strokeDashOffset:w("tickDashOffset"),strokeOpacity:w("tickOpacity"),strokeWidth:w("tickWidth")});const E=yn(x);E.mult=_;const $={scale:m.scale,field:Ie,band:b.band,extra:b.extra,offset:b.offset,round:w("tickRound")};return C.y=k.y=vn(A,_t,$),C.y2=k.y2=vn(A,E),D.x=vn(A,$),C.x=k.x=ur(A,_t,$),C.x2=k.x2=ur(A,E),D.y=ur(A,$),Fe({type:sy,role:"axis-tick",key:Ie,from:v,encode:F},y)}(t,e,r.ticks,d,p,l))),c.labels&&(p=c.ticks?p:0,h.push(VO(t,e,r.labels,d,p,l))),c.domain&&h.push(function(m,g,y,v){const x=de(m,g),b=m.orient;let w,A;const _={enter:w={opacity:_t},update:A={opacity:We},exit:{opacity:_t}};Cn(_,{stroke:x("domainColor"),strokeCap:x("domainCap"),strokeDash:x("domainDash"),strokeDashOffset:x("domainDashOffset"),strokeWidth:x("domainWidth"),strokeOpacity:x("domainOpacity")});const k=XC(m,0),D=XC(m,1);return w.x=A.x=vn(b,k,_t),w.x2=A.x2=vn(b,D),w.y=A.y=ur(b,k,_t),w.y2=A.y2=ur(b,D),Fe({type:sy,role:"axis-domain",from:v,encode:_},y)}(t,e,r.domain,f)),c.title&&h.push(YO(t,e,r.title,f)),Fd(il({role:"axis",from:f,encode:ns(JO(u,t),i,rl),marks:h,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:a,interactive:o,style:s}),n)}function JO(t,n){const e={enter:{},update:{}};return Cn(e,{orient:t("orient"),offset:t("offset")||0,position:ar(n.position,0),titlePadding:t("titlePadding"),minExtent:t("minExtent"),maxExtent:t("maxExtent"),range:{signal:`abs(span(range("${n.scale}")))`},translate:t("translate"),format:n.format,formatType:n.formatType}),e}function JC(t,n,e){const r=J(t.signals),i=J(t.scales);return e||r.forEach(a=>dC(a,n)),J(t.projections).forEach(a=>function(o,s){const u=s.config.projection||{},l={};for(const c in o)c!=="name"&&(l[c]=ty(o[c],c,s));for(const c in u)l[c]==null&&(l[c]=ty(u[c],c,s));s.addProjection(o.name,l)}(a,n)),i.forEach(a=>function(o,s){const u=o.type||"linear";cw(u)||P("Unrecognized scale type: "+G(u)),s.addScale(o.name,{type:u,domain:void 0})}(a,n)),J(t.data).forEach(a=>jO(a,n)),i.forEach(a=>sO(a,n)),(e||r).forEach(a=>function(o,s){const u=s.getSignal(o.name);let l=o.update;o.init&&(l?P("Signals can not include both init and update expressions."):(l=o.init,u.initonly=!0)),l&&(l=Tr(l,s),u.update=l.$expr,u.params=l.$params),o.on&&o.on.forEach(c=>jz(c,s,u.id))}(a,n)),J(t.axes).forEach(a=>XO(a,n)),J(t.marks).forEach(a=>Fd(a,n)),J(t.legends).forEach(a=>OO(a,n)),t.title&&TO(t.title,n),n.parseLambdas(),n}function KO(t,n){const e=n.config,r=lt(n.root=n.add(gd())),i=function(l,c){const f=m=>ar(l[m],c[m]),d=[ol("background",f("background")),ol("autosize",Cz(f("autosize"))),ol("padding",Ez(f("padding"))),ol("width",f("width")||0),ol("height",f("height")||0)],h=d.reduce((m,g)=>(m[g.name]=g,m),{}),p={};return J(l.signals).forEach(m=>{tt(h,m.name)?m=xt(h[m.name],m):d.push(m),p[m.name]=m}),J(c.signals).forEach(m=>{tt(p,m.name)||tt(h,m.name)||d.push(m)}),d}(t,e);i.forEach(l=>dC(l,n)),n.description=t.description||e.description,n.eventConfig=e.events,n.legends=n.objectProperty(e.legend&&e.legend.layout),n.locale=e.locale;const a=n.add(or()),o=n.add(vC(cC((l=>ns({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},l))(t.encode),Ad,G1,t.style,n,{pulse:lt(a)}))),s=n.add(wC({layout:n.objectProperty(t.layout),legends:n.legends,autosize:n.signalRef("autosize"),mark:r,pulse:lt(o)}));n.operators.pop(),n.pushState(lt(o),lt(s),null),JC(t,n,i),n.operators.push(s);let u=n.add(gC({mark:r,pulse:lt(s)}));return u=n.add(xC({pulse:lt(u)})),u=n.add(Xa({pulse:lt(u)})),n.addData("root",new Ka(n,a,a,u)),n}function ol(t,n){return n&&n.signal?{name:t,update:n.signal}:{name:t,value:n}}function KC(t,n){this.config=t||{},this.options=n||{},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 QC(t){this.config=t.config,this.options=t.options,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}function my(t){return(T(t)?QO:ZO)(t)}function QO(t){const n=t.length;let e="[";for(let r=0;r<n;++r){const i=t[r];e+=(r>0?",":"")+(Z(i)?i.signal||my(i):G(i))}return e+"]"}function ZO(t){let n,e,r="{",i=0;for(n in t)e=t[n],r+=(++i>1?",":"")+G(n)+":"+(Z(e)?e.signal||my(e):G(e));return r+"}"}KC.prototype=QC.prototype={parse(t){return JC(t,this)},fork(){return new QC(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(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach(n=>{n.$ref=t.id}),t.refs=null),t},proxy(t){const n=t instanceof X1?lt(t):t;return this.add(nO({value:n}))},addStream(t){return this.streams.push(t),t.id=this.id(),t},addUpdate(t){return this.updates.push(t),t},finish(){let t,n;for(t in this.root&&(this.root.root=!0),this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function e(r,i,a){let o,s;r&&(o=r.data||(r.data={}),s=o[i]||(o[i]=[]),s.push(a))}for(t in this.data){n=this.data[t],e(n.input,t,"input"),e(n.output,t,"output"),e(n.values,t,"values");for(const r in n.index)e(n.index[r],t,"index:"+r)}return this},pushState(t,n,e){this._encode.push(lt(this.add(Xa({pulse:t})))),this._parent.push(n),this._lookup.push(e?lt(this.proxy(e)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return Bt(this._parent)},encode(){return Bt(this._encode)},lookup(){return Bt(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,n){if(Q(t))return tl(t,n);t.signal||P("Unsupported field reference: "+G(t));const e=t.signal;let r=this.field[e];if(!r){const i={name:this.signalRef(e)};n&&(i.as=n),this.field[e]=r=lt(this.add(Hz(i)))}return r},compareRef(t){let n=!1;const e=a=>pn(a)?(n=!0,this.signalRef(a.signal)):function(o){return o&&o.expr}(a)?(n=!0,this.exprRef(a.expr)):a,r=J(t.field).map(e),i=J(t.order).map(e);return n?lt(this.add(yC({fields:r,orders:i}))):hC(r,i)},keyRef(t,n){let e=!1;const r=this.signals;return t=J(t).map(i=>pn(i)?(e=!0,lt(r[i.signal])):i),e?lt(this.add(Gz({fields:t,flat:n}))):function(i,a){const o={$key:i};return a&&(o.$flat=!0),o}(t,n)},sortRef(t){if(!t)return t;const n=yd(t.op,t.field),e=t.order||"ascending";return e.signal?lt(this.add(yC({fields:n,orders:this.signalRef(e.signal)}))):hC(n,e)},event(t,n){const e=t+":"+n;if(!this.events[e]){const r=this.id();this.streams.push({id:r,source:t,type:n}),this.events[e]=r}return this.events[e]},hasOwnSignal(t){return tt(this.signals,t)},addSignal(t,n){this.hasOwnSignal(t)&&P("Duplicate signal name: "+G(t));const e=n instanceof X1?n:this.add(gd(n));return this.signals[t]=e},getSignal(t){return this.signals[t]||P("Unrecognized signal name: "+G(t)),this.signals[t]},signalRef(t){return this.signals[t]?lt(this.signals[t]):(tt(this.lambdas,t)||(this.lambdas[t]=this.add(gd(null))),lt(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let n=0,e=t.length;n<e;++n){const r=t[n],i=Tr(r,this),a=this.lambdas[r];a.params=i.$params,a.update=i.$expr}},property(t){return t&&t.signal?this.signalRef(t.signal):t},objectProperty(t){return t&&Z(t)?this.signalRef(t.signal||my(t)):t},exprRef(t,n){const e={expr:Tr(t,this)};return n&&(e.expr.$name=n),lt(this.add(Iz(e)))},addBinding(t,n){this.bindings||P("Nested signals do not support binding: "+G(t)),this.bindings.push(xt({signal:t},n))},addScaleProj(t,n){tt(this.scales,t)&&P("Duplicate scale or projection name: "+G(t)),this.scales[t]=this.add(n)},addScale(t,n){this.addScaleProj(t,rO(n))},addProjection(t,n){this.addScaleProj(t,tO(n))},getScale(t){return this.scales[t]||P("Unrecognized scale name: "+G(t)),this.scales[t]},scaleRef(t){return lt(this.getScale(t))},scaleType(t){return this.getScale(t).params.type},projectionRef(t){return this.scaleRef(t)},projectionType(t){return this.scaleType(t)},addData(t,n){return tt(this.data,t)&&P("Duplicate data set name: "+G(t)),this.data[t]=n},getData(t){return this.data[t]||P("Undefined data set name: "+G(t)),this.data[t]},addDataPipeline(t,n){return tt(this.data,t)&&P("Duplicate data set name: "+G(t)),this.addData(t,Ka.fromEntries(this,n))}},xt($o,z9,x4,S4,pM,EM,eB,GM,rB,gB,kB,CB);const tN=Object.freeze(Object.defineProperty({__proto__:null,Bounds:cn,CanvasHandler:vu,CanvasRenderer:Kc,DATE:m6,DAY:g6,DAYOFYEAR:y6,Dataflow:Eo,Debug:v6,Error:Vb,EventStream:rc,Gradient:Mw,GroupItem:Fc,HOURS:b6,Handler:c0,HybridHandler:GA,HybridRenderer:A0,Info:x6,Item:Dc,MILLISECONDS:w6,MINUTES:A6,MONTH:_6,Marks:Ae,MultiPulse:yp,None:k6,Operator:Ut,Parameters:ec,Pulse:ji,QUARTER:D6,RenderType:Ki,Renderer:gu,ResourceLoader:Uw,SECONDS:F6,SVGHandler:CA,SVGRenderer:w0,SVGStringRenderer:HA,Scenegraph:mA,TIME_UNITS:ix,Transform:O,View:QF,WEEK:C6,Warn:Bx,YEAR:E6,accessor:ko,accessorFields:Wn,accessorName:en,array:J,ascending:Xh,bandwidthNRD:wp,bin:o2,bootstrapCI:s2,boundClip:t_,boundContext:lu,boundItem:u0,boundMark:fA,boundStroke:ai,changeset:Ma,clampRange:dx,codegenExpression:lF,compare:Qh,constant:In,cumulativeLogNormal:Cp,cumulativeNormal:sc,cumulativeUniform:Mp,dayofyear:px,debounce:Yh,defaultLocale:Yb,definition:r2,densityLogNormal:Fp,densityNormal:Ap,densityUniform:Sp,domChild:dn,domClear:Pe,domCreate:Xi,domFind:l0,dotbin:u2,error:P,expressionFunction:sn,extend:xt,extent:kr,extentIndex:rx,falsy:Oi,fastmap:Do,field:ei,flush:Cx,font:jc,fontFamily:pu,fontSize:Sr,format:$6,formatLocale:S6,formats:M6,hasOwnProperty:tt,id:Us,identity:Me,inferType:B6,inferTypes:z6,ingest:St,inherits:V,inrange:Fo,interpolate:$m,interpolateColors:xc,interpolateRange:pw,intersect:JA,intersectBoxLine:Po,intersectPath:Vm,intersectPoint:Ym,intersectRule:Jw,isArray:T,isBoolean:Fa,isDate:Da,isFunction:bt,isIterable:O6,isNumber:$t,isObject:Z,isRegExp:ip,isString:Q,isTuple:Zl,key:Zh,lerp:Fx,lineHeight:Vi,loader:Ul,locale:Mx,logger:Vh,lruCache:ox,markup:x0,merge:ex,mergeConfig:Hl,multiLineOffset:a0,one:Is,pad:Dx,panLinear:fx,panLog:cx,panPow:lx,panSymlog:ux,parse:function(t,n,e){return Z(t)||P("Input Vega specification must be an object."),KO(t,new KC(n=Hl(function(){const r="sans-serif",i="#4c78a8",a="#000",o="#888",s="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:i},area:{fill:i},image:null,line:{stroke:i,strokeWidth:2},path:{stroke:i},rect:{fill:i},rule:{stroke:a},shape:{stroke:i},symbol:{fill:i,size:64},text:{fill:a,font:r,fontSize:11},trail:{fill:i,size:2},style:{"guide-label":{fill:a,font:r,fontSize:10},"guide-title":{fill:a,font:r,fontSize:11,fontWeight:"bold"},"group-title":{fill:a,font:r,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:a,font:r,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:s},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:o,grid:!1,gridWidth:1,gridColor:s,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:o,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:s,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:o,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"]}}}(),n,t.config),e)).toRuntime()},parseExpression:oF,parseSelector:aa,path:dp,pathCurves:Nm,pathEqual:n_,pathParse:No,pathRectangle:Pw,pathRender:iu,pathSymbols:Tw,pathTrail:jw,peek:Bt,point:qc,projection:xg,quantileLogNormal:Ep,quantileNormal:uc,quantileUniform:Bp,quantiles:bp,quantizeInterpolator:mw,quarter:vx,quartiles:xp,get random(){return Ne},randomInteger:function(t,n){let e,r,i;n==null&&(n=t,t=0);const a={min(o){return arguments.length?(e=o||0,i=r-e,a):e},max(o){return arguments.length?(r=o||0,i=r-e,a):r},sample:()=>e+Math.floor(i*Ne()),pdf:o=>o===Math.floor(o)&&o>=e&&o<r?1/i:0,cdf(o){const s=Math.floor(o);return s<e?0:s>=r?1:(s-e+1)/i},icdf:o=>o>=0&&o<=1?e-1+Math.floor(o*i):NaN};return a.min(t).max(n)},randomKDE:kp,randomLCG:function(t){return function(){return(t=(1103515245*t+12345)%2147483647)/2147483647}},randomLogNormal:c2,randomMixture:f2,randomNormal:_p,randomUniform:d2,read:Jb,regressionConstant:zp,regressionExp:p2,regressionLinear:Op,regressionLoess:y2,regressionLog:h2,regressionPoly:g2,regressionPow:m2,regressionQuad:Np,renderModule:nf,repeat:N6,resetDefaultLocale:R6,resetSVGClipId:qw,resetSVGDefIds:function(){qw(),$w=0},responseType:Xb,runtimeContext:BF,sampleCurve:cc,sampleLogNormal:Dp,sampleNormal:oc,sampleUniform:$p,scale:Dt,sceneEqual:k0,sceneFromJSON:hA,scenePickVisit:zc,sceneToJSON:dA,sceneVisit:Qe,sceneZOrder:Xm,scheme:Sm,serializeXML:PA,setHybridRendererOptions:function(t){Ze.svgMarkTypes=t.svgMarkTypes??["text"],Ze.svgOnTop=t.svgOnTop??!0,Ze.debug=t.debug??!1},setRandom:function(t){Ne=t},span:Il,splitAccessPath:Ni,stringValue:G,textMetrics:we,timeBin:Kb,timeFloor:tx,timeFormatLocale:T6,timeInterval:Kh,timeOffset:wx,timeSequence:xx,timeUnitSpecifier:bx,timeUnits:Qb,toBoolean:$x,toDate:Sx,toNumber:ze,toSet:Dr,toString:Ex,transform:i2,transforms:$o,truncate:kx,truthy:Be,tupleid:st,typeParsers:P6,utcFloor:Zb,utcInterval:Jh,utcOffset:_x,utcSequence:Ax,utcdayofyear:hx,utcquarter:yx,utcweek:mx,version:"5.33.0",visitArray:ka,week:gx,writeConfig:ap,zero:tp,zoomLinear:rp,zoomLog:np,zoomPow:Wl,zoomSymlog:ep},Symbol.toStringTag,{value:"Module"}));function gy(t){return U(t,"or")}function yy(t){return U(t,"and")}function vy(t){return U(t,"not")}function Ed(t,n){if(vy(t))Ed(t.not,n);else if(yy(t))for(const e of t.and)Ed(e,n);else if(gy(t))for(const e of t.or)Ed(e,n);else n(t)}function ls(t,n){return vy(t)?{not:ls(t.not,n)}:yy(t)?{and:t.and.map(e=>ls(e,n))}:gy(t)?{or:t.or.map(e=>ls(e,n))}:n(t)}const ft=structuredClone;function ZC(t){throw new Error(t)}function cs(t,n){const e={};for(const r of n)tt(t,r)&&(e[r]=t[r]);return e}function he(t,n){const e={...t};for(const r of n)delete e[r];return e}function wt(t){if($t(t))return t;const n=Q(t)?t:Lt(t);if(n.length<250)return n;let e=0;for(let r=0;r<n.length;r++)e=(e<<5)-e+n.charCodeAt(r),e&=e;return e}function by(t){return t===!1||t===null}function vt(t,n){return t.includes(n)}function fs(t,n){let e=0;for(const[r,i]of t.entries())if(n(i,r,e++))return!0;return!1}function xy(t,n){let e=0;for(const[r,i]of t.entries())if(!n(i,r,e++))return!1;return!0}function tE(t,...n){for(const e of n)nN(t,e??{});return t}function nN(t,n){for(const e of L(n))ap(t,e,n[e],!0)}function Pr(t,n){const e=[],r={};let i;for(const a of t)i=n(a),i in r||(r[i]=1,e.push(a));return e}function eN(t,n){const e=L(t),r=L(n);if(e.length!==r.length)return!1;for(const i of e)if(t[i]!==n[i])return!1;return!0}function nE(t,n){if(t.size!==n.size)return!1;for(const e of t)if(!n.has(e))return!1;return!0}function wy(t,n){for(const e of t)if(n.has(e))return!0;return!1}function Ay(t){const n=new Set;for(const e of t){const r=Ni(e).map((a,o)=>o===0?a:`[${a}]`),i=r.map((a,o)=>r.slice(0,o+1).join(""));for(const a of i)n.add(a)}return n}function _y(t,n){return t===void 0||n===void 0||wy(Ay(t),Ay(n))}function jt(t){return L(t).length===0}Set.prototype.toJSON=function(){return`Set(${[...this].map(t=>Lt(t)).join(",")})`};const L=Object.keys,En=Object.values,sa=Object.entries;function sl(t){return t===!0||t===!1}function Xt(t){const n=t.replace(/\W/g,"_");return(t.match(/^\d+/)?"_":"")+n}function ul(t,n){return vy(t)?`!(${ul(t.not,n)})`:yy(t)?`(${t.and.map(e=>ul(e,n)).join(") && (")})`:gy(t)?`(${t.or.map(e=>ul(e,n)).join(") || (")})`:n(t)}function $d(t,n){if(n.length===0)return!0;const e=n.shift();return e in t&&$d(t[e],n)&&delete t[e],jt(t)}function ll(t){return t.charAt(0).toUpperCase()+t.substr(1)}function ky(t,n="datum"){const e=Ni(t),r=[];for(let i=1;i<=e.length;i++){const a=`[${e.slice(0,i).map(G).join("][")}]`;r.push(`${n}${a}`)}return r.join(" && ")}function eE(t,n="datum"){return`${n}[${G(Ni(t).join("."))}]`}function Ot(t){return`datum['${t.replaceAll("'","\\'")}']`}function rN(t){return t.replace(/(\[|\]|\.|'|")/g,"\\$1")}function He(t){return`${Ni(t).map(rN).join("\\.")}`}function Za(t,n,e){return t.replace(new RegExp(n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),e)}function ds(t){return`${Ni(t).join(".")}`}function hs(t){return t?Ni(t).length:0}function un(...t){return t.find(n=>n!==void 0)}let rE=42;function iE(t){const n=++rE;return t?String(t)+n:n}function iN(){rE=42}function aE(t){return oE(t)?t:`__${t}`}function oE(t){return t.startsWith("__")}function cl(t){if(t!==void 0)return(t%360+360)%360}function Sd(t){return!!$t(t)||!isNaN(t)&&!isNaN(parseFloat(t))}const sE=Object.getPrototypeOf(structuredClone({}));function Ce(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor.name!==n.constructor.name)return!1;let e,r;if(Array.isArray(t)){if(e=t.length,e!=n.length)return!1;for(r=e;r--!==0;)if(!Ce(t[r],n[r]))return!1;return!0}if(t instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;for(const a of t.entries())if(!n.has(a[0]))return!1;for(const a of t.entries())if(!Ce(a[1],n.get(a[0])))return!1;return!0}if(t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;for(const a of t.entries())if(!n.has(a[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(n)){if(e=t.length,e!=n.length)return!1;for(r=e;r--!==0;)if(t[r]!==n[r])return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf&&t.valueOf!==sE.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString&&t.toString!==sE.toString)return t.toString()===n.toString();const i=Object.keys(t);if(e=i.length,e!==Object.keys(n).length)return!1;for(r=e;r--!==0;)if(!Object.prototype.hasOwnProperty.call(n,i[r]))return!1;for(r=e;r--!==0;){const a=i[r];if(!Ce(t[a],n[a]))return!1}return!0}return t!=t&&n!=n}function Lt(t){const n=[];return function e(r){if(r&&r.toJSON&&typeof r.toJSON=="function"&&(r=r.toJSON()),r===void 0)return;if(typeof r=="number")return isFinite(r)?""+r:"null";if(typeof r!="object")return JSON.stringify(r);let i,a;if(Array.isArray(r)){for(a="[",i=0;i<r.length;i++)i&&(a+=","),a+=e(r[i])||"null";return a+"]"}if(r===null)return"null";if(n.includes(r))throw new TypeError("Converting circular structure to JSON");const o=n.push(r)-1,s=Object.keys(r).sort();for(a="",i=0;i<s.length;i++){const u=s[i],l=e(r[u]);l&&(a&&(a+=","),a+=JSON.stringify(u)+":"+l)}return n.splice(o,1),`{${a}}`}(t)}function U(t,n){return Z(t)&&tt(t,n)&&t[n]!==void 0}const mi="row",gi="column",Md="facet",Jt="x",bn="y",lr="x2",jr="y2",ua="xOffset",ps="yOffset",cr="radius",yi="radius2",Ge="theta",vi="theta2",fr="latitude",dr="longitude",hr="latitude2",Ve="longitude2",la="time",pe="color",Lr="fill",qr="stroke",me="shape",bi="size",to="angle",xi="opacity",ca="fillOpacity",fa="strokeOpacity",da="strokeWidth",ha="strokeDash",fl="text",ms="order",dl="detail",Bd="key",no="tooltip",zd="href",Od="url",Nd="description",uE={theta:1,theta2:1,radius:1,radius2:1};function lE(t){return tt(uE,t)}const Dy={longitude:1,longitude2:1,latitude:1,latitude2:1};function cE(t){switch(t){case fr:return"y";case hr:return"y2";case dr:return"x";case Ve:return"x2"}}function fE(t){return tt(Dy,t)}const aN=L(Dy),Fy={x:1,y:1,x2:1,y2:1,...uE,...Dy,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 gs(t){return t===pe||t===Lr||t===qr}const dE={row:1,column:1,facet:1},Ye=L(dE),Cy={...Fy,...dE},oN=L(Cy),{order:pj,detail:mj,tooltip:gj,...sN}=Cy,{row:yj,column:vj,facet:bj,...uN}=sN;function lN(t){return tt(uN,t)}function hE(t){return tt(Cy,t)}const cN=[lr,jr,hr,Ve,vi,yi];function pE(t){return eo(t)!==t}function eo(t){switch(t){case lr:return Jt;case jr:return bn;case hr:return fr;case Ve:return dr;case vi:return Ge;case yi:return cr}return t}function pa(t){if(lE(t))switch(t){case Ge:return"startAngle";case vi:return"endAngle";case cr:return"outerRadius";case yi:return"innerRadius"}return t}function Ur(t){switch(t){case Jt:return lr;case bn:return jr;case fr:return hr;case dr:return Ve;case Ge:return vi;case cr:return yi}}function ge(t){switch(t){case Jt:case lr:return"width";case bn:case jr:return"height"}}function mE(t){switch(t){case Jt:return"xOffset";case bn:return"yOffset";case lr:return"x2Offset";case jr:return"y2Offset";case Ge:return"thetaOffset";case cr:return"radiusOffset";case vi:return"theta2Offset";case yi:return"radius2Offset"}}function Ey(t){switch(t){case Jt:return"xOffset";case bn:return"yOffset"}}function fN(t){switch(t){case"xOffset":return"x";case"yOffset":return"y"}}const dN=L(Fy),{x:xj,y:wj,x2:Aj,y2:_j,xOffset:kj,yOffset:Dj,latitude:Fj,longitude:Cj,latitude2:Ej,longitude2:$j,theta:Sj,theta2:Mj,radius:Bj,radius2:zj,...$y}=Fy,hN=L($y),Sy={x:1,y:1},wi=L(Sy);function ln(t){return tt(Sy,t)}const My={theta:1,radius:1},pN=L(My);function Rd(t){return t==="width"?Jt:bn}const gE={xOffset:1,yOffset:1};function hl(t){return tt(gE,t)}const mN={time:1};function By(t){return t in mN}const{text:Oj,tooltip:Nj,href:Rj,url:Tj,description:Pj,detail:jj,key:Lj,order:qj,...yE}=$y,vE=L(yE),bE={...Sy,...My,...gE,...yE},zy=L(bE);function Ir(t){return tt(bE,t)}function gN(t,n){return function(e){switch(e){case pe:case Lr:case qr:case Nd:case dl:case Bd:case no:case zd:case ms:case xi:case ca:case fa:case da:case Md:case mi:case gi:return xE;case Jt:case bn:case ua:case ps:case fr:case dr:case la:return yN;case lr:case jr:case hr:case Ve:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case bi:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case ha:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case me:return{point:"always",geoshape:"always"};case fl:return{text:"always"};case to:return{point:"always",square:"always",text:"always"};case Od:return{image:"always"};case Ge:case cr:return{text:"always",arc:"always"};case vi:case yi:return{arc:"always"}}}(t)[n]}const xE={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:Uj,...yN}=xE;function Oy(t){switch(t){case Jt:case bn:case Ge:case cr:case ua:case ps:case bi:case to:case da:case xi:case ca:case fa:case la:case lr:case jr:case vi:case yi:return;case Md:case mi:case gi:case me:case ha:case fl:case no:case zd:case Od:case Nd:return"discrete";case pe:case Lr:case qr:return"flexible";case fr:case dr:case hr:case Ve:case dl:case Bd:case ms:return}}const vN={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},bN={count:1,min:1,max:1};function Ai(t){return U(t,"argmin")}function ma(t){return U(t,"argmax")}function Td(t){return Q(t)&&tt(vN,t)}const xN=new Set(["count","valid","missing","distinct"]);function Pd(t){return Q(t)&&xN.has(t)}const wN=new Set(["count","sum","distinct","valid","missing"]),AN=new Set(["mean","average","median","q1","q3","min","max"]);function wE(t){return Fa(t)&&(t=ih(t,void 0)),"bin"+L(t).map(n=>jd(t[n])?Xt(`_${n}_${sa(t[n])}`):Xt(`_${n}_${t[n]}`)).join("")}function Wt(t){return t===!0||ro(t)&&!t.binned}function $n(t){return t==="binned"||ro(t)&&t.binned===!0}function ro(t){return Z(t)}function jd(t){return U(t,"param")}function AE(t){switch(t){case mi:case gi:case bi:case pe:case Lr:case qr:case da:case xi:case ca:case fa:case me:return 6;case ha:return 4;default:return 10}}function pl(t){return U(t,"expr")}function Sn(t,{level:n}={level:0}){const e=L(t||{}),r={};for(const i of e)r[i]=n===0?Ee(t[i]):Sn(t[i],{level:n-1});return r}function _E(t){const{anchor:n,frame:e,offset:r,orient:i,angle:a,limit:o,color:s,subtitleColor:u,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...m}=t,g={...n?{anchor:n}:{},...e?{frame:e}:{},...r?{offset:r}:{},...i?{orient:i}:{},...a!==void 0?{angle:a}:{},...o!==void 0?{limit:o}:{}},y={...u?{subtitleColor:u}:{},...l?{subtitleFont:l}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}};return{titleMarkConfig:{...m,...s?{fill:s}:{}},subtitleMarkConfig:cs(t,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:g,subtitle:y}}function ga(t){return Q(t)||T(t)&&Q(t[0])}function et(t){return U(t,"signal")}function io(t){return U(t,"step")}function _i(t){return!T(t)&&U(t,"field")&&U(t,"data")}const _N=L({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}),kN={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Ny=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function kE(t){const n=T(t.condition)?t.condition.map(DE):DE(t.condition);return{...Ee(t),condition:n}}function Ee(t){if(pl(t)){const{expr:n,...e}=t;return{signal:n,...e}}return t}function DE(t){if(pl(t)){const{expr:n,...e}=t;return{signal:n,...e}}return t}function Gt(t){if(pl(t)){const{expr:n,...e}=t;return{signal:n,...e}}return et(t)?t:t!==void 0?{value:t}:void 0}function DN(t){return et(t)?t.signal:G(t)}function FE(t){return et(t)?t.signal:G(t.value)}function pr(t){return et(t)?t.signal:t==null?null:G(t)}function FN(t,n,e){for(const r of e){const i=Wr(r,n.markDef,n.config);i!==void 0&&(t[r]=Gt(i))}return t}function CE(t){return[].concat(t.type,t.style??[])}function qt(t,n,e,r={}){const{vgChannel:i,ignoreVgConfig:a}=r;return i&&U(n,i)?n[i]:n[t]!==void 0?n[t]:!a||i&&i!==t?Wr(t,n,e,r):void 0}function Wr(t,n,e,{vgChannel:r}={}){const i=Ry(t,n,e.style);return un(r?i:void 0,i,r?e[n.type][r]:void 0,e[n.type][t],r?e.mark[r]:e.mark[t])}function Ry(t,n,e){return EE(t,CE(n),e)}function EE(t,n,e){let r;n=J(n);for(const i of n){const a=e[i];U(a,t)&&(r=a[t])}return r}function $E(t,n){return J(t).reduce((e,r)=>(e.field.push(Y(r,n)),e.order.push(r.sort??"ascending"),e),{field:[],order:[]})}function SE(t,n){const e=[...t];return n.forEach(r=>{for(const i of e)if(Ce(i,r))return;e.push(r)}),e}function ME(t,n){return Ce(t,n)||!n?t:t?[...J(t),...J(n)].join(", "):n}function BE(t,n){const e=t.value,r=n.value;if(e==null||r===null)return{explicit:t.explicit,value:null};if((ga(e)||et(e))&&(ga(r)||et(r)))return{explicit:t.explicit,value:ME(e,r)};if(ga(e)||et(e))return{explicit:t.explicit,value:e};if(ga(r)||et(r))return{explicit:t.explicit,value:r};if(!(ga(e)||et(e)||ga(r)||et(r)))return{explicit:t.explicit,value:SE(e,r)};throw new Error("It should never reach here")}function Ty(t){return`Invalid specification ${Lt(t)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const CN='Autosize "fit" only works for single views and layered views.';function zE(t){return`${t=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function OE(t){return`${t=="width"?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${t=="width"?"x":"y"}".`}function NE(t){return t?`Dropping "fit-${t}" because spec has discrete ${ge(t)}.`:'Dropping "fit" because spec has discrete size.'}function Py(t){return`Unknown field for ${t}. Cannot calculate view size.`}function RE(t){return`Cannot project a selection on encoding channel "${t}", which has no field.`}function EN(t,n){return`Cannot project a selection on encoding channel "${t}" as it uses an aggregate function ("${n}").`}function TE(t){return`Selection not supported for ${t} yet.`}const $N="The same selection must be used to override scale domains in a layered view.";function PE(t){return`The "columns" property cannot be used when "${t}" has nested row/column.`}const jy="Animation involving facet, layer, or concat is currently unsupported.";function jE(t,n,e){return`An ancestor parsed field "${t}" as ${e} but a child wants to parse the field as ${n}.`}function SN(t){return`Ignoring an invalid transform: ${Lt(t)}.`}function LE(t){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${t} are dropped.`}function MN(t){return`${t}Offset dropped because ${t} is continuous`}function qE(t){return`Invalid field type "${t}".`}function UE(t,n){const{fill:e,stroke:r}=n;return`Dropping color ${t} as the plot also has ${e&&r?"fill and stroke":e?"fill":"stroke"}.`}function Ly(t,n){return`Dropping ${Lt(t)} from channel "${n}" since it does not contain any data field, datum, value, or signal.`}function Ld(t,n,e){return`${t} dropped as it is incompatible with "${n}".`}function BN(t){return`${t}-encoding is dropped as ${t} is not a valid encoding channel.`}function zN(t){return`${t} encoding should be discrete (ordinal / nominal / binned).`}function ON(t){return`${t} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function qy(t,n){return`Using discrete channel "${t}" to encode "${n}" field can be misleading as it does not encode ${n==="ordinal"?"order":"magnitude"}.`}function NN(t){return`Using unaggregated domain with raw field has no effect (${Lt(t)}).`}function RN(t){return`Unaggregated domain not applicable for "${t}" since it produces values outside the origin domain of the source data.`}function TN(t){return`Unaggregated domain is currently unsupported for log scale (${Lt(t)}).`}function IE(t,n,e){return`${e}-scale's "${n}" is dropped as it does not work with ${t} scale.`}function WE(t){return`The step for "${t}" is dropped because the ${t==="width"?"x":"y"} is continuous.`}const HE="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function qd(t,n){return`Invalid ${t}: ${Lt(n)}.`}function GE(t){return`1D error band does not support ${t}.`}function VE(t){return`Channel ${t} is required for "binned" bin.`}const YE=Vh(Bx);let ml=YE;function Uy(...t){ml.error(...t)}function I(...t){ml.warn(...t)}function ao(t){if(t&&Z(t)){for(const n of Wy)if(U(t,n))return!0}return!1}const XE=["january","february","march","april","may","june","july","august","september","october","november","december"],PN=XE.map(t=>t.substr(0,3)),JE=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],jN=JE.map(t=>t.substr(0,3));function Iy(t,n){const e=[];if(n&&t.day!==void 0&&L(t).length>1&&(I(function(r){return`Dropping day from datetime ${Lt(r)} as day cannot be combined with other units.`}(t)),delete(t=ft(t)).day),t.year!==void 0?e.push(t.year):e.push(2012),t.month!==void 0){const r=n?function(i){if(Sd(i)&&(i=+i),$t(i))return i-1;{const a=i.toLowerCase(),o=XE.indexOf(a);if(o!==-1)return o;const s=a.substr(0,3),u=PN.indexOf(s);if(u!==-1)return u;throw new Error(qd("month",i))}}(t.month):t.month;e.push(r)}else if(t.quarter!==void 0){const r=n?function(i){if(Sd(i)&&(i=+i),$t(i))return i>4&&I(qd("quarter",i)),i-1;throw new Error(qd("quarter",i))}(t.quarter):t.quarter;e.push($t(r)?3*r:`${r}*3`)}else e.push(0);if(t.date!==void 0)e.push(t.date);else if(t.day!==void 0){const r=n?function(i){if(Sd(i)&&(i=+i),$t(i))return i%7;{const a=i.toLowerCase(),o=JE.indexOf(a);if(o!==-1)return o;const s=a.substr(0,3),u=jN.indexOf(s);if(u!==-1)return u;throw new Error(qd("day",i))}}(t.day):t.day;e.push($t(r)?r+1:`${r}+1`)}else e.push(1);for(const r of["hours","minutes","seconds","milliseconds"]){const i=t[r];e.push(i===void 0?0:i)}return e}function oo(t){const n=Iy(t,!0).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}const KE={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},Wy=L(KE);function so(t){return Z(t)?t.binned:QE(t)}function QE(t){return t&&t.startsWith("binned")}function Hy(t){return t.startsWith("utc")}const LN={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function Ud(t){return Wy.filter(n=>t3(t,n))}function ZE(t){const n=Ud(t);return n[n.length-1]}function t3(t,n){const e=t.indexOf(n);return!(e<0)&&!(e>0&&n==="seconds"&&t.charAt(e-1)==="i")&&!(t.length>e+3&&n==="day"&&t.charAt(e+3)==="o")&&!(e>0&&n==="year"&&t.charAt(e-1)==="f")}function qN(t,n,{end:e}={end:!1}){const r=ky(n),i=Hy(t)?"utc":"";function a(u){return u==="quarter"?`(${i}quarter(${r})-1)`:`${i}${u}(${r})`}let o;const s={};for(const u of Wy)t3(t,u)&&(s[u]=a(u),o=u);return e&&(s[o]+="+1"),function(u){const l=Iy(u,!1).join(", ");return u.utc?`utc(${l})`:`datetime(${l})`}(s)}function n3(t){if(t)return`timeUnitSpecifier(${Lt(Ud(t))}, ${Lt(LN)})`}function xn(t){if(!t)return;let n;return Q(t)?n=QE(t)?{unit:t.substring(6),binned:!0}:{unit:t}:Z(t)&&(n={...t,...t.unit?{unit:t.unit}:{}}),Hy(n.unit)&&(n.utc=!0,n.unit=n.unit.substring(3)),n}function e3(t,n=e=>e){const e=xn(t),r=ZE(e.unit);if(r&&r!=="day"){const i={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:a,part:o}=r3(r,e.step);return`${n(oo({...i,[o]:+i[o]+a}))} - ${n(oo(i))}`}}const UN={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function r3(t,n=1){if(function(e){return tt(UN,e)}(t))return{part:t,step:n};switch(t){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 Gy(t){return!!(t!=null&&t.field)&&t.equal!==void 0}function Vy(t){return!!(t!=null&&t.field)&&t.lt!==void 0}function Yy(t){return!!(t!=null&&t.field)&&t.lte!==void 0}function Xy(t){return!!(t!=null&&t.field)&&t.gt!==void 0}function Jy(t){return!!(t!=null&&t.field)&&t.gte!==void 0}function Ky(t){return!!(t!=null&&t.field&&(T(t.range)&&t.range.length===2||et(t.range)))}function Qy(t){return!!(t!=null&&t.field)&&(T(t.oneOf)||T(t.in))}function i3(t){return Qy(t)||Gy(t)||Ky(t)||Vy(t)||Xy(t)||Yy(t)||Jy(t)}function Hr(t,n){return ah(t,{timeUnit:n,wrapTime:!0})}function a3(t,n=!0){const{field:e}=t,r=xn(t.timeUnit),{unit:i,binned:a}=r||{},o=Y(t,{expr:"datum"}),s=i?`time(${a?o:qN(i,e)})`:o;if(Gy(t))return`${s}===${Hr(t.equal,i)}`;if(Vy(t))return`${s}<${Hr(t.lt,i)}`;if(Xy(t))return`${s}>${Hr(t.gt,i)}`;if(Yy(t))return`${s}<=${Hr(t.lte,i)}`;if(Jy(t))return`${s}>=${Hr(t.gte,i)}`;if(Qy(t))return`indexof([${function(u,l){return u.map(c=>Hr(c,l))}(t.oneOf,i).join(",")}], ${s}) !== -1`;if(function(u){return!!(u!=null&&u.field)&&u.valid!==void 0}(t))return Id(s,t.valid);if(Ky(t)){const{range:u}=Sn(t),l=et(u)?{signal:`${u.signal}[0]`}:u[0],c=et(u)?{signal:`${u.signal}[1]`}:u[1];if(l!==null&&c!==null&&n)return"inrange("+s+", ["+Hr(l,i)+", "+Hr(c,i)+"])";const f=[];return l!==null&&f.push(`${s} >= ${Hr(l,i)}`),c!==null&&f.push(`${s} <= ${Hr(c,i)}`),f.length>0?f.join(" && "):"true"}throw new Error(`Invalid field predicate: ${Lt(t)}`)}function Id(t,n=!0){return n?`isValid(${t}) && isFinite(+${t})`:`!isValid(${t}) || !isFinite(+${t})`}function IN(t){return i3(t)&&t.timeUnit?{...t,timeUnit:xn(t.timeUnit)}:t}function WN(t){return t==="quantitative"||t==="temporal"}function o3(t){return t==="ordinal"||t==="nominal"}const uo="quantitative",Zy="ordinal",ys="temporal",tv="nominal",vs="geojson",s3="linear",HN="log",GN="pow",VN="sqrt",nv="time",Wd="utc",u3="point",ev="band",rv={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 YN(t,n){const e=rv[t],r=rv[n];return e===r||e==="ordinal-position"&&r==="time"||r==="ordinal-position"&&e==="time"}const XN={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 l3(t){return XN[t]}const c3=new Set(["linear","log","pow","sqrt","symlog"]),f3=new Set([...c3,"time","utc"]);function d3(t){return c3.has(t)}const h3=new Set(["quantile","quantize","threshold"]),JN=new Set([...f3,...h3,"sequential","identity"]),KN=new Set(["ordinal","bin-ordinal","point","band"]);function wn(t){return KN.has(t)}function mr(t){return JN.has(t)}function Gr(t){return f3.has(t)}function bs(t){return h3.has(t)}function p3(t){return U(t,"param")}const{type:Ij,domain:Wj,range:Hj,rangeMax:Gj,rangeMin:Vj,scheme:Yj,...QN}={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},ZN=L(QN);function iv(t,n){switch(n){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(t);case"bins":return!["point","band","identity","ordinal"].includes(t);case"round":return Gr(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return Gr(t)||["point","band"].includes(t);case"paddingOuter":case"align":return["point","band"].includes(t);case"paddingInner":return t==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return Gr(t);case"nice":return Gr(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return mr(t)&&!vt(["log","time","utc","threshold","quantile"],t)}}function m3(t,n){switch(n){case"interpolate":case"scheme":case"domainMid":return gs(t)?void 0:`Cannot use the scale property "${n}" 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 jn={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"},g3=jn.arc,Hd=jn.area,Gd=jn.bar,tR=jn.image,Vd=jn.line,Yd=jn.point,nR=jn.rect,Xd=jn.rule,y3=jn.text,av=jn.tick,eR=jn.trail,ov=jn.circle,sv=jn.square,v3=jn.geoshape;function ya(t){return["line","area","trail"].includes(t)}function gl(t){return["rect","bar","image","arc","tick"].includes(t)}const rR=new Set(L(jn));function Vr(t){return U(t,"type")}const iR=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],b3=L({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),uv=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],aR={area:["line","point"],bar:uv,rect:uv,line:["point"],tick:["bandSize","thickness",...uv]},x3=L({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 lo(t){return U(t,"band")}const oR={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},lv={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},sR={...lv,binSpacing:1},uR={...lv,thickness:1};function w3(t,{isPath:n}){return t===void 0||t==="break-paths-show-path-domains"?n?"break-paths-show-domains":"filter":t===null?"show":t}function cv({markDef:t,config:n,scaleChannel:e,scaleType:r,isCountAggregate:i}){var s,u;if(!r||!mr(r)||i)return"always-valid";const a=w3(qt("invalid",t,n),{isPath:ya(t.type)});return((u=(s=n.scale)==null?void 0:s.invalid)==null?void 0:u[e])!==void 0?"show":a}function A3({scaleName:t,scale:n,mode:e}){const r=`domain('${t}')`;if(!n||!t)return;const i=`${r}[0]`,a=`peek(${r})`,o=n.domainHasZero();return o==="definitely"?{scale:t,value:0}:o==="maybe"?{signal:`scale('${t}', inrange(0, ${r}) ? 0 : ${e==="zeroOrMin"?i:a})`}:{signal:`scale('${t}', ${e==="zeroOrMin"?i:a})`}}function _3({scaleChannel:t,channelDef:n,scale:e,scaleName:r,markDef:i,config:a}){var l;const o=e==null?void 0:e.get("type"),s=vr(n),u=cv({scaleChannel:t,markDef:i,config:a,scaleType:o,isCountAggregate:Pd(s==null?void 0:s.aggregate)});if(s&&u==="show"){const c=((l=a.scale.invalid)==null?void 0:l[t])??"zero-or-min";return{test:Id(Y(s,{expr:"datum"}),!1),...lR(c,e,r)}}}function lR(t,n,e){if(Z(r=t)&&"value"in r){const{value:i}=t;return et(i)?{signal:i.signal}:{value:i}}var r;return A3({scale:n,scaleName:e,mode:"zeroOrMin"})}function fv(t){const{channel:n,channelDef:e,markDef:r,scale:i,scaleName:a,config:o}=t,s=eo(n),u=dv(t),l=_3({scaleChannel:s,channelDef:e,scale:i,scaleName:a,markDef:r,config:o});return l!==void 0?[l,u]:u}function co(t,n,e,r){const i={};if(n&&(i.scale=n),Yr(t)){const{datum:a}=t;ao(a)?i.signal=oo(a):et(a)?i.signal=a.signal:pl(a)?i.signal=a.expr:i.value=a}else i.field=Y(t,e);if(r){const{offset:a,band:o}=r;a&&(i.offset=a),o&&(i.band=o)}return i}function Jd({scaleName:t,fieldOrDatumDef:n,fieldOrDatumDef2:e,offset:r,startSuffix:i,endSuffix:a="end",bandPosition:o=.5}){const s=!et(o)&&0<o&&o<1?"datum":void 0,u=Y(n,{expr:s,suffix:i}),l=e!==void 0?Y(e,{expr:s}):Y(n,{suffix:a,expr:s}),c={};if(o===0||o===1){c.scale=t;const f=o===0?u:l;c.field=f}else{const f=et(o)?`(1-${o.signal}) * ${u} + ${o.signal} * ${l}`:`${1-o} * ${u} + ${o} * ${l}`;c.signal=`scale("${t}", ${f})`}return r&&(c.offset=r),c}function dv({channel:t,channelDef:n,channel2Def:e,markDef:r,config:i,scaleName:a,scale:o,stack:s,offset:u,defaultRef:l,bandPosition:c}){if(n){if(ht(n)){const f=o==null?void 0:o.get("type");if(oe(n)){c??(c=va({fieldDef:n,fieldDef2:e,markDef:r,config:i}));const{bin:d,timeUnit:h,type:p}=n;if(Wt(d)||c&&h&&p===ys)return s!=null&&s.impute?co(n,a,{binSuffix:"mid"},{offset:u}):c&&!wn(f)?Jd({scaleName:a,fieldOrDatumDef:n,bandPosition:c,offset:u}):co(n,a,Al(n,t)?{binSuffix:"range"}:{},{offset:u});if($n(d)){if(H(e))return Jd({scaleName:a,fieldOrDatumDef:n,fieldOrDatumDef2:e,bandPosition:c,offset:u});I(VE(t===Jt?lr:jr))}}return co(n,a,wn(f)?{binSuffix:"range"}:{},{offset:u,band:f==="band"?c??n.bandPosition??.5:void 0})}if(yr(n)){const f=u?{offset:u}:{};return{...yl(t,n.value),...f}}}return bt(l)&&(l=l()),l&&{...l,...u?{offset:u}:{}}}function yl(t,n){return vt(["x","x2"],t)&&n==="width"?{field:{group:"width"}}:vt(["y","y2"],t)&&n==="height"?{field:{group:"height"}}:Gt(n)}function fo(t){return t&&t!=="number"&&t!=="time"}function k3(t,n,e){return`${t}(${n}${e?`, ${Lt(e)}`:""})`}function hv({fieldOrDatumDef:t,format:n,formatType:e,expr:r,normalizeStack:i,config:a}){var u,l;if(fo(e))return gr({fieldOrDatumDef:t,format:n,formatType:e,expr:r,config:a});const o=D3(t,r,i),s=xs(t);if(n===void 0&&e===void 0&&a.customFormatTypes){if(s==="quantitative"){if(i&&a.normalizedNumberFormatType)return gr({fieldOrDatumDef:t,format:a.normalizedNumberFormat,formatType:a.normalizedNumberFormatType,expr:r,config:a});if(a.numberFormatType)return gr({fieldOrDatumDef:t,format:a.numberFormat,formatType:a.numberFormatType,expr:r,config:a})}if(s==="temporal"&&a.timeFormatType&&H(t)&&t.timeUnit===void 0)return gr({fieldOrDatumDef:t,format:a.timeFormat,formatType:a.timeFormatType,expr:r,config:a})}if(ks(t)){const c=function({field:f,timeUnit:d,format:h,formatType:p,rawTimeFormat:m,isUTCScale:g}){return!d||h?!d&&p?`${p}(${f}, '${h}')`:`${g?"utc":"time"}Format(${f}, '${h=Q(h)?h:m}')`:function(y,v,x){if(!y)return;const b=n3(y);return`${x||Hy(y)?"utc":"time"}Format(${v}, ${b})`}(d,f,g)}({field:o,timeUnit:H(t)?(u=xn(t.timeUnit))==null?void 0:u.unit:void 0,format:n,formatType:a.timeFormatType,rawTimeFormat:a.timeFormat,isUTCScale:ho(t)&&((l=t.scale)==null?void 0:l.type)===Wd});return c?{signal:c}:void 0}return n=pv({type:s,specifiedFormat:n,config:a,normalizeStack:i}),H(t)&&Wt(t.bin)?{signal:vl(o,Y(t,{expr:r,binSuffix:"end"}),n,e,a)}:n||xs(t)==="quantitative"?{signal:`${E3(o,n)}`}:{signal:`isValid(${o}) ? ${o} : ""+${o}`}}function D3(t,n,e){return H(t)?e?`${Y(t,{expr:n,suffix:"end"})}-${Y(t,{expr:n,suffix:"start"})}`:Y(t,{expr:n}):function(r){const{datum:i}=r;return ao(i)?oo(i):`${Lt(i)}`}(t)}function gr({fieldOrDatumDef:t,format:n,formatType:e,expr:r,normalizeStack:i,config:a,field:o}){return o??(o=D3(t,r,i)),o!=="datum.value"&&H(t)&&Wt(t.bin)?{signal:vl(o,Y(t,{expr:r,binSuffix:"end"}),n,e,a)}:{signal:k3(e,o,n)}}function F3(t,n,e,r,i,a){var o;if(!Q(r)||!fo(r)){if(e===void 0&&r===void 0&&i.customFormatTypes&&xs(t)==="quantitative"&&(i.normalizedNumberFormatType&&ws(t)&&t.stack==="normalize"||i.numberFormatType))return;if(ws(t)&&t.stack==="normalize"&&i.normalizedNumberFormat)return pv({type:"quantitative",config:i,normalizeStack:!0});if(ks(t)){const s=H(t)?(o=xn(t.timeUnit))==null?void 0:o.unit:void 0;return s===void 0&&i.customFormatTypes&&i.timeFormatType?void 0:function({specifiedFormat:u,timeUnit:l,config:c,omitTimeFormatConfig:f}){return u||(l?{signal:n3(l)}:f?void 0:c.timeFormat)}({specifiedFormat:e,timeUnit:s,config:i,omitTimeFormatConfig:a})}return pv({type:n,specifiedFormat:e,config:i})}}function C3(t,n,e){var r;return t&&(et(t)||t==="number"||t==="time")?t:ks(n)&&e!=="time"&&e!=="utc"?H(n)&&((r=xn(n==null?void 0:n.timeUnit))!=null&&r.utc)?"utc":"time":void 0}function pv({type:t,specifiedFormat:n,config:e,normalizeStack:r}){return Q(n)?n:t===uo?r?e.normalizedNumberFormat:e.numberFormat:void 0}function E3(t,n){return`format(${t}, "${n||""}")`}function $3(t,n,e,r){return fo(e)?k3(e,t,n):E3(t,(Q(n)?n:void 0)??r.numberFormat)}function vl(t,n,e,r,i){if(e===void 0&&r===void 0&&i.customFormatTypes&&i.numberFormatType)return vl(t,n,i.numberFormat,i.numberFormatType,i);const a=$3(t,e,r,i),o=$3(n,e,r,i);return`${Id(t,!1)} ? "null" : ${a} + " \u2013 " + ${o}`}const Kd="min",cR={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 S3(t){return tt(cR,t)}function ki(t){return t&&(t.op==="count"||U(t,"field"))}function M3(t){return t&&T(t)}function bl(t){return U(t,"row")||U(t,"column")}function mv(t){return U(t,"header")}function Qd(t){return U(t,"facet")}function B3(t){const{field:n,timeUnit:e,bin:r,aggregate:i}=t;return{...e?{timeUnit:e}:{},...r?{bin:r}:{},...i?{aggregate:i}:{},field:n}}function gv(t){return U(t,"sort")}function va({fieldDef:t,fieldDef2:n,markDef:e,config:r}){if(ht(t)&&t.bandPosition!==void 0)return t.bandPosition;if(H(t)){const{timeUnit:i,bin:a}=t;if(i&&!n)return Wr("timeUnitBandPosition",e,r);if(Wt(a))return .5}}function z3({channel:t,fieldDef:n,fieldDef2:e,markDef:r,config:i,scaleType:a,useVlSizeChannel:o}){var l,c,f;const s=ge(t),u=qt(o?"size":s,r,i,{vgChannel:s});if(u!==void 0)return u;if(H(n)){const{timeUnit:d,bin:h}=n;if(d&&!e)return{band:Wr("timeUnitBandSize",r,i)};if(Wt(h)&&!wn(a))return{band:1}}return gl(r.type)?a?wn(a)?((l=i[r.type])==null?void 0:l.discreteBandSize)||{band:1}:(c=i[r.type])==null?void 0:c.continuousBandSize:(f=i[r.type])==null?void 0:f.discreteBandSize:void 0}function O3(t,n,e,r){return!!(Wt(t.bin)||t.timeUnit&&oe(t)&&t.type==="temporal")&&va({fieldDef:t,fieldDef2:n,markDef:e,config:r})!==void 0}function N3(t){return U(t,"sort")&&!U(t,"field")}function xl(t){return U(t,"condition")}function Zd(t){const n=t==null?void 0:t.condition;return!!n&&!T(n)&&H(n)}function wl(t){const n=t==null?void 0:t.condition;return!!n&&!T(n)&&ht(n)}function H(t){return U(t,"field")||(t==null?void 0:t.aggregate)==="count"}function xs(t){return t==null?void 0:t.type}function Yr(t){return U(t,"datum")}function ba(t){return oe(t)&&!nh(t)||th(t)}function R3(t){return oe(t)&&t.type==="quantitative"&&!t.bin||th(t)}function th(t){return Yr(t)&&$t(t.datum)}function ht(t){return H(t)||Yr(t)}function oe(t){return t&&(U(t,"field")||t.aggregate==="count")&&U(t,"type")}function yr(t){return U(t,"value")}function ho(t){return U(t,"scale")||U(t,"sort")}function ws(t){return U(t,"axis")||U(t,"stack")||U(t,"impute")}function T3(t){return U(t,"legend")}function P3(t){return U(t,"format")||U(t,"formatType")}function fR(t){return he(t,["legend","axis","header","scale"])}function Y(t,n={}){let e=t.field;const r=n.prefix;let i=n.suffix,a="";if(function(o){return o.aggregate==="count"}(t))e=aE("count");else{let o;if(!n.nofn)if(function(s){return U(s,"op")}(t))o=t.op;else{const{bin:s,aggregate:u,timeUnit:l}=t;Wt(s)?(o=wE(s),i=(n.binSuffix??"")+(n.suffix??"")):u?ma(u)?(a=`["${e}"]`,e=`argmax_${u.argmax}`):Ai(u)?(a=`["${e}"]`,e=`argmin_${u.argmin}`):o=String(u):l&&!so(l)&&(o=function(c){const{utc:f,...d}=xn(c);return d.unit?(f?"utc":"")+L(d).map(h=>Xt(`${h==="unit"?"":`_${h}_`}${d[h]}`)).join(""):(f?"utc":"")+"timeunit"+L(d).map(h=>Xt(`_${h}_${d[h]}`)).join("")}(l),i=(!["range","mid"].includes(n.binSuffix)&&n.binSuffix||"")+(n.suffix??""))}o&&(e=e?`${o}_${e}`:o)}return i&&(e=`${e}_${i}`),r&&(e=`${r}_${e}`),n.forAs?ds(e):n.expr?eE(e,n.expr)+a:He(e)+a}function nh(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return H(t)&&!!t.bin;case"temporal":return!1}throw new Error(qE(t.type))}const j3=(t,n)=>{switch(n.fieldTitle){case"plain":return t.field;case"functional":return function(e){const{aggregate:r,bin:i,timeUnit:a,field:o}=e;if(ma(r))return`${o} for argmax(${r.argmax})`;if(Ai(r))return`${o} for argmin(${r.argmin})`;const s=a&&!so(a)?xn(a):void 0,u=r||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||Wt(i)&&"bin";return u?`${u.toUpperCase()}(${o})`:o}(t);default:return function(e,r){var u;const{field:i,bin:a,timeUnit:o,aggregate:s}=e;if(s==="count")return r.countTitle;if(Wt(a))return`${i} (binned)`;if(o&&!so(o)){const l=(u=xn(o))==null?void 0:u.unit;if(l)return`${i} (${Ud(l).join("-")})`}else if(s)return ma(s)?`${i} for max ${s.argmax}`:Ai(s)?`${i} for min ${s.argmin}`:`${ll(s)} of ${i}`;return i}(t,n)}};let L3=j3;function q3(t){L3=t}function As(t,n,{allowDisabling:e,includeDefault:r=!0}){var s;const i=(s=yv(t))==null?void 0:s.title;if(!H(t))return i??t.title;const a=t,o=r?vv(a,n):void 0;return e?un(i,a.title,o):i??a.title??o}function yv(t){return ws(t)&&t.axis?t.axis:T3(t)&&t.legend?t.legend:mv(t)&&t.header?t.header:void 0}function vv(t,n){return L3(t,n)}function eh(t){if(P3(t)){const{format:n,formatType:e}=t;return{format:n,formatType:e}}{const n=yv(t)??{},{format:e,formatType:r}=n;return{format:e,formatType:r}}}function vr(t){return H(t)?t:Zd(t)?t.condition:void 0}function mn(t){return ht(t)?t:wl(t)?t.condition:void 0}function U3(t,n,e,r={}){return Q(t)||$t(t)||Fa(t)?(I(function(i,a,o){return`Channel ${i} is a ${a}. Converted to {value: ${Lt(o)}}.`}(n,Q(t)?"string":$t(t)?"number":"boolean",t)),{value:t}):ht(t)?rh(t,n,e,r):wl(t)?{...t,condition:rh(t.condition,n,e,r)}:t}function rh(t,n,e,r){if(P3(t)){const{format:i,formatType:a,...o}=t;if(fo(a)&&!e.customFormatTypes)return I(LE(n)),rh(o,n,e,r)}else{const i=ws(t)?"axis":T3(t)?"legend":mv(t)?"header":null;if(i&&t[i]){const{format:a,formatType:o,...s}=t[i];if(fo(o)&&!e.customFormatTypes)return I(LE(n)),rh({...t,[i]:s},n,e,r)}}return H(t)?bv(t,n,r):function(i){let a=i.type;if(a)return i;const{datum:o}=i;return a=$t(o)?"quantitative":Q(o)?"nominal":ao(o)?"temporal":void 0,{...i,type:a}}(t)}function bv(t,n,{compositeMark:e=!1}={}){const{aggregate:r,timeUnit:i,bin:a,field:o}=t,s={...t};if(e||!r||Td(r)||ma(r)||Ai(r)||(I(function(u){return`Invalid aggregation operator "${u}".`}(r)),delete s.aggregate),i&&(s.timeUnit=xn(i)),o&&(s.field=`${o}`),Wt(a)&&(s.bin=ih(a,n)),$n(a)&&!ln(n)&&I(function(u){return`Channel ${u} should not be used with "binned" bin.`}(n)),oe(s)){const{type:u}=s,l=function(c){if(c)switch(c=c.toLowerCase()){case"q":case uo:return"quantitative";case"t":case ys:return"temporal";case"o":case Zy:return"ordinal";case"n":case tv:return"nominal";case vs:return"geojson"}}(u);u!==l&&(s.type=l),u!=="quantitative"&&Pd(r)&&(I(function(c,f){return`Invalid field type "${c}" for aggregate: "${f}", using "quantitative" instead.`}(u,r)),s.type="quantitative")}else if(!pE(n)){const u=function(l,c){var p;switch(c){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(gv(l)&&T(l.sort))return"ordinal";const{aggregate:f,bin:d,timeUnit:h}=l;if(h)return"temporal";if(d||f&&!ma(f)&&!Ai(f))return"quantitative";if(ho(l)&&((p=l.scale)!=null&&p.type))switch(rv[l.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(s,n);s.type=u}if(oe(s)){const{compatible:u,warning:l}=function(c,f){const d=c.type;if(d==="geojson"&&f!=="shape")return{compatible:!1,warning:`Channel ${f} should not be used with a geojson data.`};switch(f){case mi:case gi:case Md:return nh(c)?_s:{compatible:!1,warning:zN(f)};case Jt:case bn:case ua:case ps:case pe:case Lr:case qr:case fl:case dl:case Bd:case no:case zd:case Od:case to:case Ge:case cr:case Nd:return _s;case dr:case Ve:case fr:case hr:return d!==uo?{compatible:!1,warning:`Channel ${f} should be used with a quantitative field only, not ${c.type} field.`}:_s;case xi:case ca:case fa:case da:case bi:case vi:case yi:case lr:case jr:case la:return d!=="nominal"||c.sort?_s:{compatible:!1,warning:`Channel ${f} should not be used with an unsorted discrete field.`};case me:case ha:return nh(c)||function(h){var p;return ho(h)&&bs((p=h.scale)==null?void 0:p.type)}(c)?_s:{compatible:!1,warning:ON(f)};case ms:return c.type!=="nominal"||"sort"in c?_s:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}}(s,n)||{};u===!1&&I(l)}if(gv(s)&&Q(s.sort)){const{sort:u}=s;if(S3(u))return{...s,sort:{encoding:u}};const l=u.substring(1);if(u.charAt(0)==="-"&&S3(l))return{...s,sort:{encoding:l,order:"descending"}}}if(mv(s)){const{header:u}=s;if(u){const{orient:l,...c}=u;if(l)return{...s,header:{...c,labelOrient:u.labelOrient||l,titleOrient:u.titleOrient||l}}}}return s}function ih(t,n){return Fa(t)?{maxbins:AE(n)}:t==="binned"?{binned:!0}:t.maxbins||t.step?t:{...t,maxbins:AE(n)}}const _s={compatible:!0};function ks(t){const{formatType:n}=eh(t);return n==="time"||!n&&function(e){return e&&(e.type==="temporal"||H(e)&&!!e.timeUnit)}(t)}function ah(t,{timeUnit:n,type:e,wrapTime:r,undefinedIfExprNotRequired:i}){var u;const a=n&&((u=xn(n))==null?void 0:u.unit);let o,s=a||e==="temporal";return pl(t)?o=t.expr:et(t)?o=t.signal:ao(t)?(s=!0,o=oo(t)):(Q(t)||$t(t))&&s&&(o=`datetime(${Lt(t)})`,function(l){return tt(KE,l)}(a)&&($t(t)&&t<1e4||Q(t)&&isNaN(Date.parse(t)))&&(o=oo({[a]:t}))),o?r&&s?`time(${o})`:o:i?void 0:Lt(t)}function I3(t,n){const{type:e}=t;return n.map(r=>{const i=ah(r,{timeUnit:H(t)&&!so(t.timeUnit)?t.timeUnit:void 0,type:e,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function Al(t,n){return Wt(t.bin)?Ir(n)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const W3={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 _l(t){return t==null?void 0:t.condition}const H3=["domain","grid","labels","ticks","title"],dR={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"},G3={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},hR={...G3,style:1,labelExpr:1,encoding:1};function V3(t){return tt(hR,t)}const Y3=L({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 Di(t){return U(t,"mark")}class oh{constructor(n,e){this.name=n,this.run=e}hasMatchingType(n){return!!Di(n)&&function(e){return Vr(e)?e.type:e}(n.mark)===this.name}}function po(t,n){const e=t&&t[n];return!!e&&(T(e)?fs(e,r=>!!r.field):H(e)||Zd(e))}function X3(t,n){const e=t&&t[n];return!!e&&(T(e)?fs(e,r=>!!r.field):H(e)||Yr(e)||wl(e))}function J3(t,n){if(ln(n)){const e=t[n];if((H(e)||Yr(e))&&(o3(e.type)||H(e)&&e.timeUnit))return X3(t,Ey(n))}return!1}function K3(t){return fs(oN,n=>{if(po(t,n)){const e=t[n];if(T(e))return fs(e,r=>!!r.aggregate);{const r=vr(e);return r&&!!r.aggregate}}return!1})}function Q3(t,n){const e=[],r=[],i=[],a=[],o={};return xv(t,(s,u)=>{if(H(s)){const{field:l,aggregate:c,bin:f,timeUnit:d,...h}=s;if(c||d||f){const p=yv(s),m=p==null?void 0:p.title;let g=Y(s,{forAs:!0});const y={...m?[]:{title:As(s,n,{allowDisabling:!0})},...h,field:g};if(c){let v;if(ma(c)?(v="argmax",g=Y({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):Ai(c)?(v="argmin",g=Y({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${g}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(v=c),v){const x={op:v,as:g};l&&(x.field=l),a.push(x)}}else if(e.push(g),oe(s)&&Wt(f)){if(r.push({bin:f,field:l,as:g}),e.push(Y(s,{binSuffix:"end"})),Al(s,u)&&e.push(Y(s,{binSuffix:"range"})),ln(u)){const v={field:`${g}_end`};o[`${u}2`]=v}y.bin="binned",pE(u)||(y.type=uo)}else if(d&&!so(d)){i.push({timeUnit:d,field:l,as:g});const v=oe(s)&&s.type!==ys&&"time";v&&(u===fl||u===no?y.formatType=v:function(x){return tt($y,x)}(u)?y.legend={formatType:v,...y.legend}:ln(u)&&(y.axis={formatType:v,...y.axis}))}o[u]=y}else e.push(l),o[u]=t[u]}else o[u]=t[u]}),{bins:r,timeUnits:i,aggregate:a,groupby:e,encoding:o}}function pR(t,n,e){const r=gN(n,e);if(!r)return!1;if(r==="binned"){const i=t[n===lr?Jt:bn];return!!(H(i)&&H(t[n])&&$n(i.bin))}return!0}function sh(t,n){const e={};for(const r of L(t)){const i=U3(t[r],r,n,{compositeMark:!0});e[r]=i}return e}function xv(t,n,e){if(t)for(const r of L(t)){const i=t[r];if(T(i))for(const a of i)n.call(e,a,r);else n.call(e,i,r)}}function Z3(t,n){return L(n).reduce((e,r)=>{switch(r){case Jt:case bn:case zd:case Nd:case Od:case lr:case jr:case ua:case ps:case Ge:case vi:case cr:case yi:case la:case fr:case dr:case hr:case Ve:case fl:case me:case to:case no:return e;case ms:if(t==="line"||t==="trail")return e;case dl:case Bd:{const i=n[r];if(T(i)||H(i))for(const a of J(i))a.aggregate||e.push(Y(a,{}));return e}case bi:if(t==="trail")return e;case pe:case Lr:case qr:case xi:case ca:case fa:case ha:case da:{const i=vr(n[r]);return i&&!i.aggregate&&e.push(Y(i,{})),e}}},[])}function wv(t,n,e,r=!0){if("tooltip"in e)return{tooltip:e.tooltip};const i=t.map(({fieldPrefix:o,titlePrefix:s})=>{const u=r?` of ${Av(n)}`:"";return{field:o+n.field,type:n.type,title:et(s)?{signal:`${s}"${escape(u)}"`}:s+u}}),a=function(o){const s=[];for(const u of L(o))if(po(o,u)){const l=o[u],c=J(l);for(const f of c)H(f)?s.push(f):Zd(f)&&s.push(f.condition)}return s}(e).map(fR);return{tooltip:[...i,...Pr(a,wt)]}}function Av(t){const{title:n,field:e}=t;return un(n,e)}function _v(t,n,e,r,i){const{scale:a,axis:o}=e;return({partName:s,mark:u,positionPrefix:l,endPositionPrefix:c,extraEncoding:f={}})=>{const d=Av(e);return t$(t,s,i,{mark:u,encoding:{[n]:{field:`${l}_${e.field}`,type:e.type,...d!==void 0?{title:d}:{},...a!==void 0?{scale:a}:{},...o!==void 0?{axis:o}:{}},...Q(c)?{[`${n}2`]:{field:`${c}_${e.field}`}}:{},...r,...f}})}}function t$(t,n,e,r){const{clip:i,color:a,opacity:o}=t,s=t.type;return t[n]||t[n]===void 0&&e[n]?[{...r,mark:{...e[n],...i?{clip:i}:{},...a?{color:a}:{},...o?{opacity:o}:{},...Vr(r.mark)?r.mark:{type:r.mark},style:`${s}-${String(n)}`,...Fa(t[n])?{}:t[n]}}]:[]}function n$(t,n,e){const{encoding:r}=t,i=n==="vertical"?"y":"x",a=r[i],o=r[`${i}2`],s=r[`${i}Error`],u=r[`${i}Error2`];return{continuousAxisChannelDef:uh(a,e),continuousAxisChannelDef2:uh(o,e),continuousAxisChannelDefError:uh(s,e),continuousAxisChannelDefError2:uh(u,e),continuousAxis:i}}function uh(t,n){if(t!=null&&t.aggregate){const{aggregate:e,...r}=t;return e!==n&&I(function(i,a){return`Continuous axis should not have customized aggregation function ${i}; ${a} already agregates the axis.`}(e,n)),r}return t}function e$(t,n){const{mark:e,encoding:r}=t,{x:i,y:a}=r;if(Vr(e)&&e.orient)return e.orient;if(ba(i)){if(ba(a)){const o=H(i)&&i.aggregate,s=H(a)&&a.aggregate;if(o||s!==n){if(s||o!==n){if(o===n&&s===n)throw new Error("Both x and y cannot have aggregate");return ks(a)&&!ks(i)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(ba(a))return"vertical";throw new Error(`Need a valid continuous axis for ${n}s`)}const lh="boxplot",mR=new oh(lh,i$);function r$(t){return $t(t)?"tukey":t}function i$(t,{config:n}){t={...t,encoding:sh(t.encoding,n)};const{mark:e,encoding:r,params:i,projection:a,...o}=t,s=Vr(e)?e:{type:e};i&&I(TE("boxplot"));const u=s.extent??n.boxplot.extent,l=qt("size",s,n),c=s.invalid,f=r$(u),{bins:d,timeUnits:h,transform:p,continuousAxisChannelDef:m,continuousAxis:g,groupby:y,aggregate:v,encodingWithoutContinuousAxis:x,ticksOrient:b,boxOrient:w,customTooltipWithoutAggregatedField:A}=function(Je,Se,YS){const Hh=e$(Je,lh),{continuousAxisChannelDef:qb,continuousAxis:Ub}=n$(Je,Hh,lh),js=qb.field,ue=ds(js),Ll=r$(Se),XS=[...a$(js),{op:"median",field:js,as:`mid_box_${ue}`},{op:"min",field:js,as:(Ll==="min-max"?"lower_whisker_":"min_")+ue},{op:"max",field:js,as:(Ll==="min-max"?"upper_whisker_":"max_")+ue}],JS=Ll==="min-max"||Ll==="tukey"?[]:[{calculate:`${Ot(`upper_box_${ue}`)} - ${Ot(`lower_box_${ue}`)}`,as:`iqr_${ue}`},{calculate:`min(${Ot(`upper_box_${ue}`)} + ${Ot(`iqr_${ue}`)} * ${Se}, ${Ot(`max_${ue}`)})`,as:`upper_whisker_${ue}`},{calculate:`max(${Ot(`lower_box_${ue}`)} - ${Ot(`iqr_${ue}`)} * ${Se}, ${Ot(`min_${ue}`)})`,as:`lower_whisker_${ue}`}],{[Ub]:nj,...KS}=Je.encoding,{customTooltipWithoutAggregatedField:QS,filteredEncoding:ZS}=function(i6){const{tooltip:_o,...ql}=i6;if(!_o)return{filteredEncoding:ql};let Ls,ni;if(T(_o)){for(const Gh of _o)Gh.aggregate?(Ls||(Ls=[]),Ls.push(Gh)):(ni||(ni=[]),ni.push(Gh));Ls&&(ql.tooltip=Ls)}else _o.aggregate?ql.tooltip=_o:ni=_o;return T(ni)&&ni.length===1&&(ni=ni[0]),{customTooltipWithoutAggregatedField:ni,filteredEncoding:ql}}(KS),{bins:Ib,timeUnits:Wb,aggregate:Hb,groupby:Gb,encoding:t6}=Q3(ZS,YS),n6=Hh==="vertical"?"horizontal":"vertical",e6=Hh,r6=[...Ib,...Wb,{aggregate:[...Hb,...XS],groupby:Gb},...JS];return{bins:Ib,timeUnits:Wb,transform:r6,groupby:Gb,aggregate:Hb,continuousAxisChannelDef:qb,continuousAxis:Ub,encodingWithoutContinuousAxis:t6,ticksOrient:n6,boxOrient:e6,customTooltipWithoutAggregatedField:QS}}(t,u,n),_=ds(m.field),{color:k,size:D,...C}=x,F=Je=>_v(s,g,m,Je,n.boxplot),E=F(C),$=F(x),M=(Z(n.boxplot.box)?n.boxplot.box.color:n.mark.color)||"#4c78a8",S=F({...C,...D?{size:D}:{},color:{condition:{test:`${Ot(`lower_box_${m.field}`)} >= ${Ot(`upper_box_${m.field}`)}`,...k||{value:M}}}}),B=wv([{fieldPrefix:f==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:f==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],m,x),z={type:"tick",color:"black",opacity:1,orient:b,invalid:c,aria:!1},j=f==="min-max"?B:wv([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],m,x),W=[...E({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:j}),...E({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:j}),...E({partName:"ticks",mark:z,positionPrefix:"lower_whisker",extraEncoding:j}),...E({partName:"ticks",mark:z,positionPrefix:"upper_whisker",extraEncoding:j})],K=[...f!=="tukey"?W:[],...$({partName:"box",mark:{type:"bar",...l?{size:l}:{},orient:w,invalid:c,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:B}),...S({partName:"median",mark:{type:"tick",invalid:c,...Z(n.boxplot.median)&&n.boxplot.median.color?{color:n.boxplot.median.color}:{},...l?{size:l}:{},orient:b,aria:!1},positionPrefix:"mid_box",extraEncoding:B})];if(f==="min-max")return{...o,transform:(o.transform??[]).concat(p),layer:K};const q=Ot(`lower_box_${m.field}`),at=Ot(`upper_box_${m.field}`),ot=`(${at} - ${q})`,it=`${q} - ${u} * ${ot}`,mt=`${at} + ${u} * ${ot}`,pt=Ot(m.field),X={joinaggregate:a$(m.field),groupby:y},Mt={transform:[{filter:`(${it} <= ${pt}) && (${pt} <= ${mt})`},{aggregate:[{op:"min",field:m.field,as:`lower_whisker_${_}`},{op:"max",field:m.field,as:`upper_whisker_${_}`},{op:"min",field:`lower_box_${m.field}`,as:`lower_box_${_}`},{op:"max",field:`upper_box_${m.field}`,as:`upper_box_${_}`},...v],groupby:y}],layer:W},{tooltip:Tt,...kt}=C,{scale:Et,axis:tn}=m,nn=Av(m),It=he(tn,["title"]),be=t$(s,"outliers",n.boxplot,{transform:[{filter:`(${pt} < ${it}) || (${pt} > ${mt})`}],mark:"point",encoding:{[g]:{field:m.field,type:m.type,...nn!==void 0?{title:nn}:{},...Et!==void 0?{scale:Et}:{},...jt(It)?{}:{axis:It}},...kt,...k?{color:k}:{},...A?{tooltip:A}:{}}})[0];let zn;const ti=[...d,...h,X];return be?zn={transform:ti,layer:[be,Mt]}:(zn=Mt,zn.transform.unshift(...ti)),{...o,layer:[zn,{transform:p,layer:K}]}}function a$(t){const n=ds(t);return[{op:"q1",field:t,as:`lower_box_${n}`},{op:"q3",field:t,as:`upper_box_${n}`}]}const kv="errorbar",gR=new oh(kv,o$);function o$(t,{config:n}){t={...t,encoding:sh(t.encoding,n)};const{transform:e,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:a,ticksOrient:o,markDef:s,outerSpec:u,tooltipEncoding:l}=s$(t,kv,n);delete a.size;const c=_v(s,i,r,a,n.errorbar),f=s.thickness,d=s.size,h={type:"tick",orient:o,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return{...u,transform:e,...p.length>1?{layer:p}:{...p[0]}}}function yR(t,n){const{encoding:e}=t;if(function(s){return(ht(s.x)||ht(s.y))&&!ht(s.x2)&&!ht(s.y2)&&!ht(s.xError)&&!ht(s.xError2)&&!ht(s.yError)&&!ht(s.yError2)}(e))return{orient:e$(t,n),inputType:"raw"};const r=function(s){return ht(s.x2)||ht(s.y2)}(e),i=function(s){return ht(s.xError)||ht(s.xError2)||ht(s.yError)||ht(s.yError2)}(e),a=e.x,o=e.y;if(r){if(i)throw new Error(`${n} cannot be both type aggregated-upper-lower and aggregated-error`);const s=e.x2,u=e.y2;if(ht(s)&&ht(u))throw new Error(`${n} cannot have both x2 and y2`);if(ht(s)){if(ba(a))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${n}`)}if(ht(u)){if(ba(o))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${n}`)}throw new Error("No ranged axis")}{const s=e.xError,u=e.xError2,l=e.yError,c=e.yError2;if(ht(u)&&!ht(s))throw new Error(`${n} cannot have xError2 without xError`);if(ht(c)&&!ht(l))throw new Error(`${n} cannot have yError2 without yError`);if(ht(s)&&ht(l))throw new Error(`${n} cannot have both xError and yError with both are quantiative`);if(ht(s)){if(ba(a))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(ht(l)){if(ba(o))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 s$(t,n,e){const{mark:r,encoding:i,params:a,projection:o,...s}=t,u=Vr(r)?r:{type:r};a&&I(TE(n));const{orient:l,inputType:c}=yR(t,n),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:m}=n$(t,l,n),{errorBarSpecificAggregate:g,postAggregateCalculates:y,tooltipSummary:v,tooltipTitleWithFieldName:x}=function(z,j,W,K,q,at,ot,it){let mt=[],pt=[];const X=j.field;let Mt,Tt=!1;if(at==="raw"){const kt=z.center?z.center:z.extent?z.extent==="iqr"?"median":"mean":it.errorbar.center,Et=z.extent?z.extent:kt==="mean"?"stderr":"iqr";if(kt==="median"!=(Et==="iqr")&&I(function(tn,nn,It){return`${tn} is not usually used with ${nn} for ${It}.`}(kt,Et,ot)),Et==="stderr"||Et==="stdev")mt=[{op:Et,field:X,as:`extent_${X}`},{op:kt,field:X,as:`center_${X}`}],pt=[{calculate:`${Ot(`center_${X}`)} + ${Ot(`extent_${X}`)}`,as:`upper_${X}`},{calculate:`${Ot(`center_${X}`)} - ${Ot(`extent_${X}`)}`,as:`lower_${X}`}],Mt=[{fieldPrefix:"center_",titlePrefix:ll(kt)},{fieldPrefix:"upper_",titlePrefix:u$(kt,Et,"+")},{fieldPrefix:"lower_",titlePrefix:u$(kt,Et,"-")}],Tt=!0;else{let tn,nn,It;Et==="ci"?(tn="mean",nn="ci0",It="ci1"):(tn="median",nn="q1",It="q3"),mt=[{op:nn,field:X,as:`lower_${X}`},{op:It,field:X,as:`upper_${X}`},{op:tn,field:X,as:`center_${X}`}],Mt=[{fieldPrefix:"upper_",titlePrefix:As({field:X,aggregate:It,type:"quantitative"},it,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:As({field:X,aggregate:nn,type:"quantitative"},it,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:As({field:X,aggregate:tn,type:"quantitative"},it,{allowDisabling:!1})}]}}else{(z.center||z.extent)&&I(function(kt,Et){return`${Et?"extent ":""}${Et&&kt?"and ":""}${kt?"center ":""}${Et&&kt?"are ":"is "}not needed when data are aggregated.`}(z.center,z.extent)),at==="aggregated-upper-lower"?(Mt=[],pt=[{calculate:Ot(W.field),as:`upper_${X}`},{calculate:Ot(X),as:`lower_${X}`}]):at==="aggregated-error"&&(Mt=[{fieldPrefix:"",titlePrefix:X}],pt=[{calculate:`${Ot(X)} + ${Ot(K.field)}`,as:`upper_${X}`}],q?pt.push({calculate:`${Ot(X)} + ${Ot(q.field)}`,as:`lower_${X}`}):pt.push({calculate:`${Ot(X)} - ${Ot(K.field)}`,as:`lower_${X}`}));for(const kt of pt)Mt.push({fieldPrefix:kt.as.substring(0,6),titlePrefix:Za(Za(kt.calculate,"datum['",""),"']","")})}return{postAggregateCalculates:pt,errorBarSpecificAggregate:mt,tooltipSummary:Mt,tooltipTitleWithFieldName:Tt}}(u,f,d,h,p,c,n,e),{[m]:b,[m==="x"?"x2":"y2"]:w,[m==="x"?"xError":"yError"]:A,[m==="x"?"xError2":"yError2"]:_,...k}=i,{bins:D,timeUnits:C,aggregate:F,groupby:E,encoding:$}=Q3(k,e),M=[...F,...g],S=c!=="raw"?[]:E,B=wv(v,f,$,x);return{transform:[...s.transform??[],...D,...C,...M.length===0?[]:[{aggregate:M,groupby:S}],...y],groupby:S,continuousAxisChannelDef:f,continuousAxis:m,encodingWithoutContinuousAxis:$,ticksOrient:l==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:s,tooltipEncoding:B}}function u$(t,n,e){return`${ll(t)} ${e} ${n}`}const Dv="errorband",vR=new oh(Dv,l$);function l$(t,{config:n}){t={...t,encoding:sh(t.encoding,n)};const{transform:e,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:a,markDef:o,outerSpec:s,tooltipEncoding:u}=s$(t,Dv,n),l=o,c=_v(l,i,r,a,n.errorband),f=t.encoding.x!==void 0&&t.encoding.y!==void 0;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p={...l.interpolate?{interpolate:l.interpolate}:{},...l.tension&&l.interpolate?{tension:l.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):l.interpolate?I(GE("interpolate")):l.tension&&I(GE("tension")),{...s,transform:e,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const c$={};function Fv(t,n,e){const r=new oh(t,n);c$[t]={normalizer:r,parts:e}}Fv(lh,i$,["box","median","outliers","rule","ticks"]),Fv(kv,o$,["ticks","rule"]),Fv(Dv,l$,["band","borders"]);const bR=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],f$={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"},d$={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"},xR=L(f$),wR=L(d$),h$=L({header:1,headerRow:1,headerColumn:1,headerFacet:1}),p$=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],br="_vgsid_",AR={point:{on:"click",fields:[br],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 Cv(t){return t==="legend"||!!(t!=null&&t.legend)}function Ev(t){return Cv(t)&&Z(t)}function $v(t){return!!(t!=null&&t.select)}function m$(t){const n=[];for(const e of t||[]){if($v(e))continue;const{expr:r,bind:i,...a}=e;if(i&&r){const o={...a,bind:i,init:r};n.push(o)}else{const o={...a,...r?{update:r}:{},...i?{bind:i}:{}};n.push(o)}}return n}function Sv(t){return U(t,"concat")}function ch(t){return U(t,"vconcat")}function Mv(t){return U(t,"hconcat")}function g$({step:t,offsetIsDiscrete:n}){return n?t.for??"offset":"position"}function Xr(t){return U(t,"step")}function y$(t){return U(t,"view")||U(t,"width")||U(t,"height")}const _R=L({align:1,bounds:1,center:1,columns:1,spacing:1});function Bv(t,n){return t[n]??t[n==="width"?"continuousWidth":"continuousHeight"]}function zv(t,n){const e=fh(t,n);return Xr(e)?e.step:v$}function fh(t,n){return un(t[n]??t[n==="width"?"discreteWidth":"discreteHeight"],{step:t.step})}const v$=20,kR={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:v$},mark:{color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},arc:{},area:{},bar:sR,circle:{},geoshape:{},image:{},line:{},point:{},rect:lv,rule:{color:"black"},square:{},text:{color:"black"},tick:uR,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:AR,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},Fi=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],b$={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},x$={blue:Fi[0],orange:Fi[1],red:Fi[2],teal:Fi[3],green:Fi[4],yellow:Fi[5],purple:Fi[6],pink:Fi[7],brown:Fi[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 w$(t){const n=L(t||{}),e={};for(const r of n){const i=t[r];e[r]=_l(i)?kE(i):Ee(i)}return e}const DR=[...x3,...Y3,...h$,"background","padding","legend","lineBreak","scale","style","title","view"];function A$(t={}){const{color:n,font:e,fontSize:r,selection:i,...a}=t,o=Hl({},ft(kR),e?function(u){return{text:{font:u},style:{"guide-label":{font:u},"guide-title":{font:u},"group-title":{font:u},"group-subtitle":{font:u}}}}(e):{},n?function(u={}){return{signals:[{name:"color",value:Z(u)?{...x$,...u}:x$}],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"}]}}}(n):{},r?function(u){return{signals:[{name:"fontSize",value:Z(u)?{...b$,...u}:b$}],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"}}}}}(r):{},a||{});i&&ap(o,"selection",i,!0);const s=he(o,DR);for(const u of["background","lineBreak","padding"])o[u]&&(s[u]=Ee(o[u]));for(const u of x3)o[u]&&(s[u]=Sn(o[u]));for(const u of Y3)o[u]&&(s[u]=w$(o[u]));for(const u of h$)o[u]&&(s[u]=Sn(o[u]));if(o.legend&&(s.legend=Sn(o.legend)),o.scale){const{invalid:u,...l}=o.scale,c=Sn(u,{level:1});s.scale={...Sn(l),...L(c).length>0?{invalid:c}:{}}}return o.style&&(s.style=function(u){const l=L(u),c={};for(const f of l)c[f]=w$(u[f]);return c}(o.style)),o.title&&(s.title=Sn(o.title)),o.view&&(s.view=Sn(o.view)),s}const FR=new Set(["view",...rR]),CR=["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"],ER={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...aR};function $R(t){t=ft(t);for(const n of CR)delete t[n];if(t.axis)for(const n in t.axis)_l(t.axis[n])&&delete t.axis[n];if(t.legend)for(const n of bR)delete t.legend[n];if(t.mark){for(const n of b3)delete t.mark[n];t.mark.tooltip&&Z(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(m$(t.params)),delete t.params);for(const n of FR){for(const r of b3)delete t[n][r];const e=ER[n];if(e)for(const r of e)delete t[n][r];SR(t,n)}for(const n of L(c$))delete t[n];(function(n){const{titleMarkConfig:e,subtitleMarkConfig:r,subtitle:i}=_E(n.title);jt(e)||(n.style["group-title"]={...n.style["group-title"],...e}),jt(r)||(n.style["group-subtitle"]={...n.style["group-subtitle"],...r}),jt(i)?delete n.title:n.title=i})(t);for(const n in t)Z(t[n])&&jt(t[n])&&delete t[n];return jt(t)?void 0:t}function SR(t,n,e,r){n==="view"&&(e="cell");const i={...t[n],...t.style[e??n]};jt(i)||(t.style[e??n]=i),delete t[n]}function dh(t){return U(t,"layer")}class Ov{map(n,e){return Qd(n)?this.mapFacet(n,e):function(r){return U(r,"repeat")}(n)?this.mapRepeat(n,e):Mv(n)?this.mapHConcat(n,e):ch(n)?this.mapVConcat(n,e):Sv(n)?this.mapConcat(n,e):this.mapLayerOrUnit(n,e)}mapLayerOrUnit(n,e){if(dh(n))return this.mapLayer(n,e);if(Di(n))return this.mapUnit(n,e);throw new Error(Ty(n))}mapLayer(n,e){return{...n,layer:n.layer.map(r=>this.mapLayerOrUnit(r,e))}}mapHConcat(n,e){return{...n,hconcat:n.hconcat.map(r=>this.map(r,e))}}mapVConcat(n,e){return{...n,vconcat:n.vconcat.map(r=>this.map(r,e))}}mapConcat(n,e){const{concat:r,...i}=n;return{...i,concat:r.map(a=>this.map(a,e))}}mapFacet(n,e){return{...n,spec:this.map(n.spec,e)}}mapRepeat(n,e){return{...n,spec:this.map(n.spec,e)}}}const MR={zero:1,center:1,normalize:1},BR=new Set([g3,Gd,Hd,Xd,Yd,ov,sv,Vd,y3,av]),zR=new Set([Gd,Hd,g3]);function Ds(t){return H(t)&&xs(t)==="quantitative"&&!t.bin}function _$(t,n,{orient:e,type:r}){const i=n==="x"?"y":"radius",a=n==="x"&&["bar","area"].includes(r),o=t[n],s=t[i];if(H(o)&&H(s))if(Ds(o)&&Ds(s)){if(o.stack)return n;if(s.stack)return i;const u=H(o)&&!!o.aggregate;if(u!==(H(s)&&!!s.aggregate))return u?n:i;if(a){if(e==="vertical")return i;if(e==="horizontal")return n}}else{if(Ds(o))return n;if(Ds(s))return i}else{if(Ds(o))return a&&e==="vertical"?void 0:n;if(Ds(s))return a&&e==="horizontal"?void 0:i}}function k$(t,n){var g,y;const e=Vr(t)?t:{type:t},r=e.type;if(!BR.has(r))return null;const i=_$(n,"x",e)||_$(n,"theta",e);if(!i)return null;const a=n[i],o=H(a)?Y(a,{}):void 0,s=function(v){switch(v){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(i),u=[],l=new Set;if(n[s]){const v=n[s],x=H(v)?Y(v,{}):void 0;x&&x!==o&&(u.push(s),l.add(x))}const c=s==="x"?"xOffset":"yOffset",f=n[c],d=H(f)?Y(f,{}):void 0;d&&d!==o&&(u.push(c),l.add(d));const h=hN.reduce((v,x)=>{if(x!=="tooltip"&&po(n,x)){const b=n[x];for(const w of J(b)){const A=vr(w);if(A.aggregate)continue;const _=Y(A,{});_&&l.has(_)||v.push({channel:x,fieldDef:A})}}return v},[]);let p;return a.stack!==void 0?p=Fa(a.stack)?a.stack?"zero":null:a.stack:zR.has(r)&&(p="zero"),p&&tt(MR,p)?K3(n)&&h.length===0?null:((g=a==null?void 0:a.scale)!=null&&g.type&&((y=a==null?void 0:a.scale)==null?void 0:y.type)!==s3&&(a!=null&&a.stack)&&I(function(v){return`Stack is applied to a non-linear scale (${v}).`}(a.scale.type)),ht(n[Ur(i)])?(a.stack!==void 0&&I(`Cannot stack "${m=i}" if there is already "${m}2".`),null):(H(a)&&a.aggregate&&!wN.has(a.aggregate)&&I(`Stacking is applied even though the aggregate function is non-summative ("${a.aggregate}").`),{groupbyChannels:u,groupbyFields:l,fieldChannel:i,impute:a.impute!==null&&ya(r),stackBy:h,offset:p})):null;var m}function D$(t,n,e){const r=Sn(t),i=qt("orient",r,e);if(r.orient=function(s,u,l){switch(s){case Yd:case ov:case sv:case y3:case nR:case tR:return}const{x:c,y:f,x2:d,y2:h}=u;switch(s){case Gd:if(H(c)&&($n(c.bin)||H(f)&&f.aggregate&&!c.aggregate))return"vertical";if(H(f)&&($n(f.bin)||H(c)&&c.aggregate&&!f.aggregate))return"horizontal";if(h||d){if(l)return l;if(!d)return(H(c)&&c.type===uo&&!Wt(c.bin)||th(c))&&H(f)&&$n(f.bin)?"horizontal":"vertical";if(!h)return(H(f)&&f.type===uo&&!Wt(f.bin)||th(f))&&H(c)&&$n(c.bin)?"vertical":"horizontal"}case Xd:if(d&&(!H(c)||!$n(c.bin))&&h&&(!H(f)||!$n(f.bin)))return;case Hd:if(h)return H(f)&&$n(f.bin)?"horizontal":"vertical";if(d)return H(c)&&$n(c.bin)?"vertical":"horizontal";if(s===Xd){if(c&&!f)return"vertical";if(f&&!c)return"horizontal"}case Vd:case av:{const p=R3(c),m=R3(f);if(l)return l;if(p&&!m)return s!=="tick"?"horizontal":"vertical";if(!p&&m)return s!=="tick"?"vertical":"horizontal";if(p&&m)return"vertical";{const g=oe(c)&&c.type===ys,y=oe(f)&&f.type===ys;if(g&&!y)return"vertical";if(!g&&y)return"horizontal"}return}}return"vertical"}(r.type,n,i),i!==void 0&&i!==r.orient&&I(`Specified orient "${r.orient}" overridden with "${i}".`),r.type==="bar"&&r.orient){const s=qt("cornerRadiusEnd",r,e);if(s!==void 0){const u=r.orient==="horizontal"&&n.x2||r.orient==="vertical"&&n.y2?["cornerRadius"]:oR[r.orient];for(const l of u)r[l]=s;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}const a=qt("opacity",r,e),o=qt("fillOpacity",r,e);return a===void 0&&o===void 0&&(r.opacity=function(s,u){if(vt([Yd,av,ov,sv],s)&&!K3(u))return .7}(r.type,n)),qt("cursor",r,e)===void 0&&(r.cursor=function(s,u,l){return u.href||s.href||qt("href",s,l)?"pointer":s.cursor}(r,n,e)),r}function OR(t){const{point:n,line:e,...r}=t;return L(r).length>1?r:r.type}function NR(t){for(const n of["line","area","rule","trail"])t[n]&&(t={...t,[n]:he(t[n],["point","line"])});return t}function Nv(t,n={},e){return t.point==="transparent"?{opacity:0}:t.point?Z(t.point)?t.point:{}:t.point!==void 0?null:n.point||e.shape?Z(n.point)?n.point:{}:void 0}function F$(t,n={}){return t.line?t.line===!0?{}:t.line:t.line!==void 0?null:n.line?n.line===!0?{}:n.line:void 0}class RR{constructor(){this.name="path-overlay"}hasMatchingType(n,e){if(Di(n)){const{mark:r,encoding:i}=n,a=Vr(r)?r:{type:r};switch(a.type){case"line":case"rule":case"trail":return!!Nv(a,e[a.type],i);case"area":return!!Nv(a,e[a.type],i)||!!F$(a,e[a.type])}}return!1}run(n,e,r){const{config:i}=e,{params:a,projection:o,mark:s,name:u,encoding:l,...c}=n,f=sh(l,i),d=Vr(s)?s:{type:s},h=Nv(d,i[d.type],f),p=d.type==="area"&&F$(d,i[d.type]),m=[{name:u,...a?{params:a}:{},mark:OR({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:he(f,["shape"])}],g=k$(D$(d,f,i),f);let y=f;if(g){const{fieldChannel:v,offset:x}=g;y={...f,[v]:{...f[v],...x?{stack:x}:{}}}}return y=he(y,["y2","x2"]),p&&m.push({...o?{projection:o}:{},mark:{type:"line",...cs(d,["clip","interpolate","tension","tooltip"]),...p},encoding:y}),h&&m.push({...o?{projection:o}:{},mark:{type:"point",opacity:1,filled:!0,...cs(d,["clip","tooltip"]),...h},encoding:y}),r({...c,layer:m},{...e,config:NR(i)})}}function TR(t,n){return n?bl(t)?S$(t,n):C$(t,n):t}function Rv(t,n){return n?S$(t,n):t}function Tv(t,n,e){const r=n[t];return function(i){return!Q(i)&&U(i,"repeat")}(r)?r.repeat in e?{...n,[t]:e[r.repeat]}:void I(function(i){return`Unknown repeated value "${i}".`}(r.repeat)):n}function C$(t,n){if((t=Tv("field",t,n))!==void 0){if(t===null)return null;if(gv(t)&&ki(t.sort)){const e=Tv("field",t.sort,n);t={...t,...e?{sort:e}:{}}}return t}}function E$(t,n){if(H(t))return C$(t,n);{const e=Tv("datum",t,n);return e===t||e.type||(e.type="nominal"),e}}function $$(t,n){if(!ht(t)){if(wl(t)){const e=E$(t.condition,n);if(e)return{...t,condition:e};{const{condition:r,...i}=t;return i}}return t}{const e=E$(t,n);if(e)return e;if(xl(t))return{condition:t.condition}}}function S$(t,n){const e={};for(const r in t)if(U(t,r)){const i=t[r];if(T(i))e[r]=i.map(a=>$$(a,n)).filter(a=>a);else{const a=$$(i,n);a!==void 0&&(e[r]=a)}}return e}class PR{constructor(){this.name="RuleForRangedLine"}hasMatchingType(n){if(Di(n)){const{encoding:e,mark:r}=n;if(r==="line"||Vr(r)&&r.type==="line")for(const i of cN){const a=e[eo(i)];if(e[i]&&(H(a)&&!$n(a.bin)||Yr(a)))return!0}}return!1}run(n,e,r){const{encoding:i,mark:a}=n;var o,s;return I((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.`)),r({...n,mark:Z(a)?{...a,type:"rule"}:"rule"},e)}}function M$({parentEncoding:t,encoding:n={},layer:e}){let r={};if(t){const i=new Set([...L(t),...L(n)]);for(const a of i){const o=n[a],s=t[a];if(ht(o)){const u={...s,...o};r[a]=u}else wl(o)?r[a]={...o,condition:{...s,...o.condition}}:o||o===null?r[a]=o:(e||yr(s)||et(s)||ht(s)||T(s))&&(r[a]=s)}}else r=n;return!r||jt(r)?void 0:r}function B$(t){const{parentProjection:n,projection:e}=t;return n&&e&&I(function(r){const{parentProjection:i,projection:a}=r;return`Layer's shared projection ${Lt(i)} is overridden by a child projection ${Lt(a)}.`}({parentProjection:n,projection:e})),e??n}function Pv(t){return U(t,"filter")}function z$(t){return U(t,"lookup")}function jR(t){return U(t,"pivot")}function LR(t){return U(t,"density")}function qR(t){return U(t,"quantile")}function UR(t){return U(t,"regression")}function IR(t){return U(t,"loess")}function WR(t){return U(t,"sample")}function HR(t){return U(t,"window")}function GR(t){return U(t,"joinaggregate")}function VR(t){return U(t,"flatten")}function YR(t){return U(t,"calculate")}function O$(t){return U(t,"bin")}function XR(t){return U(t,"impute")}function JR(t){return U(t,"timeUnit")}function KR(t){return U(t,"aggregate")}function QR(t){return U(t,"stack")}function ZR(t){return U(t,"fold")}function tT(t){return U(t,"extent")&&!U(t,"density")&&!U(t,"regression")}function N$(t,n){const{transform:e,...r}=t;if(e){const i=e.map(a=>{if(Pv(a))return{filter:jv(a,n)};if(O$(a)&&ro(a.bin))return{...a,bin:T$(a.bin)};if(z$(a)){const{selection:o,...s}=a.from;return o?{...a,from:{param:o,...s}}:a}return a});return{...r,transform:i}}return t}function R$(t,n){var r,i;const e=ft(t);if(H(e)&&ro(e.bin)&&(e.bin=T$(e.bin)),ho(e)&&((i=(r=e.scale)==null?void 0:r.domain)==null?void 0:i.selection)){const{selection:a,...o}=e.scale.domain;e.scale.domain={...o,...a?{param:a}:{}}}if(xl(e))if(T(e.condition))e.condition=e.condition.map(a=>{const{selection:o,param:s,test:u,...l}=a;return s?a:{...l,test:jv(a,n)}});else{const{selection:a,param:o,test:s,...u}=R$(e.condition,n);e.condition=o?e.condition:{...u,test:jv(e.condition,n)}}return e}function T$(t){const n=t.extent;if(n!=null&&n.selection){const{selection:e,...r}=n;return{...t,extent:{...r,param:e}}}return t}function jv(t,n){const e=r=>ls(r,i=>{var a;const o={param:i,empty:n.emptySelections[i]??!0};return(a=n.selectionPredicates)[i]??(a[i]=[]),n.selectionPredicates[i].push(o),o});return t.selection?e(t.selection):ls(t.test||t.filter,r=>r.selection?e(r.selection):r)}class Lv extends Ov{map(n,e){const r=e.selections??[];if(n.params&&!Di(n)){const i=[];for(const a of n.params)$v(a)?r.push(a):i.push(a);n.params=i}return e.selections=r,super.map(n,e)}mapUnit(n,e){const r=e.selections;if(!r||!r.length)return n;const i=(e.path??[]).concat(n.name),a=[];for(const o of r)if(o.views&&o.views.length)for(const s of o.views)(Q(s)&&(s===n.name||i.includes(s))||T(s)&&s.map(u=>i.indexOf(u)).every((u,l,c)=>u!==-1&&(l===0||u>c[l-1])))&&a.push(o);else a.push(o);return a.length&&(n.params=a),n}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const n=Lv.prototype[t];Lv.prototype[t]=function(e,r){return n.call(this,e,nT(e,r))}}function nT(t,n){return t.name?{...n,path:(n.path??[]).concat(t.name)}:n}function P$(t,n){n===void 0&&(n=A$(t.config));const e=function(o,s={}){const u={config:s};return iT.map(eT.map(rT.map(o,u),u),u)}(t,n),{width:r,height:i}=t,a=function(o,s,u){let{width:l,height:c}=s;const f=Di(o)||dh(o),d={};f?l=="container"&&c=="container"?(d.type="fit",d.contains="padding"):l=="container"?(d.type="fit-x",d.contains="padding"):c=="container"&&(d.type="fit-y",d.contains="padding"):(l=="container"&&(I(zE("width")),l=void 0),c=="container"&&(I(zE("height")),c=void 0));const h={type:"pad",...d,...u?j$(u.autosize):{},...j$(o.autosize)};if(h.type!=="fit"||f||(I(CN),h.type="pad"),l=="container"&&h.type!="fit"&&h.type!="fit-x"&&I(OE("width")),c=="container"&&h.type!="fit"&&h.type!="fit-y"&&I(OE("height")),!Ce(h,{type:"pad"}))return h}(e,{width:r,height:i,autosize:t.autosize},n);return{...e,...a?{autosize:a}:{}}}const eT=new class extends Ov{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[mR,gR,vR,new RR,new PR]}map(t,n){if(Di(t)){const e=po(t.encoding,mi),r=po(t.encoding,gi),i=po(t.encoding,Md);if(e||r||i)return this.mapFacetedUnit(t,n)}return super.map(t,n)}mapUnit(t,n){const{parentEncoding:e,parentProjection:r}=n,i=Rv(t.encoding,n.repeater),a={...t,...t.name?{name:[n.repeaterPrefix,t.name].filter(s=>s).join("_")}:{},...i?{encoding:i}:{}};if(e||r)return this.mapUnitWithParentEncodingOrProjection(a,n);const o=this.mapLayerOrUnit.bind(this);for(const s of this.nonFacetUnitNormalizers)if(s.hasMatchingType(a,n.config))return s.run(a,n,o);return a}mapRepeat(t,n){return function(e){return!T(e.repeat)&&U(e.repeat,"layer")}(t)?this.mapLayerRepeat(t,n):this.mapNonLayerRepeat(t,n)}mapLayerRepeat(t,n){const{repeat:e,spec:r,...i}=t,{row:a,column:o,layer:s}=e,{repeater:u={},repeaterPrefix:l=""}=n;return a||o?this.mapRepeat({...t,repeat:{...a?{row:a}:{},...o?{column:o}:{}},spec:{repeat:{layer:s},spec:r}},n):{...i,layer:s.map(c=>{const f={...u,layer:c},d=`${(r.name?`${r.name}_`:"")+l}child__layer_${Xt(c)}`,h=this.mapLayerOrUnit(r,{...n,repeater:f,repeaterPrefix:d});return h.name=d,h})}}mapNonLayerRepeat(t,n){const{repeat:e,spec:r,data:i,...a}=t;!T(e)&&t.columns&&(t=he(t,["columns"]),I(PE("repeat")));const o=[],{repeater:s={},repeaterPrefix:u=""}=n,l=!T(e)&&e.row||[s?s.row:null],c=!T(e)&&e.column||[s?s.column:null],f=T(e)&&e||[s?s.repeat:null];for(const h of f)for(const p of l)for(const m of c){const g={repeat:h,row:p,column:m,layer:s.layer},y=(r.name?`${r.name}_`:"")+u+"child__"+(T(e)?`${Xt(h)}`:(e.row?`row_${Xt(p)}`:"")+(e.column?`column_${Xt(m)}`:"")),v=this.map(r,{...n,repeater:g,repeaterPrefix:y});v.name=y,o.push(he(v,["data"]))}const d=T(e)?t.columns:e.column?e.column.length:1;return{data:r.data??i,align:"all",...a,columns:d,concat:o}}mapFacet(t,n){const{facet:e}=t;return bl(e)&&t.columns&&(t=he(t,["columns"]),I(PE("facet"))),super.mapFacet(t,n)}mapUnitWithParentEncodingOrProjection(t,n){const{encoding:e,projection:r}=t,{parentEncoding:i,parentProjection:a,config:o}=n,s=B$({parentProjection:a,projection:r}),u=M$({parentEncoding:i,encoding:Rv(e,n.repeater)});return this.mapUnit({...t,...s?{projection:s}:{},...u?{encoding:u}:{}},{config:o})}mapFacetedUnit(t,n){const{row:e,column:r,facet:i,...a}=t.encoding,{mark:o,width:s,projection:u,height:l,view:c,params:f,encoding:d,...h}=t,{facetMapping:p,layout:m}=this.getFacetMappingAndLayout({row:e,column:r,facet:i},n),g=Rv(a,n.repeater);return this.mapFacet({...h,...m,facet:p,spec:{...s?{width:s}:{},...l?{height:l}:{},...c?{view:c}:{},...u?{projection:u}:{},mark:o,encoding:g,...f?{params:f}:{}}},n)}getFacetMappingAndLayout(t,n){const{row:e,column:r,facet:i}=t;if(e||r){i&&I(`Facet encoding dropped as ${(a=[...e?[mi]:[],...r?[gi]:[]]).join(" and ")} ${a.length>1?"are":"is"} also specified.`);const o={},s={};for(const u of[mi,gi]){const l=t[u];if(l){const{align:c,center:f,spacing:d,columns:h,...p}=l;o[u]=p;for(const m of["align","center","spacing"])l[m]!==void 0&&(s[m]??(s[m]={}),s[m][u]=l[m])}}return{facetMapping:o,layout:s}}{const{align:o,center:s,spacing:u,columns:l,...c}=i;return{facetMapping:TR(c,n.repeater),layout:{...o?{align:o}:{},...s?{center:s}:{},...u?{spacing:u}:{},...l?{columns:l}:{}}}}var a}mapLayer(t,{parentEncoding:n,parentProjection:e,...r}){const{encoding:i,projection:a,...o}=t,s={...r,parentEncoding:M$({parentEncoding:n,encoding:i,layer:!0}),parentProjection:B$({parentProjection:e,projection:a})};return super.mapLayer({...o,...t.name?{name:[s.repeaterPrefix,t.name].filter(u=>u).join("_")}:{}},s)}},rT=new class extends Ov{map(t,n){return n.emptySelections??(n.emptySelections={}),n.selectionPredicates??(n.selectionPredicates={}),t=N$(t,n),super.map(t,n)}mapLayerOrUnit(t,n){if((t=N$(t,n)).encoding){const e={};for(const[r,i]of sa(t.encoding))e[r]=R$(i,n);t={...t,encoding:e}}return super.mapLayerOrUnit(t,n)}mapUnit(t,n){const{selection:e,...r}=t;return e?{...r,params:sa(e).map(([i,a])=>{const{init:o,bind:s,empty:u,...l}=a;l.type==="single"?(l.type="point",l.toggle=!1):l.type==="multi"&&(l.type="point"),n.emptySelections[i]=u!=="none";for(const c of En(n.selectionPredicates[i]??{}))c.empty=u!=="none";return{name:i,value:o,select:l,bind:s}})}:t}},iT=new Lv;function j$(t){return Q(t)?{type:t}:t??{}}const aT=["background","padding"];function L$(t,n){const e={};for(const r of aT)t&&t[r]!==void 0&&(e[r]=Ee(t[r]));return n&&(e.params=t.params),e}class Bi{constructor(n={},e={}){this.explicit=n,this.implicit=e}clone(){return new Bi(ft(this.explicit),ft(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(n){return un(this.explicit[n],this.implicit[n])}getWithExplicit(n){return this.explicit[n]!==void 0?{explicit:!0,value:this.explicit[n]}:this.implicit[n]!==void 0?{explicit:!1,value:this.implicit[n]}:{explicit:!1,value:void 0}}setWithExplicit(n,{value:e,explicit:r}){e!==void 0&&this.set(n,e,r)}set(n,e,r){return delete this[r?"implicit":"explicit"][n],this[r?"explicit":"implicit"][n]=e,this}copyKeyFromSplit(n,{explicit:e,implicit:r}){e[n]!==void 0?this.set(n,e[n],!0):r[n]!==void 0&&this.set(n,r[n],!1)}copyKeyFromObject(n,e){e[n]!==void 0&&this.set(n,e[n],!0)}copyAll(n){for(const e of L(n.combine())){const r=n.getWithExplicit(e);this.setWithExplicit(e,r)}}}function Jr(t){return{explicit:!0,value:t}}function xr(t){return{explicit:!1,value:t}}function q$(t){return(n,e,r,i)=>{const a=t(n.value,e.value);return a>0?n:a<0?e:hh(n,e,r,i)}}function hh(t,n,e,r){return t.explicit&&n.explicit&&I(function(i,a,o,s){return`Conflicting ${a.toString()} property "${i.toString()}" (${Lt(o)} and ${Lt(s)}). Using ${Lt(o)}.`}(e,r,t.value,n.value)),t}function xa(t,n,e,r,i=hh){return t===void 0||t.value===void 0?n:t.explicit&&!n.explicit?t:n.explicit&&!t.explicit?n:Ce(t.value,n.value)?t:i(t,n,e,r)}class oT extends Bi{constructor(n={},e={},r=!1){super(n,e),this.explicit=n,this.implicit=e,this.parseNothing=r}clone(){const n=super.clone();return n.parseNothing=this.parseNothing,n}}function Fs(t){return U(t,"url")}function kl(t){return U(t,"values")}function U$(t){return U(t,"name")&&!Fs(t)&&!kl(t)&&!wa(t)}function wa(t){return t&&(I$(t)||W$(t)||qv(t))}function I$(t){return U(t,"sequence")}function W$(t){return U(t,"sphere")}function qv(t){return U(t,"graticule")}var Qt;function H$({invalid:t,isPath:n}){switch(w3(t,{isPath:n})){case"filter":return{marks:"exclude-invalid-values",scales:"exclude-invalid-values"};case"break-paths-show-domains":return{marks:n?"include-invalid-values":"exclude-invalid-values",scales:"include-invalid-values"};case"break-paths-filter-domains":return{marks:n?"include-invalid-values":"exclude-invalid-values",scales:"exclude-invalid-values"};case"show":return{marks:"include-invalid-values",scales:"include-invalid-values"}}}(function(t){t[t.Raw=0]="Raw",t[t.Main=1]="Main",t[t.Row=2]="Row",t[t.Column=3]="Column",t[t.Lookup=4]="Lookup",t[t.PreFilterInvalid=5]="PreFilterInvalid",t[t.PostFilterInvalid=6]="PostFilterInvalid"})(Qt||(Qt={}));class Nt{constructor(n,e){this.debugName=e,this._children=[],this._parent=null,n&&(this.parent=n)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(n){this._parent=n,n&&n.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(n,e){this._children.includes(n)?I("Attempt to add the same child twice."):e!==void 0?this._children.splice(e,0,n):this._children.push(n)}removeChild(n){const e=this._children.indexOf(n);return this._children.splice(e,1),e}remove(){let n=this._parent.removeChild(this);for(const e of this._children)e._parent=this._parent,this._parent.addChild(e,n++)}insertAsParentOf(n){const e=n.parent;e.removeChild(this),this.parent=e,n.parent=this}swapWithParent(){const n=this._parent,e=n.parent;for(const i of this._children)i.parent=n;this._children=[],n.removeChild(this);const r=n.parent.removeChild(n);this._parent=e,e.addChild(this,r),n.parent=this}}class ye extends Nt{clone(){const n=new this.constructor;return n.debugName=`clone_${this.debugName}`,n._source=this._source,n._name=`clone_${this._name}`,n.type=this.type,n.refCounts=this.refCounts,n.refCounts[n._name]=0,n}constructor(n,e,r,i){super(n,e),this.type=r,this.refCounts=i,this._source=this._name=e,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${iE()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(n){this._source=n}}function Uv(t){return t.as!==void 0}function G$(t){return`${t}_end`}class Qr extends Nt{clone(){return new Qr(null,ft(this.timeUnits))}constructor(n,e){super(n),this.timeUnits=e}static makeFromEncoding(n,e){const r=e.reduceFieldDef((i,a,o)=>{const{field:s,timeUnit:u}=a;if(u){let l;if(so(u)){if(Zt(e)){const{mark:c,markDef:f,config:d}=e,h=va({fieldDef:a,markDef:f,config:d});(gl(c)||h)&&(l={timeUnit:xn(u),field:s})}}else l={as:Y(a,{forAs:!0}),field:s,timeUnit:u};if(Zt(e)){const{mark:c,markDef:f,config:d}=e,h=va({fieldDef:a,markDef:f,config:d});gl(c)&&ln(o)&&h!==.5&&(l.rectBandPosition=h)}l&&(i[wt(l)]=l)}return i},{});return jt(r)?null:new Qr(n,r)}static makeFromTransform(n,e){const{timeUnit:r,...i}={...e},a={...i,timeUnit:xn(r)};return new Qr(n,{[wt(a)]:a})}merge(n){this.timeUnits={...this.timeUnits};for(const e in n.timeUnits)this.timeUnits[e]||(this.timeUnits[e]=n.timeUnits[e]);for(const e of n.children)n.removeChild(e),e.parent=this;n.remove()}removeFormulas(n){const e={};for(const[r,i]of sa(this.timeUnits)){const a=Uv(i)?i.as:`${i.field}_end`;n.has(a)||(e[r]=i)}this.timeUnits=e}producedFields(){return new Set(En(this.timeUnits).map(n=>Uv(n)?n.as:G$(n.field)))}dependentFields(){return new Set(En(this.timeUnits).map(n=>n.field))}hash(){return`TimeUnit ${wt(this.timeUnits)}`}assemble(){const n=[];for(const e of En(this.timeUnits)){const{rectBandPosition:r}=e,i=xn(e.timeUnit);if(Uv(e)){const{field:a,as:o}=e,{unit:s,utc:u,...l}=i,c=[o,`${o}_end`];n.push({field:He(a),type:"timeunit",...s?{units:Ud(s)}:{},...u?{timezone:"utc"}:{},...l,as:c}),n.push(...Y$(c,r,i))}else if(e){const{field:a}=e,o=a.replaceAll("\\.","."),s=V$({timeUnit:i,field:o}),u=G$(o);n.push({type:"formula",expr:s,as:u}),n.push(...Y$([o,u],r,i))}}return n}}const ph="offsetted_rect_start",mh="offsetted_rect_end";function V$({timeUnit:t,field:n,reverse:e}){const{unit:r,utc:i}=t,a=ZE(r),{part:o,step:s}=r3(a,t.step);return`${i?"utcOffset":"timeOffset"}('${o}', ${Ot(n)}, ${e?-s:s})`}function Y$([t,n],e,r){if(e!==void 0&&e!==.5){const i=Ot(t),a=Ot(n);return[{type:"formula",expr:X$([V$({timeUnit:r,field:t,reverse:!0}),i],e+.5),as:`${t}_${ph}`},{type:"formula",expr:X$([i,a],e+.5),as:`${t}_${mh}`}]}return[]}function X$([t,n],e){return`${1-e} * ${t} + ${e} * ${n}`}const Dl="_tuple_fields";class sT{constructor(...n){this.items=n,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const uT={defined:()=>!0,parse:(t,n,e)=>{const r=n.name,i=n.project??(n.project=new sT),a={},o={},s=new Set,u=(p,m)=>{const g=m==="visual"?p.channel:p.field;let y=Xt(`${r}_${g}`);for(let v=1;s.has(y);v++)y=Xt(`${r}_${g}_${v}`);return s.add(y),{[m]:y}},l=n.type,c=t.config.selection[l],f=e.value!==void 0?J(e.value):null;let{fields:d,encodings:h}=Z(e.select)?e.select:{};if(!d&&!h&&f){for(const p of f)if(Z(p))for(const m of L(p))lN(m)?(h||(h=[])).push(m):l==="interval"?(I('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),h=c.encodings):(d??(d=[])).push(m)}d||h||(h=c.encodings,"fields"in c&&(d=c.fields));for(const p of h??[]){const m=t.fieldDef(p);if(m){let g=m.field;if(m.aggregate){I(EN(p,m.aggregate));continue}if(!g){I(RE(p));continue}if(m.timeUnit&&!so(m.timeUnit)){g=t.vgField(p);const y={timeUnit:m.timeUnit,as:g,field:m.field};o[wt(y)]=y}if(!a[g]){const y={field:g,channel:p,type:l==="interval"&&Ir(p)&&mr(t.getScaleComponent(p).get("type"))?"R":m.bin?"R-RE":"E",index:i.items.length};y.signals={...u(y,"data"),...u(y,"visual")},i.items.push(a[g]=y),i.hasField[g]=a[g],i.hasSelectionId=i.hasSelectionId||g===br,fE(p)?(y.geoChannel=p,y.channel=cE(p),i.hasChannel[y.channel]=a[g]):i.hasChannel[p]=a[g]}}else I(RE(p))}for(const p of d??[]){if(i.hasField[p])continue;const m={type:"E",field:p,index:i.items.length};m.signals={...u(m,"data")},i.items.push(m),i.hasField[p]=m,i.hasSelectionId=i.hasSelectionId||p===br}f&&(n.init=f.map(p=>i.items.map(m=>Z(p)?p[m.geoChannel||m.channel]!==void 0?p[m.geoChannel||m.channel]:p[m.field]:p))),jt(o)||(i.timeUnit=new Qr(null,o))},signals:(t,n,e)=>{const r=n.name+Dl;return e.filter(i=>i.name===r).length>0||n.project.hasSelectionId?e:e.concat({name:r,value:n.project.items.map(Z$)})}},J$="_curr",gh="anim_value",Cs="anim_clock",Iv="eased_anim_clock",K$="min_extent",Q$="max_range_extent",Wv="last_tick_at",Hv="is_playing",lT=1/60*1e3,cT={defined:t=>t.type==="point",topLevelSignals:(t,n,e)=>(Kr(n)&&(e=e.concat([{name:Cs,init:"0",on:[{events:{type:"timer",throttle:lT},update:`${Hv} ? (${Cs} + (now() - ${Wv}) > ${Q$} ? 0 : ${Cs} + (now() - ${Wv})) : ${Cs}`}]},{name:Wv,init:"now()",on:[{events:[{signal:Cs},{signal:Hv}],update:"now()"}]},{name:Hv,init:"true"}])),e),signals:(t,n,e)=>{const r=n.name,i=r+Dl,a=n.project,o="(item().isVoronoi ? datum.datum : datum)",s=En(t.component.selection??{}).reduce((d,h)=>h.type==="interval"?d.concat(h.name+Es):d,[]).map(d=>`indexof(item().mark.name, '${d}') < 0`).join(" && "),u="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(s?` && ${s}`:"");let l=`unit: ${yo(t)}, `;if(n.project.hasSelectionId?l+=`${br}: ${o}[${G(br)}]`:Kr(n)?l+=`fields: ${i}, values: [${gh} ? ${gh} : ${K$}]`:l+=`fields: ${i}, values: [${a.items.map(d=>{const h=t.fieldDef(d.channel);return h!=null&&h.bin?`[${o}[${G(t.vgField(d.channel,{}))}], ${o}[${G(t.vgField(d.channel,{binSuffix:"end"}))}]]`:`${o}[${G(d.field)}]`}).join(", ")}]`,Kr(n))return e.concat((c=n.name,f=t.scaleName(la),[{name:Iv,update:Cs},{name:`${c}_domain`,init:`domain('${f}')`},{name:K$,init:`extent(${c}_domain)[0]`},{name:Q$,init:`extent(range('${f}'))[1]`},{name:gh,update:`invert('${f}', ${Iv})`}]),[{name:r+$i,on:[{events:[{signal:Iv},{signal:gh}],update:`{${l}}`,force:!0}]}]);{const d=n.events;return e.concat([{name:r+$i,on:d?[{events:d,update:`${u} ? {${l}} : null`,force:!0}]:[]}])}var c,f}};function Z$(t){const{signals:n,hasLegend:e,index:r,...i}=t;return i.field=He(i.field),i}function mo(t,n=!0,e=Me){if(T(t)){const r=t.map(i=>mo(i,n,e));return n?`[${r.join(", ")}]`:r}return ao(t)?e(n?oo(t):function(r){const i=Iy(r,!0);return r.utc?+new Date(Date.UTC(...i)):+new Date(...i)}(t)):n?e(Lt(t)):t}function fT(t,n){for(const e of En(t.component.selection??{})){const r=e.name;let i=`${r}${$i}, ${e.resolve==="global"?"true":`{unit: ${yo(t)}}`}`;for(const a of wh)a.defined(e)&&(a.signals&&(n=a.signals(t,e,n)),a.modifyExpr&&(i=a.modifyExpr(t,e,i)));n.push({name:r+FT,on:[{events:{signal:e.name+$i},update:`modify(${G(e.name+go)}, ${i})`}]})}return Gv(n)}function dT(t,n){if(t.component.selection&&L(t.component.selection).length){const e=G(t.getName("cell"));n.unshift({name:"facet",value:{},on:[{events:aa("pointermove","scope"),update:`isTuple(facet) ? facet : group(${e}).datum`}]})}return Gv(n)}function t5(t,n){for(const e of En(t.component.selection??{}))for(const r of wh)r.defined(e)&&r.marks&&(n=r.marks(t,e,n));return n}function Gv(t){return t.map(n=>(n.on&&!n.on.length&&delete n.on,n))}const Ci={defined:t=>t.type==="interval"&&t.resolve==="global"&&t.bind&&t.bind==="scales",parse:(t,n)=>{const e=n.scales=[];for(const r of n.project.items){const i=r.channel;if(!Ir(i))continue;const a=t.getScaleComponent(i),o=a?a.get("type"):void 0;o=="sequential"&&I("Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc"),a&&mr(o)?(a.set("selectionExtent",{param:n.name,field:r.field},!0),e.push(r)):I("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(t,n,e)=>{const r=n.scales.filter(o=>e.filter(s=>s.name===o.signals.data).length===0);if(!t.parent||Yv(t)||r.length===0)return e;const i=e.find(o=>o.name===n.name);let a=i.update;if(a.includes(k5))i.update=`{${r.map(o=>`${G(He(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const s=`${G(He(o.field))}: ${o.signals.data}`;a.includes(s)||(a=`${a.substring(0,a.length-1)}, ${s}}`)}i.update=a}return e.concat(r.map(o=>({name:o.signals.data})))},signals:(t,n,e)=>{if(t.parent&&!Yv(t))for(const r of n.scales){const i=e.find(a=>a.name===r.signals.data);i.push="outer",delete i.value,delete i.update}return e}};function Vv(t,n){return`domain(${G(t.scaleName(n))})`}function Yv(t){return t.parent&&zs(t.parent)&&(!t.parent.parent||Yv(t.parent.parent))}const Es="_brush",n5="_scale_trigger",Fl="geo_interval_init_tick",e5="_init",hT={defined:t=>t.type==="interval",parse:(t,n,e)=>{var r;if(t.hasProjection){const i={...Z(e.select)?e.select:{}};i.fields=[br],i.encodings||(i.encodings=e.value?L(e.value):[dr,fr]),e.select={type:"interval",...i}}if(n.translate&&!Ci.defined(n)){const i=`!event.item || event.item.mark.name !== ${G(n.name+Es)}`;for(const a of n.events){if(!a.between){I(`${a} is not an ordered event stream for interval selections.`);continue}const o=J((r=a.between[0]).filter??(r.filter=[]));o.includes(i)||o.push(i)}}},signals:(t,n,e)=>{const r=n.name,i=r+$i,a=En(n.project.hasChannel).filter(s=>s.channel===Jt||s.channel===bn),o=n.init?n.init[0]:null;if(e.push(...a.reduce((s,u)=>s.concat(function(l,c,f,d){const h=!l.hasProjection,p=f.channel,m=f.signals.visual,g=G(h?l.scaleName(p):l.projectionName()),y=w=>`scale(${g}, ${w})`,v=l.getSizeSignalRef(p===Jt?"width":"height").signal,x=`${p}(unit)`,b=c.events.reduce((w,A)=>[...w,{events:A.between[0],update:`[${x}, ${x}]`},{events:A,update:`[${m}[0], clamp(${x}, 0, ${v})]`}],[]);if(h){const w=f.signals.data,A=Ci.defined(c),_=l.getScaleComponent(p),k=_?_.get("type"):void 0,D=d?{init:mo(d,!0,y)}:{value:[]};return b.push({events:{signal:c.name+n5},update:mr(k)?`[${y(`${w}[0]`)}, ${y(`${w}[1]`)}]`:"[0, 0]"}),A?[{name:w,on:[]}]:[{name:m,...D,on:b},{name:w,...d?{init:mo(d)}:{},on:[{events:{signal:m},update:`${m}[0] === ${m}[1] ? null : invert(${g}, ${m})`}]}]}{const w=p===Jt?0:1,A=c.name+e5;return[{name:m,...d?{init:`[${A}[0][${w}], ${A}[1][${w}]]`}:{value:[]},on:b}]}}(t,n,u,o&&o[u.index])),[])),t.hasProjection){const s=G(t.projectionName()),u=t.projectionName()+"_center",{x:l,y:c}=n.project.hasChannel,f=l&&l.signals.visual,d=c&&c.signals.visual,h=l?o&&o[l.index]:`${u}[0]`,p=c?o&&o[c.index]:`${u}[1]`,m=x=>t.getSizeSignalRef(x).signal,g=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":m("width")}, ${d?d+"[1]":m("height")}]]`;o&&(e.unshift({name:r+e5,init:`[scale(${s}, [${l?h[0]:h}, ${c?p[0]:p}]), scale(${s}, [${l?h[1]:h}, ${c?p[1]:p}])]`}),!l||!c)&&(e.find(x=>x.name===u)||e.unshift({name:u,update:`invert(${s}, [${m("width")}/2, ${m("height")}/2])`}));const y=`vlSelectionTuples(${`intersect(${g}, {markname: ${G(t.getName("marks"))}}, unit.mark)`}, ${`{unit: ${yo(t)}}`})`,v=a.map(x=>x.signals.visual);return e.concat({name:i,on:[{events:[...v.length?[{signal:v.join(" || ")}]:[],...o?[{signal:Fl}]:[]],update:y}]})}{if(!Ci.defined(n)){const l=r+n5,c=a.map(f=>{const d=f.channel,{data:h,visual:p}=f.signals,m=G(t.scaleName(d)),g=mr(t.getScaleComponent(d).get("type"))?"+":"";return`(!isArray(${h}) || (${g}invert(${m}, ${p})[0] === ${g}${h}[0] && ${g}invert(${m}, ${p})[1] === ${g}${h}[1]))`});c.length&&e.push({name:l,value:{},on:[{events:a.map(f=>({scale:t.scaleName(f.channel)})),update:c.join(" && ")+` ? ${l} : {}`}]})}const s=a.map(l=>l.signals.data),u=`unit: ${yo(t)}, fields: ${r+Dl}, values`;return e.concat({name:i,...o?{init:`{${u}: ${mo(o)}}`}:{},...s.length?{on:[{events:[{signal:s.join(" || ")}],update:`${s.join(" && ")} ? {${u}: [${s}]} : null`}]}:{}})}},topLevelSignals:(t,n,e)=>(Zt(t)&&t.hasProjection&&n.init&&(e.filter(r=>r.name===Fl).length||e.unshift({name:Fl,value:null,on:[{events:"timer{1}",update:`${Fl} === null ? {} : ${Fl}`}]})),e),marks:(t,n,e)=>{const r=n.name,{x:i,y:a}=n.project.hasChannel,o=i==null?void 0:i.signals.visual,s=a==null?void 0:a.signals.visual,u=`data(${G(n.name+go)})`;if(Ci.defined(n)||!i&&!a)return e;const l={x:i!==void 0?{signal:`${o}[0]`}:{value:0},y:a!==void 0?{signal:`${s}[0]`}:{value:0},x2:i!==void 0?{signal:`${o}[1]`}:{field:{group:"width"}},y2:a!==void 0?{signal:`${s}[1]`}:{field:{group:"height"}}};if(n.resolve==="global")for(const g of L(l))l[g]=[{test:`${u}.length && ${u}[0].unit === ${yo(t)}`,...l[g]},{value:0}];const{fill:c,fillOpacity:f,cursor:d,...h}=n.mark,p=L(h).reduce((g,y)=>(g[y]=[{test:[i!==void 0&&`${o}[0] !== ${o}[1]`,a!==void 0&&`${s}[0] !== ${s}[1]`].filter(v=>v).join(" && "),value:h[y]},{value:null}],g),{}),m=d??(n.translate?"move":null);return[{name:`${r+Es}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:c},fillOpacity:{value:f}},update:l}},...e,{name:r+Es,type:"rect",clip:!0,encode:{enter:{...m?{cursor:{value:m}}:{},fill:{value:"transparent"}},update:{...l,...p}}}]}};function $s({model:t,channelDef:n,vgChannel:e,invalidValueRef:r,mainRefFn:i}){const a=xl(n)&&n.condition;let o=[];a&&(o=J(a).map(u=>{const l=i(u);if(function(c){return U(c,"param")}(u)){const{param:c,empty:f}=u;return{test:q5(t,{param:c,empty:f}),...l}}return{test:Fh(t,u.test),...l}})),r!==void 0&&o.push(r);const s=i(n);return s!==void 0&&o.push(s),o.length>1||o.length===1&&o[0].test?{[e]:o}:o.length===1?{[e]:o[0]}:{}}function Xv(t,n="text"){const e=t.encoding[n];return $s({model:t,channelDef:e,vgChannel:n,mainRefFn:r=>yh(r,t.config),invalidValueRef:void 0})}function yh(t,n,e="datum"){if(t){if(yr(t))return Gt(t.value);if(ht(t)){const{format:r,formatType:i}=eh(t);return hv({fieldOrDatumDef:t,format:r,formatType:i,expr:e,config:n})}}}function r5(t,n={}){const{encoding:e,markDef:r,config:i,stack:a}=t,o=e.tooltip;if(T(o))return{tooltip:a5({tooltip:o},a,i,n)};{const s=n.reactiveGeom?"datum.datum":"datum";return $s({model:t,channelDef:o,vgChannel:"tooltip",mainRefFn:u=>{const l=yh(u,i,s);if(l)return l;if(u===null)return;let c=qt("tooltip",r,i);return c===!0&&(c={content:"encoding"}),Q(c)?{value:c}:Z(c)?et(c)?c:c.content==="encoding"?a5(e,a,i,n):{signal:s}:void 0},invalidValueRef:void 0})}}function i5(t,n,e,{reactiveGeom:r}={}){const i={...e,...e.tooltipFormat},a=new Set,o=r?"datum.datum":"datum",s=[];function u(c,f){const d=eo(f),h=oe(c)?c:{...c,type:t[d].type},p=h.title||vv(h,i),m=J(p).join(", ").replaceAll(/"/g,'\\"');let g;if(ln(f)){const y=f==="x"?"x2":"y2",v=vr(t[y]);if($n(h.bin)&&v){const x=Y(h,{expr:o}),b=Y(v,{expr:o}),{format:w,formatType:A}=eh(h);g=vl(x,b,w,A,i),a.add(y)}}if((ln(f)||f===Ge||f===cr)&&n&&n.fieldChannel===f&&n.offset==="normalize"){const{format:y,formatType:v}=eh(h);g=hv({fieldOrDatumDef:h,format:y,formatType:v,expr:o,config:i,normalizeStack:!0}).signal}g??(g=yh(h,i,o).signal),s.push({channel:f,key:m,value:g})}xv(t,(c,f)=>{H(c)?u(c,f):Zd(c)&&u(c.condition,f)});const l={};for(const{channel:c,key:f,value:d}of s)a.has(c)||l[f]||(l[f]=d);return l}function a5(t,n,e,{reactiveGeom:r}={}){const i=i5(t,n,e,{reactiveGeom:r}),a=sa(i).map(([o,s])=>`"${o}": ${s}`);return a.length>0?{signal:`{${a.join(", ")}}`}:void 0}function pT(t){const{markDef:n,config:e}=t,r=qt("aria",n,e);return r===!1?{}:{...r?{aria:r}:{},...mT(t),...gT(t)}}function mT(t){const{mark:n,markDef:e,config:r}=t;if(r.aria===!1)return{};const i=qt("ariaRoleDescription",e,r);return i!=null?{ariaRoleDescription:{value:i}}:tt(kN,n)?{}:{ariaRoleDescription:{value:n}}}function gT(t){const{encoding:n,markDef:e,config:r,stack:i}=t,a=n.description;if(a)return $s({model:t,channelDef:a,vgChannel:"description",mainRefFn:u=>yh(u,t.config),invalidValueRef:void 0});const o=qt("description",e,r);if(o!=null)return{description:Gt(o)};if(r.aria===!1)return{};const s=i5(n,i,r);return jt(s)?void 0:{description:{signal:sa(s).map(([u,l],c)=>`"${c>0?"; ":""}${u}: " + (${l})`).join(" + ")}}}function Mn(t,n,e={}){const{markDef:r,encoding:i,config:a}=n,{vgChannel:o}=e;let{defaultRef:s,defaultValue:u}=e;const l=i[t];s===void 0&&(u??(u=qt(t,r,a,{vgChannel:o,ignoreVgConfig:!xl(l)})),u!==void 0&&(s=Gt(u)));const c={markDef:r,config:a,scaleName:n.scaleName(t),scale:n.getScaleComponent(t)},f=_3({...c,scaleChannel:t,channelDef:l});return $s({model:n,channelDef:l,vgChannel:o??t,invalidValueRef:f,mainRefFn:d=>dv({...c,channel:t,channelDef:d,stack:null,defaultRef:s})})}function o5(t,n={filled:void 0}){const{markDef:e,encoding:r,config:i}=t,{type:a}=e,o=n.filled??qt("filled",e,i),s=vt(["bar","point","circle","square","geoshape"],a)?"transparent":void 0,u=qt(o===!0?"color":void 0,e,i,{vgChannel:"fill"})??i.mark[o===!0&&"color"]??s,l=qt(o===!1?"color":void 0,e,i,{vgChannel:"stroke"})??i.mark[o===!1&&"color"],c=o?"fill":"stroke",f={...u?{fill:Gt(u)}:{},...l?{stroke:Gt(l)}:{}};return e.color&&(o?e.fill:e.stroke)&&I(UE("property",{fill:"fill"in e,stroke:"stroke"in e})),{...f,...Mn("color",t,{vgChannel:c,defaultValue:o?u:l}),...Mn("fill",t,{defaultValue:r.fill?u:void 0}),...Mn("stroke",t,{defaultValue:r.stroke?l:void 0})}}function yT(t){const{encoding:n,mark:e}=t,r=n.order;return!ya(e)&&yr(r)?$s({model:t,channelDef:r,vgChannel:"zindex",mainRefFn:i=>Gt(i.value),invalidValueRef:void 0}):{}}function Cl({channel:t,markDef:n,encoding:e={},model:r,bandPosition:i}){const a=`${t}Offset`,o=n[a],s=e[a];if((a==="xOffset"||a==="yOffset")&&s)return{offsetType:"encoding",offset:dv({channel:a,channelDef:s,markDef:n,config:r==null?void 0:r.config,scaleName:r.scaleName(a),scale:r.getScaleComponent(a),stack:null,defaultRef:Gt(o),bandPosition:i})};const u=n[a];return u?{offsetType:"visual",offset:u}:{}}function se(t,n,{defaultPos:e,vgChannel:r}){const{encoding:i,markDef:a,config:o,stack:s}=n,u=i[t],l=i[Ur(t)],c=n.scaleName(t),f=n.getScaleComponent(t),{offset:d,offsetType:h}=Cl({channel:t,markDef:a,encoding:i,model:n,bandPosition:.5}),p=Jv({model:n,defaultPos:e,channel:t,scaleName:c,scale:f}),m=!u&&ln(t)&&(i.latitude||i.longitude)?{field:n.getName(t)}:function(g){const{channel:y,channelDef:v,scaleName:x,stack:b,offset:w,markDef:A}=g;if(ht(v)&&b&&y===b.fieldChannel){if(H(v)){let _=v.bandPosition;if(_!==void 0||A.type!=="text"||y!=="radius"&&y!=="theta"||(_=.5),_!==void 0)return Jd({scaleName:x,fieldOrDatumDef:v,startSuffix:"start",bandPosition:_,offset:w})}return co(v,x,{suffix:"end"},{offset:w})}return fv(g)}({channel:t,channelDef:u,channel2Def:l,markDef:a,config:o,scaleName:c,scale:f,stack:s,offset:d,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return m?{[r||t]:m}:void 0}function Jv({model:t,defaultPos:n,channel:e,scaleName:r,scale:i}){const{markDef:a,config:o}=t;return()=>{const s=eo(e),u=pa(e),l=qt(e,a,o,{vgChannel:u});if(l!==void 0)return yl(e,l);switch(n){case"zeroOrMin":return s5({scaleName:r,scale:i,mode:"zeroOrMin",mainChannel:s,config:o});case"zeroOrMax":return s5({scaleName:r,scale:i,mode:{zeroOrMax:{widthSignal:t.width.signal,heightSignal:t.height.signal}},mainChannel:s,config:o});case"mid":return{...t[ge(e)],mult:.5}}}}function s5({mainChannel:t,config:n,...e}){const r=A3(e),{mode:i}=e;if(r)return r;switch(t){case"radius":{if(i==="zeroOrMin")return{value:0};const{widthSignal:a,heightSignal:o}=i.zeroOrMax;return{signal:`min(${a},${o})/2`}}case"theta":return i==="zeroOrMin"?{value:0}:{signal:"2*PI"};case"x":return i==="zeroOrMin"?{value:0}:{field:{group:"width"}};case"y":return i==="zeroOrMin"?{field:{group:"height"}}:{value:0}}}const vT={left:"x",center:"xc",right:"x2"},bT={top:"y",middle:"yc",bottom:"y2"};function u5(t,n,e,r="middle"){if(t==="radius"||t==="theta")return pa(t);const i=t==="x"?"align":"baseline",a=qt(i,n,e);let o;return et(a)?(I(function(s){return`The ${s} for range marks cannot be an expression`}(i)),o=void 0):o=a,t==="x"?vT[o||(r==="top"?"left":"center")]:bT[o||r]}function vh(t,n,{defaultPos:e,defaultPos2:r,range:i}){return i?l5(t,n,{defaultPos:e,defaultPos2:r}):se(t,n,{defaultPos:e})}function l5(t,n,{defaultPos:e,defaultPos2:r}){const{markDef:i,config:a}=n,o=Ur(t),s=ge(t),u=function(l,c,f){const{encoding:d,mark:h,markDef:p,stack:m,config:g}=l,y=eo(f),v=ge(f),x=pa(f),b=d[y],w=l.scaleName(y),A=l.getScaleComponent(y),{offset:_}=Cl(f in d||f in p?{channel:f,markDef:p,encoding:d,model:l}:{channel:y,markDef:p,encoding:d,model:l});if(!b&&(f==="x2"||f==="y2")&&(d.latitude||d.longitude)){const D=ge(f),C=l.markDef[D];return C!=null?{[D]:{value:C}}:{[x]:{field:l.getName(f)}}}const k=function({channel:D,channelDef:C,channel2Def:F,markDef:E,config:$,scaleName:M,scale:S,stack:B,offset:z,defaultRef:j}){return ht(C)&&B&&D.charAt(0)===B.fieldChannel.charAt(0)?co(C,M,{suffix:"start"},{offset:z}):fv({channel:D,channelDef:F,scaleName:M,scale:S,stack:B,markDef:E,config:$,offset:z,defaultRef:j})}({channel:f,channelDef:b,channel2Def:d[f],markDef:p,config:g,scaleName:w,scale:A,stack:m,offset:_,defaultRef:void 0});return k!==void 0?{[x]:k}:bh(f,p)||bh(f,{[f]:Ry(f,p,g.style),[v]:Ry(v,p,g.style)})||bh(f,g[h])||bh(f,g.mark)||{[x]:Jv({model:l,defaultPos:c,channel:f,scaleName:w,scale:A})()}}(n,r,o);return{...se(t,n,{defaultPos:e,vgChannel:u[s]?u5(t,i,a):pa(t)}),...u}}function bh(t,n){const e=ge(t),r=pa(t);if(n[r]!==void 0)return{[r]:yl(t,n[r])};if(n[t]!==void 0)return{[r]:yl(t,n[t])};if(n[e]){const i=n[e];if(!lo(i))return{[e]:yl(t,i)};I(function(a){return`Position range does not support relative band size for ${a}.`}(e))}}function Ei(t,n){const{config:e,encoding:r,markDef:i}=t,a=i.type,o=Ur(n),s=ge(n),u=r[n],l=r[o],c=t.getScaleComponent(n),f=c?c.get("type"):void 0,d=i.orient,h=r[s]??r.size??qt("size",i,e,{vgChannel:s}),p=mE(n),m=a==="bar"&&(n==="x"?d==="vertical":d==="horizontal")||a==="tick"&&(n==="y"?d==="vertical":d==="horizontal");return!H(u)||!(Wt(u.bin)||$n(u.bin)||u.timeUnit&&!l)||h&&!lo(h)||r[p]||wn(f)?(ht(u)&&wn(f)||m)&&!l?function(g,y,v){var mt,pt;const{markDef:x,encoding:b,config:w,stack:A}=v,_=x.orient,k=v.scaleName(y),D=v.getScaleComponent(y),C=ge(y),F=Ur(y),E=mE(y),$=v.scaleName(E),M=v.getScaleComponent(Ey(y)),S=x.type==="tick"||_==="horizontal"&&y==="y"||_==="vertical"&&y==="x";let B;(b.size||x.size)&&(S?B=Mn("size",v,{vgChannel:C,defaultRef:Gt(x.size)}):I(function(X){return`Cannot apply size to non-oriented mark "${X}".`}(x.type)));const z=!!B,j=z3({channel:y,fieldDef:g,markDef:x,config:w,scaleType:(mt=D||M)==null?void 0:mt.get("type"),useVlSizeChannel:S});B=B||{[C]:xT(C,$||k,M||D,w,j,!!g,x.type)};const W=((pt=D||M)==null?void 0:pt.get("type"))==="band"&&lo(j)&&!z?"top":"middle",K=u5(y,x,w,W),q=K==="xc"||K==="yc",{offset:at,offsetType:ot}=Cl({channel:y,markDef:x,encoding:b,model:v,bandPosition:q?.5:0}),it=fv({channel:y,channelDef:g,markDef:x,config:w,scaleName:k,scale:D,stack:A,offset:at,defaultRef:Jv({model:v,defaultPos:"mid",channel:y,scaleName:k,scale:D}),bandPosition:q?ot==="encoding"?0:.5:et(j)?{signal:`(1-${j})/2`}:lo(j)?(1-j.band)/2:0});if(C)return{[K]:it,...B};{const X=pa(F),Mt=B[C],Tt=at?{...Mt,offset:at}:Mt;return{[K]:it,[X]:T(it)?[it[0],{...it[1],offset:Tt}]:{...it,offset:Tt}}}}(u,n,t):l5(n,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function({fieldDef:g,fieldDef2:y,channel:v,model:x}){var pt;const{config:b,markDef:w,encoding:A}=x,_=x.getScaleComponent(v),k=x.scaleName(v),D=_?_.get("type"):void 0,C=_.get("reverse"),F=z3({channel:v,fieldDef:g,markDef:w,config:b,scaleType:D}),E=(pt=x.component.axes[v])==null?void 0:pt[0],$=(E==null?void 0:E.get("translate"))??.5,M=ln(v)?qt("binSpacing",w,b)??0:0,S=Ur(v),B=pa(v),z=pa(S),j=Wr("minBandSize",w,b),{offset:W}=Cl({channel:v,markDef:w,encoding:A,model:x,bandPosition:0}),{offset:K}=Cl({channel:S,markDef:w,encoding:A,model:x,bandPosition:0}),q=function({scaleName:X,fieldDef:Mt}){const Tt=Y(Mt,{expr:"datum"});return`abs(scale("${X}", ${Y(Mt,{expr:"datum",suffix:"end"})}) - scale("${X}", ${Tt}))`}({fieldDef:g,scaleName:k}),at=c5(v,M,C,$,W,j,q),ot=c5(S,M,C,$,K??W,j,q),it=et(F)?{signal:`(1-${F.signal})/2`}:lo(F)?(1-F.band)/2:.5,mt=va({fieldDef:g,fieldDef2:y,markDef:w,config:b});if(Wt(g.bin)||g.timeUnit){const X=g.timeUnit&&mt!==.5;return{[z]:f5({fieldDef:g,scaleName:k,bandPosition:it,offset:ot,useRectOffsetField:X}),[B]:f5({fieldDef:g,scaleName:k,bandPosition:et(it)?{signal:`1-${it.signal}`}:1-it,offset:at,useRectOffsetField:X})}}if($n(g.bin)){const X=co(g,k,{},{offset:ot});if(H(y))return{[z]:X,[B]:co(y,k,{},{offset:at})};if(ro(g.bin)&&g.bin.step)return{[z]:X,[B]:{signal:`scale("${k}", ${Y(g,{expr:"datum"})} + ${g.bin.step})`,offset:at}}}return void I(VE(S))}({fieldDef:u,fieldDef2:l,channel:n,model:t})}function xT(t,n,e,r,i,a,o){if(lo(i)){if(!e)return{mult:i.band,field:{group:t}};{const s=e.get("type");if(s==="band"){let u=`bandwidth('${n}')`;i.band!==1&&(u=`${i.band} * ${u}`);const l=Wr("minBandSize",{type:o},r);return{signal:l?`max(${pr(l)}, ${u})`:u}}i.band!==1&&(I(function(u){return`Cannot use the relative band size with ${u} scale.`}(s)),i=void 0)}}else{if(et(i))return i;if(i)return{value:i}}if(e){const s=e.get("range");if(io(s)&&$t(s.step))return{value:s.step-2}}if(!a){const{bandPaddingInner:s,barBandPaddingInner:u,rectBandPaddingInner:l,tickBandPaddingInner:c}=r.scale,f=un(s,o==="tick"?c:o==="bar"?u:l);if(et(f))return{signal:`(1 - (${f.signal})) * ${t}`};if($t(f))return{signal:`${1-f} * ${t}`}}return{value:zv(r.view,t)-2}}function c5(t,n,e,r,i,a,o){if(lE(t))return 0;const s=t==="x"||t==="y2",u=s?-n/2:n/2;if(et(e)||et(i)||et(r)||a){const l=pr(e),c=pr(i),f=pr(r),d=pr(a),h=a?`(${o} < ${d} ? ${s?"":"-"}0.5 * (${d} - (${o})) : ${u})`:u;return{signal:(f?`${f} + `:"")+(l?`(${l} ? -1 : 1) * `:"")+(c?`(${c} + ${h})`:h)}}return i=i||0,r+(e?-i-u:+i+u)}function f5({fieldDef:t,scaleName:n,bandPosition:e,offset:r,useRectOffsetField:i}){return Jd({scaleName:n,fieldOrDatumDef:t,bandPosition:e,offset:r,...i?{startSuffix:ph,endSuffix:mh}:{}})}const wT=new Set(["aria","width","height"]);function Xe(t,n){const{fill:e,stroke:r}=n.color==="include"?o5(t):{};return{...AT(t.markDef,n),...d5("fill",e),...d5("stroke",r),...Mn("opacity",t),...Mn("fillOpacity",t),...Mn("strokeOpacity",t),...Mn("strokeWidth",t),...Mn("strokeDash",t),...yT(t),...r5(t),...Xv(t,"href"),...pT(t)}}function d5(t,n){return n?{[t]:n}:{}}function AT(t,n){return _N.reduce((e,r)=>(!wT.has(r)&&U(t,r)&&n[r]!=="ignore"&&(e[r]=Gt(t[r])),e),{})}function Kv(t){const{config:n,markDef:e}=t,r=new Set;if(t.forEachFieldDef((i,a)=>{var c;let o;if(!Ir(a)||!(o=t.getScaleType(a)))return;const s=Pd(i.aggregate);if((l=cv({scaleChannel:a,markDef:e,config:n,scaleType:o,isCountAggregate:s}))==="break-paths-filter-domains"||l==="break-paths-show-domains"){const f=t.vgField(a,{expr:"datum",binSuffix:(c=t.stack)!=null&&c.impute?"mid":void 0});f&&r.add(f)}var l}),r.size>0)return{defined:{signal:[...r].map(a=>Id(a,!0)).join(" && ")}}}function h5(t,n){if(n!==void 0)return{[t]:Gt(n)}}const Qv="voronoi",p5={defined:t=>t.type==="point"&&t.nearest,parse:(t,n)=>{if(n.events)for(const e of n.events)e.markname=t.getName(Qv)},marks:(t,n,e)=>{const{x:r,y:i}=n.project.hasChannel,a=t.mark;if(ya(a))return I(`The "nearest" transform is not supported for ${a} marks.`),e;const o={name:t.getName(Qv),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...r5(t,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let s=0,u=!1;return e.forEach((l,c)=>{const f=l.name??"";f===t.component.mark[0].name?s=c:f.includes(Qv)&&(u=!0)}),u||e.splice(s+1,0,o),e}},m5={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!Cv(t.bind),parse:(t,n,e)=>D5(n,e),topLevelSignals:(t,n,e)=>{const r=n.name,i=n.project,a=n.bind,o=n.init&&n.init[0],s=p5.defined(n)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((u,l)=>{const c=Xt(`${r}_${u.field}`);e.filter(f=>f.name===c).length||e.unshift({name:c,...o?{init:mo(o[l])}:{value:null},on:n.events?[{events:n.events,update:`datum && item().mark.marktype !== 'group' ? ${s}[${G(u.field)}] : null`}]:[],bind:a[u.field]??a[u.channel]??a})}),e},signals:(t,n,e)=>{const r=n.name,i=n.project,a=e.find(l=>l.name===r+$i),o=r+Dl,s=i.items.map(l=>Xt(`${r}_${l.field}`)),u=s.map(l=>`${l} !== null`).join(" && ");return s.length&&(a.update=`${u} ? {fields: ${o}, values: [${s.join(", ")}]} : null`),delete a.value,delete a.on,e}},xh="_toggle",g5={defined:t=>t.type==="point"&&!Kr(t)&&!!t.toggle,signals:(t,n,e)=>e.concat({name:n.name+xh,value:!1,on:[{events:n.events,update:n.toggle}]}),modifyExpr:(t,n)=>{const e=n.name+$i,r=n.name+xh;return`${r} ? null : ${e}, `+(n.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${yo(t)}}, `)+`${r} ? ${e} : null`}},_T={defined:t=>t.clear!==void 0&&t.clear!==!1&&!Kr(t),parse:(t,n)=>{n.clear&&(n.clear=Q(n.clear)?aa(n.clear,"view"):n.clear)},topLevelSignals:(t,n,e)=>{if(m5.defined(n))for(const r of n.project.items){const i=e.findIndex(a=>a.name===Xt(`${n.name}_${r.field}`));i!==-1&&e[i].on.push({events:n.clear,update:"null"})}return e},signals:(t,n,e)=>{function r(i,a){i!==-1&&e[i].on&&e[i].on.push({events:n.clear,update:a})}if(n.type==="interval")for(const i of n.project.items){const a=e.findIndex(o=>o.name===i.signals.visual);r(a,"[0, 0]"),a===-1&&r(e.findIndex(o=>o.name===i.signals.data),"null")}else{let i=e.findIndex(a=>a.name===n.name+$i);r(i,"null"),g5.defined(n)&&(i=e.findIndex(a=>a.name===n.name+xh),r(i,"false"))}return e}},y5={defined:t=>{const n=t.resolve==="global"&&t.bind&&Cv(t.bind),e=t.project.items.length===1&&t.project.items[0].field!==br;return n&&!e&&I("Legend bindings are only supported for selections over an individual field or encoding channel."),n&&e},parse:(t,n,e)=>{const r=ft(e);if(r.select=Q(r.select)?{type:r.select,toggle:n.toggle}:{...r.select,toggle:n.toggle},D5(n,r),Z(e.select)&&(e.select.on||e.select.clear)){const o='event.item && indexof(event.item.mark.role, "legend") < 0';for(const s of n.events)s.filter=J(s.filter??[]),s.filter.includes(o)||s.filter.push(o)}const i=Ev(n.bind)?n.bind.legend:"click",a=Q(i)?aa(i,"view"):J(i);n.bind={legend:{merge:a}}},topLevelSignals:(t,n,e)=>{const r=n.name,i=Ev(n.bind)&&n.bind.legend,a=o=>s=>{const u=ft(s);return u.markname=o,u};for(const o of n.project.items){if(!o.hasLegend)continue;const s=`${Xt(o.field)}_legend`,u=`${r}_${s}`;if(e.filter(l=>l.name===u).length===0){const l=i.merge.map(a(`${s}_symbols`)).concat(i.merge.map(a(`${s}_labels`))).concat(i.merge.map(a(`${s}_entries`)));e.unshift({name:u,...n.init?{}:{value:null},on:[{events:l,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${u}`,force:!0}]})}}return e},signals:(t,n,e)=>{const r=n.name,i=n.project,a=e.find(f=>f.name===r+$i),o=r+Dl,s=i.items.filter(f=>f.hasLegend).map(f=>Xt(`${r}_${Xt(f.field)}_legend`)),u=`${s.map(f=>`${f} !== null`).join(" && ")} ? {fields: ${o}, values: [${s.join(", ")}]} : null`;n.events&&s.length>0?a.on.push({events:s.map(f=>({signal:f})),update:u}):s.length>0&&(a.update=u,delete a.value,delete a.on);const l=e.find(f=>f.name===r+xh),c=Ev(n.bind)&&n.bind.legend;return l&&(n.events?l.on.push({...l.on[0],events:c}):l.on[0].events=c),e}},v5="_translate_anchor",b5="_translate_delta",kT={defined:t=>t.type==="interval"&&t.translate,signals:(t,n,e)=>{const r=n.name,i=Ci.defined(n),a=r+v5,{x:o,y:s}=n.project.hasChannel;let u=aa(n.translate,"scope");return i||(u=u.map(l=>(l.between[0].markname=r+Es,l))),e.push({name:a,value:{},on:[{events:u.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(o!==void 0?`, extent_x: ${i?Vv(t,Jt):`slice(${o.signals.visual})`}`:"")+(s!==void 0?`, extent_y: ${i?Vv(t,bn):`slice(${s.signals.visual})`}`:"")+"}"}]},{name:r+b5,value:{},on:[{events:u,update:`{x: ${a}.x - x(unit), y: ${a}.y - y(unit)}`}]}),o!==void 0&&x5(t,n,o,"width",e),s!==void 0&&x5(t,n,s,"height",e),e}};function x5(t,n,e,r,i){const a=n.name,o=a+v5,s=a+b5,u=e.channel,l=Ci.defined(n),c=i.find(y=>y.name===e.signals[l?"data":"visual"]),f=t.getSizeSignalRef(r).signal,d=t.getScaleComponent(u),h=d&&d.get("type"),p=d&&d.get("reverse"),m=`${o}.extent_${u}`,g=`${l&&d?h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear":"panLinear"}(${m}, ${`${l?u===Jt?p?"":"-":p?"-":"":""}${s}.${u} / ${l?`${f}`:`span(${m})`}`}${l?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":""})`;c.on.push({events:{signal:s},update:l?g:`clampRange(${g}, 0, ${f})`})}const w5="_zoom_anchor",A5="_zoom_delta",DT={defined:t=>t.type==="interval"&&t.zoom,signals:(t,n,e)=>{const r=n.name,i=Ci.defined(n),a=r+A5,{x:o,y:s}=n.project.hasChannel,u=G(t.scaleName(Jt)),l=G(t.scaleName(bn));let c=aa(n.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+Es,f))),e.push({name:r+w5,on:[{events:c,update:i?"{"+[u?`x: invert(${u}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:a,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),o!==void 0&&_5(t,n,o,"width",e),s!==void 0&&_5(t,n,s,"height",e),e}};function _5(t,n,e,r,i){const a=n.name,o=e.channel,s=Ci.defined(n),u=i.find(m=>m.name===e.signals[s?"data":"visual"]),l=t.getSizeSignalRef(r).signal,c=t.getScaleComponent(o),f=c&&c.get("type"),d=s?Vv(t,o):u.name,h=a+A5,p=`${s&&c?f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear":"zoomLinear"}(${d}, ${`${a}${w5}.${o}`}, ${h}${s?f==="pow"?`, ${c.get("exponent")??1}`:f==="symlog"?`, ${c.get("constant")??1}`:"":""})`;u.on.push({events:{signal:h},update:s?p:`clampRange(${p}, 0, ${l})`})}const go="_store",$i="_tuple",FT="_modify",k5="vlSelectionResolve",wh=[cT,hT,uT,g5,m5,Ci,y5,_T,kT,DT,p5];function yo(t,{escape:n}={escape:!0}){let e=n?G(t.name):t.name;const r=function(i){let a=i.parent;for(;a&&!$e(a);)a=a.parent;return a}(t);if(r){const{facet:i}=r;for(const a of Ye)i[a]&&(e+=` + '__facet_${a}_' + (facet[${G(r.vgField(a))}])`)}return e}function Zv(t){return En(t.component.selection??{}).reduce((n,e)=>n||e.project.hasSelectionId,!1)}function D5(t,n){!Q(n.select)&&n.select.on||delete t.events,!Q(n.select)&&n.select.clear||delete t.clear,!Q(n.select)&&n.select.toggle||delete t.toggle}function Kr(t){var n;return(n=t.events)==null?void 0:n.find(e=>"type"in e&&e.type==="timer")}const CT="Property",ET="ArrayExpression",$T="BinaryExpression",ST="CallExpression",MT="ConditionalExpression",BT="LogicalExpression",zT="MemberExpression",OT="ObjectExpression",NT="UnaryExpression";function wr(t){this.type=t}var Si,rt,R,Ln,Rt;wr.prototype.visit=function(t){let n,e,r;if(t(this))return 1;for(n=function(i){switch(i.type){case ET:return i.elements;case $T:case BT:return[i.left,i.right];case ST:return[i.callee].concat(i.arguments);case MT:return[i.test,i.consequent,i.alternate];case zT:return[i.object,i.property];case OT:return i.properties;case CT:return[i.key,i.value];case NT:return[i.argument];default:return[]}}(this),e=0,r=n.length;e<r;++e)if(n[e].visit(t))return 1},(Si={})[1]="Boolean",Si[2]="<end>",Si[3]="Identifier",Si[4]="Keyword",Si[5]="Null",Si[6]="Numeric",Si[7]="Punctuator",Si[8]="String",Si[9]="RegularExpression";var F5="Identifier",An="Unexpected token %0",tb="Invalid regular expression",nb="Invalid regular expression: missing /",C5="Octal literals are not allowed in strict mode.",Bn="ILLEGAL",El="Disabled.",RT=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]"),TT=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 Ah(t,n){if(!t)throw new Error("ASSERT: "+n)}function Mi(t){return t>=48&&t<=57}function eb(t){return"0123456789abcdefABCDEF".includes(t)}function $l(t){return"01234567".includes(t)}function PT(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(t)}function Sl(t){return t===10||t===13||t===8232||t===8233}function Ml(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&RT.test(String.fromCharCode(t))}function _h(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&TT.test(String.fromCharCode(t))}const jT={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 E5(){for(;R<Ln;){const t=rt.charCodeAt(R);if(!PT(t)&&!Sl(t))break;++R}}function rb(t){var n,e,r,i=0;for(e=t==="u"?4:2,n=0;n<e;++n)R<Ln&&eb(rt[R])?(r=rt[R++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):Ct({},An,Bn);return String.fromCharCode(i)}function LT(){var t,n,e,r;for(n=0,(t=rt[R])==="}"&&Ct({},An,Bn);R<Ln&&eb(t=rt[R++]);)n=16*n+"0123456789abcdef".indexOf(t.toLowerCase());return(n>1114111||t!=="}")&&Ct({},An,Bn),n<=65535?String.fromCharCode(n):(e=55296+(n-65536>>10),r=56320+(n-65536&1023),String.fromCharCode(e,r))}function $5(){var t,n;for(t=rt.charCodeAt(R++),n=String.fromCharCode(t),t===92&&(rt.charCodeAt(R)!==117&&Ct({},An,Bn),++R,(t=rb("u"))&&t!=="\\"&&Ml(t.charCodeAt(0))||Ct({},An,Bn),n=t);R<Ln&&_h(t=rt.charCodeAt(R));)++R,n+=String.fromCharCode(t),t===92&&(n=n.substr(0,n.length-1),rt.charCodeAt(R)!==117&&Ct({},An,Bn),++R,(t=rb("u"))&&t!=="\\"&&_h(t.charCodeAt(0))||Ct({},An,Bn),n+=t);return n}function qT(){var t,n;return t=R,n=rt.charCodeAt(R)===92?$5():function(){var e,r;for(e=R++;R<Ln;){if((r=rt.charCodeAt(R))===92)return R=e,$5();if(!_h(r))break;++R}return rt.slice(e,R)}(),{type:n.length===1?3:jT.hasOwnProperty(n)?4:n==="null"?5:n==="true"||n==="false"?1:3,value:n,start:t,end:R}}function ib(){var t,n,e,r,i=R,a=rt.charCodeAt(R),o=rt[R];switch(a){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++R,{type:7,value:String.fromCharCode(a),start:i,end:R};default:if((t=rt.charCodeAt(R+1))===61)switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:7,value:String.fromCharCode(a)+String.fromCharCode(t),start:i,end:R};case 33:case 61:return R+=2,rt.charCodeAt(R)===61&&++R,{type:7,value:rt.slice(i,R),start:i,end:R}}}return(r=rt.substr(R,4))===">>>="?{type:7,value:r,start:i,end:R+=4}:(e=r.substr(0,3))===">>>"||e==="<<="||e===">>="?{type:7,value:e,start:i,end:R+=3}:o===(n=e.substr(0,2))[1]&&"+-<>&|".includes(o)||n==="=>"?{type:7,value:n,start:i,end:R+=2}:(n==="//"&&Ct({},An,Bn),"<>=!+-*%&|^/".includes(o)?{type:7,value:o,start:i,end:++R}:void Ct({},An,Bn))}function S5(){var t,n,e;if(Ah(Mi((e=rt[R]).charCodeAt(0))||e===".","Numeric literal must start with a decimal digit or a decimal point"),n=R,t="",e!=="."){if(t=rt[R++],e=rt[R],t==="0"){if(e==="x"||e==="X")return++R,function(r){let i="";for(;R<Ln&&eb(rt[R]);)i+=rt[R++];return i.length===0&&Ct({},An,Bn),Ml(rt.charCodeAt(R))&&Ct({},An,Bn),{type:6,value:parseInt("0x"+i,16),start:r,end:R}}(n);if($l(e))return function(r){let i="0"+rt[R++];for(;R<Ln&&$l(rt[R]);)i+=rt[R++];return(Ml(rt.charCodeAt(R))||Mi(rt.charCodeAt(R)))&&Ct({},An,Bn),{type:6,value:parseInt(i,8),octal:!0,start:r,end:R}}(n);e&&Mi(e.charCodeAt(0))&&Ct({},An,Bn)}for(;Mi(rt.charCodeAt(R));)t+=rt[R++];e=rt[R]}if(e==="."){for(t+=rt[R++];Mi(rt.charCodeAt(R));)t+=rt[R++];e=rt[R]}if(e==="e"||e==="E")if(t+=rt[R++],(e=rt[R])!=="+"&&e!=="-"||(t+=rt[R++]),Mi(rt.charCodeAt(R)))for(;Mi(rt.charCodeAt(R));)t+=rt[R++];else Ct({},An,Bn);return Ml(rt.charCodeAt(R))&&Ct({},An,Bn),{type:6,value:parseFloat(t),start:n,end:R}}function UT(){var t,n,e,r;return Rt=null,E5(),t=R,n=function(){var i,a,o,s;for(Ah((i=rt[R])==="/","Regular expression literal must start with a slash"),a=rt[R++],o=!1,s=!1;R<Ln;)if(a+=i=rt[R++],i==="\\")Sl((i=rt[R++]).charCodeAt(0))&&Ct({},nb),a+=i;else if(Sl(i.charCodeAt(0)))Ct({},nb);else if(o)i==="]"&&(o=!1);else{if(i==="/"){s=!0;break}i==="["&&(o=!0)}return s||Ct({},nb),{value:a.substr(1,a.length-2),literal:a}}(),e=function(){var i,a,o;for(a="",o="";R<Ln&&_h((i=rt[R]).charCodeAt(0));)++R,i==="\\"&&R<Ln?Ct({},An,Bn):(o+=i,a+=i);return o.search(/[^gimuy]/g)>=0&&Ct({},tb,o),{value:o,literal:a}}(),r=function(i,a){let o=i;a.includes("u")&&(o=o.replace(/\\u\{([0-9a-fA-F]+)\}/g,(s,u)=>{if(parseInt(u,16)<=1114111)return"x";Ct({},tb)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(o)}catch{Ct({},tb)}try{return new RegExp(i,a)}catch{return null}}(n.value,e.value),{literal:n.literal+e.literal,value:r,regex:{pattern:n.value,flags:e.value},start:t,end:R}}function M5(){if(E5(),R>=Ln)return{type:2,start:R,end:R};const t=rt.charCodeAt(R);return Ml(t)?qT():t===40||t===41||t===59?ib():t===39||t===34?function(){var n,e,r,i,a="",o=!1;for(Ah((n=rt[R])==="'"||n==='"',"String literal must starts with a quote"),e=R,++R;R<Ln;){if((r=rt[R++])===n){n="";break}if(r==="\\")if((r=rt[R++])&&Sl(r.charCodeAt(0)))r==="\r"&&rt[R]===`
7
+ : v !== v && u === u ? ${d} : `}(s,u,-o,o)}).join("")+"0;");return e?r.bind(e):r}}};function SF(t,n,e){if(!t||!Z(t))return t;for(let r,i=0,a=MF.length;i<a;++i)if(r=MF[i],tt(t,r.key))return r.parse(t,n,e);return t}var MF=[{key:"$ref",parse:function(t,n){return n.get(t.$ref)||P("Operator not defined: "+t.$ref)}},{key:"$key",parse:function(t,n){const e="k:"+t.$key+"_"+!!t.$flat;return n.fn[e]||(n.fn[e]=Zh(t.$key,t.$flat,n.expr.codegen))}},{key:"$expr",parse:function(t,n,e){t.$params&&n.parseParameters(t.$params,e);const r="e:"+t.$expr.code;return n.fn[r]||(n.fn[r]=ko(n.parameterExpression(t.$expr),t.$fields))}},{key:"$field",parse:function(t,n){if(!t.$field)return null;const e="f:"+t.$field+"_"+t.$name;return n.fn[e]||(n.fn[e]=ei(t.$field,t.$name,n.expr.codegen))}},{key:"$encode",parse:function(t,n){const e=t.$encode,r={};for(const i in e){const a=e[i];r[i]=ko(n.encodeExpression(a.$expr),a.$fields),r[i].output=a.$output}return r}},{key:"$compare",parse:function(t,n){const e="c:"+t.$compare+"_"+t.$order,r=J(t.$compare).map(i=>i&&i.$tupleid?st:i);return n.fn[e]||(n.fn[e]=Qh(r,t.$order,n.expr.codegen))}},{key:"$context",parse:function(t,n){return n}},{key:"$subflow",parse:function(t,n){const e=t.$subflow;return function(r,i,a){const o=n.fork().parse(e),s=o.get(e.operators[0].id),u=o.signals.parent;return u&&u.set(a),s.detachSubflow=()=>n.detach(o),s}}},{key:"$tupleid",parse:function(){return st}}];const dz={skip:!0};function BF(t,n,e,r){return new zF(t,n,e,r)}function zF(t,n,e,r){this.dataflow=t,this.transforms=n,this.events=t.events.bind(t),this.expr=r||fz,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},e&&(this.functions=Object.create(e),this.functions.context=this)}function OF(t){this.dataflow=t.dataflow,this.transforms=t.transforms,this.events=t.events,this.expr=t.expr,this.signals=Object.create(t.signals),this.scales=Object.create(t.scales),this.nodes=Object.create(t.nodes),this.data=Object.create(t.data),this.fn=Object.create(t.fn),t.functions&&(this.functions=Object.create(t.functions),this.functions.context=this)}function NF(t,n){t&&(n==null?t.removeAttribute("aria-label"):t.setAttribute("aria-label",n))}zF.prototype=OF.prototype={fork(){const t=new OF(this);return(this.subcontext||(this.subcontext=[])).push(t),t},detach(t){this.subcontext=this.subcontext.filter(e=>e!==t);const n=Object.keys(t.nodes);for(const e of n)t.nodes[e]._targets=null;for(const e of n)t.nodes[e].detach();t.nodes=null},get(t){return this.nodes[t]},set(t,n){return this.nodes[t]=n},add(t,n){const e=this,r=e.dataflow,i=t.value;if(e.set(t.id,n),function(a){return N1(a)==="collect"}(t.type)&&i&&(i.$ingest?r.ingest(n,i.$ingest,i.$format):i.$request?r.preload(n,i.$request,i.$format):r.pulse(n,r.changeset().insert(i))),t.root&&(e.root=n),t.parent){let a=e.get(t.parent.$ref);a?(r.connect(a,[n]),n.targets().add(a)):(e.unresolved=e.unresolved||[]).push(()=>{a=e.get(t.parent.$ref),r.connect(a,[n]),n.targets().add(a)})}if(t.signal&&(e.signals[t.signal]=n),t.scale&&(e.scales[t.scale]=n),t.data)for(const a in t.data){const o=e.data[a]||(e.data[a]={});t.data[a].forEach(s=>o[s]=n)}},resolve(){return(this.unresolved||[]).forEach(t=>t()),delete this.unresolved,this},operator(t,n){this.add(t,this.dataflow.add(t.value,n))},transform(t,n){this.add(t,this.dataflow.add(this.transforms[N1(n)]))},stream(t,n){this.set(t.id,n)},update(t,n,e,r,i){this.dataflow.on(n,e,r,i,t.options)},operatorExpression(t){return this.expr.operator(this,t)},parameterExpression(t){return this.expr.parameter(this,t)},eventExpression(t){return this.expr.event(this,t)},handlerExpression(t){return this.expr.handler(this,t)},encodeExpression(t){return this.expr.encode(this,t)},parse:function(t){const n=this,e=t.operators||[];return t.background&&(n.background=t.background),t.eventConfig&&(n.eventConfig=t.eventConfig),t.locale&&(n.locale=t.locale),e.forEach(r=>n.parseOperator(r)),e.forEach(r=>n.parseOperatorParameters(r)),(t.streams||[]).forEach(r=>n.parseStream(r)),(t.updates||[]).forEach(r=>n.parseUpdate(r)),n.resolve()},parseOperator:function(t){const n=this;!function(e){return N1(e)==="operator"}(t.type)&&t.type?n.transform(t,t.type):n.operator(t,t.update?n.operatorExpression(t.update):null)},parseOperatorParameters:function(t){const n=this;if(t.params){const e=n.get(t.id);e||P("Invalid operator id: "+t.id),n.dataflow.connect(e,e.parameters(n.parseParameters(t.params),t.react,t.initonly))}},parseParameters:function(t,n){n=n||{};const e=this;for(const r in t){const i=t[r];n[r]=T(i)?i.map(a=>SF(a,e,n)):SF(i,e,n)}return n},parseStream:function(t){var n,e=this,r=t.filter!=null?e.eventExpression(t.filter):void 0,i=t.stream!=null?e.get(t.stream):void 0;t.source?i=e.events(t.source,t.type,r):t.merge&&(i=(n=t.merge.map(a=>e.get(a)))[0].merge.apply(n[0],n.slice(1))),t.between&&(n=t.between.map(a=>e.get(a)),i=i.between(n[0],n[1])),t.filter&&(i=i.filter(r)),t.throttle!=null&&(i=i.throttle(+t.throttle)),t.debounce!=null&&(i=i.debounce(+t.debounce)),i==null&&P("Invalid stream definition: "+JSON.stringify(t)),t.consume&&i.consume(!0),e.stream(t,i)},parseUpdate:function(t){var n,e=this,r=Z(r=t.source)?r.$ref:r,i=e.get(r),a=t.update,o=void 0;i||P("Source not defined: "+t.source),n=t.target&&t.target.$expr?e.eventExpression(t.target.$expr):e.get(t.target),a&&a.$expr&&(a.$params&&(o=e.parseParameters(a.$params)),a=e.handlerExpression(a.$expr)),e.update(t,i,n,a,o)},getState:function(t){var n=this,e={};if(t.signals){var r=e.signals={};Object.keys(n.signals).forEach(a=>{const o=n.signals[a];t.signals(a,o)&&(r[a]=o.value)})}if(t.data){var i=e.data={};Object.keys(n.data).forEach(a=>{const o=n.data[a];t.data(a,o)&&(i[a]=o.input.value)})}return n.subcontext&&t.recurse!==!1&&(e.subcontext=n.subcontext.map(a=>a.getState(t))),e},setState:function(t){var n=this,e=n.dataflow,r=t.data,i=t.signals;Object.keys(i||{}).forEach(a=>{e.update(n.signals[a],i[a],dz)}),Object.keys(r||{}).forEach(a=>{e.pulse(n.data[a].input,e.changeset().remove(Be).insert(r[a]))}),(t.subcontext||[]).forEach((a,o)=>{const s=n.subcontext[o];s&&s.setState(a)})}};const R1="default";function T1(t,n){const e=t.globalCursor()?typeof document<"u"&&document.body:t.container();if(e)return n==null?e.style.removeProperty("cursor"):e.style.cursor=n}function od(t,n){var e=t._runtime.data;return tt(e,n)||P("Unrecognized data set: "+n),e[n]}function sd(t,n){i2(n)||P("Second argument to changes must be a changeset.");const e=od(this,t);return e.modified=!0,this.pulse(e.input,n)}function RF(t){var n=t.padding();return Math.max(0,t._viewWidth+n.left+n.right)}function TF(t){var n=t.padding();return Math.max(0,t._viewHeight+n.top+n.bottom)}function ud(t){var n=t.padding(),e=t._origin;return[n.left+e[0],n.top+e[1]]}function hz(t,n,e){var r,i,a=t._renderer,o=a&&a.canvas();return o&&(i=ud(t),(r=qc(n.changedTouches?n.changedTouches[0]:n,o))[0]-=i[0],r[1]-=i[1]),n.dataflow=t,n.item=e,n.vega=function(s,u,l){const c=u?u.mark.marktype==="group"?u:u.mark.group:null;function f(h){var p,m=c;if(h){for(p=u;p;p=p.mark.group)if(p.mark.name===h){m=p;break}}return m&&m.mark&&m.mark.interactive?m:{}}function d(h){if(!h)return l;Q(h)&&(h=f(h));const p=l.slice();for(;h;)p[0]-=h.x||0,p[1]-=h.y||0,h=h.mark&&h.mark.group;return p}return{view:In(s),item:In(u||{}),group:f,xy:d,x:h=>d(h)[0],y:h=>d(h)[1]}}(t,e,r),n}const PF="view",pz={trap:!1};function jF(t,n,e,r){t._eventListeners.push({type:e,sources:J(n),handler:r})}function ld(t,n,e){const r=t._eventConfig&&t._eventConfig[n];return!(r===!1||Z(r)&&!r[e])||(t.warn(`Blocked ${n} ${e} event listener.`),!1)}function LF(t){return t.item}function qF(t){return t.item.mark.source}function UF(t){return function(n,e){return e.vega.view().changeset().encode(e.item,t)}}function De(t,n,e){const r=document.createElement(t);for(const i in n)r.setAttribute(i,n[i]);return e!=null&&(r.textContent=e),r}function mz(t,n,e,r){const i=e.event||"input",a=()=>t.update(n.value);r.signal(e.signal,n.value),n.addEventListener(i,a),jF(r,n,i,a),t.set=o=>{n.value=o,n.dispatchEvent(function(s){return typeof Event<"u"?new Event(s):{type:s}}(i))}}function gz(t,n,e,r){const i=r.signal(e.signal),a=De("div",{class:"vega-bind"}),o=e.input==="radio"?a:a.appendChild(De("label"));o.appendChild(De("span",{class:"vega-bind-name"},e.name||e.signal)),n.appendChild(a);let s=yz;switch(e.input){case"checkbox":s=vz;break;case"select":s=bz;break;case"radio":s=xz;break;case"range":s=wz}s(t,o,e,i)}function yz(t,n,e,r){const i=De("input");for(const a in e)a!=="signal"&&a!=="element"&&i.setAttribute(a==="input"?"type":a,e[a]);i.setAttribute("name",e.signal),i.value=r,n.appendChild(i),i.addEventListener("input",()=>t.update(i.value)),t.elements=[i],t.set=a=>i.value=a}function vz(t,n,e,r){const i={type:"checkbox",name:e.signal};r&&(i.checked=!0);const a=De("input",i);n.appendChild(a),a.addEventListener("change",()=>t.update(a.checked)),t.elements=[a],t.set=o=>a.checked=!!o||null}function bz(t,n,e,r){const i=De("select",{name:e.signal}),a=e.labels||[];e.options.forEach((o,s)=>{const u={value:o};cd(o,r)&&(u.selected=!0),i.appendChild(De("option",u,(a[s]||o)+""))}),n.appendChild(i),i.addEventListener("change",()=>{t.update(e.options[i.selectedIndex])}),t.elements=[i],t.set=o=>{for(let s=0,u=e.options.length;s<u;++s)if(cd(e.options[s],o))return void(i.selectedIndex=s)}}function xz(t,n,e,r){const i=De("span",{class:"vega-bind-radio"}),a=e.labels||[];n.appendChild(i),t.elements=e.options.map((o,s)=>{const u={type:"radio",name:e.signal,value:o};cd(o,r)&&(u.checked=!0);const l=De("input",u);l.addEventListener("change",()=>t.update(o));const c=De("label",{},(a[s]||o)+"");return c.prepend(l),i.appendChild(c),l}),t.set=o=>{const s=t.elements,u=s.length;for(let l=0;l<u;++l)cd(s[l].value,o)&&(s[l].checked=!0)}}function wz(t,n,e,r){r=r!==void 0?r:(+e.max+ +e.min)/2;const i=e.max!=null?e.max:Math.max(100,+r)||100,a=e.min||Math.min(0,i,+r)||0,o=e.step||sx(a,i,100),s=De("input",{type:"range",name:e.signal,min:a,max:i,step:o});s.value=r;const u=De("span",{},+r);n.appendChild(s),n.appendChild(u);const l=()=>{u.textContent=s.value,t.update(+s.value)};s.addEventListener("input",l),s.addEventListener("change",l),t.elements=[s],t.set=c=>{s.value=c,u.textContent=c}}function cd(t,n){return t===n||t+""==n+""}function IF(t,n,e,r,i,a){return(n=n||new r(t.loader())).initialize(e,RF(t),TF(t),ud(t),i,a).background(t.background())}function P1(t,n){return n?function(){try{n.apply(this,arguments)}catch(e){t.error(e)}}:null}function j1(t,n,e){if(typeof n=="string"){if(typeof document>"u")return t.error("DOM document instance not found."),null;if(!(n=document.querySelector(n)))return t.error("Signal bind element not found: "+n),null}if(n&&e)try{n.textContent=""}catch(r){n=null,t.error(r)}return n}const Ku=t=>+t||0;function WF(t){return Z(t)?{top:Ku(t.top),bottom:Ku(t.bottom),left:Ku(t.left),right:Ku(t.right)}:(n=>({top:n,bottom:n,left:n,right:n}))(Ku(t))}async function L1(t,n,e,r){const i=nf(n),a=i&&i.headless;return a||P("Unrecognized renderer type: "+n),await t.runAsync(),IF(t,null,null,a,e,r).renderAsync(t._scenegraph.root)}var HF="width",GF="height",q1="padding",VF={skip:!0};function YF(t,n){var e=t.autosize(),r=t.padding();return n-(e&&e.contains===q1?r.left+r.right:0)}function XF(t,n){var e=t.autosize(),r=t.padding();return n-(e&&e.contains===q1?r.top+r.bottom:0)}function Az(t,n){return n.modified&&T(n.input.value)&&!t.startsWith("_:vega:_")}function _z(t,n){return!(t==="parent"||n instanceof $o.proxy)}function kz(t,n,e,r){const i=t.element();i&&i.setAttribute("title",function(a){return a==null?"":T(a)?JF(a):Z(a)&&!Da(a)?(o=a,Object.keys(o).map(s=>{const u=o[s];return s+": "+(T(u)?JF(u):KF(u))}).join(`
8
+ `)):a+"";var o}(r))}function JF(t){return"["+t.map(KF).join(", ")+"]"}function KF(t){return T(t)?"[\u2026]":Z(t)&&!Da(t)?"{\u2026}":t}function QF(t,n){const e=this;if(n=n||{},Eo.call(e),n.loader&&e.loader(n.loader),n.logger&&e.logger(n.logger),n.logLevel!=null&&e.logLevel(n.logLevel),n.locale||t.locale){const a=xt({},t.locale,n.locale);e.locale(Mx(a.number,a.time))}e._el=null,e._elBind=null,e._renderType=n.renderer||Ki.Canvas,e._scenegraph=new mA;const r=e._scenegraph.root;e._renderer=null,e._tooltip=n.tooltip||kz,e._redraw=!0,e._handler=new vu().scene(r),e._globalCursor=!1,e._preventDefault=!1,e._timers=[],e._eventListeners=[],e._resizeListeners=[],e._eventConfig=function(a){const o=xt({defaults:{}},a),s=(u,l)=>{l.forEach(c=>{T(u[c])&&(u[c]=Dr(u[c]))})};return s(o.defaults,["prevent","allow"]),s(o,["view","window","selector"]),o}(t.eventConfig),e.globalCursor(e._eventConfig.globalCursor);const i=function(a,o,s){return BF(a,$o,Xu,s).parse(o)}(e,t,n.expr);e._runtime=i,e._signals=i.signals,e._bind=(t.bindings||[]).map(a=>({state:null,param:xt({},a)})),i.root&&i.root.set(r),r.source=i.data.root.input,e.pulse(i.data.root.input,e.changeset().insert(r.items)),e._width=e.width(),e._height=e.height(),e._viewWidth=YF(e,e._width),e._viewHeight=XF(e,e._height),e._origin=[0,0],e._resize=0,e._autosize=1,function(a){var o=a._signals,s=o[HF],u=o[GF],l=o[q1];function c(){a._autosize=a._resize=1}a._resizeWidth=a.add(null,d=>{a._width=d.size,a._viewWidth=YF(a,d.size),c()},{size:s}),a._resizeHeight=a.add(null,d=>{a._height=d.size,a._viewHeight=XF(a,d.size),c()},{size:u});const f=a.add(null,c,{pad:l});a._resizeWidth.rank=s.rank+1,a._resizeHeight.rank=u.rank+1,f.rank=l.rank+1}(e),function(a){a.add(null,o=>(a._background=o.bg,a._resize=1,o.bg),{bg:a._signals.background})}(e),function(a){const o=a._signals.cursor||(a._signals.cursor=a.add({user:R1,item:null}));a.on(a.events("view","pointermove"),o,(s,u)=>{const l=o.value,c=l?Q(l)?l:l.user:R1,f=u.item&&u.item.cursor||null;return l&&c===l.user&&f==l.item?l:{user:c,item:f}}),a.add(null,function(s){let u=s.cursor,l=this.value;return Q(u)||(l=u.item,u=u.user),T1(a,u&&u!==R1?u:l||u),l},{cursor:o})}(e),e.description(t.description),n.hover&&e.hover(),n.container&&e.initialize(n.container,n.bind),n.watchPixelRatio&&e._watchPixelRatio()}function fd(t,n){return tt(t._signals,n)?t._signals[n]:P("Unrecognized signal name: "+G(n))}function ZF(t,n){const e=(t._targets||[]).filter(r=>r._update&&r._update.handler===n);return e.length?e[0]:null}function tC(t,n,e,r){let i=ZF(e,r);return i||(i=P1(t,()=>r(n,e.value)),i.handler=r,t.on(e,null,i)),t}function nC(t,n,e){const r=ZF(n,e);return r&&n._targets.remove(r),t}V(QF,Eo,{async evaluate(t,n,e){if(await Eo.prototype.evaluate.call(this,t,n),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,function(r){var i=ud(r),a=RF(r),o=TF(r);r._renderer.background(r.background()),r._renderer.resize(a,o,i),r._handler.origin(i),r._resizeListeners.forEach(s=>{try{s(a,o)}catch(u){r.error(u)}})}(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return e&&Zl(this,e),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const n=t!=null?t+"":null;return n!==this._desc&&NF(this._el,this._desc=n),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(t,n,e){const r=fd(this,t);return arguments.length===1?r.value:this.update(r,n,e)},width(t){return arguments.length?this.signal("width",t):this.signal("width")},height(t){return arguments.length?this.signal("height",t):this.signal("height")},padding(t){return arguments.length?this.signal("padding",WF(t)):WF(this.signal("padding"))},autosize(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},background(t){return arguments.length?this.signal("background",t):this.signal("background")},renderer(t){return arguments.length?(nf(t)||P("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},tooltip(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},loader(t){return arguments.length?(t!==this._loader&&(Eo.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(fd(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(t,n,e,r,i,a){this.runAfter(o=>{let s=0;o._autosize=0,o.width()!==e&&(s=1,o.signal(HF,e,VF),o._resizeWidth.skip(!0)),o.height()!==r&&(s=1,o.signal(GF,r,VF),o._resizeHeight.skip(!0)),o._viewWidth!==t&&(o._resize=1,o._viewWidth=t),o._viewHeight!==n&&(o._resize=1,o._viewHeight=n),o._origin[0]===i[0]&&o._origin[1]===i[1]||(o._resize=1,o._origin=i),s&&o.run("enter"),a&&o.runAfter(u=>u.resize())},!1,1)},addEventListener(t,n,e){let r=n;return e&&e.trap===!1||(r=P1(this,n),r.raw=n),this._handler.on(t,r),this},removeEventListener(t,n){for(var e,r,i=this._handler.handlers(t),a=i.length;--a>=0;)if(r=i[a].type,e=i[a].handler,t===r&&(n===e||n===e.raw)){this._handler.off(r,e);break}return this},addResizeListener(t){const n=this._resizeListeners;return n.includes(t)||n.push(t),this},removeResizeListener(t){var n=this._resizeListeners,e=n.indexOf(t);return e>=0&&n.splice(e,1),this},addSignalListener(t,n){return tC(this,t,fd(this,t),n)},removeSignalListener(t,n){return nC(this,fd(this,t),n)},addDataListener(t,n){return tC(this,t,od(this,t).values,n)},removeDataListener(t,n){return nC(this,od(this,t).values,n)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const n=T1(this,null);this._globalCursor=!!t,n&&T1(this,n)}return this}return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:function(t,n){this._timers.push(function(e,r,i){var a=new y8,o=r;return r==null?(a.restart(e,r,i),a):(a._restart=a.restart,a.restart=function(s,u,l){u=+u,l=l==null?v8():+l,a._restart(function c(f){f+=o,a._restart(c,o+=u,l),s(f)},u,l)},a.restart(e,r,i),a)}(function(e){t({timestamp:Date.now(),elapsed:e})},n))},events:function(t,n,e){var r,i=this,a=new ic(e),o=function(l,c){i.runAsync(null,()=>{t===PF&&function(f,d){var h=f._eventConfig.defaults,p=h.prevent,m=h.allow;return p!==!1&&m!==!0&&(p===!0||m===!1||(p?p[d]:m?!m[d]:f.preventDefault()))}(i,n)&&l.preventDefault(),a.receive(hz(i,l,c))})};if(t==="timer")ld(i,"timer",n)&&i.timer(o,n);else if(t===PF)ld(i,"view",n)&&i.addEventListener(n,o,pz);else if(t==="window"?ld(i,"window",n)&&typeof window<"u"&&(r=[window]):typeof document<"u"&&ld(i,"selector",n)&&(r=Array.from(document.querySelectorAll(t))),r){for(var s=0,u=r.length;s<u;++s)r[s].addEventListener(n,o);jF(i,r,n,o)}else i.warn("Can not resolve event source: "+t);return a},finalize:function(){var t,n,e,r,i,a=this._tooltip,o=this._timers,s=this._handler.handlers(),u=this._eventListeners;for(t=o.length;--t>=0;)o[t].stop();for(t=u.length;--t>=0;)for(n=(e=u[t]).sources.length;--n>=0;)e.sources[n].removeEventListener(e.type,e.handler);for(a&&a.call(this,this._handler,null,null,null),t=s.length;--t>=0;)i=s[t].type,r=s[t].handler,this._handler.off(i,r);return this},hover:function(t,n){return n=[n||"update",(t=[t||"hover"])[0]],this.on(this.events("view","pointerover",LF),qF,UF(t)),this.on(this.events("view","pointerout",LF),qF,UF(n)),this},data:function(t,n){return arguments.length<2?od(this,t).values.value:sd.call(this,t,Ba().remove(Be).insert(n))},change:sd,insert:function(t,n){return sd.call(this,t,Ba().insert(n))},remove:function(t,n){return sd.call(this,t,Ba().remove(n))},scale:function(t){var n=this._runtime.scales;return tt(n,t)||P("Unrecognized scale or projection: "+t),n[t].value},initialize:function(t,n){const e=this,r=e._renderType,i=e._eventConfig.bind,a=nf(r);t=e._el=t?j1(e,t,!0):null,function(u){const l=u.container();l&&(l.setAttribute("role","graphics-document"),l.setAttribute("aria-roleDescription","visualization"),NF(l,u.description()))}(e),a||e.error("Unrecognized renderer type: "+r);const o=a.handler||vu,s=t?a.renderer:a.headless;return e._renderer=s?IF(e,e._renderer,t,s):null,e._handler=function(u,l,c,f){const d=new f(u.loader(),P1(u,u.tooltip())).scene(u.scenegraph().root).initialize(c,ud(u),u);return l&&l.handlers().forEach(h=>{d.on(h.type,h.handler)}),d}(e,e._handler,t,o),e._redraw=!0,t&&i!=="none"&&(n=n?e._elBind=j1(e,n,!0):t.appendChild(De("form",{class:"vega-bindings"})),e._bind.forEach(u=>{u.param.element&&i!=="container"&&(u.element=j1(e,u.param.element,!!u.param.input))}),e._bind.forEach(u=>{(function(l,c,f){if(!c)return;const d=f.param;let h=f.state;h||(h=f.state={elements:null,active:!1,set:null,update:p=>{p!=l.signal(d.signal)&&l.runAsync(null,()=>{h.source=!0,l.signal(d.signal,p)})}},d.debounce&&(h.update=Yh(d.debounce,h.update))),(d.input==null&&d.element?mz:gz)(h,c,d,l),h.active||(l.on(l._signals[d.signal],null,()=>{h.source?h.source=!1:h.set(l.signal(d.signal))}),h.active=!0)})(e,u.element||n,u)})),e},toImageURL:async function(t,n){t!==Ki.Canvas&&t!==Ki.SVG&&t!==Ki.PNG&&P("Unrecognized image type: "+t);const e=await L1(this,t,n);return t===Ki.SVG?function(r,i){const a=new Blob([r],{type:i});return window.URL.createObjectURL(a)}(e.svg(),"image/svg+xml"):e.canvas().toDataURL("image/png")},toCanvas:async function(t,n){return(await L1(this,Ki.Canvas,t,n)).canvas()},toSVG:async function(t){return(await L1(this,Ki.SVG,t)).svg()},getState:function(t){return this._runtime.getState(t||{data:Az,signals:_z,recurse:!0})},setState:function(t){return this.runAsync(null,n=>{n._trigger=!1,n._runtime.setState(t)},n=>{n._trigger=!0}),this},_watchPixelRatio:function(){if(this.renderer()==="canvas"&&this._renderer._canvas){let t=null;const n=()=>{t!=null&&t();const e=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);e.addEventListener("change",n),t=()=>{e.removeEventListener("change",n)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};n()}}});const U1="[",I1="]",Dz=/[[\]{}]/,Fz={"*":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 eC,rC;function aa(t,n,e){return eC=n||"view",rC=e||Fz,iC(t.trim()).map(W1)}function Qu(t,n,e,r,i){const a=t.length;let o,s=0;for(;n<a;++n){if(o=t[n],!s&&o===e)return n;i&&i.indexOf(o)>=0?--s:r&&r.indexOf(o)>=0&&++s}return n}function iC(t){const n=[],e=t.length;let r=0,i=0;for(;i<e;)i=Qu(t,i,",","[{","]}"),n.push(t.substring(r,i).trim()),r=++i;if(n.length===0)throw"Empty event selector: "+t;return n}function W1(t){return t[0]==="["?function(n){const e=n.length;let r,i=1;if(i=Qu(n,i,I1,U1,I1),i===e)throw"Empty between selector: "+n;if(r=iC(n.substring(1,i)),r.length!==2)throw"Between selector must have two elements: "+n;if(n=n.slice(i+1).trim(),n[0]!==">")throw"Expected '>' after between selector: "+n;r=r.map(W1);const a=W1(n.slice(1).trim());return a.between?{between:r,stream:a}:(a.between=r,a)}(t):function(n){const e={source:eC},r=[];let i,a,o=[0,0],s=0,u=0,l=n.length,c=0;if(n[l-1]==="}"){if(c=n.lastIndexOf("{"),!(c>=0))throw"Unmatched right brace: "+n;try{o=function(f){const d=f.split(",");if(!f.length||d.length>2)throw f;return d.map(h=>{const p=+h;if(p!=p)throw f;return p})}(n.substring(c+1,l-1))}catch{throw"Invalid throttle specification: "+n}l=(n=n.slice(0,c).trim()).length,c=0}if(!l)throw n;if(n[0]==="@"&&(s=++c),i=Qu(n,c,":"),i<l&&(r.push(n.substring(u,i).trim()),u=c=++i),c=Qu(n,c,U1),c===l)r.push(n.substring(u,l).trim());else if(r.push(n.substring(u,c).trim()),a=[],u=++c,u===l)throw"Unmatched left bracket: "+n;for(;c<l;){if(c=Qu(n,c,I1),c===l)throw"Unmatched left bracket: "+n;if(a.push(n.substring(u,c).trim()),c<l-1&&n[++c]!==U1)throw"Expected left bracket: "+n;u=++c}if(!(l=r.length)||Dz.test(r[l-1]))throw"Invalid event selector: "+n;return l>1?(e.type=r[1],s?e.markname=r[0].slice(1):function(f){return rC[f]}(r[0])?e.marktype=r[0]:e.source=r[0]):e.type=r[0],e.type.slice(-1)==="!"&&(e.consume=!0,e.type=e.type.slice(0,-1)),a!=null&&(e.filter=a),o[0]&&(e.throttle=o[0]),o[1]&&(e.debounce=o[1]),e}(t)}function Cz(t){return Z(t)?t:{type:t||"pad"}}const Zu=t=>+t||0;function Ez(t){return Z(t)?t.signal?t:{top:Zu(t.top),bottom:Zu(t.bottom),left:Zu(t.left),right:Zu(t.right)}:{top:n=Zu(t),bottom:n,left:n,right:n};var n}const yn=t=>Z(t)&&!T(t)?xt({},t):{value:t};function aC(t,n,e,r){return e!=null?(Z(e)&&!T(e)||T(e)&&e.length&&Z(e[0])?t.update[n]=e:t[r||"enter"][n]={value:e},1):0}function Cn(t,n,e){for(const r in n)aC(t,r,n[r]);for(const r in e)aC(t,r,e[r],"update")}function ns(t,n,e){for(const r in n)e&&tt(e,r)||(t[r]=xt(t[r]||{},n[r]));return t}function es(t,n){return n&&(n.enter&&n.enter[t]||n.update&&n.update[t])}const H1="mark",G1="frame",V1="scope",oC="legend-label",$z="title-text",Sz="title-subtitle";function Y1(t,n,e){t[n]=e&&e.signal?{signal:e.signal}:{value:e}}const sC=t=>Q(t)?G(t):t.signal?`(${t.signal})`:uC(t);function dd(t){if(t.gradient!=null)return function(e){const r=[e.start,e.stop,e.count].map(i=>i==null?null:G(i));for(;r.length&&Bt(r)==null;)r.pop();return r.unshift(sC(e.gradient)),`gradient(${r.join(",")})`}(t);let n=t.signal?`(${t.signal})`:t.color?function(e){return e.c?hd("hcl",e.h,e.c,e.l):e.h||e.s?hd("hsl",e.h,e.s,e.l):e.l||e.a?hd("lab",e.l,e.a,e.b):e.r||e.g||e.b?hd("rgb",e.r,e.g,e.b):null}(t.color):t.field!=null?uC(t.field):t.value!==void 0?G(t.value):void 0;return t.scale!=null&&(n=function(e,r){const i=sC(e.scale);return e.range!=null?r=`lerp(_range(${i}), ${+e.range})`:(r!==void 0&&(r=`_scale(${i}, ${r})`),e.band&&(r=(r?r+"+":"")+`_bandwidth(${i})`+(+e.band==1?"":"*"+pd(e.band)),e.extra&&(r=`(datum.extra ? _scale(${i}, datum.extra.value) : ${r})`)),r==null&&(r="0")),r}(t,n)),n===void 0&&(n=null),t.exponent!=null&&(n=`pow(${n},${pd(t.exponent)})`),t.mult!=null&&(n+=`*${pd(t.mult)}`),t.offset!=null&&(n+=`+${pd(t.offset)}`),t.round&&(n=`round(${n})`),n}const hd=(t,n,e,r)=>`(${t}(${[n,e,r].map(dd).join(",")})+'')`;function pd(t){return Z(t)?"("+dd(t)+")":t}function uC(t){return lC(Z(t)?t:{datum:t})}function lC(t){let n,e,r;if(t.signal)n="datum",r=t.signal;else if(t.group||t.parent){for(e=Math.max(1,t.level||1),n="item";e-- >0;)n+=".mark.group";t.parent?(r=t.parent,n+=".datum"):r=t.group}else t.datum?(n="datum",r=t.datum):P("Invalid field reference: "+G(t));return t.signal||(r=Q(r)?Ni(r).map(G).join("]["):lC(r)),n+"["+r+"]"}function cC(t,n,e,r,i,a){const o={};(a=a||{}).encoders={$encode:o},t=function(s,u,l,c,f){const d={},h={};let p,m,g,y;for(m in m="lineBreak",u!=="text"||f[m]==null||es(m,s)||Y1(d,m,f[m]),(l=="legend"||String(l).startsWith("axis"))&&(l=null),y=l===G1?f.group:l===H1?xt({},f.mark,f[u]):null,y)g=es(m,s)||(m==="fill"||m==="stroke")&&(es("fill",s)||es("stroke",s)),g||Y1(d,m,y[m]);for(m in J(c).forEach(v=>{const x=f.style&&f.style[v];for(const b in x)es(b,s)||Y1(d,b,x[b])}),s=xt({},s),d)y=d[m],y.signal?(p=p||{})[m]=y:h[m]=y;return s.enter=xt(h,s.enter),p&&(s.update=xt(p,s.update)),s}(t,n,e,r,i.config);for(const s in t)o[s]=Mz(t[s],n,a,i);return a}function Mz(t,n,e,r){const i={},a={};for(const o in t)t[o]!=null&&(i[o]=zz(Bz(t[o]),r,e,a));return{$expr:{marktype:n,channels:i},$fields:Object.keys(a),$output:Object.keys(t)}}function Bz(t){return T(t)?function(n){let e="";return n.forEach(r=>{const i=dd(r);e+=r.test?`(${r.test})?${i}:`:i}),Bt(e)===":"&&(e+="null"),e}(t):dd(t)}function zz(t,n,e,r){const i=Tr(t,n);return i.$fields.forEach(a=>r[a]=1),xt(e,i.$params),i.$expr}const Oz=["value","update","init","react","bind"];function fC(t,n){P(t+' for "outer" push: '+G(n))}function dC(t,n){const e=t.name;if(t.push==="outer")n.signals[e]||fC("No prior signal definition",e),Oz.forEach(r=>{t[r]!==void 0&&fC("Invalid property ",r)});else{const r=n.addSignal(e,t.value);t.react===!1&&(r.react=!1),t.bind&&n.addBinding(e,t.bind)}}function X1(t,n,e,r){this.id=-1,this.type=t,this.value=n,this.params=e,r&&(this.parent=r)}function md(t,n,e,r){return new X1(t,n,e,r)}function gd(t,n){return md("operator",t,n)}function lt(t){const n={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(n),n}function tl(t,n){return n?{$field:t,$name:n}:{$field:t}}const J1=tl("key");function hC(t,n){return{$compare:t,$order:n}}function yd(t,n){return(t&&t.signal?"$"+t.signal:t||"")+(t&&n?"_":"")+(n&&n.signal?"$"+n.signal:n||"")}const K1="scope",Q1="view";function pn(t){return t&&t.signal}function vd(t){if(pn(t))return!0;if(Z(t)){for(const n in t)if(vd(t[n]))return!0}return!1}function ar(t,n){return t??n}function Ya(t){return t&&t.signal||t}const pC="timer";function nl(t,n){return(t.merge?Nz:t.stream?Rz:t.type?Tz:P("Invalid stream specification: "+G(t)))(t,n)}function Nz(t,n){const e=Z1({merge:t.merge.map(r=>nl(r,n))},t,n);return n.addStream(e).id}function Rz(t,n){const e=Z1({stream:nl(t.stream,n)},t,n);return n.addStream(e).id}function Tz(t,n){let e;t.type===pC?(e=n.event(pC,t.throttle),t={between:t.between,filter:t.filter}):e=n.event(function(i){return i===K1?Q1:i||Q1}(t.source),t.type);const r=Z1({stream:e},t,n);return Object.keys(r).length===1?e:n.addStream(r).id}function Z1(t,n,e){let r=n.between;return r&&(r.length!==2&&P('Stream "between" parameter must have 2 entries: '+G(n)),t.between=[nl(r[0],e),nl(r[1],e)]),r=n.filter?[].concat(n.filter):[],(n.marktype||n.markname||n.markrole)&&r.push(function(i,a,o){const s="event.item";return s+(i&&i!=="*"?"&&"+s+".mark.marktype==='"+i+"'":"")+(o?"&&"+s+".mark.role==='"+o+"'":"")+(a?"&&"+s+".mark.name==='"+a+"'":"")}(n.marktype,n.markname,n.markrole)),n.source===K1&&r.push("inScope(event.item)"),r.length&&(t.filter=Tr("("+r.join(")&&(")+")",e).$expr),(r=n.throttle)!=null&&(t.throttle=+r),(r=n.debounce)!=null&&(t.debounce=+r),n.consume&&(t.consume=!0),t}const Pz={code:"_.$value",ast:{type:"Identifier",value:"value"}};function jz(t,n,e){const r=t.encode,i={target:e};let a=t.events,o=t.update,s=[];a||P("Signal update missing events specification."),Q(a)&&(a=aa(a,n.isSubscope()?K1:Q1)),a=J(a).filter(u=>u.signal||u.scale?(s.push(u),0):1),s.length>1&&(s=[Lz(s)]),a.length&&s.push(a.length>1?{merge:a}:a[0]),r!=null&&(o&&P("Signal encode and update are mutually exclusive."),o="encode(item(),"+G(r)+")"),i.update=Q(o)?Tr(o,n):o.expr!=null?Tr(o.expr,n):o.value!=null?o.value:o.signal!=null?{$expr:Pz,$params:{$value:n.signalRef(o.signal)}}:P("Invalid signal update specification."),t.force&&(i.options={force:!0}),s.forEach(u=>n.addUpdate(xt(function(l,c){return{source:l.signal?c.signalRef(l.signal):l.scale?c.scaleRef(l.scale):nl(l,c)}}(u,n),i)))}function Lz(t){return{signal:"["+t.map(n=>n.scale?'scale("'+n.scale+'")':n.signal)+"]"}}const Pt=t=>(n,e,r)=>md(t,e,n||void 0,r),mC=Pt("aggregate"),qz=Pt("axisticks"),gC=Pt("bound"),or=Pt("collect"),yC=Pt("compare"),Uz=Pt("datajoin"),vC=Pt("encode"),Iz=Pt("expression"),Wz=Pt("facet"),Hz=Pt("field"),Gz=Pt("key"),Vz=Pt("legendentries"),Yz=Pt("load"),Xz=Pt("mark"),Jz=Pt("multiextent"),Kz=Pt("multivalues"),Qz=Pt("overlap"),Zz=Pt("params"),bC=Pt("prefacet"),tO=Pt("projection"),nO=Pt("proxy"),eO=Pt("relay"),xC=Pt("render"),rO=Pt("scale"),Xa=Pt("sieve"),iO=Pt("sortitems"),wC=Pt("viewlayout"),aO=Pt("values");let oO=0;const AC={min:"min",max:"max",count:"sum"};function sO(t,n){const e=n.getScale(t.name).params;let r;for(r in e.domain=_C(t.domain,t,n),t.range!=null&&(e.range=DC(t,n,e)),t.interpolate!=null&&function(i,a){a.interpolate=Ue(i.type||i),i.gamma!=null&&(a.interpolateGamma=Ue(i.gamma))}(t.interpolate,e),t.nice!=null&&(e.nice=function(i,a){return i.signal?a.signalRef(i.signal):Z(i)?{interval:Ue(i.interval),step:Ue(i.step)}:Ue(i)}(t.nice,n)),t.bins!=null&&(e.bins=function(i,a){return i.signal||T(i)?bd(i,a):a.objectProperty(i)}(t.bins,n)),t)tt(e,r)||r==="name"||(e[r]=Ue(t[r],n))}function Ue(t,n){return Z(t)?t.signal?n.signalRef(t.signal):P("Unsupported object: "+G(t)):t}function bd(t,n){return t.signal?n.signalRef(t.signal):t.map(e=>Ue(e,n))}function xd(t){P("Can not find data set: "+G(t))}function _C(t,n,e){if(t)return t.signal?e.signalRef(t.signal):(T(t)?uO:t.fields?cO:lO)(t,n,e);n.domainMin==null&&n.domainMax==null||P("No scale domain defined for domainMin/domainMax to override.")}function uO(t,n,e){return t.map(r=>Ue(r,e))}function lO(t,n,e){const r=e.getData(t.data);return r||xd(t.data),Oo(n.type)?r.valuesRef(e,t.field,kC(t.sort,!1)):hw(n.type)?r.domainRef(e,t.field):r.extentRef(e,t.field)}function cO(t,n,e){const r=t.data,i=t.fields.reduce((a,o)=>(o=Q(o)?{data:r,field:o}:T(o)||o.signal?function(s,u){const l="_:vega:_"+oO++,c=or({});if(T(s))c.value={$ingest:s};else if(s.signal){const f="setdata("+G(l)+","+s.signal+")";c.params.input=u.signalRef(f)}return u.addDataPipeline(l,[c,Xa({})]),{data:l,field:"data"}}(o,e):o,a.push(o),a),[]);return(Oo(n.type)?fO:hw(n.type)?dO:hO)(t,e,i)}function fO(t,n,e){const r=kC(t.sort,!0);let i,a;const o=e.map(l=>{const c=n.getData(l.data);return c||xd(l.data),c.countsRef(n,l.field,r)}),s={groupby:J1,pulse:o};r&&(i=r.op||"count",a=r.field?yd(i,r.field):"count",s.ops=[AC[i]],s.fields=[n.fieldRef(a)],s.as=[a]),i=n.add(mC(s));const u=n.add(or({pulse:lt(i)}));return a=n.add(aO({field:J1,sort:n.sortRef(r),pulse:lt(u)})),lt(a)}function kC(t,n){return t&&(t.field||t.op?t.field||t.op==="count"?n&&t.field&&t.op&&!AC[t.op]&&P("Multiple domain scales can not be sorted using "+t.op):P("No field provided for sort aggregate op: "+t.op):Z(t)?t.field="key":t={field:"key"}),t}function dO(t,n,e){const r=e.map(i=>{const a=n.getData(i.data);return a||xd(i.data),a.domainRef(n,i.field)});return lt(n.add(Kz({values:r})))}function hO(t,n,e){const r=e.map(i=>{const a=n.getData(i.data);return a||xd(i.data),a.extentRef(n,i.field)});return lt(n.add(Jz({extents:r})))}function DC(t,n,e){const r=n.config.range;let i=t.range;if(i.signal)return n.signalRef(i.signal);if(Q(i)){if(r&&tt(r,i))return DC(t=xt({},t,{range:r[i]}),n,e);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=Oo(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:P("Unrecognized scale range value: "+G(i))}else{if(i.scheme)return e.scheme=T(i.scheme)?bd(i.scheme,n):Ue(i.scheme,n),i.extent&&(e.schemeExtent=bd(i.extent,n)),void(i.count&&(e.schemeCount=Ue(i.count,n)));if(i.step)return void(e.rangeStep=Ue(i.step,n));if(Oo(t.type)&&!T(i))return _C(i,t,n);T(i)||P("Unsupported range type: "+G(i))}return i.map(a=>(T(a)?bd:Ue)(a,n))}function ty(t,n,e){return T(t)?t.map(r=>ty(r,n,e)):Z(t)?t.signal?e.signalRef(t.signal):n==="fit"?t:P("Unsupported parameter object: "+G(t)):t}const sr="top",rs="left",is="right",oa="bottom",FC="center",ny="index",ey="label",as="perc",Ie="value",el="guide-label",ry="guide-title",pO="group-title",mO="group-subtitle",CC="symbol",wd="gradient",iy="discrete",ay="size",oy=[ay,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],rl={name:1,style:1,interactive:1},_t={value:0},We={value:1},Ad="group",EC="rect",sy="rule",Ja="text";function il(t){return t.type=Ad,t.interactive=t.interactive||!1,t}function de(t,n){const e=(r,i)=>ar(t[r],ar(n[r],i));return e.isVertical=r=>ar(t.direction,n.direction||(r?n.symbolDirection:n.gradientDirection))==="vertical",e.gradientLength=()=>ar(t.gradientLength,n.gradientLength||n.gradientWidth),e.gradientThickness=()=>ar(t.gradientThickness,n.gradientThickness||n.gradientHeight),e.entryColumns=()=>ar(t.columns,ar(n.columns,+e.isVertical(!0))),e}function $C(t,n){const e=n&&(n.update&&n.update[t]||n.enter&&n.enter[t]);return e&&e.signal?e:e?e.value:null}function _d(t,n,e){return`item.anchor === 'start' ? ${t} : item.anchor === 'end' ? ${n} : ${e}`}const uy=_d(G(rs),G(is),G(FC));function SC(t,n){return n?t?Z(t)?Object.assign({},t,{offset:SC(t.offset,n)}):{value:t,offset:n}:n:t}function Fe(t,n){return n?(t.name=n.name,t.style=n.style||t.style,t.interactive=!!n.interactive,t.encode=ns(t.encode,n,rl)):t.interactive=!1,t}function gO(t,n,e,r){const i=de(t,e),a=i.isVertical(),o=i.gradientThickness(),s=i.gradientLength();let u,l,c,f,d;a?(l=[0,1],c=[0,0],f=o,d=s):(l=[0,0],c=[1,0],f=s,d=o);const h={enter:u={opacity:_t,x:_t,y:_t,width:yn(f),height:yn(d)},update:xt({},u,{opacity:We,fill:{gradient:n,start:l,stop:c}}),exit:{opacity:_t}};return Cn(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),Fe({type:EC,role:"legend-gradient",encode:h},r)}function yO(t,n,e,r,i){const a=de(t,e),o=a.isVertical(),s=a.gradientThickness(),u=a.gradientLength();let l,c,f,d,h="";o?(l="y",f="y2",c="x",d="width",h="1-"):(l="x",f="x2",c="y",d="height");const p={opacity:_t,fill:{scale:n,field:Ie}};p[l]={signal:h+"datum."+as,mult:u},p[c]=_t,p[f]={signal:h+"datum.perc2",mult:u},p[d]=yn(s);const m={enter:p,update:xt({},p,{opacity:We}),exit:{opacity:_t}};return Cn(m,{stroke:a("gradientStrokeColor"),strokeWidth:a("gradientStrokeWidth")},{opacity:a("gradientOpacity")}),Fe({type:EC,role:"legend-band",key:Ie,from:i,encode:m},r)}const vO=`datum.${as}<=0?"${rs}":datum.${as}>=1?"${is}":"${FC}"`,bO=`datum.${as}<=0?"${oa}":datum.${as}>=1?"${sr}":"middle"`;function MC(t,n,e,r){const i=de(t,n),a=i.isVertical(),o=yn(i.gradientThickness()),s=i.gradientLength();let u,l,c,f,d=i("labelOverlap"),h="";const p={enter:u={opacity:_t},update:l={opacity:We,text:{field:ey}},exit:{opacity:_t}};return Cn(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:ar(t.labelLimit,n.gradientLabelLimit)}),a?(u.align={value:"left"},u.baseline=l.baseline={signal:bO},c="y",f="x",h="1-"):(u.align=l.align={signal:vO},u.baseline={value:"top"},c="x",f="y"),u[c]=l[c]={signal:h+"datum."+as,mult:s},u[f]=l[f]=o,o.offset=ar(t.labelOffset,n.gradientLabelOffset)||0,d=d?{separation:i("labelSeparation"),method:d,order:"datum."+ny}:void 0,Fe({type:Ja,role:oC,style:el,key:Ie,from:r,encode:p,overlap:d},e)}function xO(t,n,e,r,i){const a=de(t,n),o=e.entries,s=!(!o||!o.interactive),u=o?o.name:void 0,l=a("clipHeight"),c=a("symbolOffset"),f={data:"value"},d=`(${i}) ? datum.offset : datum.${ay}`,h=l?yn(l):{field:ay},p=`datum.${ny}`,m=`max(1, ${i})`;let g,y,v,x,b;h.mult=.5,g={enter:y={opacity:_t,x:{signal:d,mult:.5,offset:c},y:h},update:v={opacity:We,x:y.x,y:y.y},exit:{opacity:_t}};let w=null,A=null;t.fill||(w=n.symbolBaseFillColor,A=n.symbolBaseStrokeColor),Cn(g,{fill:a("symbolFillColor",w),shape:a("symbolType"),size:a("symbolSize"),stroke:a("symbolStrokeColor",A),strokeDash:a("symbolDash"),strokeDashOffset:a("symbolDashOffset"),strokeWidth:a("symbolStrokeWidth")},{opacity:a("symbolOpacity")}),oy.forEach(C=>{t[C]&&(v[C]=y[C]={scale:t[C],field:Ie})});const _=Fe({type:"symbol",role:"legend-symbol",key:Ie,from:f,clip:!!l||void 0,encode:g},e.symbols),k=yn(c);k.offset=a("labelOffset"),g={enter:y={opacity:_t,x:{signal:d,offset:k},y:h},update:v={opacity:We,text:{field:ey},x:y.x,y:y.y},exit:{opacity:_t}},Cn(g,{align:a("labelAlign"),baseline:a("labelBaseline"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontStyle:a("labelFontStyle"),fontWeight:a("labelFontWeight"),limit:a("labelLimit")});const D=Fe({type:Ja,role:oC,style:el,key:Ie,from:f,encode:g},e.labels);return g={enter:{noBound:{value:!l},width:_t,height:l?yn(l):_t,opacity:_t},exit:{opacity:_t},update:v={opacity:We,row:{signal:null},column:{signal:null}}},a.isVertical(!0)?(x=`ceil(item.mark.items.length / ${m})`,v.row.signal=`${p}%${x}`,v.column.signal=`floor(${p} / ${x})`,b={field:["row",p]}):(v.row.signal=`floor(${p} / ${m})`,v.column.signal=`${p} % ${m}`,b={field:p}),v.column.signal=`(${i})?${v.column.signal}:${p}`,il({role:V1,from:r={facet:{data:r,name:"value",groupby:ny}},encode:ns(g,o,rl),marks:[_,D],name:u,interactive:s,sort:b})}const ly='item.orient === "left"',cy='item.orient === "right"',kd=`(${ly} || ${cy})`,wO=`datum.vgrad && ${kd}`,AO=_d('"top"','"bottom"','"middle"'),_O=`datum.vgrad && ${cy} ? (${_d('"right"','"left"','"center"')}) : (${kd} && !(datum.vgrad && ${ly})) ? "left" : ${uy}`,kO=`item._anchor || (${kd} ? "middle" : "start")`,DO=`${wO} ? (${ly} ? -90 : 90) : 0`,FO=`${kd} ? (datum.vgrad ? (${cy} ? "bottom" : "top") : ${AO}) : "top"`;function CO(t,n){let e;return Z(t)&&(t.signal?e=t.signal:t.path?e="pathShape("+BC(t.path)+")":t.sphere&&(e="geoShape("+BC(t.sphere)+', {type: "Sphere"})')),e?n.signalRef(e):!!t}function BC(t){return Z(t)&&t.signal?t.signal:G(t)}function zC(t){const n=t.role||"";return n.startsWith("axis")||n.startsWith("legend")||n.startsWith("title")?n:t.type===Ad?V1:n||H1}function EO(t){return{marktype:t.type,name:t.name||void 0,role:t.role||zC(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function $O(t,n){return t&&t.signal?n.signalRef(t.signal):t!==!1}function fy(t,n){const e=l2(t.type);e||P("Unrecognized transform type: "+G(t.type));const r=md(e.type.toLowerCase(),null,OC(e,t,n));return t.signal&&n.addSignal(t.signal,n.proxy(r)),r.metadata=e.metadata||{},r}function OC(t,n,e){const r={},i=t.params.length;for(let a=0;a<i;++a){const o=t.params[a];r[o.name]=SO(o,n,e)}return r}function SO(t,n,e){const r=t.type,i=n[t.name];return r==="index"?function(a,o,s){return Q(o.from)||P('Lookup "from" parameter must be a string literal.'),s.getData(o.from).lookupRef(s,o.key)}(0,n,e):i!==void 0?r==="param"?function(a,o,s){const u=o[a.name];return a.array?(T(u)||P("Expected an array of sub-parameters. Instead: "+G(u)),u.map(l=>RC(a,l,s))):RC(a,u,s)}(t,n,e):r==="projection"?e.projectionRef(n[t.name]):t.array&&!pn(i)?i.map(a=>NC(t,a,e)):NC(t,i,e):void(t.required&&P("Missing required "+G(n.type)+" parameter: "+G(t.name)))}function NC(t,n,e){const r=t.type;if(pn(n))return TC(r)?P("Expression references can not be signals."):dy(r)?e.fieldRef(n):PC(r)?e.compareRef(n):e.signalRef(n.signal);{const i=t.expr||dy(r);return i&&MO(n)?e.exprRef(n.expr,n.as):i&&BO(n)?tl(n.field,n.as):TC(r)?Tr(n,e):zO(r)?lt(e.getData(n).values):dy(r)?tl(n):PC(r)?e.compareRef(n):n}}function RC(t,n,e){const r=t.params.length;let i;for(let o=0;o<r;++o){i=t.params[o];for(const s in i.key)if(i.key[s]!==n[s]){i=null;break}if(i)break}i||P("Unsupported parameter: "+G(n));const a=xt(OC(i,n,e),i.key);return lt(e.add(Zz(a)))}const MO=t=>t&&t.expr,BO=t=>t&&t.field,zO=t=>t==="data",TC=t=>t==="expr",dy=t=>t==="field",PC=t=>t==="compare";function Dd(t,n){return t.$ref?t:t.data&&t.data.$ref?t.data:lt(n.getData(t.data).output)}function Ka(t,n,e,r,i){this.scope=t,this.input=n,this.output=e,this.values=r,this.aggregate=i,this.index={}}function jC(t){return Q(t)?t:null}function LC(t,n,e){const r=yd(e.op,e.field);let i;if(n.ops){for(let a=0,o=n.as.length;a<o;++a)if(n.as[a]===r)return}else n.ops=["count"],n.fields=[null],n.as=["count"];e.op&&(n.ops.push((i=e.op.signal)?t.signalRef(i):e.op),n.fields.push(t.fieldRef(e.field)),n.as.push(r))}function al(t,n,e,r,i,a,o){const s=n[e]||(n[e]={}),u=function(d){return Z(d)?(d.order==="descending"?"-":"+")+yd(d.op,d.field):""}(a);let l,c,f=jC(i);if(f!=null&&(t=n.scope,f+=u?"|"+u:"",l=s[f]),!l){const d=a?{field:J1,pulse:n.countsRef(t,i,a)}:{field:t.fieldRef(i),pulse:lt(n.output)};u&&(d.sort=t.sortRef(a)),c=t.add(md(r,void 0,d)),o&&(n.index[i]=c),l=lt(c),f!=null&&(s[f]=l)}return l}function qC(t,n,e){const r=t.remove,i=t.insert,a=t.toggle,o=t.modify,s=t.values,u=n.add(gd()),l=Tr("if("+t.trigger+',modify("'+e+'",'+[i,r,a,o,s].map(c=>c??"null").join(",")+"),0)",n);u.update=l.$expr,u.params=l.$params}function Fd(t,n){const e=zC(t),r=t.type===Ad,i=t.from&&t.from.facet,a=t.overlap;let o,s,u,l,c,f,d,h=t.layout||e===V1||e===G1;const p=e===H1||h||i,m=function(A,_,k){let D,C,F,E,$;return A?(D=A.facet)&&(_||P("Only group marks can be faceted."),D.field!=null?E=$=Dd(D,k):(A.data?$=lt(k.getData(A.data).aggregate):(F=fy(xt({type:"aggregate",groupby:J(D.groupby)},D.aggregate),k),F.params.key=k.keyRef(D.groupby),F.params.pulse=Dd(D,k),E=$=lt(k.add(F))),C=k.keyRef(D.groupby,!0))):E=lt(k.add(or(null,[{}]))),E||(E=Dd(A,k)),{key:C,pulse:E,parent:$}}(t.from,r,n);s=n.add(Uz({key:m.key||(t.key?tl(t.key):void 0),pulse:m.pulse,clean:!r}));const g=lt(s);s=u=n.add(or({pulse:g})),s=n.add(Xz({markdef:EO(t),interactive:$O(t.interactive,n),clip:CO(t.clip,n),context:{$context:!0},groups:n.lookup(),parent:n.signals.parent?n.signalRef("parent"):null,index:n.markpath(),pulse:lt(s)}));const y=lt(s);s=l=n.add(vC(cC(t.encode,t.type,e,t.style,n,{mod:!1,pulse:y}))),s.params.parent=n.encode(),t.transform&&t.transform.forEach(A=>{const _=fy(A,n),k=_.metadata;(k.generates||k.changes)&&P("Mark transforms should not generate new data."),k.nomod||(l.params.mod=!0),_.params.pulse=lt(s),n.add(s=_)}),t.sort&&(s=n.add(iO({sort:n.compareRef(t.sort),pulse:lt(s)})));const v=lt(s);(i||h)&&(h=n.add(wC({layout:n.objectProperty(t.layout),legends:n.legends,mark:y,pulse:v})),f=lt(h));const x=n.add(gC({mark:y,pulse:f||v}));d=lt(x),r&&(p&&(o=n.operators,o.pop(),h&&o.pop()),n.pushState(v,f||d,g),i?function(A,_,k){const D=A.from.facet,C=D.name,F=Dd(D,_);let E;D.name||P("Facet must have a name: "+G(D)),D.data||P("Facet must reference a data set: "+G(D)),D.field?E=_.add(bC({field:_.fieldRef(D.field),pulse:F})):D.groupby?E=_.add(Wz({key:_.keyRef(D.groupby),group:lt(_.proxy(k.parent)),pulse:F})):P("Facet must specify groupby or field: "+G(D));const $=_.fork(),M=$.add(or()),S=$.add(Xa({pulse:lt(M)}));$.addData(C,new Ka($,M,M,S)),$.addSignal("parent",null),E.params.subflow={$subflow:$.parse(A).toRuntime()}}(t,n,m):p?function(A,_,k){const D=_.add(bC({pulse:k.pulse})),C=_.fork();C.add(Xa()),C.addSignal("parent",null),D.params.subflow={$subflow:C.parse(A).toRuntime()}}(t,n,m):n.parse(t),n.popState(),p&&(h&&o.push(h),o.push(x))),a&&(d=function(A,_,k){const D=A.method,C=A.bound,F=A.separation,E={separation:pn(F)?k.signalRef(F.signal):F,method:pn(D)?k.signalRef(D.signal):D,pulse:_};if(A.order&&(E.sort=k.compareRef({field:A.order})),C){const $=C.tolerance;E.boundTolerance=pn($)?k.signalRef($.signal):+$,E.boundScale=k.scaleRef(C.scale),E.boundOrient=C.orient}return lt(k.add(Qz(E)))}(a,d,n));const b=n.add(xC({pulse:d})),w=n.add(Xa({pulse:lt(b)},void 0,n.parent()));t.name!=null&&(c=t.name,n.addData(c,new Ka(n,u,b,w)),t.on&&t.on.forEach(A=>{(A.insert||A.remove||A.toggle)&&P("Marks only support modify triggers."),qC(A,n,c)}))}function OO(t,n){const e=n.config.legend,r=t.encode||{},i=de(t,e),a=r.legend||{},o=a.name||void 0,s=a.interactive,u=a.style,l={};let c,f,d,h=0;oy.forEach(v=>t[v]?(l[v]=t[v],h=h||t[v]):0),h||P("Missing valid scale for legend.");const p=function(v,x){let b=v.type||CC;return v.type||function(w){return oy.reduce((A,_)=>A+(w[_]?1:0),0)}(v)!==1||!v.fill&&!v.stroke||(b=Cm(x)?wd:Em(x)?iy:CC),b!==wd?b:Em(x)?iy:wd}(t,n.scaleType(h)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=lt(n.add(or(null,[m]))),y=lt(n.add(Vz(f={type:p,scale:n.scaleRef(h),count:n.objectProperty(i("tickCount")),limit:n.property(i("symbolLimit")),values:n.objectProperty(t.values),minstep:n.property(t.tickMinStep),formatType:n.property(t.formatType),formatSpecifier:n.property(t.format)})));return p===wd?(d=[gO(t,h,e,r.gradient),MC(t,e,r.labels,y)],f.count=f.count||n.signalRef(`max(2,2*floor((${Ya(i.gradientLength())})/100))`)):p===iy?d=[yO(t,h,e,r.gradient,y),MC(t,e,r.labels,y)]:(c=function(v,x){const b=de(v,x);return{align:b("gridAlign"),columns:b.entryColumns(),center:{row:!0,column:!1},padding:{row:b("rowPadding"),column:b("columnPadding")}}}(t,e),d=[xO(t,e,r,y,Ya(c.columns))],f.size=function(v,x,b){const w=Ya(UC("size",v,b)),A=Ya(UC("strokeWidth",v,b)),_=Ya(function(k,D,C){return $C("fontSize",k)||function(F,E,$){const M=E.config.style[$];return M&&M[F]}("fontSize",D,C)}(b[1].encode,x,el));return Tr(`max(ceil(sqrt(${w})+${A}),${_})`,x)}(t,n,d[0].marks)),d=[il({role:"legend-entry",from:g,encode:{enter:{x:{value:0},y:{value:0}}},marks:d,layout:c,interactive:s})],m.title&&d.push(function(v,x,b,w){const A=de(v,x),_={enter:{opacity:_t},update:{opacity:We,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:_t}};return Cn(_,{orient:A("titleOrient"),_anchor:A("titleAnchor"),anchor:{signal:kO},angle:{signal:DO},align:{signal:_O},baseline:{signal:FO},text:v.title,fill:A("titleColor"),fillOpacity:A("titleOpacity"),font:A("titleFont"),fontSize:A("titleFontSize"),fontStyle:A("titleFontStyle"),fontWeight:A("titleFontWeight"),limit:A("titleLimit"),lineHeight:A("titleLineHeight")},{align:A("titleAlign"),baseline:A("titleBaseline")}),Fe({type:Ja,role:"legend-title",style:ry,from:w,encode:_},b)}(t,e,r.title,g)),Fd(il({role:"legend",from:g,encode:ns(NO(i,t,e),a,rl),marks:d,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:s,style:u}),n)}function NO(t,n,e){const r={enter:{},update:{}};return Cn(r,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:e.strokeWidth,strokeDash:e.strokeDash,x:t("legendX"),y:t("legendY"),format:n.format,formatType:n.formatType}),r}function UC(t,n,e){return n[t]?`scale("${n[t]}",datum)`:$C(t,e[0].encode)}Ka.fromEntries=function(t,n){const e=n.length,r=n[e-1],i=n[e-2];let a=n[0],o=null,s=1;for(a&&a.type==="load"&&(a=n[1]),t.add(n[0]);s<e;++s)n[s].params.pulse=lt(n[s-1]),t.add(n[s]),n[s].type==="aggregate"&&(o=n[s]);return new Ka(t,a,i,r,o)},Ka.prototype={countsRef(t,n,e){const r=this,i=r.counts||(r.counts={}),a=jC(n);let o,s,u;return a!=null&&(t=r.scope,o=i[a]),o?e&&e.field&&LC(t,o.agg.params,e):(u={groupby:t.fieldRef(n,"key"),pulse:lt(r.output)},e&&e.field&&LC(t,u,e),s=t.add(mC(u)),o=t.add(or({pulse:lt(s)})),o={agg:s,ref:lt(o)},a!=null&&(i[a]=o)),o.ref},tuplesRef(){return lt(this.values)},extentRef(t,n){return al(t,this,"extent","extent",n,!1)},domainRef(t,n){return al(t,this,"domain","values",n,!1)},valuesRef(t,n,e){return al(t,this,"vals","values",n,e||!0)},lookupRef(t,n){return al(t,this,"lookup","tupleindex",n,!1)},indataRef(t,n){return al(t,this,"indata","tupleindex",n,!0,!0)}};const RO=`item.orient==="${rs}"?-90:item.orient==="${is}"?90:0`;function TO(t,n){const e=de(t=Q(t)?{text:t}:t,n.config.title),r=t.encode||{},i=r.group||{},a=i.name||void 0,o=i.interactive,s=i.style,u=[],l=lt(n.add(or(null,[{}])));return u.push(function(c,f,d,h){const p={value:0},m=c.text,g={enter:{opacity:p},update:{opacity:{value:1}},exit:{opacity:p}};return Cn(g,{text:m,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:f("dx"),dy:f("dy"),fill:f("color"),font:f("font"),fontSize:f("fontSize"),fontStyle:f("fontStyle"),fontWeight:f("fontWeight"),lineHeight:f("lineHeight")},{align:f("align"),angle:f("angle"),baseline:f("baseline")}),Fe({type:Ja,role:$z,style:pO,from:h,encode:g},d)}(t,e,function(c){const f=c.encode;return f&&f.title||xt({name:c.name,interactive:c.interactive,style:c.style},f)}(t),l)),t.subtitle&&u.push(function(c,f,d,h){const p={value:0},m=c.subtitle,g={enter:{opacity:p},update:{opacity:{value:1}},exit:{opacity:p}};return Cn(g,{text:m,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:f("dx"),dy:f("dy"),fill:f("subtitleColor"),font:f("subtitleFont"),fontSize:f("subtitleFontSize"),fontStyle:f("subtitleFontStyle"),fontWeight:f("subtitleFontWeight"),lineHeight:f("subtitleLineHeight")},{align:f("align"),angle:f("angle"),baseline:f("baseline")}),Fe({type:Ja,role:Sz,style:mO,from:h,encode:g},d)}(t,e,r.subtitle,l)),Fd(il({role:"title",from:l,encode:PO(e,i),marks:u,aria:e("aria"),description:e("description"),zindex:e("zindex"),name:a,interactive:o,style:s}),n)}function PO(t,n){const e={enter:{},update:{}};return Cn(e,{orient:t("orient"),anchor:t("anchor"),align:{signal:uy},angle:{signal:RO},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),ns(e,n,rl)}function jO(t,n){const e=[];t.transform&&t.transform.forEach(r=>{e.push(fy(r,n))}),t.on&&t.on.forEach(r=>{qC(r,n,t.name)}),n.addDataPipeline(t.name,function(r,i,a){const o=[];let s,u,l,c,f,d=null,h=!1,p=!1;for(r.values?pn(r.values)||vd(r.format)?(o.push(IC(i,r)),o.push(d=Qa())):o.push(d=Qa({$ingest:r.values,$format:r.format})):r.url?vd(r.url)||vd(r.format)?(o.push(IC(i,r)),o.push(d=Qa())):o.push(d=Qa({$request:r.url,$format:r.format})):r.source&&(d=s=J(r.source).map(m=>lt(i.getData(m).output)),o.push(null)),u=0,l=a.length;u<l;++u)c=a[u],f=c.metadata,d||f.source||o.push(d=Qa()),o.push(c),f.generates&&(p=!0),f.modifies&&!p&&(h=!0),f.source?d=c:f.changes&&(d=null);return s&&(l=s.length-1,o[0]=eO({derive:h,pulse:l?s:s[0]}),(h||l)&&o.splice(1,0,Qa())),d||o.push(Qa()),o.push(Xa({})),o}(t,n,e))}function Qa(t){const n=or({},t);return n.metadata={source:!0},n}function IC(t,n){return Yz({url:n.url?t.property(n.url):void 0,async:n.async?t.property(n.async):void 0,values:n.values?t.property(n.values):void 0,format:t.objectProperty(n.format)})}const WC=t=>t===oa||t===sr,Cd=(t,n,e)=>pn(t)?UO(t.signal,n,e):t===rs||t===sr?n:e,vn=(t,n,e)=>pn(t)?LO(t.signal,n,e):WC(t)?n:e,ur=(t,n,e)=>pn(t)?qO(t.signal,n,e):WC(t)?e:n,HC=(t,n,e)=>pn(t)?IO(t.signal,n,e):t===sr?{value:n}:{value:e},LO=(t,n,e)=>GC(`${t} === '${sr}' || ${t} === '${oa}'`,n,e),qO=(t,n,e)=>GC(`${t} !== '${sr}' && ${t} !== '${oa}'`,n,e),UO=(t,n,e)=>hy(`${t} === '${rs}' || ${t} === '${sr}'`,n,e),IO=(t,n,e)=>hy(`${t} === '${sr}'`,n,e),WO=(t,n,e)=>hy(`${t} === '${is}'`,n,e),GC=(t,n,e)=>(n=n!=null?yn(n):n,e=e!=null?yn(e):e,VC(n)&&VC(e)?{signal:`${t} ? (${n=n?n.signal||G(n.value):null}) : (${e=e?e.signal||G(e.value):null})`}:[xt({test:t},n)].concat(e||[])),VC=t=>t==null||Object.keys(t).length===1,hy=(t,n,e)=>({signal:`${t} ? (${os(n)}) : (${os(e)})`}),HO=(t,n,e,r,i)=>({signal:(r!=null?`${t} === '${rs}' ? (${os(r)}) : `:"")+(e!=null?`${t} === '${oa}' ? (${os(e)}) : `:"")+(i!=null?`${t} === '${is}' ? (${os(i)}) : `:"")+(n!=null?`${t} === '${sr}' ? (${os(n)}) : `:"")+"(null)"}),os=t=>pn(t)?t.signal:t==null?null:G(t),ss=(t,n)=>{const e=t.signal;return e&&e.endsWith("(null)")?{signal:e.slice(0,-6)+n.signal}:t};function us(t,n,e,r){let i;if(n&&tt(n,t))return n[t];if(tt(e,t))return e[t];if(t.startsWith("title")){switch(t){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=t[5].toLowerCase()+t.slice(6)}return r[ry][i]}if(t.startsWith("label")){switch(t){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=t[5].toLowerCase()+t.slice(6)}return r[el][i]}return null}function YC(t){const n={};for(const e of t)if(e)for(const r in e)n[r]=1;return Object.keys(n)}function XC(t,n){return{scale:t.scale,range:n}}function GO(t,n,e,r,i){const a=de(t,n),o=t.orient,s=t.gridScale,u=Cd(o,1,-1),l=function(v,x){if(x!==1)if(Z(v)){let b=v=xt({},v);for(;b.mult!=null;){if(!Z(b.mult))return b.mult=pn(x)?{signal:`(${b.mult}) * (${x.signal})`}:b.mult*x,v;b=b.mult=xt({},b.mult)}b.mult=x}else v=pn(x)?{signal:`(${x.signal}) * (${v||0})`}:x*(v||0);return v}(t.offset,u);let c,f,d;const h={enter:c={opacity:_t},update:d={opacity:We},exit:f={opacity:_t}};Cn(h,{stroke:a("gridColor"),strokeCap:a("gridCap"),strokeDash:a("gridDash"),strokeDashOffset:a("gridDashOffset"),strokeOpacity:a("gridOpacity"),strokeWidth:a("gridWidth")});const p={scale:t.scale,field:Ie,band:i.band,extra:i.extra,offset:i.offset,round:a("tickRound")},m=vn(o,{signal:"height"},{signal:"width"}),g=s?{scale:s,range:0,mult:u,offset:l}:{value:0,offset:l},y=s?{scale:s,range:1,mult:u,offset:l}:xt(m,{mult:u,offset:l});return c.x=d.x=vn(o,p,g),c.y=d.y=ur(o,p,g),c.x2=d.x2=ur(o,y),c.y2=d.y2=vn(o,y),f.x=vn(o,p),f.y=ur(o,p),Fe({type:sy,role:"axis-grid",key:Ie,from:r,encode:h},e)}function py(t,n,e,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+n+","+e+","+r+","+i+")"}}function VO(t,n,e,r,i,a){const o=de(t,n),s=t.orient,u=t.scale,l=Cd(s,-1,1),c=Ya(o("labelFlush")),f=Ya(o("labelFlushOffset")),d=o("labelAlign"),h=o("labelBaseline");let p,m=c===0||!!c;const g=yn(i);g.mult=l,g.offset=yn(o("labelPadding")||0),g.offset.mult=l;const y={scale:u,field:Ie,band:.5,offset:SC(a.offset,o("labelOffset"))},v=vn(s,m?py(u,c,'"left"','"right"','"center"'):{value:"center"},((D,C,F)=>pn(D)?WO(D.signal,C,F):D===is?{value:C}:{value:F})(s,"left","right")),x=vn(s,HC(s,"bottom","top"),m?py(u,c,'"top"','"bottom"','"middle"'):{value:"middle"}),b=py(u,c,`-(${f})`,f,0);m=m&&f;const w={opacity:_t,x:vn(s,y,g),y:ur(s,y,g)},A={enter:w,update:p={opacity:We,text:{field:ey},x:w.x,y:w.y,align:v,baseline:x},exit:{opacity:_t,x:w.x,y:w.y}};Cn(A,{dx:!d&&m?vn(s,b):null,dy:!h&&m?ur(s,b):null}),Cn(A,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:d,baseline:h});const _=o("labelBound");let k=o("labelOverlap");return k=k||_?{separation:o("labelSeparation"),method:k,order:"datum.index",bound:_?{scale:u,orient:s,tolerance:_}:null}:void 0,p.align!==v&&(p.align=ss(p.align,v)),p.baseline!==x&&(p.baseline=ss(p.baseline,x)),Fe({type:Ja,role:"axis-label",style:el,key:Ie,from:r,encode:A,overlap:k},e)}function YO(t,n,e,r){const i=de(t,n),a=t.orient,o=Cd(a,-1,1);let s,u;const l={enter:s={opacity:_t,anchor:yn(i("titleAnchor",null)),align:{signal:uy}},update:u=xt({},s,{opacity:We,text:yn(t.title)}),exit:{opacity:_t}},c={signal:`lerp(range("${t.scale}"), ${_d(0,1,.5)})`};return u.x=vn(a,c),u.y=ur(a,c),s.angle=vn(a,_t,((f,d)=>d===0?0:pn(f)?{signal:`(${f.signal}) * ${d}`}:{value:f*d})(o,90)),s.baseline=vn(a,HC(a,oa,sr),{value:oa}),u.angle=s.angle,u.baseline=s.baseline,Cn(l,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),function(f,d,h,p){const m=(v,x)=>v!=null?(h.update[x]=ss(yn(v),h.update[x]),!1):!es(x,p),g=m(f("titleX"),"x"),y=m(f("titleY"),"y");h.enter.auto=y===g?yn(y):vn(d,yn(y),yn(g))}(i,a,l,e),l.update.align=ss(l.update.align,s.align),l.update.angle=ss(l.update.angle,s.angle),l.update.baseline=ss(l.update.baseline,s.baseline),Fe({type:Ja,role:"axis-title",style:ry,from:r,encode:l},e)}function XO(t,n){const e=function(m,g){var y,v,x,b=g.config,w=b.style,A=b.axis,_=g.scaleType(m.scale)==="band"&&b.axisBand,k=m.orient;if(pn(k)){const D=YC([b.axisX,b.axisY]),C=YC([b.axisTop,b.axisBottom,b.axisLeft,b.axisRight]);for(x of(y={},D))y[x]=vn(k,us(x,b.axisX,A,w),us(x,b.axisY,A,w));for(x of(v={},C))v[x]=HO(k.signal,us(x,b.axisTop,A,w),us(x,b.axisBottom,A,w),us(x,b.axisLeft,A,w),us(x,b.axisRight,A,w))}else y=k===sr||k===oa?b.axisX:b.axisY,v=b["axis"+k[0].toUpperCase()+k.slice(1)];return y||v||_?xt({},A,y,v,_):A}(t,n),r=t.encode||{},i=r.axis||{},a=i.name||void 0,o=i.interactive,s=i.style,u=de(t,e),l=function(m){const g=m("tickBand");let y,v,x=m("tickOffset");return g?g.signal?(y={signal:`(${g.signal}) === 'extent' ? 1 : 0.5`},v={signal:`(${g.signal}) === 'extent'`},Z(x)||(x={signal:`(${g.signal}) === 'extent' ? 0 : ${x}`})):g==="extent"?(y=1,v=!0,x=0):(y=.5,v=!1):(y=m("bandPosition"),v=m("tickExtra")),{extra:v,band:y,offset:x}}(u),c={scale:t.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:t.title!=null},f=lt(n.add(or({},[c]))),d=lt(n.add(qz({scale:n.scaleRef(t.scale),extra:n.property(l.extra),count:n.objectProperty(t.tickCount),values:n.objectProperty(t.values),minstep:n.property(t.tickMinStep),formatType:n.property(t.formatType),formatSpecifier:n.property(t.format)}))),h=[];let p;return c.grid&&h.push(GO(t,e,r.grid,d,l)),c.ticks&&(p=u("tickSize"),h.push(function(m,g,y,v,x,b){const w=de(m,g),A=m.orient,_=Cd(A,-1,1);let k,D,C;const F={enter:k={opacity:_t},update:C={opacity:We},exit:D={opacity:_t}};Cn(F,{stroke:w("tickColor"),strokeCap:w("tickCap"),strokeDash:w("tickDash"),strokeDashOffset:w("tickDashOffset"),strokeOpacity:w("tickOpacity"),strokeWidth:w("tickWidth")});const E=yn(x);E.mult=_;const $={scale:m.scale,field:Ie,band:b.band,extra:b.extra,offset:b.offset,round:w("tickRound")};return C.y=k.y=vn(A,_t,$),C.y2=k.y2=vn(A,E),D.x=vn(A,$),C.x=k.x=ur(A,_t,$),C.x2=k.x2=ur(A,E),D.y=ur(A,$),Fe({type:sy,role:"axis-tick",key:Ie,from:v,encode:F},y)}(t,e,r.ticks,d,p,l))),c.labels&&(p=c.ticks?p:0,h.push(VO(t,e,r.labels,d,p,l))),c.domain&&h.push(function(m,g,y,v){const x=de(m,g),b=m.orient;let w,A;const _={enter:w={opacity:_t},update:A={opacity:We},exit:{opacity:_t}};Cn(_,{stroke:x("domainColor"),strokeCap:x("domainCap"),strokeDash:x("domainDash"),strokeDashOffset:x("domainDashOffset"),strokeWidth:x("domainWidth"),strokeOpacity:x("domainOpacity")});const k=XC(m,0),D=XC(m,1);return w.x=A.x=vn(b,k,_t),w.x2=A.x2=vn(b,D),w.y=A.y=ur(b,k,_t),w.y2=A.y2=ur(b,D),Fe({type:sy,role:"axis-domain",from:v,encode:_},y)}(t,e,r.domain,f)),c.title&&h.push(YO(t,e,r.title,f)),Fd(il({role:"axis",from:f,encode:ns(JO(u,t),i,rl),marks:h,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:a,interactive:o,style:s}),n)}function JO(t,n){const e={enter:{},update:{}};return Cn(e,{orient:t("orient"),offset:t("offset")||0,position:ar(n.position,0),titlePadding:t("titlePadding"),minExtent:t("minExtent"),maxExtent:t("maxExtent"),range:{signal:`abs(span(range("${n.scale}")))`},translate:t("translate"),format:n.format,formatType:n.formatType}),e}function JC(t,n,e){const r=J(t.signals),i=J(t.scales);return e||r.forEach(a=>dC(a,n)),J(t.projections).forEach(a=>function(o,s){const u=s.config.projection||{},l={};for(const c in o)c!=="name"&&(l[c]=ty(o[c],c,s));for(const c in u)l[c]==null&&(l[c]=ty(u[c],c,s));s.addProjection(o.name,l)}(a,n)),i.forEach(a=>function(o,s){const u=o.type||"linear";cw(u)||P("Unrecognized scale type: "+G(u)),s.addScale(o.name,{type:u,domain:void 0})}(a,n)),J(t.data).forEach(a=>jO(a,n)),i.forEach(a=>sO(a,n)),(e||r).forEach(a=>function(o,s){const u=s.getSignal(o.name);let l=o.update;o.init&&(l?P("Signals can not include both init and update expressions."):(l=o.init,u.initonly=!0)),l&&(l=Tr(l,s),u.update=l.$expr,u.params=l.$params),o.on&&o.on.forEach(c=>jz(c,s,u.id))}(a,n)),J(t.axes).forEach(a=>XO(a,n)),J(t.marks).forEach(a=>Fd(a,n)),J(t.legends).forEach(a=>OO(a,n)),t.title&&TO(t.title,n),n.parseLambdas(),n}function KO(t,n){const e=n.config,r=lt(n.root=n.add(gd())),i=function(l,c){const f=m=>ar(l[m],c[m]),d=[ol("background",f("background")),ol("autosize",Cz(f("autosize"))),ol("padding",Ez(f("padding"))),ol("width",f("width")||0),ol("height",f("height")||0)],h=d.reduce((m,g)=>(m[g.name]=g,m),{}),p={};return J(l.signals).forEach(m=>{tt(h,m.name)?m=xt(h[m.name],m):d.push(m),p[m.name]=m}),J(c.signals).forEach(m=>{tt(p,m.name)||tt(h,m.name)||d.push(m)}),d}(t,e);i.forEach(l=>dC(l,n)),n.description=t.description||e.description,n.eventConfig=e.events,n.legends=n.objectProperty(e.legend&&e.legend.layout),n.locale=e.locale;const a=n.add(or()),o=n.add(vC(cC((l=>ns({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},l))(t.encode),Ad,G1,t.style,n,{pulse:lt(a)}))),s=n.add(wC({layout:n.objectProperty(t.layout),legends:n.legends,autosize:n.signalRef("autosize"),mark:r,pulse:lt(o)}));n.operators.pop(),n.pushState(lt(o),lt(s),null),JC(t,n,i),n.operators.push(s);let u=n.add(gC({mark:r,pulse:lt(s)}));return u=n.add(xC({pulse:lt(u)})),u=n.add(Xa({pulse:lt(u)})),n.addData("root",new Ka(n,a,a,u)),n}function ol(t,n){return n&&n.signal?{name:t,update:n.signal}:{name:t,value:n}}function KC(t,n){this.config=t||{},this.options=n||{},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 QC(t){this.config=t.config,this.options=t.options,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}function my(t){return(T(t)?QO:ZO)(t)}function QO(t){const n=t.length;let e="[";for(let r=0;r<n;++r){const i=t[r];e+=(r>0?",":"")+(Z(i)?i.signal||my(i):G(i))}return e+"]"}function ZO(t){let n,e,r="{",i=0;for(n in t)e=t[n],r+=(++i>1?",":"")+G(n)+":"+(Z(e)?e.signal||my(e):G(e));return r+"}"}KC.prototype=QC.prototype={parse(t){return JC(t,this)},fork(){return new QC(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(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach(n=>{n.$ref=t.id}),t.refs=null),t},proxy(t){const n=t instanceof X1?lt(t):t;return this.add(nO({value:n}))},addStream(t){return this.streams.push(t),t.id=this.id(),t},addUpdate(t){return this.updates.push(t),t},finish(){let t,n;for(t in this.root&&(this.root.root=!0),this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function e(r,i,a){let o,s;r&&(o=r.data||(r.data={}),s=o[i]||(o[i]=[]),s.push(a))}for(t in this.data){n=this.data[t],e(n.input,t,"input"),e(n.output,t,"output"),e(n.values,t,"values");for(const r in n.index)e(n.index[r],t,"index:"+r)}return this},pushState(t,n,e){this._encode.push(lt(this.add(Xa({pulse:t})))),this._parent.push(n),this._lookup.push(e?lt(this.proxy(e)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return Bt(this._parent)},encode(){return Bt(this._encode)},lookup(){return Bt(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,n){if(Q(t))return tl(t,n);t.signal||P("Unsupported field reference: "+G(t));const e=t.signal;let r=this.field[e];if(!r){const i={name:this.signalRef(e)};n&&(i.as=n),this.field[e]=r=lt(this.add(Hz(i)))}return r},compareRef(t){let n=!1;const e=a=>pn(a)?(n=!0,this.signalRef(a.signal)):function(o){return o&&o.expr}(a)?(n=!0,this.exprRef(a.expr)):a,r=J(t.field).map(e),i=J(t.order).map(e);return n?lt(this.add(yC({fields:r,orders:i}))):hC(r,i)},keyRef(t,n){let e=!1;const r=this.signals;return t=J(t).map(i=>pn(i)?(e=!0,lt(r[i.signal])):i),e?lt(this.add(Gz({fields:t,flat:n}))):function(i,a){const o={$key:i};return a&&(o.$flat=!0),o}(t,n)},sortRef(t){if(!t)return t;const n=yd(t.op,t.field),e=t.order||"ascending";return e.signal?lt(this.add(yC({fields:n,orders:this.signalRef(e.signal)}))):hC(n,e)},event(t,n){const e=t+":"+n;if(!this.events[e]){const r=this.id();this.streams.push({id:r,source:t,type:n}),this.events[e]=r}return this.events[e]},hasOwnSignal(t){return tt(this.signals,t)},addSignal(t,n){this.hasOwnSignal(t)&&P("Duplicate signal name: "+G(t));const e=n instanceof X1?n:this.add(gd(n));return this.signals[t]=e},getSignal(t){return this.signals[t]||P("Unrecognized signal name: "+G(t)),this.signals[t]},signalRef(t){return this.signals[t]?lt(this.signals[t]):(tt(this.lambdas,t)||(this.lambdas[t]=this.add(gd(null))),lt(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let n=0,e=t.length;n<e;++n){const r=t[n],i=Tr(r,this),a=this.lambdas[r];a.params=i.$params,a.update=i.$expr}},property(t){return t&&t.signal?this.signalRef(t.signal):t},objectProperty(t){return t&&Z(t)?this.signalRef(t.signal||my(t)):t},exprRef(t,n){const e={expr:Tr(t,this)};return n&&(e.expr.$name=n),lt(this.add(Iz(e)))},addBinding(t,n){this.bindings||P("Nested signals do not support binding: "+G(t)),this.bindings.push(xt({signal:t},n))},addScaleProj(t,n){tt(this.scales,t)&&P("Duplicate scale or projection name: "+G(t)),this.scales[t]=this.add(n)},addScale(t,n){this.addScaleProj(t,rO(n))},addProjection(t,n){this.addScaleProj(t,tO(n))},getScale(t){return this.scales[t]||P("Unrecognized scale name: "+G(t)),this.scales[t]},scaleRef(t){return lt(this.getScale(t))},scaleType(t){return this.getScale(t).params.type},projectionRef(t){return this.scaleRef(t)},projectionType(t){return this.scaleType(t)},addData(t,n){return tt(this.data,t)&&P("Duplicate data set name: "+G(t)),this.data[t]=n},getData(t){return this.data[t]||P("Undefined data set name: "+G(t)),this.data[t]},addDataPipeline(t,n){return tt(this.data,t)&&P("Duplicate data set name: "+G(t)),this.addData(t,Ka.fromEntries(this,n))}},xt($o,P9,x4,S4,pM,EM,eB,GM,rB,gB,kB,CB);const tN=Object.freeze(Object.defineProperty({__proto__:null,Bounds:cn,CanvasHandler:vu,CanvasRenderer:Kc,DATE:m6,DAY:g6,DAYOFYEAR:y6,Dataflow:Eo,Debug:v6,Error:Vb,EventStream:ic,Gradient:Mw,GroupItem:Fc,HOURS:b6,Handler:c0,HybridHandler:GA,HybridRenderer:A0,Info:x6,Item:Dc,MILLISECONDS:w6,MINUTES:A6,MONTH:_6,Marks:Ae,MultiPulse:wp,None:k6,Operator:Ut,Parameters:rc,Pulse:ji,QUARTER:D6,RenderType:Ki,Renderer:gu,ResourceLoader:Uw,SECONDS:F6,SVGHandler:CA,SVGRenderer:w0,SVGStringRenderer:HA,Scenegraph:mA,TIME_UNITS:ix,Transform:O,View:QF,WEEK:C6,Warn:Bx,YEAR:E6,accessor:ko,accessorFields:Wn,accessorName:en,array:J,ascending:Xh,bandwidthNRD:Dp,bin:d2,bootstrapCI:h2,boundClip:t_,boundContext:lu,boundItem:u0,boundMark:fA,boundStroke:ai,changeset:Ba,clampRange:dx,codegenExpression:lF,compare:Qh,constant:In,cumulativeLogNormal:Mp,cumulativeNormal:uc,cumulativeUniform:Np,dayofyear:px,debounce:Yh,defaultLocale:Yb,definition:l2,densityLogNormal:Sp,densityNormal:Fp,densityUniform:Op,domChild:dn,domClear:Pe,domCreate:Xi,domFind:l0,dotbin:p2,error:P,expressionFunction:sn,extend:xt,extent:kr,extentIndex:rx,falsy:Oi,fastmap:Do,field:ei,flush:Cx,font:jc,fontFamily:pu,fontSize:Sr,format:$6,formatLocale:S6,formats:M6,hasOwnProperty:tt,id:Us,identity:Me,inferType:B6,inferTypes:z6,ingest:St,inherits:V,inrange:Fo,interpolate:$m,interpolateColors:xc,interpolateRange:pw,intersect:JA,intersectBoxLine:Po,intersectPath:Vm,intersectPoint:Ym,intersectRule:Jw,isArray:T,isBoolean:Fa,isDate:Da,isFunction:bt,isIterable:O6,isNumber:$t,isObject:Z,isRegExp:ip,isString:Q,isTuple:tc,key:Zh,lerp:Fx,lineHeight:Vi,loader:Ul,locale:Mx,logger:Vh,lruCache:ox,markup:x0,merge:ex,mergeConfig:Hl,multiLineOffset:a0,one:Is,pad:Dx,panLinear:fx,panLog:cx,panPow:lx,panSymlog:ux,parse:function(t,n,e){return Z(t)||P("Input Vega specification must be an object."),KO(t,new KC(n=Hl(function(){const r="sans-serif",i="#4c78a8",a="#000",o="#888",s="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:i},area:{fill:i},image:null,line:{stroke:i,strokeWidth:2},path:{stroke:i},rect:{fill:i},rule:{stroke:a},shape:{stroke:i},symbol:{fill:i,size:64},text:{fill:a,font:r,fontSize:11},trail:{fill:i,size:2},style:{"guide-label":{fill:a,font:r,fontSize:10},"guide-title":{fill:a,font:r,fontSize:11,fontWeight:"bold"},"group-title":{fill:a,font:r,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:a,font:r,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:s},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:o,grid:!1,gridWidth:1,gridColor:s,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:o,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:s,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:o,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"]}}}(),n,t.config),e)).toRuntime()},parseExpression:oF,parseSelector:aa,path:dp,pathCurves:Nm,pathEqual:n_,pathParse:No,pathRectangle:Pw,pathRender:iu,pathSymbols:Tw,pathTrail:jw,peek:Bt,point:qc,projection:xg,quantileLogNormal:Bp,quantileNormal:lc,quantileUniform:Rp,quantiles:_p,quantizeInterpolator:mw,quarter:vx,quartiles:kp,get random(){return Ne},randomInteger:function(t,n){let e,r,i;n==null&&(n=t,t=0);const a={min(o){return arguments.length?(e=o||0,i=r-e,a):e},max(o){return arguments.length?(r=o||0,i=r-e,a):r},sample:()=>e+Math.floor(i*Ne()),pdf:o=>o===Math.floor(o)&&o>=e&&o<r?1/i:0,cdf(o){const s=Math.floor(o);return s<e?0:s>=r?1:(s-e+1)/i},icdf:o=>o>=0&&o<=1?e-1+Math.floor(o*i):NaN};return a.min(t).max(n)},randomKDE:Ep,randomLCG:function(t){return function(){return(t=(1103515245*t+12345)%2147483647)/2147483647}},randomLogNormal:g2,randomMixture:y2,randomNormal:Cp,randomUniform:v2,read:Jb,regressionConstant:Tp,regressionExp:x2,regressionLinear:Pp,regressionLoess:_2,regressionLog:b2,regressionPoly:A2,regressionPow:w2,regressionQuad:jp,renderModule:nf,repeat:N6,resetDefaultLocale:R6,resetSVGClipId:qw,resetSVGDefIds:function(){qw(),$w=0},responseType:Xb,runtimeContext:BF,sampleCurve:fc,sampleLogNormal:$p,sampleNormal:sc,sampleUniform:zp,scale:Dt,sceneEqual:k0,sceneFromJSON:hA,scenePickVisit:zc,sceneToJSON:dA,sceneVisit:Qe,sceneZOrder:Xm,scheme:Sm,serializeXML:PA,setHybridRendererOptions:function(t){Ze.svgMarkTypes=t.svgMarkTypes??["text"],Ze.svgOnTop=t.svgOnTop??!0,Ze.debug=t.debug??!1},setRandom:function(t){Ne=t},span:Il,splitAccessPath:Ni,stringValue:G,textMetrics:we,timeBin:Kb,timeFloor:tx,timeFormatLocale:T6,timeInterval:Kh,timeOffset:wx,timeSequence:xx,timeUnitSpecifier:bx,timeUnits:Qb,toBoolean:$x,toDate:Sx,toNumber:ze,toSet:Dr,toString:Ex,transform:c2,transforms:$o,truncate:kx,truthy:Be,tupleid:st,typeParsers:P6,utcFloor:Zb,utcInterval:Jh,utcOffset:_x,utcSequence:Ax,utcdayofyear:hx,utcquarter:yx,utcweek:mx,version:"5.33.0",visitArray:ka,week:gx,writeConfig:ap,zero:tp,zoomLinear:rp,zoomLog:np,zoomPow:Wl,zoomSymlog:ep},Symbol.toStringTag,{value:"Module"}));function gy(t){return U(t,"or")}function yy(t){return U(t,"and")}function vy(t){return U(t,"not")}function Ed(t,n){if(vy(t))Ed(t.not,n);else if(yy(t))for(const e of t.and)Ed(e,n);else if(gy(t))for(const e of t.or)Ed(e,n);else n(t)}function ls(t,n){return vy(t)?{not:ls(t.not,n)}:yy(t)?{and:t.and.map(e=>ls(e,n))}:gy(t)?{or:t.or.map(e=>ls(e,n))}:n(t)}const ft=structuredClone;function ZC(t){throw new Error(t)}function cs(t,n){const e={};for(const r of n)tt(t,r)&&(e[r]=t[r]);return e}function he(t,n){const e={...t};for(const r of n)delete e[r];return e}function wt(t){if($t(t))return t;const n=Q(t)?t:Lt(t);if(n.length<250)return n;let e=0;for(let r=0;r<n.length;r++)e=(e<<5)-e+n.charCodeAt(r),e&=e;return e}function by(t){return t===!1||t===null}function vt(t,n){return t.includes(n)}function fs(t,n){let e=0;for(const[r,i]of t.entries())if(n(i,r,e++))return!0;return!1}function xy(t,n){let e=0;for(const[r,i]of t.entries())if(!n(i,r,e++))return!1;return!0}function tE(t,...n){for(const e of n)nN(t,e??{});return t}function nN(t,n){for(const e of L(n))ap(t,e,n[e],!0)}function Pr(t,n){const e=[],r={};let i;for(const a of t)i=n(a),i in r||(r[i]=1,e.push(a));return e}function eN(t,n){const e=L(t),r=L(n);if(e.length!==r.length)return!1;for(const i of e)if(t[i]!==n[i])return!1;return!0}function nE(t,n){if(t.size!==n.size)return!1;for(const e of t)if(!n.has(e))return!1;return!0}function wy(t,n){for(const e of t)if(n.has(e))return!0;return!1}function Ay(t){const n=new Set;for(const e of t){const r=Ni(e).map((a,o)=>o===0?a:`[${a}]`),i=r.map((a,o)=>r.slice(0,o+1).join(""));for(const a of i)n.add(a)}return n}function _y(t,n){return t===void 0||n===void 0||wy(Ay(t),Ay(n))}function jt(t){return L(t).length===0}Set.prototype.toJSON=function(){return`Set(${[...this].map(t=>Lt(t)).join(",")})`};const L=Object.keys,En=Object.values,sa=Object.entries;function sl(t){return t===!0||t===!1}function Xt(t){const n=t.replace(/\W/g,"_");return(t.match(/^\d+/)?"_":"")+n}function ul(t,n){return vy(t)?`!(${ul(t.not,n)})`:yy(t)?`(${t.and.map(e=>ul(e,n)).join(") && (")})`:gy(t)?`(${t.or.map(e=>ul(e,n)).join(") || (")})`:n(t)}function $d(t,n){if(n.length===0)return!0;const e=n.shift();return e in t&&$d(t[e],n)&&delete t[e],jt(t)}function ll(t){return t.charAt(0).toUpperCase()+t.substr(1)}function ky(t,n="datum"){const e=Ni(t),r=[];for(let i=1;i<=e.length;i++){const a=`[${e.slice(0,i).map(G).join("][")}]`;r.push(`${n}${a}`)}return r.join(" && ")}function eE(t,n="datum"){return`${n}[${G(Ni(t).join("."))}]`}function Ot(t){return`datum['${t.replaceAll("'","\\'")}']`}function rN(t){return t.replace(/(\[|\]|\.|'|")/g,"\\$1")}function He(t){return`${Ni(t).map(rN).join("\\.")}`}function Za(t,n,e){return t.replace(new RegExp(n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),e)}function ds(t){return`${Ni(t).join(".")}`}function hs(t){return t?Ni(t).length:0}function un(...t){return t.find(n=>n!==void 0)}let rE=42;function iE(t){const n=++rE;return t?String(t)+n:n}function iN(){rE=42}function aE(t){return oE(t)?t:`__${t}`}function oE(t){return t.startsWith("__")}function cl(t){if(t!==void 0)return(t%360+360)%360}function Sd(t){return!!$t(t)||!isNaN(t)&&!isNaN(parseFloat(t))}const sE=Object.getPrototypeOf(structuredClone({}));function Ce(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor.name!==n.constructor.name)return!1;let e,r;if(Array.isArray(t)){if(e=t.length,e!=n.length)return!1;for(r=e;r--!==0;)if(!Ce(t[r],n[r]))return!1;return!0}if(t instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;for(const a of t.entries())if(!n.has(a[0]))return!1;for(const a of t.entries())if(!Ce(a[1],n.get(a[0])))return!1;return!0}if(t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;for(const a of t.entries())if(!n.has(a[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(n)){if(e=t.length,e!=n.length)return!1;for(r=e;r--!==0;)if(t[r]!==n[r])return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf&&t.valueOf!==sE.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString&&t.toString!==sE.toString)return t.toString()===n.toString();const i=Object.keys(t);if(e=i.length,e!==Object.keys(n).length)return!1;for(r=e;r--!==0;)if(!Object.prototype.hasOwnProperty.call(n,i[r]))return!1;for(r=e;r--!==0;){const a=i[r];if(!Ce(t[a],n[a]))return!1}return!0}return t!=t&&n!=n}function Lt(t){const n=[];return function e(r){if(r&&r.toJSON&&typeof r.toJSON=="function"&&(r=r.toJSON()),r===void 0)return;if(typeof r=="number")return isFinite(r)?""+r:"null";if(typeof r!="object")return JSON.stringify(r);let i,a;if(Array.isArray(r)){for(a="[",i=0;i<r.length;i++)i&&(a+=","),a+=e(r[i])||"null";return a+"]"}if(r===null)return"null";if(n.includes(r))throw new TypeError("Converting circular structure to JSON");const o=n.push(r)-1,s=Object.keys(r).sort();for(a="",i=0;i<s.length;i++){const u=s[i],l=e(r[u]);l&&(a&&(a+=","),a+=JSON.stringify(u)+":"+l)}return n.splice(o,1),`{${a}}`}(t)}function U(t,n){return Z(t)&&tt(t,n)&&t[n]!==void 0}const mi="row",gi="column",Md="facet",Jt="x",bn="y",lr="x2",jr="y2",ua="xOffset",ps="yOffset",cr="radius",yi="radius2",Ge="theta",vi="theta2",fr="latitude",dr="longitude",hr="latitude2",Ve="longitude2",la="time",pe="color",Lr="fill",qr="stroke",me="shape",bi="size",to="angle",xi="opacity",ca="fillOpacity",fa="strokeOpacity",da="strokeWidth",ha="strokeDash",fl="text",ms="order",dl="detail",Bd="key",no="tooltip",zd="href",Od="url",Nd="description",uE={theta:1,theta2:1,radius:1,radius2:1};function lE(t){return tt(uE,t)}const Dy={longitude:1,longitude2:1,latitude:1,latitude2:1};function cE(t){switch(t){case fr:return"y";case hr:return"y2";case dr:return"x";case Ve:return"x2"}}function fE(t){return tt(Dy,t)}const aN=L(Dy),Fy={x:1,y:1,x2:1,y2:1,...uE,...Dy,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 gs(t){return t===pe||t===Lr||t===qr}const dE={row:1,column:1,facet:1},Ye=L(dE),Cy={...Fy,...dE},oN=L(Cy),{order:pj,detail:mj,tooltip:gj,...sN}=Cy,{row:yj,column:vj,facet:bj,...uN}=sN;function lN(t){return tt(uN,t)}function hE(t){return tt(Cy,t)}const cN=[lr,jr,hr,Ve,vi,yi];function pE(t){return eo(t)!==t}function eo(t){switch(t){case lr:return Jt;case jr:return bn;case hr:return fr;case Ve:return dr;case vi:return Ge;case yi:return cr}return t}function pa(t){if(lE(t))switch(t){case Ge:return"startAngle";case vi:return"endAngle";case cr:return"outerRadius";case yi:return"innerRadius"}return t}function Ur(t){switch(t){case Jt:return lr;case bn:return jr;case fr:return hr;case dr:return Ve;case Ge:return vi;case cr:return yi}}function ge(t){switch(t){case Jt:case lr:return"width";case bn:case jr:return"height"}}function mE(t){switch(t){case Jt:return"xOffset";case bn:return"yOffset";case lr:return"x2Offset";case jr:return"y2Offset";case Ge:return"thetaOffset";case cr:return"radiusOffset";case vi:return"theta2Offset";case yi:return"radius2Offset"}}function Ey(t){switch(t){case Jt:return"xOffset";case bn:return"yOffset"}}function fN(t){switch(t){case"xOffset":return"x";case"yOffset":return"y"}}const dN=L(Fy),{x:xj,y:wj,x2:Aj,y2:_j,xOffset:kj,yOffset:Dj,latitude:Fj,longitude:Cj,latitude2:Ej,longitude2:$j,theta:Sj,theta2:Mj,radius:Bj,radius2:zj,...$y}=Fy,hN=L($y),Sy={x:1,y:1},wi=L(Sy);function ln(t){return tt(Sy,t)}const My={theta:1,radius:1},pN=L(My);function Rd(t){return t==="width"?Jt:bn}const gE={xOffset:1,yOffset:1};function hl(t){return tt(gE,t)}const mN={time:1};function By(t){return t in mN}const{text:Oj,tooltip:Nj,href:Rj,url:Tj,description:Pj,detail:jj,key:Lj,order:qj,...yE}=$y,vE=L(yE),bE={...Sy,...My,...gE,...yE},zy=L(bE);function Ir(t){return tt(bE,t)}function gN(t,n){return function(e){switch(e){case pe:case Lr:case qr:case Nd:case dl:case Bd:case no:case zd:case ms:case xi:case ca:case fa:case da:case Md:case mi:case gi:return xE;case Jt:case bn:case ua:case ps:case fr:case dr:case la:return yN;case lr:case jr:case hr:case Ve:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case bi:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case ha:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case me:return{point:"always",geoshape:"always"};case fl:return{text:"always"};case to:return{point:"always",square:"always",text:"always"};case Od:return{image:"always"};case Ge:case cr:return{text:"always",arc:"always"};case vi:case yi:return{arc:"always"}}}(t)[n]}const xE={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:Uj,...yN}=xE;function Oy(t){switch(t){case Jt:case bn:case Ge:case cr:case ua:case ps:case bi:case to:case da:case xi:case ca:case fa:case la:case lr:case jr:case vi:case yi:return;case Md:case mi:case gi:case me:case ha:case fl:case no:case zd:case Od:case Nd:return"discrete";case pe:case Lr:case qr:return"flexible";case fr:case dr:case hr:case Ve:case dl:case Bd:case ms:return}}const vN={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},bN={count:1,min:1,max:1};function Ai(t){return U(t,"argmin")}function ma(t){return U(t,"argmax")}function Td(t){return Q(t)&&tt(vN,t)}const xN=new Set(["count","valid","missing","distinct"]);function Pd(t){return Q(t)&&xN.has(t)}const wN=new Set(["count","sum","distinct","valid","missing"]),AN=new Set(["mean","average","median","q1","q3","min","max"]);function wE(t){return Fa(t)&&(t=ih(t,void 0)),"bin"+L(t).map(n=>jd(t[n])?Xt(`_${n}_${sa(t[n])}`):Xt(`_${n}_${t[n]}`)).join("")}function Wt(t){return t===!0||ro(t)&&!t.binned}function $n(t){return t==="binned"||ro(t)&&t.binned===!0}function ro(t){return Z(t)}function jd(t){return U(t,"param")}function AE(t){switch(t){case mi:case gi:case bi:case pe:case Lr:case qr:case da:case xi:case ca:case fa:case me:return 6;case ha:return 4;default:return 10}}function pl(t){return U(t,"expr")}function Sn(t,{level:n}={level:0}){const e=L(t||{}),r={};for(const i of e)r[i]=n===0?Ee(t[i]):Sn(t[i],{level:n-1});return r}function _E(t){const{anchor:n,frame:e,offset:r,orient:i,angle:a,limit:o,color:s,subtitleColor:u,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...m}=t,g={...n?{anchor:n}:{},...e?{frame:e}:{},...r?{offset:r}:{},...i?{orient:i}:{},...a!==void 0?{angle:a}:{},...o!==void 0?{limit:o}:{}},y={...u?{subtitleColor:u}:{},...l?{subtitleFont:l}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}};return{titleMarkConfig:{...m,...s?{fill:s}:{}},subtitleMarkConfig:cs(t,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:g,subtitle:y}}function ga(t){return Q(t)||T(t)&&Q(t[0])}function et(t){return U(t,"signal")}function io(t){return U(t,"step")}function _i(t){return!T(t)&&U(t,"field")&&U(t,"data")}const _N=L({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}),kN={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Ny=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function kE(t){const n=T(t.condition)?t.condition.map(DE):DE(t.condition);return{...Ee(t),condition:n}}function Ee(t){if(pl(t)){const{expr:n,...e}=t;return{signal:n,...e}}return t}function DE(t){if(pl(t)){const{expr:n,...e}=t;return{signal:n,...e}}return t}function Gt(t){if(pl(t)){const{expr:n,...e}=t;return{signal:n,...e}}return et(t)?t:t!==void 0?{value:t}:void 0}function DN(t){return et(t)?t.signal:G(t)}function FE(t){return et(t)?t.signal:G(t.value)}function pr(t){return et(t)?t.signal:t==null?null:G(t)}function FN(t,n,e){for(const r of e){const i=Wr(r,n.markDef,n.config);i!==void 0&&(t[r]=Gt(i))}return t}function CE(t){return[].concat(t.type,t.style??[])}function qt(t,n,e,r={}){const{vgChannel:i,ignoreVgConfig:a}=r;return i&&U(n,i)?n[i]:n[t]!==void 0?n[t]:!a||i&&i!==t?Wr(t,n,e,r):void 0}function Wr(t,n,e,{vgChannel:r}={}){const i=Ry(t,n,e.style);return un(r?i:void 0,i,r?e[n.type][r]:void 0,e[n.type][t],r?e.mark[r]:e.mark[t])}function Ry(t,n,e){return EE(t,CE(n),e)}function EE(t,n,e){let r;n=J(n);for(const i of n){const a=e[i];U(a,t)&&(r=a[t])}return r}function $E(t,n){return J(t).reduce((e,r)=>(e.field.push(Y(r,n)),e.order.push(r.sort??"ascending"),e),{field:[],order:[]})}function SE(t,n){const e=[...t];return n.forEach(r=>{for(const i of e)if(Ce(i,r))return;e.push(r)}),e}function ME(t,n){return Ce(t,n)||!n?t:t?[...J(t),...J(n)].join(", "):n}function BE(t,n){const e=t.value,r=n.value;if(e==null||r===null)return{explicit:t.explicit,value:null};if((ga(e)||et(e))&&(ga(r)||et(r)))return{explicit:t.explicit,value:ME(e,r)};if(ga(e)||et(e))return{explicit:t.explicit,value:e};if(ga(r)||et(r))return{explicit:t.explicit,value:r};if(!(ga(e)||et(e)||ga(r)||et(r)))return{explicit:t.explicit,value:SE(e,r)};throw new Error("It should never reach here")}function Ty(t){return`Invalid specification ${Lt(t)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const CN='Autosize "fit" only works for single views and layered views.';function zE(t){return`${t=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function OE(t){return`${t=="width"?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${t=="width"?"x":"y"}".`}function NE(t){return t?`Dropping "fit-${t}" because spec has discrete ${ge(t)}.`:'Dropping "fit" because spec has discrete size.'}function Py(t){return`Unknown field for ${t}. Cannot calculate view size.`}function RE(t){return`Cannot project a selection on encoding channel "${t}", which has no field.`}function EN(t,n){return`Cannot project a selection on encoding channel "${t}" as it uses an aggregate function ("${n}").`}function TE(t){return`Selection not supported for ${t} yet.`}const $N="The same selection must be used to override scale domains in a layered view.";function PE(t){return`The "columns" property cannot be used when "${t}" has nested row/column.`}const jy="Animation involving facet, layer, or concat is currently unsupported.";function jE(t,n,e){return`An ancestor parsed field "${t}" as ${e} but a child wants to parse the field as ${n}.`}function SN(t){return`Ignoring an invalid transform: ${Lt(t)}.`}function LE(t){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${t} are dropped.`}function MN(t){return`${t}Offset dropped because ${t} is continuous`}function qE(t){return`Invalid field type "${t}".`}function UE(t,n){const{fill:e,stroke:r}=n;return`Dropping color ${t} as the plot also has ${e&&r?"fill and stroke":e?"fill":"stroke"}.`}function Ly(t,n){return`Dropping ${Lt(t)} from channel "${n}" since it does not contain any data field, datum, value, or signal.`}function Ld(t,n,e){return`${t} dropped as it is incompatible with "${n}".`}function BN(t){return`${t}-encoding is dropped as ${t} is not a valid encoding channel.`}function zN(t){return`${t} encoding should be discrete (ordinal / nominal / binned).`}function ON(t){return`${t} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function qy(t,n){return`Using discrete channel "${t}" to encode "${n}" field can be misleading as it does not encode ${n==="ordinal"?"order":"magnitude"}.`}function NN(t){return`Using unaggregated domain with raw field has no effect (${Lt(t)}).`}function RN(t){return`Unaggregated domain not applicable for "${t}" since it produces values outside the origin domain of the source data.`}function TN(t){return`Unaggregated domain is currently unsupported for log scale (${Lt(t)}).`}function IE(t,n,e){return`${e}-scale's "${n}" is dropped as it does not work with ${t} scale.`}function WE(t){return`The step for "${t}" is dropped because the ${t==="width"?"x":"y"} is continuous.`}const HE="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function qd(t,n){return`Invalid ${t}: ${Lt(n)}.`}function GE(t){return`1D error band does not support ${t}.`}function VE(t){return`Channel ${t} is required for "binned" bin.`}const YE=Vh(Bx);let ml=YE;function Uy(...t){ml.error(...t)}function I(...t){ml.warn(...t)}function ao(t){if(t&&Z(t)){for(const n of Wy)if(U(t,n))return!0}return!1}const XE=["january","february","march","april","may","june","july","august","september","october","november","december"],PN=XE.map(t=>t.substr(0,3)),JE=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],jN=JE.map(t=>t.substr(0,3));function Iy(t,n){const e=[];if(n&&t.day!==void 0&&L(t).length>1&&(I(function(r){return`Dropping day from datetime ${Lt(r)} as day cannot be combined with other units.`}(t)),delete(t=ft(t)).day),t.year!==void 0?e.push(t.year):e.push(2012),t.month!==void 0){const r=n?function(i){if(Sd(i)&&(i=+i),$t(i))return i-1;{const a=i.toLowerCase(),o=XE.indexOf(a);if(o!==-1)return o;const s=a.substr(0,3),u=PN.indexOf(s);if(u!==-1)return u;throw new Error(qd("month",i))}}(t.month):t.month;e.push(r)}else if(t.quarter!==void 0){const r=n?function(i){if(Sd(i)&&(i=+i),$t(i))return i>4&&I(qd("quarter",i)),i-1;throw new Error(qd("quarter",i))}(t.quarter):t.quarter;e.push($t(r)?3*r:`${r}*3`)}else e.push(0);if(t.date!==void 0)e.push(t.date);else if(t.day!==void 0){const r=n?function(i){if(Sd(i)&&(i=+i),$t(i))return i%7;{const a=i.toLowerCase(),o=JE.indexOf(a);if(o!==-1)return o;const s=a.substr(0,3),u=jN.indexOf(s);if(u!==-1)return u;throw new Error(qd("day",i))}}(t.day):t.day;e.push($t(r)?r+1:`${r}+1`)}else e.push(1);for(const r of["hours","minutes","seconds","milliseconds"]){const i=t[r];e.push(i===void 0?0:i)}return e}function oo(t){const n=Iy(t,!0).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}const KE={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},Wy=L(KE);function so(t){return Z(t)?t.binned:QE(t)}function QE(t){return t&&t.startsWith("binned")}function Hy(t){return t.startsWith("utc")}const LN={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function Ud(t){return Wy.filter(n=>t3(t,n))}function ZE(t){const n=Ud(t);return n[n.length-1]}function t3(t,n){const e=t.indexOf(n);return!(e<0)&&!(e>0&&n==="seconds"&&t.charAt(e-1)==="i")&&!(t.length>e+3&&n==="day"&&t.charAt(e+3)==="o")&&!(e>0&&n==="year"&&t.charAt(e-1)==="f")}function qN(t,n,{end:e}={end:!1}){const r=ky(n),i=Hy(t)?"utc":"";function a(u){return u==="quarter"?`(${i}quarter(${r})-1)`:`${i}${u}(${r})`}let o;const s={};for(const u of Wy)t3(t,u)&&(s[u]=a(u),o=u);return e&&(s[o]+="+1"),function(u){const l=Iy(u,!1).join(", ");return u.utc?`utc(${l})`:`datetime(${l})`}(s)}function n3(t){if(t)return`timeUnitSpecifier(${Lt(Ud(t))}, ${Lt(LN)})`}function xn(t){if(!t)return;let n;return Q(t)?n=QE(t)?{unit:t.substring(6),binned:!0}:{unit:t}:Z(t)&&(n={...t,...t.unit?{unit:t.unit}:{}}),Hy(n.unit)&&(n.utc=!0,n.unit=n.unit.substring(3)),n}function e3(t,n=e=>e){const e=xn(t),r=ZE(e.unit);if(r&&r!=="day"){const i={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:a,part:o}=r3(r,e.step);return`${n(oo({...i,[o]:+i[o]+a}))} - ${n(oo(i))}`}}const UN={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function r3(t,n=1){if(function(e){return tt(UN,e)}(t))return{part:t,step:n};switch(t){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 Gy(t){return!!(t!=null&&t.field)&&t.equal!==void 0}function Vy(t){return!!(t!=null&&t.field)&&t.lt!==void 0}function Yy(t){return!!(t!=null&&t.field)&&t.lte!==void 0}function Xy(t){return!!(t!=null&&t.field)&&t.gt!==void 0}function Jy(t){return!!(t!=null&&t.field)&&t.gte!==void 0}function Ky(t){return!!(t!=null&&t.field&&(T(t.range)&&t.range.length===2||et(t.range)))}function Qy(t){return!!(t!=null&&t.field)&&(T(t.oneOf)||T(t.in))}function i3(t){return Qy(t)||Gy(t)||Ky(t)||Vy(t)||Xy(t)||Yy(t)||Jy(t)}function Hr(t,n){return ah(t,{timeUnit:n,wrapTime:!0})}function a3(t,n=!0){const{field:e}=t,r=xn(t.timeUnit),{unit:i,binned:a}=r||{},o=Y(t,{expr:"datum"}),s=i?`time(${a?o:qN(i,e)})`:o;if(Gy(t))return`${s}===${Hr(t.equal,i)}`;if(Vy(t))return`${s}<${Hr(t.lt,i)}`;if(Xy(t))return`${s}>${Hr(t.gt,i)}`;if(Yy(t))return`${s}<=${Hr(t.lte,i)}`;if(Jy(t))return`${s}>=${Hr(t.gte,i)}`;if(Qy(t))return`indexof([${function(u,l){return u.map(c=>Hr(c,l))}(t.oneOf,i).join(",")}], ${s}) !== -1`;if(function(u){return!!(u!=null&&u.field)&&u.valid!==void 0}(t))return Id(s,t.valid);if(Ky(t)){const{range:u}=Sn(t),l=et(u)?{signal:`${u.signal}[0]`}:u[0],c=et(u)?{signal:`${u.signal}[1]`}:u[1];if(l!==null&&c!==null&&n)return"inrange("+s+", ["+Hr(l,i)+", "+Hr(c,i)+"])";const f=[];return l!==null&&f.push(`${s} >= ${Hr(l,i)}`),c!==null&&f.push(`${s} <= ${Hr(c,i)}`),f.length>0?f.join(" && "):"true"}throw new Error(`Invalid field predicate: ${Lt(t)}`)}function Id(t,n=!0){return n?`isValid(${t}) && isFinite(+${t})`:`!isValid(${t}) || !isFinite(+${t})`}function IN(t){return i3(t)&&t.timeUnit?{...t,timeUnit:xn(t.timeUnit)}:t}function WN(t){return t==="quantitative"||t==="temporal"}function o3(t){return t==="ordinal"||t==="nominal"}const uo="quantitative",Zy="ordinal",ys="temporal",tv="nominal",vs="geojson",s3="linear",HN="log",GN="pow",VN="sqrt",nv="time",Wd="utc",u3="point",ev="band",rv={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 YN(t,n){const e=rv[t],r=rv[n];return e===r||e==="ordinal-position"&&r==="time"||r==="ordinal-position"&&e==="time"}const XN={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 l3(t){return XN[t]}const c3=new Set(["linear","log","pow","sqrt","symlog"]),f3=new Set([...c3,"time","utc"]);function d3(t){return c3.has(t)}const h3=new Set(["quantile","quantize","threshold"]),JN=new Set([...f3,...h3,"sequential","identity"]),KN=new Set(["ordinal","bin-ordinal","point","band"]);function wn(t){return KN.has(t)}function mr(t){return JN.has(t)}function Gr(t){return f3.has(t)}function bs(t){return h3.has(t)}function p3(t){return U(t,"param")}const{type:Ij,domain:Wj,range:Hj,rangeMax:Gj,rangeMin:Vj,scheme:Yj,...QN}={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},ZN=L(QN);function iv(t,n){switch(n){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(t);case"bins":return!["point","band","identity","ordinal"].includes(t);case"round":return Gr(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return Gr(t)||["point","band"].includes(t);case"paddingOuter":case"align":return["point","band"].includes(t);case"paddingInner":return t==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return Gr(t);case"nice":return Gr(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return mr(t)&&!vt(["log","time","utc","threshold","quantile"],t)}}function m3(t,n){switch(n){case"interpolate":case"scheme":case"domainMid":return gs(t)?void 0:`Cannot use the scale property "${n}" 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 jn={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"},g3=jn.arc,Hd=jn.area,Gd=jn.bar,tR=jn.image,Vd=jn.line,Yd=jn.point,nR=jn.rect,Xd=jn.rule,y3=jn.text,av=jn.tick,eR=jn.trail,ov=jn.circle,sv=jn.square,v3=jn.geoshape;function ya(t){return["line","area","trail"].includes(t)}function gl(t){return["rect","bar","image","arc","tick"].includes(t)}const rR=new Set(L(jn));function Vr(t){return U(t,"type")}const iR=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],b3=L({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),uv=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],aR={area:["line","point"],bar:uv,rect:uv,line:["point"],tick:["bandSize","thickness",...uv]},x3=L({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 lo(t){return U(t,"band")}const oR={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},lv={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},sR={...lv,binSpacing:1},uR={...lv,thickness:1};function w3(t,{isPath:n}){return t===void 0||t==="break-paths-show-path-domains"?n?"break-paths-show-domains":"filter":t===null?"show":t}function cv({markDef:t,config:n,scaleChannel:e,scaleType:r,isCountAggregate:i}){var s,u;if(!r||!mr(r)||i)return"always-valid";const a=w3(qt("invalid",t,n),{isPath:ya(t.type)});return((u=(s=n.scale)==null?void 0:s.invalid)==null?void 0:u[e])!==void 0?"show":a}function A3({scaleName:t,scale:n,mode:e}){const r=`domain('${t}')`;if(!n||!t)return;const i=`${r}[0]`,a=`peek(${r})`,o=n.domainHasZero();return o==="definitely"?{scale:t,value:0}:o==="maybe"?{signal:`scale('${t}', inrange(0, ${r}) ? 0 : ${e==="zeroOrMin"?i:a})`}:{signal:`scale('${t}', ${e==="zeroOrMin"?i:a})`}}function _3({scaleChannel:t,channelDef:n,scale:e,scaleName:r,markDef:i,config:a}){var l;const o=e==null?void 0:e.get("type"),s=vr(n),u=cv({scaleChannel:t,markDef:i,config:a,scaleType:o,isCountAggregate:Pd(s==null?void 0:s.aggregate)});if(s&&u==="show"){const c=((l=a.scale.invalid)==null?void 0:l[t])??"zero-or-min";return{test:Id(Y(s,{expr:"datum"}),!1),...lR(c,e,r)}}}function lR(t,n,e){if(Z(r=t)&&"value"in r){const{value:i}=t;return et(i)?{signal:i.signal}:{value:i}}var r;return A3({scale:n,scaleName:e,mode:"zeroOrMin"})}function fv(t){const{channel:n,channelDef:e,markDef:r,scale:i,scaleName:a,config:o}=t,s=eo(n),u=dv(t),l=_3({scaleChannel:s,channelDef:e,scale:i,scaleName:a,markDef:r,config:o});return l!==void 0?[l,u]:u}function co(t,n,e,r){const i={};if(n&&(i.scale=n),Yr(t)){const{datum:a}=t;ao(a)?i.signal=oo(a):et(a)?i.signal=a.signal:pl(a)?i.signal=a.expr:i.value=a}else i.field=Y(t,e);if(r){const{offset:a,band:o}=r;a&&(i.offset=a),o&&(i.band=o)}return i}function Jd({scaleName:t,fieldOrDatumDef:n,fieldOrDatumDef2:e,offset:r,startSuffix:i,endSuffix:a="end",bandPosition:o=.5}){const s=!et(o)&&0<o&&o<1?"datum":void 0,u=Y(n,{expr:s,suffix:i}),l=e!==void 0?Y(e,{expr:s}):Y(n,{suffix:a,expr:s}),c={};if(o===0||o===1){c.scale=t;const f=o===0?u:l;c.field=f}else{const f=et(o)?`(1-${o.signal}) * ${u} + ${o.signal} * ${l}`:`${1-o} * ${u} + ${o} * ${l}`;c.signal=`scale("${t}", ${f})`}return r&&(c.offset=r),c}function dv({channel:t,channelDef:n,channel2Def:e,markDef:r,config:i,scaleName:a,scale:o,stack:s,offset:u,defaultRef:l,bandPosition:c}){if(n){if(ht(n)){const f=o==null?void 0:o.get("type");if(oe(n)){c??(c=va({fieldDef:n,fieldDef2:e,markDef:r,config:i}));const{bin:d,timeUnit:h,type:p}=n;if(Wt(d)||c&&h&&p===ys)return s!=null&&s.impute?co(n,a,{binSuffix:"mid"},{offset:u}):c&&!wn(f)?Jd({scaleName:a,fieldOrDatumDef:n,bandPosition:c,offset:u}):co(n,a,Al(n,t)?{binSuffix:"range"}:{},{offset:u});if($n(d)){if(H(e))return Jd({scaleName:a,fieldOrDatumDef:n,fieldOrDatumDef2:e,bandPosition:c,offset:u});I(VE(t===Jt?lr:jr))}}return co(n,a,wn(f)?{binSuffix:"range"}:{},{offset:u,band:f==="band"?c??n.bandPosition??.5:void 0})}if(yr(n)){const f=u?{offset:u}:{};return{...yl(t,n.value),...f}}}return bt(l)&&(l=l()),l&&{...l,...u?{offset:u}:{}}}function yl(t,n){return vt(["x","x2"],t)&&n==="width"?{field:{group:"width"}}:vt(["y","y2"],t)&&n==="height"?{field:{group:"height"}}:Gt(n)}function fo(t){return t&&t!=="number"&&t!=="time"}function k3(t,n,e){return`${t}(${n}${e?`, ${Lt(e)}`:""})`}function hv({fieldOrDatumDef:t,format:n,formatType:e,expr:r,normalizeStack:i,config:a}){var u,l;if(fo(e))return gr({fieldOrDatumDef:t,format:n,formatType:e,expr:r,config:a});const o=D3(t,r,i),s=xs(t);if(n===void 0&&e===void 0&&a.customFormatTypes){if(s==="quantitative"){if(i&&a.normalizedNumberFormatType)return gr({fieldOrDatumDef:t,format:a.normalizedNumberFormat,formatType:a.normalizedNumberFormatType,expr:r,config:a});if(a.numberFormatType)return gr({fieldOrDatumDef:t,format:a.numberFormat,formatType:a.numberFormatType,expr:r,config:a})}if(s==="temporal"&&a.timeFormatType&&H(t)&&t.timeUnit===void 0)return gr({fieldOrDatumDef:t,format:a.timeFormat,formatType:a.timeFormatType,expr:r,config:a})}if(ks(t)){const c=function({field:f,timeUnit:d,format:h,formatType:p,rawTimeFormat:m,isUTCScale:g}){return!d||h?!d&&p?`${p}(${f}, '${h}')`:`${g?"utc":"time"}Format(${f}, '${h=Q(h)?h:m}')`:function(y,v,x){if(!y)return;const b=n3(y);return`${x||Hy(y)?"utc":"time"}Format(${v}, ${b})`}(d,f,g)}({field:o,timeUnit:H(t)?(u=xn(t.timeUnit))==null?void 0:u.unit:void 0,format:n,formatType:a.timeFormatType,rawTimeFormat:a.timeFormat,isUTCScale:ho(t)&&((l=t.scale)==null?void 0:l.type)===Wd});return c?{signal:c}:void 0}return n=pv({type:s,specifiedFormat:n,config:a,normalizeStack:i}),H(t)&&Wt(t.bin)?{signal:vl(o,Y(t,{expr:r,binSuffix:"end"}),n,e,a)}:n||xs(t)==="quantitative"?{signal:`${E3(o,n)}`}:{signal:`isValid(${o}) ? ${o} : ""+${o}`}}function D3(t,n,e){return H(t)?e?`${Y(t,{expr:n,suffix:"end"})}-${Y(t,{expr:n,suffix:"start"})}`:Y(t,{expr:n}):function(r){const{datum:i}=r;return ao(i)?oo(i):`${Lt(i)}`}(t)}function gr({fieldOrDatumDef:t,format:n,formatType:e,expr:r,normalizeStack:i,config:a,field:o}){return o??(o=D3(t,r,i)),o!=="datum.value"&&H(t)&&Wt(t.bin)?{signal:vl(o,Y(t,{expr:r,binSuffix:"end"}),n,e,a)}:{signal:k3(e,o,n)}}function F3(t,n,e,r,i,a){var o;if(!Q(r)||!fo(r)){if(e===void 0&&r===void 0&&i.customFormatTypes&&xs(t)==="quantitative"&&(i.normalizedNumberFormatType&&ws(t)&&t.stack==="normalize"||i.numberFormatType))return;if(ws(t)&&t.stack==="normalize"&&i.normalizedNumberFormat)return pv({type:"quantitative",config:i,normalizeStack:!0});if(ks(t)){const s=H(t)?(o=xn(t.timeUnit))==null?void 0:o.unit:void 0;return s===void 0&&i.customFormatTypes&&i.timeFormatType?void 0:function({specifiedFormat:u,timeUnit:l,config:c,omitTimeFormatConfig:f}){return u||(l?{signal:n3(l)}:f?void 0:c.timeFormat)}({specifiedFormat:e,timeUnit:s,config:i,omitTimeFormatConfig:a})}return pv({type:n,specifiedFormat:e,config:i})}}function C3(t,n,e){var r;return t&&(et(t)||t==="number"||t==="time")?t:ks(n)&&e!=="time"&&e!=="utc"?H(n)&&((r=xn(n==null?void 0:n.timeUnit))!=null&&r.utc)?"utc":"time":void 0}function pv({type:t,specifiedFormat:n,config:e,normalizeStack:r}){return Q(n)?n:t===uo?r?e.normalizedNumberFormat:e.numberFormat:void 0}function E3(t,n){return`format(${t}, "${n||""}")`}function $3(t,n,e,r){return fo(e)?k3(e,t,n):E3(t,(Q(n)?n:void 0)??r.numberFormat)}function vl(t,n,e,r,i){if(e===void 0&&r===void 0&&i.customFormatTypes&&i.numberFormatType)return vl(t,n,i.numberFormat,i.numberFormatType,i);const a=$3(t,e,r,i),o=$3(n,e,r,i);return`${Id(t,!1)} ? "null" : ${a} + " \u2013 " + ${o}`}const Kd="min",cR={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 S3(t){return tt(cR,t)}function ki(t){return t&&(t.op==="count"||U(t,"field"))}function M3(t){return t&&T(t)}function bl(t){return U(t,"row")||U(t,"column")}function mv(t){return U(t,"header")}function Qd(t){return U(t,"facet")}function B3(t){const{field:n,timeUnit:e,bin:r,aggregate:i}=t;return{...e?{timeUnit:e}:{},...r?{bin:r}:{},...i?{aggregate:i}:{},field:n}}function gv(t){return U(t,"sort")}function va({fieldDef:t,fieldDef2:n,markDef:e,config:r}){if(ht(t)&&t.bandPosition!==void 0)return t.bandPosition;if(H(t)){const{timeUnit:i,bin:a}=t;if(i&&!n)return Wr("timeUnitBandPosition",e,r);if(Wt(a))return .5}}function z3({channel:t,fieldDef:n,fieldDef2:e,markDef:r,config:i,scaleType:a,useVlSizeChannel:o}){var l,c,f;const s=ge(t),u=qt(o?"size":s,r,i,{vgChannel:s});if(u!==void 0)return u;if(H(n)){const{timeUnit:d,bin:h}=n;if(d&&!e)return{band:Wr("timeUnitBandSize",r,i)};if(Wt(h)&&!wn(a))return{band:1}}return gl(r.type)?a?wn(a)?((l=i[r.type])==null?void 0:l.discreteBandSize)||{band:1}:(c=i[r.type])==null?void 0:c.continuousBandSize:(f=i[r.type])==null?void 0:f.discreteBandSize:void 0}function O3(t,n,e,r){return!!(Wt(t.bin)||t.timeUnit&&oe(t)&&t.type==="temporal")&&va({fieldDef:t,fieldDef2:n,markDef:e,config:r})!==void 0}function N3(t){return U(t,"sort")&&!U(t,"field")}function xl(t){return U(t,"condition")}function Zd(t){const n=t==null?void 0:t.condition;return!!n&&!T(n)&&H(n)}function wl(t){const n=t==null?void 0:t.condition;return!!n&&!T(n)&&ht(n)}function H(t){return U(t,"field")||(t==null?void 0:t.aggregate)==="count"}function xs(t){return t==null?void 0:t.type}function Yr(t){return U(t,"datum")}function ba(t){return oe(t)&&!nh(t)||th(t)}function R3(t){return oe(t)&&t.type==="quantitative"&&!t.bin||th(t)}function th(t){return Yr(t)&&$t(t.datum)}function ht(t){return H(t)||Yr(t)}function oe(t){return t&&(U(t,"field")||t.aggregate==="count")&&U(t,"type")}function yr(t){return U(t,"value")}function ho(t){return U(t,"scale")||U(t,"sort")}function ws(t){return U(t,"axis")||U(t,"stack")||U(t,"impute")}function T3(t){return U(t,"legend")}function P3(t){return U(t,"format")||U(t,"formatType")}function fR(t){return he(t,["legend","axis","header","scale"])}function Y(t,n={}){let e=t.field;const r=n.prefix;let i=n.suffix,a="";if(function(o){return o.aggregate==="count"}(t))e=aE("count");else{let o;if(!n.nofn)if(function(s){return U(s,"op")}(t))o=t.op;else{const{bin:s,aggregate:u,timeUnit:l}=t;Wt(s)?(o=wE(s),i=(n.binSuffix??"")+(n.suffix??"")):u?ma(u)?(a=`["${e}"]`,e=`argmax_${u.argmax}`):Ai(u)?(a=`["${e}"]`,e=`argmin_${u.argmin}`):o=String(u):l&&!so(l)&&(o=function(c){const{utc:f,...d}=xn(c);return d.unit?(f?"utc":"")+L(d).map(h=>Xt(`${h==="unit"?"":`_${h}_`}${d[h]}`)).join(""):(f?"utc":"")+"timeunit"+L(d).map(h=>Xt(`_${h}_${d[h]}`)).join("")}(l),i=(!["range","mid"].includes(n.binSuffix)&&n.binSuffix||"")+(n.suffix??""))}o&&(e=e?`${o}_${e}`:o)}return i&&(e=`${e}_${i}`),r&&(e=`${r}_${e}`),n.forAs?ds(e):n.expr?eE(e,n.expr)+a:He(e)+a}function nh(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return H(t)&&!!t.bin;case"temporal":return!1}throw new Error(qE(t.type))}const j3=(t,n)=>{switch(n.fieldTitle){case"plain":return t.field;case"functional":return function(e){const{aggregate:r,bin:i,timeUnit:a,field:o}=e;if(ma(r))return`${o} for argmax(${r.argmax})`;if(Ai(r))return`${o} for argmin(${r.argmin})`;const s=a&&!so(a)?xn(a):void 0,u=r||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||Wt(i)&&"bin";return u?`${u.toUpperCase()}(${o})`:o}(t);default:return function(e,r){var u;const{field:i,bin:a,timeUnit:o,aggregate:s}=e;if(s==="count")return r.countTitle;if(Wt(a))return`${i} (binned)`;if(o&&!so(o)){const l=(u=xn(o))==null?void 0:u.unit;if(l)return`${i} (${Ud(l).join("-")})`}else if(s)return ma(s)?`${i} for max ${s.argmax}`:Ai(s)?`${i} for min ${s.argmin}`:`${ll(s)} of ${i}`;return i}(t,n)}};let L3=j3;function q3(t){L3=t}function As(t,n,{allowDisabling:e,includeDefault:r=!0}){var s;const i=(s=yv(t))==null?void 0:s.title;if(!H(t))return i??t.title;const a=t,o=r?vv(a,n):void 0;return e?un(i,a.title,o):i??a.title??o}function yv(t){return ws(t)&&t.axis?t.axis:T3(t)&&t.legend?t.legend:mv(t)&&t.header?t.header:void 0}function vv(t,n){return L3(t,n)}function eh(t){if(P3(t)){const{format:n,formatType:e}=t;return{format:n,formatType:e}}{const n=yv(t)??{},{format:e,formatType:r}=n;return{format:e,formatType:r}}}function vr(t){return H(t)?t:Zd(t)?t.condition:void 0}function mn(t){return ht(t)?t:wl(t)?t.condition:void 0}function U3(t,n,e,r={}){return Q(t)||$t(t)||Fa(t)?(I(function(i,a,o){return`Channel ${i} is a ${a}. Converted to {value: ${Lt(o)}}.`}(n,Q(t)?"string":$t(t)?"number":"boolean",t)),{value:t}):ht(t)?rh(t,n,e,r):wl(t)?{...t,condition:rh(t.condition,n,e,r)}:t}function rh(t,n,e,r){if(P3(t)){const{format:i,formatType:a,...o}=t;if(fo(a)&&!e.customFormatTypes)return I(LE(n)),rh(o,n,e,r)}else{const i=ws(t)?"axis":T3(t)?"legend":mv(t)?"header":null;if(i&&t[i]){const{format:a,formatType:o,...s}=t[i];if(fo(o)&&!e.customFormatTypes)return I(LE(n)),rh({...t,[i]:s},n,e,r)}}return H(t)?bv(t,n,r):function(i){let a=i.type;if(a)return i;const{datum:o}=i;return a=$t(o)?"quantitative":Q(o)?"nominal":ao(o)?"temporal":void 0,{...i,type:a}}(t)}function bv(t,n,{compositeMark:e=!1}={}){const{aggregate:r,timeUnit:i,bin:a,field:o}=t,s={...t};if(e||!r||Td(r)||ma(r)||Ai(r)||(I(function(u){return`Invalid aggregation operator "${u}".`}(r)),delete s.aggregate),i&&(s.timeUnit=xn(i)),o&&(s.field=`${o}`),Wt(a)&&(s.bin=ih(a,n)),$n(a)&&!ln(n)&&I(function(u){return`Channel ${u} should not be used with "binned" bin.`}(n)),oe(s)){const{type:u}=s,l=function(c){if(c)switch(c=c.toLowerCase()){case"q":case uo:return"quantitative";case"t":case ys:return"temporal";case"o":case Zy:return"ordinal";case"n":case tv:return"nominal";case vs:return"geojson"}}(u);u!==l&&(s.type=l),u!=="quantitative"&&Pd(r)&&(I(function(c,f){return`Invalid field type "${c}" for aggregate: "${f}", using "quantitative" instead.`}(u,r)),s.type="quantitative")}else if(!pE(n)){const u=function(l,c){var p;switch(c){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(gv(l)&&T(l.sort))return"ordinal";const{aggregate:f,bin:d,timeUnit:h}=l;if(h)return"temporal";if(d||f&&!ma(f)&&!Ai(f))return"quantitative";if(ho(l)&&((p=l.scale)!=null&&p.type))switch(rv[l.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(s,n);s.type=u}if(oe(s)){const{compatible:u,warning:l}=function(c,f){const d=c.type;if(d==="geojson"&&f!=="shape")return{compatible:!1,warning:`Channel ${f} should not be used with a geojson data.`};switch(f){case mi:case gi:case Md:return nh(c)?_s:{compatible:!1,warning:zN(f)};case Jt:case bn:case ua:case ps:case pe:case Lr:case qr:case fl:case dl:case Bd:case no:case zd:case Od:case to:case Ge:case cr:case Nd:return _s;case dr:case Ve:case fr:case hr:return d!==uo?{compatible:!1,warning:`Channel ${f} should be used with a quantitative field only, not ${c.type} field.`}:_s;case xi:case ca:case fa:case da:case bi:case vi:case yi:case lr:case jr:case la:return d!=="nominal"||c.sort?_s:{compatible:!1,warning:`Channel ${f} should not be used with an unsorted discrete field.`};case me:case ha:return nh(c)||function(h){var p;return ho(h)&&bs((p=h.scale)==null?void 0:p.type)}(c)?_s:{compatible:!1,warning:ON(f)};case ms:return c.type!=="nominal"||"sort"in c?_s:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}}(s,n)||{};u===!1&&I(l)}if(gv(s)&&Q(s.sort)){const{sort:u}=s;if(S3(u))return{...s,sort:{encoding:u}};const l=u.substring(1);if(u.charAt(0)==="-"&&S3(l))return{...s,sort:{encoding:l,order:"descending"}}}if(mv(s)){const{header:u}=s;if(u){const{orient:l,...c}=u;if(l)return{...s,header:{...c,labelOrient:u.labelOrient||l,titleOrient:u.titleOrient||l}}}}return s}function ih(t,n){return Fa(t)?{maxbins:AE(n)}:t==="binned"?{binned:!0}:t.maxbins||t.step?t:{...t,maxbins:AE(n)}}const _s={compatible:!0};function ks(t){const{formatType:n}=eh(t);return n==="time"||!n&&function(e){return e&&(e.type==="temporal"||H(e)&&!!e.timeUnit)}(t)}function ah(t,{timeUnit:n,type:e,wrapTime:r,undefinedIfExprNotRequired:i}){var u;const a=n&&((u=xn(n))==null?void 0:u.unit);let o,s=a||e==="temporal";return pl(t)?o=t.expr:et(t)?o=t.signal:ao(t)?(s=!0,o=oo(t)):(Q(t)||$t(t))&&s&&(o=`datetime(${Lt(t)})`,function(l){return tt(KE,l)}(a)&&($t(t)&&t<1e4||Q(t)&&isNaN(Date.parse(t)))&&(o=oo({[a]:t}))),o?r&&s?`time(${o})`:o:i?void 0:Lt(t)}function I3(t,n){const{type:e}=t;return n.map(r=>{const i=ah(r,{timeUnit:H(t)&&!so(t.timeUnit)?t.timeUnit:void 0,type:e,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function Al(t,n){return Wt(t.bin)?Ir(n)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const W3={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 _l(t){return t==null?void 0:t.condition}const H3=["domain","grid","labels","ticks","title"],dR={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"},G3={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},hR={...G3,style:1,labelExpr:1,encoding:1};function V3(t){return tt(hR,t)}const Y3=L({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 Di(t){return U(t,"mark")}class oh{constructor(n,e){this.name=n,this.run=e}hasMatchingType(n){return!!Di(n)&&function(e){return Vr(e)?e.type:e}(n.mark)===this.name}}function po(t,n){const e=t&&t[n];return!!e&&(T(e)?fs(e,r=>!!r.field):H(e)||Zd(e))}function X3(t,n){const e=t&&t[n];return!!e&&(T(e)?fs(e,r=>!!r.field):H(e)||Yr(e)||wl(e))}function J3(t,n){if(ln(n)){const e=t[n];if((H(e)||Yr(e))&&(o3(e.type)||H(e)&&e.timeUnit))return X3(t,Ey(n))}return!1}function K3(t){return fs(oN,n=>{if(po(t,n)){const e=t[n];if(T(e))return fs(e,r=>!!r.aggregate);{const r=vr(e);return r&&!!r.aggregate}}return!1})}function Q3(t,n){const e=[],r=[],i=[],a=[],o={};return xv(t,(s,u)=>{if(H(s)){const{field:l,aggregate:c,bin:f,timeUnit:d,...h}=s;if(c||d||f){const p=yv(s),m=p==null?void 0:p.title;let g=Y(s,{forAs:!0});const y={...m?[]:{title:As(s,n,{allowDisabling:!0})},...h,field:g};if(c){let v;if(ma(c)?(v="argmax",g=Y({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):Ai(c)?(v="argmin",g=Y({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${g}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(v=c),v){const x={op:v,as:g};l&&(x.field=l),a.push(x)}}else if(e.push(g),oe(s)&&Wt(f)){if(r.push({bin:f,field:l,as:g}),e.push(Y(s,{binSuffix:"end"})),Al(s,u)&&e.push(Y(s,{binSuffix:"range"})),ln(u)){const v={field:`${g}_end`};o[`${u}2`]=v}y.bin="binned",pE(u)||(y.type=uo)}else if(d&&!so(d)){i.push({timeUnit:d,field:l,as:g});const v=oe(s)&&s.type!==ys&&"time";v&&(u===fl||u===no?y.formatType=v:function(x){return tt($y,x)}(u)?y.legend={formatType:v,...y.legend}:ln(u)&&(y.axis={formatType:v,...y.axis}))}o[u]=y}else e.push(l),o[u]=t[u]}else o[u]=t[u]}),{bins:r,timeUnits:i,aggregate:a,groupby:e,encoding:o}}function pR(t,n,e){const r=gN(n,e);if(!r)return!1;if(r==="binned"){const i=t[n===lr?Jt:bn];return!!(H(i)&&H(t[n])&&$n(i.bin))}return!0}function sh(t,n){const e={};for(const r of L(t)){const i=U3(t[r],r,n,{compositeMark:!0});e[r]=i}return e}function xv(t,n,e){if(t)for(const r of L(t)){const i=t[r];if(T(i))for(const a of i)n.call(e,a,r);else n.call(e,i,r)}}function Z3(t,n){return L(n).reduce((e,r)=>{switch(r){case Jt:case bn:case zd:case Nd:case Od:case lr:case jr:case ua:case ps:case Ge:case vi:case cr:case yi:case la:case fr:case dr:case hr:case Ve:case fl:case me:case to:case no:return e;case ms:if(t==="line"||t==="trail")return e;case dl:case Bd:{const i=n[r];if(T(i)||H(i))for(const a of J(i))a.aggregate||e.push(Y(a,{}));return e}case bi:if(t==="trail")return e;case pe:case Lr:case qr:case xi:case ca:case fa:case ha:case da:{const i=vr(n[r]);return i&&!i.aggregate&&e.push(Y(i,{})),e}}},[])}function wv(t,n,e,r=!0){if("tooltip"in e)return{tooltip:e.tooltip};const i=t.map(({fieldPrefix:o,titlePrefix:s})=>{const u=r?` of ${Av(n)}`:"";return{field:o+n.field,type:n.type,title:et(s)?{signal:`${s}"${escape(u)}"`}:s+u}}),a=function(o){const s=[];for(const u of L(o))if(po(o,u)){const l=o[u],c=J(l);for(const f of c)H(f)?s.push(f):Zd(f)&&s.push(f.condition)}return s}(e).map(fR);return{tooltip:[...i,...Pr(a,wt)]}}function Av(t){const{title:n,field:e}=t;return un(n,e)}function _v(t,n,e,r,i){const{scale:a,axis:o}=e;return({partName:s,mark:u,positionPrefix:l,endPositionPrefix:c,extraEncoding:f={}})=>{const d=Av(e);return t$(t,s,i,{mark:u,encoding:{[n]:{field:`${l}_${e.field}`,type:e.type,...d!==void 0?{title:d}:{},...a!==void 0?{scale:a}:{},...o!==void 0?{axis:o}:{}},...Q(c)?{[`${n}2`]:{field:`${c}_${e.field}`}}:{},...r,...f}})}}function t$(t,n,e,r){const{clip:i,color:a,opacity:o}=t,s=t.type;return t[n]||t[n]===void 0&&e[n]?[{...r,mark:{...e[n],...i?{clip:i}:{},...a?{color:a}:{},...o?{opacity:o}:{},...Vr(r.mark)?r.mark:{type:r.mark},style:`${s}-${String(n)}`,...Fa(t[n])?{}:t[n]}}]:[]}function n$(t,n,e){const{encoding:r}=t,i=n==="vertical"?"y":"x",a=r[i],o=r[`${i}2`],s=r[`${i}Error`],u=r[`${i}Error2`];return{continuousAxisChannelDef:uh(a,e),continuousAxisChannelDef2:uh(o,e),continuousAxisChannelDefError:uh(s,e),continuousAxisChannelDefError2:uh(u,e),continuousAxis:i}}function uh(t,n){if(t!=null&&t.aggregate){const{aggregate:e,...r}=t;return e!==n&&I(function(i,a){return`Continuous axis should not have customized aggregation function ${i}; ${a} already agregates the axis.`}(e,n)),r}return t}function e$(t,n){const{mark:e,encoding:r}=t,{x:i,y:a}=r;if(Vr(e)&&e.orient)return e.orient;if(ba(i)){if(ba(a)){const o=H(i)&&i.aggregate,s=H(a)&&a.aggregate;if(o||s!==n){if(s||o!==n){if(o===n&&s===n)throw new Error("Both x and y cannot have aggregate");return ks(a)&&!ks(i)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(ba(a))return"vertical";throw new Error(`Need a valid continuous axis for ${n}s`)}const lh="boxplot",mR=new oh(lh,i$);function r$(t){return $t(t)?"tukey":t}function i$(t,{config:n}){t={...t,encoding:sh(t.encoding,n)};const{mark:e,encoding:r,params:i,projection:a,...o}=t,s=Vr(e)?e:{type:e};i&&I(TE("boxplot"));const u=s.extent??n.boxplot.extent,l=qt("size",s,n),c=s.invalid,f=r$(u),{bins:d,timeUnits:h,transform:p,continuousAxisChannelDef:m,continuousAxis:g,groupby:y,aggregate:v,encodingWithoutContinuousAxis:x,ticksOrient:b,boxOrient:w,customTooltipWithoutAggregatedField:A}=function(Je,Se,YS){const Hh=e$(Je,lh),{continuousAxisChannelDef:qb,continuousAxis:Ub}=n$(Je,Hh,lh),js=qb.field,ue=ds(js),Ll=r$(Se),XS=[...a$(js),{op:"median",field:js,as:`mid_box_${ue}`},{op:"min",field:js,as:(Ll==="min-max"?"lower_whisker_":"min_")+ue},{op:"max",field:js,as:(Ll==="min-max"?"upper_whisker_":"max_")+ue}],JS=Ll==="min-max"||Ll==="tukey"?[]:[{calculate:`${Ot(`upper_box_${ue}`)} - ${Ot(`lower_box_${ue}`)}`,as:`iqr_${ue}`},{calculate:`min(${Ot(`upper_box_${ue}`)} + ${Ot(`iqr_${ue}`)} * ${Se}, ${Ot(`max_${ue}`)})`,as:`upper_whisker_${ue}`},{calculate:`max(${Ot(`lower_box_${ue}`)} - ${Ot(`iqr_${ue}`)} * ${Se}, ${Ot(`min_${ue}`)})`,as:`lower_whisker_${ue}`}],{[Ub]:nj,...KS}=Je.encoding,{customTooltipWithoutAggregatedField:QS,filteredEncoding:ZS}=function(i6){const{tooltip:_o,...ql}=i6;if(!_o)return{filteredEncoding:ql};let Ls,ni;if(T(_o)){for(const Gh of _o)Gh.aggregate?(Ls||(Ls=[]),Ls.push(Gh)):(ni||(ni=[]),ni.push(Gh));Ls&&(ql.tooltip=Ls)}else _o.aggregate?ql.tooltip=_o:ni=_o;return T(ni)&&ni.length===1&&(ni=ni[0]),{customTooltipWithoutAggregatedField:ni,filteredEncoding:ql}}(KS),{bins:Ib,timeUnits:Wb,aggregate:Hb,groupby:Gb,encoding:t6}=Q3(ZS,YS),n6=Hh==="vertical"?"horizontal":"vertical",e6=Hh,r6=[...Ib,...Wb,{aggregate:[...Hb,...XS],groupby:Gb},...JS];return{bins:Ib,timeUnits:Wb,transform:r6,groupby:Gb,aggregate:Hb,continuousAxisChannelDef:qb,continuousAxis:Ub,encodingWithoutContinuousAxis:t6,ticksOrient:n6,boxOrient:e6,customTooltipWithoutAggregatedField:QS}}(t,u,n),_=ds(m.field),{color:k,size:D,...C}=x,F=Je=>_v(s,g,m,Je,n.boxplot),E=F(C),$=F(x),M=(Z(n.boxplot.box)?n.boxplot.box.color:n.mark.color)||"#4c78a8",S=F({...C,...D?{size:D}:{},color:{condition:{test:`${Ot(`lower_box_${m.field}`)} >= ${Ot(`upper_box_${m.field}`)}`,...k||{value:M}}}}),B=wv([{fieldPrefix:f==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:f==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],m,x),z={type:"tick",color:"black",opacity:1,orient:b,invalid:c,aria:!1},j=f==="min-max"?B:wv([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],m,x),W=[...E({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:j}),...E({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:j}),...E({partName:"ticks",mark:z,positionPrefix:"lower_whisker",extraEncoding:j}),...E({partName:"ticks",mark:z,positionPrefix:"upper_whisker",extraEncoding:j})],K=[...f!=="tukey"?W:[],...$({partName:"box",mark:{type:"bar",...l?{size:l}:{},orient:w,invalid:c,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:B}),...S({partName:"median",mark:{type:"tick",invalid:c,...Z(n.boxplot.median)&&n.boxplot.median.color?{color:n.boxplot.median.color}:{},...l?{size:l}:{},orient:b,aria:!1},positionPrefix:"mid_box",extraEncoding:B})];if(f==="min-max")return{...o,transform:(o.transform??[]).concat(p),layer:K};const q=Ot(`lower_box_${m.field}`),at=Ot(`upper_box_${m.field}`),ot=`(${at} - ${q})`,it=`${q} - ${u} * ${ot}`,mt=`${at} + ${u} * ${ot}`,pt=Ot(m.field),X={joinaggregate:a$(m.field),groupby:y},Mt={transform:[{filter:`(${it} <= ${pt}) && (${pt} <= ${mt})`},{aggregate:[{op:"min",field:m.field,as:`lower_whisker_${_}`},{op:"max",field:m.field,as:`upper_whisker_${_}`},{op:"min",field:`lower_box_${m.field}`,as:`lower_box_${_}`},{op:"max",field:`upper_box_${m.field}`,as:`upper_box_${_}`},...v],groupby:y}],layer:W},{tooltip:Tt,...kt}=C,{scale:Et,axis:tn}=m,nn=Av(m),It=he(tn,["title"]),be=t$(s,"outliers",n.boxplot,{transform:[{filter:`(${pt} < ${it}) || (${pt} > ${mt})`}],mark:"point",encoding:{[g]:{field:m.field,type:m.type,...nn!==void 0?{title:nn}:{},...Et!==void 0?{scale:Et}:{},...jt(It)?{}:{axis:It}},...kt,...k?{color:k}:{},...A?{tooltip:A}:{}}})[0];let zn;const ti=[...d,...h,X];return be?zn={transform:ti,layer:[be,Mt]}:(zn=Mt,zn.transform.unshift(...ti)),{...o,layer:[zn,{transform:p,layer:K}]}}function a$(t){const n=ds(t);return[{op:"q1",field:t,as:`lower_box_${n}`},{op:"q3",field:t,as:`upper_box_${n}`}]}const kv="errorbar",gR=new oh(kv,o$);function o$(t,{config:n}){t={...t,encoding:sh(t.encoding,n)};const{transform:e,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:a,ticksOrient:o,markDef:s,outerSpec:u,tooltipEncoding:l}=s$(t,kv,n);delete a.size;const c=_v(s,i,r,a,n.errorbar),f=s.thickness,d=s.size,h={type:"tick",orient:o,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return{...u,transform:e,...p.length>1?{layer:p}:{...p[0]}}}function yR(t,n){const{encoding:e}=t;if(function(s){return(ht(s.x)||ht(s.y))&&!ht(s.x2)&&!ht(s.y2)&&!ht(s.xError)&&!ht(s.xError2)&&!ht(s.yError)&&!ht(s.yError2)}(e))return{orient:e$(t,n),inputType:"raw"};const r=function(s){return ht(s.x2)||ht(s.y2)}(e),i=function(s){return ht(s.xError)||ht(s.xError2)||ht(s.yError)||ht(s.yError2)}(e),a=e.x,o=e.y;if(r){if(i)throw new Error(`${n} cannot be both type aggregated-upper-lower and aggregated-error`);const s=e.x2,u=e.y2;if(ht(s)&&ht(u))throw new Error(`${n} cannot have both x2 and y2`);if(ht(s)){if(ba(a))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${n}`)}if(ht(u)){if(ba(o))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${n}`)}throw new Error("No ranged axis")}{const s=e.xError,u=e.xError2,l=e.yError,c=e.yError2;if(ht(u)&&!ht(s))throw new Error(`${n} cannot have xError2 without xError`);if(ht(c)&&!ht(l))throw new Error(`${n} cannot have yError2 without yError`);if(ht(s)&&ht(l))throw new Error(`${n} cannot have both xError and yError with both are quantiative`);if(ht(s)){if(ba(a))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(ht(l)){if(ba(o))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 s$(t,n,e){const{mark:r,encoding:i,params:a,projection:o,...s}=t,u=Vr(r)?r:{type:r};a&&I(TE(n));const{orient:l,inputType:c}=yR(t,n),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:m}=n$(t,l,n),{errorBarSpecificAggregate:g,postAggregateCalculates:y,tooltipSummary:v,tooltipTitleWithFieldName:x}=function(z,j,W,K,q,at,ot,it){let mt=[],pt=[];const X=j.field;let Mt,Tt=!1;if(at==="raw"){const kt=z.center?z.center:z.extent?z.extent==="iqr"?"median":"mean":it.errorbar.center,Et=z.extent?z.extent:kt==="mean"?"stderr":"iqr";if(kt==="median"!=(Et==="iqr")&&I(function(tn,nn,It){return`${tn} is not usually used with ${nn} for ${It}.`}(kt,Et,ot)),Et==="stderr"||Et==="stdev")mt=[{op:Et,field:X,as:`extent_${X}`},{op:kt,field:X,as:`center_${X}`}],pt=[{calculate:`${Ot(`center_${X}`)} + ${Ot(`extent_${X}`)}`,as:`upper_${X}`},{calculate:`${Ot(`center_${X}`)} - ${Ot(`extent_${X}`)}`,as:`lower_${X}`}],Mt=[{fieldPrefix:"center_",titlePrefix:ll(kt)},{fieldPrefix:"upper_",titlePrefix:u$(kt,Et,"+")},{fieldPrefix:"lower_",titlePrefix:u$(kt,Et,"-")}],Tt=!0;else{let tn,nn,It;Et==="ci"?(tn="mean",nn="ci0",It="ci1"):(tn="median",nn="q1",It="q3"),mt=[{op:nn,field:X,as:`lower_${X}`},{op:It,field:X,as:`upper_${X}`},{op:tn,field:X,as:`center_${X}`}],Mt=[{fieldPrefix:"upper_",titlePrefix:As({field:X,aggregate:It,type:"quantitative"},it,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:As({field:X,aggregate:nn,type:"quantitative"},it,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:As({field:X,aggregate:tn,type:"quantitative"},it,{allowDisabling:!1})}]}}else{(z.center||z.extent)&&I(function(kt,Et){return`${Et?"extent ":""}${Et&&kt?"and ":""}${kt?"center ":""}${Et&&kt?"are ":"is "}not needed when data are aggregated.`}(z.center,z.extent)),at==="aggregated-upper-lower"?(Mt=[],pt=[{calculate:Ot(W.field),as:`upper_${X}`},{calculate:Ot(X),as:`lower_${X}`}]):at==="aggregated-error"&&(Mt=[{fieldPrefix:"",titlePrefix:X}],pt=[{calculate:`${Ot(X)} + ${Ot(K.field)}`,as:`upper_${X}`}],q?pt.push({calculate:`${Ot(X)} + ${Ot(q.field)}`,as:`lower_${X}`}):pt.push({calculate:`${Ot(X)} - ${Ot(K.field)}`,as:`lower_${X}`}));for(const kt of pt)Mt.push({fieldPrefix:kt.as.substring(0,6),titlePrefix:Za(Za(kt.calculate,"datum['",""),"']","")})}return{postAggregateCalculates:pt,errorBarSpecificAggregate:mt,tooltipSummary:Mt,tooltipTitleWithFieldName:Tt}}(u,f,d,h,p,c,n,e),{[m]:b,[m==="x"?"x2":"y2"]:w,[m==="x"?"xError":"yError"]:A,[m==="x"?"xError2":"yError2"]:_,...k}=i,{bins:D,timeUnits:C,aggregate:F,groupby:E,encoding:$}=Q3(k,e),M=[...F,...g],S=c!=="raw"?[]:E,B=wv(v,f,$,x);return{transform:[...s.transform??[],...D,...C,...M.length===0?[]:[{aggregate:M,groupby:S}],...y],groupby:S,continuousAxisChannelDef:f,continuousAxis:m,encodingWithoutContinuousAxis:$,ticksOrient:l==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:s,tooltipEncoding:B}}function u$(t,n,e){return`${ll(t)} ${e} ${n}`}const Dv="errorband",vR=new oh(Dv,l$);function l$(t,{config:n}){t={...t,encoding:sh(t.encoding,n)};const{transform:e,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:a,markDef:o,outerSpec:s,tooltipEncoding:u}=s$(t,Dv,n),l=o,c=_v(l,i,r,a,n.errorband),f=t.encoding.x!==void 0&&t.encoding.y!==void 0;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p={...l.interpolate?{interpolate:l.interpolate}:{},...l.tension&&l.interpolate?{tension:l.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):l.interpolate?I(GE("interpolate")):l.tension&&I(GE("tension")),{...s,transform:e,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const c$={};function Fv(t,n,e){const r=new oh(t,n);c$[t]={normalizer:r,parts:e}}Fv(lh,i$,["box","median","outliers","rule","ticks"]),Fv(kv,o$,["ticks","rule"]),Fv(Dv,l$,["band","borders"]);const bR=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],f$={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"},d$={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"},xR=L(f$),wR=L(d$),h$=L({header:1,headerRow:1,headerColumn:1,headerFacet:1}),p$=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],br="_vgsid_",AR={point:{on:"click",fields:[br],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 Cv(t){return t==="legend"||!!(t!=null&&t.legend)}function Ev(t){return Cv(t)&&Z(t)}function $v(t){return!!(t!=null&&t.select)}function m$(t){const n=[];for(const e of t||[]){if($v(e))continue;const{expr:r,bind:i,...a}=e;if(i&&r){const o={...a,bind:i,init:r};n.push(o)}else{const o={...a,...r?{update:r}:{},...i?{bind:i}:{}};n.push(o)}}return n}function Sv(t){return U(t,"concat")}function ch(t){return U(t,"vconcat")}function Mv(t){return U(t,"hconcat")}function g$({step:t,offsetIsDiscrete:n}){return n?t.for??"offset":"position"}function Xr(t){return U(t,"step")}function y$(t){return U(t,"view")||U(t,"width")||U(t,"height")}const _R=L({align:1,bounds:1,center:1,columns:1,spacing:1});function Bv(t,n){return t[n]??t[n==="width"?"continuousWidth":"continuousHeight"]}function zv(t,n){const e=fh(t,n);return Xr(e)?e.step:v$}function fh(t,n){return un(t[n]??t[n==="width"?"discreteWidth":"discreteHeight"],{step:t.step})}const v$=20,kR={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:v$},mark:{color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},arc:{},area:{},bar:sR,circle:{},geoshape:{},image:{},line:{},point:{},rect:lv,rule:{color:"black"},square:{},text:{color:"black"},tick:uR,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:AR,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},Fi=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],b$={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},x$={blue:Fi[0],orange:Fi[1],red:Fi[2],teal:Fi[3],green:Fi[4],yellow:Fi[5],purple:Fi[6],pink:Fi[7],brown:Fi[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 w$(t){const n=L(t||{}),e={};for(const r of n){const i=t[r];e[r]=_l(i)?kE(i):Ee(i)}return e}const DR=[...x3,...Y3,...h$,"background","padding","legend","lineBreak","scale","style","title","view"];function A$(t={}){const{color:n,font:e,fontSize:r,selection:i,...a}=t,o=Hl({},ft(kR),e?function(u){return{text:{font:u},style:{"guide-label":{font:u},"guide-title":{font:u},"group-title":{font:u},"group-subtitle":{font:u}}}}(e):{},n?function(u={}){return{signals:[{name:"color",value:Z(u)?{...x$,...u}:x$}],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"}]}}}(n):{},r?function(u){return{signals:[{name:"fontSize",value:Z(u)?{...b$,...u}:b$}],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"}}}}}(r):{},a||{});i&&ap(o,"selection",i,!0);const s=he(o,DR);for(const u of["background","lineBreak","padding"])o[u]&&(s[u]=Ee(o[u]));for(const u of x3)o[u]&&(s[u]=Sn(o[u]));for(const u of Y3)o[u]&&(s[u]=w$(o[u]));for(const u of h$)o[u]&&(s[u]=Sn(o[u]));if(o.legend&&(s.legend=Sn(o.legend)),o.scale){const{invalid:u,...l}=o.scale,c=Sn(u,{level:1});s.scale={...Sn(l),...L(c).length>0?{invalid:c}:{}}}return o.style&&(s.style=function(u){const l=L(u),c={};for(const f of l)c[f]=w$(u[f]);return c}(o.style)),o.title&&(s.title=Sn(o.title)),o.view&&(s.view=Sn(o.view)),s}const FR=new Set(["view",...rR]),CR=["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"],ER={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...aR};function $R(t){t=ft(t);for(const n of CR)delete t[n];if(t.axis)for(const n in t.axis)_l(t.axis[n])&&delete t.axis[n];if(t.legend)for(const n of bR)delete t.legend[n];if(t.mark){for(const n of b3)delete t.mark[n];t.mark.tooltip&&Z(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(m$(t.params)),delete t.params);for(const n of FR){for(const r of b3)delete t[n][r];const e=ER[n];if(e)for(const r of e)delete t[n][r];SR(t,n)}for(const n of L(c$))delete t[n];(function(n){const{titleMarkConfig:e,subtitleMarkConfig:r,subtitle:i}=_E(n.title);jt(e)||(n.style["group-title"]={...n.style["group-title"],...e}),jt(r)||(n.style["group-subtitle"]={...n.style["group-subtitle"],...r}),jt(i)?delete n.title:n.title=i})(t);for(const n in t)Z(t[n])&&jt(t[n])&&delete t[n];return jt(t)?void 0:t}function SR(t,n,e,r){n==="view"&&(e="cell");const i={...t[n],...t.style[e??n]};jt(i)||(t.style[e??n]=i),delete t[n]}function dh(t){return U(t,"layer")}class Ov{map(n,e){return Qd(n)?this.mapFacet(n,e):function(r){return U(r,"repeat")}(n)?this.mapRepeat(n,e):Mv(n)?this.mapHConcat(n,e):ch(n)?this.mapVConcat(n,e):Sv(n)?this.mapConcat(n,e):this.mapLayerOrUnit(n,e)}mapLayerOrUnit(n,e){if(dh(n))return this.mapLayer(n,e);if(Di(n))return this.mapUnit(n,e);throw new Error(Ty(n))}mapLayer(n,e){return{...n,layer:n.layer.map(r=>this.mapLayerOrUnit(r,e))}}mapHConcat(n,e){return{...n,hconcat:n.hconcat.map(r=>this.map(r,e))}}mapVConcat(n,e){return{...n,vconcat:n.vconcat.map(r=>this.map(r,e))}}mapConcat(n,e){const{concat:r,...i}=n;return{...i,concat:r.map(a=>this.map(a,e))}}mapFacet(n,e){return{...n,spec:this.map(n.spec,e)}}mapRepeat(n,e){return{...n,spec:this.map(n.spec,e)}}}const MR={zero:1,center:1,normalize:1},BR=new Set([g3,Gd,Hd,Xd,Yd,ov,sv,Vd,y3,av]),zR=new Set([Gd,Hd,g3]);function Ds(t){return H(t)&&xs(t)==="quantitative"&&!t.bin}function _$(t,n,{orient:e,type:r}){const i=n==="x"?"y":"radius",a=n==="x"&&["bar","area"].includes(r),o=t[n],s=t[i];if(H(o)&&H(s))if(Ds(o)&&Ds(s)){if(o.stack)return n;if(s.stack)return i;const u=H(o)&&!!o.aggregate;if(u!==(H(s)&&!!s.aggregate))return u?n:i;if(a){if(e==="vertical")return i;if(e==="horizontal")return n}}else{if(Ds(o))return n;if(Ds(s))return i}else{if(Ds(o))return a&&e==="vertical"?void 0:n;if(Ds(s))return a&&e==="horizontal"?void 0:i}}function k$(t,n){var g,y;const e=Vr(t)?t:{type:t},r=e.type;if(!BR.has(r))return null;const i=_$(n,"x",e)||_$(n,"theta",e);if(!i)return null;const a=n[i],o=H(a)?Y(a,{}):void 0,s=function(v){switch(v){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(i),u=[],l=new Set;if(n[s]){const v=n[s],x=H(v)?Y(v,{}):void 0;x&&x!==o&&(u.push(s),l.add(x))}const c=s==="x"?"xOffset":"yOffset",f=n[c],d=H(f)?Y(f,{}):void 0;d&&d!==o&&(u.push(c),l.add(d));const h=hN.reduce((v,x)=>{if(x!=="tooltip"&&po(n,x)){const b=n[x];for(const w of J(b)){const A=vr(w);if(A.aggregate)continue;const _=Y(A,{});_&&l.has(_)||v.push({channel:x,fieldDef:A})}}return v},[]);let p;return a.stack!==void 0?p=Fa(a.stack)?a.stack?"zero":null:a.stack:zR.has(r)&&(p="zero"),p&&tt(MR,p)?K3(n)&&h.length===0?null:((g=a==null?void 0:a.scale)!=null&&g.type&&((y=a==null?void 0:a.scale)==null?void 0:y.type)!==s3&&(a!=null&&a.stack)&&I(function(v){return`Stack is applied to a non-linear scale (${v}).`}(a.scale.type)),ht(n[Ur(i)])?(a.stack!==void 0&&I(`Cannot stack "${m=i}" if there is already "${m}2".`),null):(H(a)&&a.aggregate&&!wN.has(a.aggregate)&&I(`Stacking is applied even though the aggregate function is non-summative ("${a.aggregate}").`),{groupbyChannels:u,groupbyFields:l,fieldChannel:i,impute:a.impute!==null&&ya(r),stackBy:h,offset:p})):null;var m}function D$(t,n,e){const r=Sn(t),i=qt("orient",r,e);if(r.orient=function(s,u,l){switch(s){case Yd:case ov:case sv:case y3:case nR:case tR:return}const{x:c,y:f,x2:d,y2:h}=u;switch(s){case Gd:if(H(c)&&($n(c.bin)||H(f)&&f.aggregate&&!c.aggregate))return"vertical";if(H(f)&&($n(f.bin)||H(c)&&c.aggregate&&!f.aggregate))return"horizontal";if(h||d){if(l)return l;if(!d)return(H(c)&&c.type===uo&&!Wt(c.bin)||th(c))&&H(f)&&$n(f.bin)?"horizontal":"vertical";if(!h)return(H(f)&&f.type===uo&&!Wt(f.bin)||th(f))&&H(c)&&$n(c.bin)?"vertical":"horizontal"}case Xd:if(d&&(!H(c)||!$n(c.bin))&&h&&(!H(f)||!$n(f.bin)))return;case Hd:if(h)return H(f)&&$n(f.bin)?"horizontal":"vertical";if(d)return H(c)&&$n(c.bin)?"vertical":"horizontal";if(s===Xd){if(c&&!f)return"vertical";if(f&&!c)return"horizontal"}case Vd:case av:{const p=R3(c),m=R3(f);if(l)return l;if(p&&!m)return s!=="tick"?"horizontal":"vertical";if(!p&&m)return s!=="tick"?"vertical":"horizontal";if(p&&m)return"vertical";{const g=oe(c)&&c.type===ys,y=oe(f)&&f.type===ys;if(g&&!y)return"vertical";if(!g&&y)return"horizontal"}return}}return"vertical"}(r.type,n,i),i!==void 0&&i!==r.orient&&I(`Specified orient "${r.orient}" overridden with "${i}".`),r.type==="bar"&&r.orient){const s=qt("cornerRadiusEnd",r,e);if(s!==void 0){const u=r.orient==="horizontal"&&n.x2||r.orient==="vertical"&&n.y2?["cornerRadius"]:oR[r.orient];for(const l of u)r[l]=s;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}const a=qt("opacity",r,e),o=qt("fillOpacity",r,e);return a===void 0&&o===void 0&&(r.opacity=function(s,u){if(vt([Yd,av,ov,sv],s)&&!K3(u))return .7}(r.type,n)),qt("cursor",r,e)===void 0&&(r.cursor=function(s,u,l){return u.href||s.href||qt("href",s,l)?"pointer":s.cursor}(r,n,e)),r}function OR(t){const{point:n,line:e,...r}=t;return L(r).length>1?r:r.type}function NR(t){for(const n of["line","area","rule","trail"])t[n]&&(t={...t,[n]:he(t[n],["point","line"])});return t}function Nv(t,n={},e){return t.point==="transparent"?{opacity:0}:t.point?Z(t.point)?t.point:{}:t.point!==void 0?null:n.point||e.shape?Z(n.point)?n.point:{}:void 0}function F$(t,n={}){return t.line?t.line===!0?{}:t.line:t.line!==void 0?null:n.line?n.line===!0?{}:n.line:void 0}class RR{constructor(){this.name="path-overlay"}hasMatchingType(n,e){if(Di(n)){const{mark:r,encoding:i}=n,a=Vr(r)?r:{type:r};switch(a.type){case"line":case"rule":case"trail":return!!Nv(a,e[a.type],i);case"area":return!!Nv(a,e[a.type],i)||!!F$(a,e[a.type])}}return!1}run(n,e,r){const{config:i}=e,{params:a,projection:o,mark:s,name:u,encoding:l,...c}=n,f=sh(l,i),d=Vr(s)?s:{type:s},h=Nv(d,i[d.type],f),p=d.type==="area"&&F$(d,i[d.type]),m=[{name:u,...a?{params:a}:{},mark:OR({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:he(f,["shape"])}],g=k$(D$(d,f,i),f);let y=f;if(g){const{fieldChannel:v,offset:x}=g;y={...f,[v]:{...f[v],...x?{stack:x}:{}}}}return y=he(y,["y2","x2"]),p&&m.push({...o?{projection:o}:{},mark:{type:"line",...cs(d,["clip","interpolate","tension","tooltip"]),...p},encoding:y}),h&&m.push({...o?{projection:o}:{},mark:{type:"point",opacity:1,filled:!0,...cs(d,["clip","tooltip"]),...h},encoding:y}),r({...c,layer:m},{...e,config:NR(i)})}}function TR(t,n){return n?bl(t)?S$(t,n):C$(t,n):t}function Rv(t,n){return n?S$(t,n):t}function Tv(t,n,e){const r=n[t];return function(i){return!Q(i)&&U(i,"repeat")}(r)?r.repeat in e?{...n,[t]:e[r.repeat]}:void I(function(i){return`Unknown repeated value "${i}".`}(r.repeat)):n}function C$(t,n){if((t=Tv("field",t,n))!==void 0){if(t===null)return null;if(gv(t)&&ki(t.sort)){const e=Tv("field",t.sort,n);t={...t,...e?{sort:e}:{}}}return t}}function E$(t,n){if(H(t))return C$(t,n);{const e=Tv("datum",t,n);return e===t||e.type||(e.type="nominal"),e}}function $$(t,n){if(!ht(t)){if(wl(t)){const e=E$(t.condition,n);if(e)return{...t,condition:e};{const{condition:r,...i}=t;return i}}return t}{const e=E$(t,n);if(e)return e;if(xl(t))return{condition:t.condition}}}function S$(t,n){const e={};for(const r in t)if(U(t,r)){const i=t[r];if(T(i))e[r]=i.map(a=>$$(a,n)).filter(a=>a);else{const a=$$(i,n);a!==void 0&&(e[r]=a)}}return e}class PR{constructor(){this.name="RuleForRangedLine"}hasMatchingType(n){if(Di(n)){const{encoding:e,mark:r}=n;if(r==="line"||Vr(r)&&r.type==="line")for(const i of cN){const a=e[eo(i)];if(e[i]&&(H(a)&&!$n(a.bin)||Yr(a)))return!0}}return!1}run(n,e,r){const{encoding:i,mark:a}=n;var o,s;return I((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.`)),r({...n,mark:Z(a)?{...a,type:"rule"}:"rule"},e)}}function M$({parentEncoding:t,encoding:n={},layer:e}){let r={};if(t){const i=new Set([...L(t),...L(n)]);for(const a of i){const o=n[a],s=t[a];if(ht(o)){const u={...s,...o};r[a]=u}else wl(o)?r[a]={...o,condition:{...s,...o.condition}}:o||o===null?r[a]=o:(e||yr(s)||et(s)||ht(s)||T(s))&&(r[a]=s)}}else r=n;return!r||jt(r)?void 0:r}function B$(t){const{parentProjection:n,projection:e}=t;return n&&e&&I(function(r){const{parentProjection:i,projection:a}=r;return`Layer's shared projection ${Lt(i)} is overridden by a child projection ${Lt(a)}.`}({parentProjection:n,projection:e})),e??n}function Pv(t){return U(t,"filter")}function z$(t){return U(t,"lookup")}function jR(t){return U(t,"pivot")}function LR(t){return U(t,"density")}function qR(t){return U(t,"quantile")}function UR(t){return U(t,"regression")}function IR(t){return U(t,"loess")}function WR(t){return U(t,"sample")}function HR(t){return U(t,"window")}function GR(t){return U(t,"joinaggregate")}function VR(t){return U(t,"flatten")}function YR(t){return U(t,"calculate")}function O$(t){return U(t,"bin")}function XR(t){return U(t,"impute")}function JR(t){return U(t,"timeUnit")}function KR(t){return U(t,"aggregate")}function QR(t){return U(t,"stack")}function ZR(t){return U(t,"fold")}function tT(t){return U(t,"extent")&&!U(t,"density")&&!U(t,"regression")}function N$(t,n){const{transform:e,...r}=t;if(e){const i=e.map(a=>{if(Pv(a))return{filter:jv(a,n)};if(O$(a)&&ro(a.bin))return{...a,bin:T$(a.bin)};if(z$(a)){const{selection:o,...s}=a.from;return o?{...a,from:{param:o,...s}}:a}return a});return{...r,transform:i}}return t}function R$(t,n){var r,i;const e=ft(t);if(H(e)&&ro(e.bin)&&(e.bin=T$(e.bin)),ho(e)&&((i=(r=e.scale)==null?void 0:r.domain)==null?void 0:i.selection)){const{selection:a,...o}=e.scale.domain;e.scale.domain={...o,...a?{param:a}:{}}}if(xl(e))if(T(e.condition))e.condition=e.condition.map(a=>{const{selection:o,param:s,test:u,...l}=a;return s?a:{...l,test:jv(a,n)}});else{const{selection:a,param:o,test:s,...u}=R$(e.condition,n);e.condition=o?e.condition:{...u,test:jv(e.condition,n)}}return e}function T$(t){const n=t.extent;if(n!=null&&n.selection){const{selection:e,...r}=n;return{...t,extent:{...r,param:e}}}return t}function jv(t,n){const e=r=>ls(r,i=>{var a;const o={param:i,empty:n.emptySelections[i]??!0};return(a=n.selectionPredicates)[i]??(a[i]=[]),n.selectionPredicates[i].push(o),o});return t.selection?e(t.selection):ls(t.test||t.filter,r=>r.selection?e(r.selection):r)}class Lv extends Ov{map(n,e){const r=e.selections??[];if(n.params&&!Di(n)){const i=[];for(const a of n.params)$v(a)?r.push(a):i.push(a);n.params=i}return e.selections=r,super.map(n,e)}mapUnit(n,e){const r=e.selections;if(!r||!r.length)return n;const i=(e.path??[]).concat(n.name),a=[];for(const o of r)if(o.views&&o.views.length)for(const s of o.views)(Q(s)&&(s===n.name||i.includes(s))||T(s)&&s.map(u=>i.indexOf(u)).every((u,l,c)=>u!==-1&&(l===0||u>c[l-1])))&&a.push(o);else a.push(o);return a.length&&(n.params=a),n}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const n=Lv.prototype[t];Lv.prototype[t]=function(e,r){return n.call(this,e,nT(e,r))}}function nT(t,n){return t.name?{...n,path:(n.path??[]).concat(t.name)}:n}function P$(t,n){n===void 0&&(n=A$(t.config));const e=function(o,s={}){const u={config:s};return iT.map(eT.map(rT.map(o,u),u),u)}(t,n),{width:r,height:i}=t,a=function(o,s,u){let{width:l,height:c}=s;const f=Di(o)||dh(o),d={};f?l=="container"&&c=="container"?(d.type="fit",d.contains="padding"):l=="container"?(d.type="fit-x",d.contains="padding"):c=="container"&&(d.type="fit-y",d.contains="padding"):(l=="container"&&(I(zE("width")),l=void 0),c=="container"&&(I(zE("height")),c=void 0));const h={type:"pad",...d,...u?j$(u.autosize):{},...j$(o.autosize)};if(h.type!=="fit"||f||(I(CN),h.type="pad"),l=="container"&&h.type!="fit"&&h.type!="fit-x"&&I(OE("width")),c=="container"&&h.type!="fit"&&h.type!="fit-y"&&I(OE("height")),!Ce(h,{type:"pad"}))return h}(e,{width:r,height:i,autosize:t.autosize},n);return{...e,...a?{autosize:a}:{}}}const eT=new class extends Ov{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[mR,gR,vR,new RR,new PR]}map(t,n){if(Di(t)){const e=po(t.encoding,mi),r=po(t.encoding,gi),i=po(t.encoding,Md);if(e||r||i)return this.mapFacetedUnit(t,n)}return super.map(t,n)}mapUnit(t,n){const{parentEncoding:e,parentProjection:r}=n,i=Rv(t.encoding,n.repeater),a={...t,...t.name?{name:[n.repeaterPrefix,t.name].filter(s=>s).join("_")}:{},...i?{encoding:i}:{}};if(e||r)return this.mapUnitWithParentEncodingOrProjection(a,n);const o=this.mapLayerOrUnit.bind(this);for(const s of this.nonFacetUnitNormalizers)if(s.hasMatchingType(a,n.config))return s.run(a,n,o);return a}mapRepeat(t,n){return function(e){return!T(e.repeat)&&U(e.repeat,"layer")}(t)?this.mapLayerRepeat(t,n):this.mapNonLayerRepeat(t,n)}mapLayerRepeat(t,n){const{repeat:e,spec:r,...i}=t,{row:a,column:o,layer:s}=e,{repeater:u={},repeaterPrefix:l=""}=n;return a||o?this.mapRepeat({...t,repeat:{...a?{row:a}:{},...o?{column:o}:{}},spec:{repeat:{layer:s},spec:r}},n):{...i,layer:s.map(c=>{const f={...u,layer:c},d=`${(r.name?`${r.name}_`:"")+l}child__layer_${Xt(c)}`,h=this.mapLayerOrUnit(r,{...n,repeater:f,repeaterPrefix:d});return h.name=d,h})}}mapNonLayerRepeat(t,n){const{repeat:e,spec:r,data:i,...a}=t;!T(e)&&t.columns&&(t=he(t,["columns"]),I(PE("repeat")));const o=[],{repeater:s={},repeaterPrefix:u=""}=n,l=!T(e)&&e.row||[s?s.row:null],c=!T(e)&&e.column||[s?s.column:null],f=T(e)&&e||[s?s.repeat:null];for(const h of f)for(const p of l)for(const m of c){const g={repeat:h,row:p,column:m,layer:s.layer},y=(r.name?`${r.name}_`:"")+u+"child__"+(T(e)?`${Xt(h)}`:(e.row?`row_${Xt(p)}`:"")+(e.column?`column_${Xt(m)}`:"")),v=this.map(r,{...n,repeater:g,repeaterPrefix:y});v.name=y,o.push(he(v,["data"]))}const d=T(e)?t.columns:e.column?e.column.length:1;return{data:r.data??i,align:"all",...a,columns:d,concat:o}}mapFacet(t,n){const{facet:e}=t;return bl(e)&&t.columns&&(t=he(t,["columns"]),I(PE("facet"))),super.mapFacet(t,n)}mapUnitWithParentEncodingOrProjection(t,n){const{encoding:e,projection:r}=t,{parentEncoding:i,parentProjection:a,config:o}=n,s=B$({parentProjection:a,projection:r}),u=M$({parentEncoding:i,encoding:Rv(e,n.repeater)});return this.mapUnit({...t,...s?{projection:s}:{},...u?{encoding:u}:{}},{config:o})}mapFacetedUnit(t,n){const{row:e,column:r,facet:i,...a}=t.encoding,{mark:o,width:s,projection:u,height:l,view:c,params:f,encoding:d,...h}=t,{facetMapping:p,layout:m}=this.getFacetMappingAndLayout({row:e,column:r,facet:i},n),g=Rv(a,n.repeater);return this.mapFacet({...h,...m,facet:p,spec:{...s?{width:s}:{},...l?{height:l}:{},...c?{view:c}:{},...u?{projection:u}:{},mark:o,encoding:g,...f?{params:f}:{}}},n)}getFacetMappingAndLayout(t,n){const{row:e,column:r,facet:i}=t;if(e||r){i&&I(`Facet encoding dropped as ${(a=[...e?[mi]:[],...r?[gi]:[]]).join(" and ")} ${a.length>1?"are":"is"} also specified.`);const o={},s={};for(const u of[mi,gi]){const l=t[u];if(l){const{align:c,center:f,spacing:d,columns:h,...p}=l;o[u]=p;for(const m of["align","center","spacing"])l[m]!==void 0&&(s[m]??(s[m]={}),s[m][u]=l[m])}}return{facetMapping:o,layout:s}}{const{align:o,center:s,spacing:u,columns:l,...c}=i;return{facetMapping:TR(c,n.repeater),layout:{...o?{align:o}:{},...s?{center:s}:{},...u?{spacing:u}:{},...l?{columns:l}:{}}}}var a}mapLayer(t,{parentEncoding:n,parentProjection:e,...r}){const{encoding:i,projection:a,...o}=t,s={...r,parentEncoding:M$({parentEncoding:n,encoding:i,layer:!0}),parentProjection:B$({parentProjection:e,projection:a})};return super.mapLayer({...o,...t.name?{name:[s.repeaterPrefix,t.name].filter(u=>u).join("_")}:{}},s)}},rT=new class extends Ov{map(t,n){return n.emptySelections??(n.emptySelections={}),n.selectionPredicates??(n.selectionPredicates={}),t=N$(t,n),super.map(t,n)}mapLayerOrUnit(t,n){if((t=N$(t,n)).encoding){const e={};for(const[r,i]of sa(t.encoding))e[r]=R$(i,n);t={...t,encoding:e}}return super.mapLayerOrUnit(t,n)}mapUnit(t,n){const{selection:e,...r}=t;return e?{...r,params:sa(e).map(([i,a])=>{const{init:o,bind:s,empty:u,...l}=a;l.type==="single"?(l.type="point",l.toggle=!1):l.type==="multi"&&(l.type="point"),n.emptySelections[i]=u!=="none";for(const c of En(n.selectionPredicates[i]??{}))c.empty=u!=="none";return{name:i,value:o,select:l,bind:s}})}:t}},iT=new Lv;function j$(t){return Q(t)?{type:t}:t??{}}const aT=["background","padding"];function L$(t,n){const e={};for(const r of aT)t&&t[r]!==void 0&&(e[r]=Ee(t[r]));return n&&(e.params=t.params),e}class Bi{constructor(n={},e={}){this.explicit=n,this.implicit=e}clone(){return new Bi(ft(this.explicit),ft(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(n){return un(this.explicit[n],this.implicit[n])}getWithExplicit(n){return this.explicit[n]!==void 0?{explicit:!0,value:this.explicit[n]}:this.implicit[n]!==void 0?{explicit:!1,value:this.implicit[n]}:{explicit:!1,value:void 0}}setWithExplicit(n,{value:e,explicit:r}){e!==void 0&&this.set(n,e,r)}set(n,e,r){return delete this[r?"implicit":"explicit"][n],this[r?"explicit":"implicit"][n]=e,this}copyKeyFromSplit(n,{explicit:e,implicit:r}){e[n]!==void 0?this.set(n,e[n],!0):r[n]!==void 0&&this.set(n,r[n],!1)}copyKeyFromObject(n,e){e[n]!==void 0&&this.set(n,e[n],!0)}copyAll(n){for(const e of L(n.combine())){const r=n.getWithExplicit(e);this.setWithExplicit(e,r)}}}function Jr(t){return{explicit:!0,value:t}}function xr(t){return{explicit:!1,value:t}}function q$(t){return(n,e,r,i)=>{const a=t(n.value,e.value);return a>0?n:a<0?e:hh(n,e,r,i)}}function hh(t,n,e,r){return t.explicit&&n.explicit&&I(function(i,a,o,s){return`Conflicting ${a.toString()} property "${i.toString()}" (${Lt(o)} and ${Lt(s)}). Using ${Lt(o)}.`}(e,r,t.value,n.value)),t}function xa(t,n,e,r,i=hh){return t===void 0||t.value===void 0?n:t.explicit&&!n.explicit?t:n.explicit&&!t.explicit?n:Ce(t.value,n.value)?t:i(t,n,e,r)}class oT extends Bi{constructor(n={},e={},r=!1){super(n,e),this.explicit=n,this.implicit=e,this.parseNothing=r}clone(){const n=super.clone();return n.parseNothing=this.parseNothing,n}}function Fs(t){return U(t,"url")}function kl(t){return U(t,"values")}function U$(t){return U(t,"name")&&!Fs(t)&&!kl(t)&&!wa(t)}function wa(t){return t&&(I$(t)||W$(t)||qv(t))}function I$(t){return U(t,"sequence")}function W$(t){return U(t,"sphere")}function qv(t){return U(t,"graticule")}var Qt;function H$({invalid:t,isPath:n}){switch(w3(t,{isPath:n})){case"filter":return{marks:"exclude-invalid-values",scales:"exclude-invalid-values"};case"break-paths-show-domains":return{marks:n?"include-invalid-values":"exclude-invalid-values",scales:"include-invalid-values"};case"break-paths-filter-domains":return{marks:n?"include-invalid-values":"exclude-invalid-values",scales:"exclude-invalid-values"};case"show":return{marks:"include-invalid-values",scales:"include-invalid-values"}}}(function(t){t[t.Raw=0]="Raw",t[t.Main=1]="Main",t[t.Row=2]="Row",t[t.Column=3]="Column",t[t.Lookup=4]="Lookup",t[t.PreFilterInvalid=5]="PreFilterInvalid",t[t.PostFilterInvalid=6]="PostFilterInvalid"})(Qt||(Qt={}));class Nt{constructor(n,e){this.debugName=e,this._children=[],this._parent=null,n&&(this.parent=n)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(n){this._parent=n,n&&n.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(n,e){this._children.includes(n)?I("Attempt to add the same child twice."):e!==void 0?this._children.splice(e,0,n):this._children.push(n)}removeChild(n){const e=this._children.indexOf(n);return this._children.splice(e,1),e}remove(){let n=this._parent.removeChild(this);for(const e of this._children)e._parent=this._parent,this._parent.addChild(e,n++)}insertAsParentOf(n){const e=n.parent;e.removeChild(this),this.parent=e,n.parent=this}swapWithParent(){const n=this._parent,e=n.parent;for(const i of this._children)i.parent=n;this._children=[],n.removeChild(this);const r=n.parent.removeChild(n);this._parent=e,e.addChild(this,r),n.parent=this}}class ye extends Nt{clone(){const n=new this.constructor;return n.debugName=`clone_${this.debugName}`,n._source=this._source,n._name=`clone_${this._name}`,n.type=this.type,n.refCounts=this.refCounts,n.refCounts[n._name]=0,n}constructor(n,e,r,i){super(n,e),this.type=r,this.refCounts=i,this._source=this._name=e,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${iE()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(n){this._source=n}}function Uv(t){return t.as!==void 0}function G$(t){return`${t}_end`}class Qr extends Nt{clone(){return new Qr(null,ft(this.timeUnits))}constructor(n,e){super(n),this.timeUnits=e}static makeFromEncoding(n,e){const r=e.reduceFieldDef((i,a,o)=>{const{field:s,timeUnit:u}=a;if(u){let l;if(so(u)){if(Zt(e)){const{mark:c,markDef:f,config:d}=e,h=va({fieldDef:a,markDef:f,config:d});(gl(c)||h)&&(l={timeUnit:xn(u),field:s})}}else l={as:Y(a,{forAs:!0}),field:s,timeUnit:u};if(Zt(e)){const{mark:c,markDef:f,config:d}=e,h=va({fieldDef:a,markDef:f,config:d});gl(c)&&ln(o)&&h!==.5&&(l.rectBandPosition=h)}l&&(i[wt(l)]=l)}return i},{});return jt(r)?null:new Qr(n,r)}static makeFromTransform(n,e){const{timeUnit:r,...i}={...e},a={...i,timeUnit:xn(r)};return new Qr(n,{[wt(a)]:a})}merge(n){this.timeUnits={...this.timeUnits};for(const e in n.timeUnits)this.timeUnits[e]||(this.timeUnits[e]=n.timeUnits[e]);for(const e of n.children)n.removeChild(e),e.parent=this;n.remove()}removeFormulas(n){const e={};for(const[r,i]of sa(this.timeUnits)){const a=Uv(i)?i.as:`${i.field}_end`;n.has(a)||(e[r]=i)}this.timeUnits=e}producedFields(){return new Set(En(this.timeUnits).map(n=>Uv(n)?n.as:G$(n.field)))}dependentFields(){return new Set(En(this.timeUnits).map(n=>n.field))}hash(){return`TimeUnit ${wt(this.timeUnits)}`}assemble(){const n=[];for(const e of En(this.timeUnits)){const{rectBandPosition:r}=e,i=xn(e.timeUnit);if(Uv(e)){const{field:a,as:o}=e,{unit:s,utc:u,...l}=i,c=[o,`${o}_end`];n.push({field:He(a),type:"timeunit",...s?{units:Ud(s)}:{},...u?{timezone:"utc"}:{},...l,as:c}),n.push(...Y$(c,r,i))}else if(e){const{field:a}=e,o=a.replaceAll("\\.","."),s=V$({timeUnit:i,field:o}),u=G$(o);n.push({type:"formula",expr:s,as:u}),n.push(...Y$([o,u],r,i))}}return n}}const ph="offsetted_rect_start",mh="offsetted_rect_end";function V$({timeUnit:t,field:n,reverse:e}){const{unit:r,utc:i}=t,a=ZE(r),{part:o,step:s}=r3(a,t.step);return`${i?"utcOffset":"timeOffset"}('${o}', ${Ot(n)}, ${e?-s:s})`}function Y$([t,n],e,r){if(e!==void 0&&e!==.5){const i=Ot(t),a=Ot(n);return[{type:"formula",expr:X$([V$({timeUnit:r,field:t,reverse:!0}),i],e+.5),as:`${t}_${ph}`},{type:"formula",expr:X$([i,a],e+.5),as:`${t}_${mh}`}]}return[]}function X$([t,n],e){return`${1-e} * ${t} + ${e} * ${n}`}const Dl="_tuple_fields";class sT{constructor(...n){this.items=n,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const uT={defined:()=>!0,parse:(t,n,e)=>{const r=n.name,i=n.project??(n.project=new sT),a={},o={},s=new Set,u=(p,m)=>{const g=m==="visual"?p.channel:p.field;let y=Xt(`${r}_${g}`);for(let v=1;s.has(y);v++)y=Xt(`${r}_${g}_${v}`);return s.add(y),{[m]:y}},l=n.type,c=t.config.selection[l],f=e.value!==void 0?J(e.value):null;let{fields:d,encodings:h}=Z(e.select)?e.select:{};if(!d&&!h&&f){for(const p of f)if(Z(p))for(const m of L(p))lN(m)?(h||(h=[])).push(m):l==="interval"?(I('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),h=c.encodings):(d??(d=[])).push(m)}d||h||(h=c.encodings,"fields"in c&&(d=c.fields));for(const p of h??[]){const m=t.fieldDef(p);if(m){let g=m.field;if(m.aggregate){I(EN(p,m.aggregate));continue}if(!g){I(RE(p));continue}if(m.timeUnit&&!so(m.timeUnit)){g=t.vgField(p);const y={timeUnit:m.timeUnit,as:g,field:m.field};o[wt(y)]=y}if(!a[g]){const y={field:g,channel:p,type:l==="interval"&&Ir(p)&&mr(t.getScaleComponent(p).get("type"))?"R":m.bin?"R-RE":"E",index:i.items.length};y.signals={...u(y,"data"),...u(y,"visual")},i.items.push(a[g]=y),i.hasField[g]=a[g],i.hasSelectionId=i.hasSelectionId||g===br,fE(p)?(y.geoChannel=p,y.channel=cE(p),i.hasChannel[y.channel]=a[g]):i.hasChannel[p]=a[g]}}else I(RE(p))}for(const p of d??[]){if(i.hasField[p])continue;const m={type:"E",field:p,index:i.items.length};m.signals={...u(m,"data")},i.items.push(m),i.hasField[p]=m,i.hasSelectionId=i.hasSelectionId||p===br}f&&(n.init=f.map(p=>i.items.map(m=>Z(p)?p[m.geoChannel||m.channel]!==void 0?p[m.geoChannel||m.channel]:p[m.field]:p))),jt(o)||(i.timeUnit=new Qr(null,o))},signals:(t,n,e)=>{const r=n.name+Dl;return e.filter(i=>i.name===r).length>0||n.project.hasSelectionId?e:e.concat({name:r,value:n.project.items.map(Z$)})}},J$="_curr",gh="anim_value",Cs="anim_clock",Iv="eased_anim_clock",K$="min_extent",Q$="max_range_extent",Wv="last_tick_at",Hv="is_playing",lT=1/60*1e3,cT={defined:t=>t.type==="point",topLevelSignals:(t,n,e)=>(Kr(n)&&(e=e.concat([{name:Cs,init:"0",on:[{events:{type:"timer",throttle:lT},update:`${Hv} ? (${Cs} + (now() - ${Wv}) > ${Q$} ? 0 : ${Cs} + (now() - ${Wv})) : ${Cs}`}]},{name:Wv,init:"now()",on:[{events:[{signal:Cs},{signal:Hv}],update:"now()"}]},{name:Hv,init:"true"}])),e),signals:(t,n,e)=>{const r=n.name,i=r+Dl,a=n.project,o="(item().isVoronoi ? datum.datum : datum)",s=En(t.component.selection??{}).reduce((d,h)=>h.type==="interval"?d.concat(h.name+Es):d,[]).map(d=>`indexof(item().mark.name, '${d}') < 0`).join(" && "),u="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(s?` && ${s}`:"");let l=`unit: ${yo(t)}, `;if(n.project.hasSelectionId?l+=`${br}: ${o}[${G(br)}]`:Kr(n)?l+=`fields: ${i}, values: [${gh} ? ${gh} : ${K$}]`:l+=`fields: ${i}, values: [${a.items.map(d=>{const h=t.fieldDef(d.channel);return h!=null&&h.bin?`[${o}[${G(t.vgField(d.channel,{}))}], ${o}[${G(t.vgField(d.channel,{binSuffix:"end"}))}]]`:`${o}[${G(d.field)}]`}).join(", ")}]`,Kr(n))return e.concat((c=n.name,f=t.scaleName(la),[{name:Iv,update:Cs},{name:`${c}_domain`,init:`domain('${f}')`},{name:K$,init:`extent(${c}_domain)[0]`},{name:Q$,init:`extent(range('${f}'))[1]`},{name:gh,update:`invert('${f}', ${Iv})`}]),[{name:r+$i,on:[{events:[{signal:Iv},{signal:gh}],update:`{${l}}`,force:!0}]}]);{const d=n.events;return e.concat([{name:r+$i,on:d?[{events:d,update:`${u} ? {${l}} : null`,force:!0}]:[]}])}var c,f}};function Z$(t){const{signals:n,hasLegend:e,index:r,...i}=t;return i.field=He(i.field),i}function mo(t,n=!0,e=Me){if(T(t)){const r=t.map(i=>mo(i,n,e));return n?`[${r.join(", ")}]`:r}return ao(t)?e(n?oo(t):function(r){const i=Iy(r,!0);return r.utc?+new Date(Date.UTC(...i)):+new Date(...i)}(t)):n?e(Lt(t)):t}function fT(t,n){for(const e of En(t.component.selection??{})){const r=e.name;let i=`${r}${$i}, ${e.resolve==="global"?"true":`{unit: ${yo(t)}}`}`;for(const a of wh)a.defined(e)&&(a.signals&&(n=a.signals(t,e,n)),a.modifyExpr&&(i=a.modifyExpr(t,e,i)));n.push({name:r+FT,on:[{events:{signal:e.name+$i},update:`modify(${G(e.name+go)}, ${i})`}]})}return Gv(n)}function dT(t,n){if(t.component.selection&&L(t.component.selection).length){const e=G(t.getName("cell"));n.unshift({name:"facet",value:{},on:[{events:aa("pointermove","scope"),update:`isTuple(facet) ? facet : group(${e}).datum`}]})}return Gv(n)}function t5(t,n){for(const e of En(t.component.selection??{}))for(const r of wh)r.defined(e)&&r.marks&&(n=r.marks(t,e,n));return n}function Gv(t){return t.map(n=>(n.on&&!n.on.length&&delete n.on,n))}const Ci={defined:t=>t.type==="interval"&&t.resolve==="global"&&t.bind&&t.bind==="scales",parse:(t,n)=>{const e=n.scales=[];for(const r of n.project.items){const i=r.channel;if(!Ir(i))continue;const a=t.getScaleComponent(i),o=a?a.get("type"):void 0;o=="sequential"&&I("Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc"),a&&mr(o)?(a.set("selectionExtent",{param:n.name,field:r.field},!0),e.push(r)):I("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(t,n,e)=>{const r=n.scales.filter(o=>e.filter(s=>s.name===o.signals.data).length===0);if(!t.parent||Yv(t)||r.length===0)return e;const i=e.find(o=>o.name===n.name);let a=i.update;if(a.includes(k5))i.update=`{${r.map(o=>`${G(He(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const s=`${G(He(o.field))}: ${o.signals.data}`;a.includes(s)||(a=`${a.substring(0,a.length-1)}, ${s}}`)}i.update=a}return e.concat(r.map(o=>({name:o.signals.data})))},signals:(t,n,e)=>{if(t.parent&&!Yv(t))for(const r of n.scales){const i=e.find(a=>a.name===r.signals.data);i.push="outer",delete i.value,delete i.update}return e}};function Vv(t,n){return`domain(${G(t.scaleName(n))})`}function Yv(t){return t.parent&&zs(t.parent)&&(!t.parent.parent||Yv(t.parent.parent))}const Es="_brush",n5="_scale_trigger",Fl="geo_interval_init_tick",e5="_init",hT={defined:t=>t.type==="interval",parse:(t,n,e)=>{var r;if(t.hasProjection){const i={...Z(e.select)?e.select:{}};i.fields=[br],i.encodings||(i.encodings=e.value?L(e.value):[dr,fr]),e.select={type:"interval",...i}}if(n.translate&&!Ci.defined(n)){const i=`!event.item || event.item.mark.name !== ${G(n.name+Es)}`;for(const a of n.events){if(!a.between){I(`${a} is not an ordered event stream for interval selections.`);continue}const o=J((r=a.between[0]).filter??(r.filter=[]));o.includes(i)||o.push(i)}}},signals:(t,n,e)=>{const r=n.name,i=r+$i,a=En(n.project.hasChannel).filter(s=>s.channel===Jt||s.channel===bn),o=n.init?n.init[0]:null;if(e.push(...a.reduce((s,u)=>s.concat(function(l,c,f,d){const h=!l.hasProjection,p=f.channel,m=f.signals.visual,g=G(h?l.scaleName(p):l.projectionName()),y=w=>`scale(${g}, ${w})`,v=l.getSizeSignalRef(p===Jt?"width":"height").signal,x=`${p}(unit)`,b=c.events.reduce((w,A)=>[...w,{events:A.between[0],update:`[${x}, ${x}]`},{events:A,update:`[${m}[0], clamp(${x}, 0, ${v})]`}],[]);if(h){const w=f.signals.data,A=Ci.defined(c),_=l.getScaleComponent(p),k=_?_.get("type"):void 0,D=d?{init:mo(d,!0,y)}:{value:[]};return b.push({events:{signal:c.name+n5},update:mr(k)?`[${y(`${w}[0]`)}, ${y(`${w}[1]`)}]`:"[0, 0]"}),A?[{name:w,on:[]}]:[{name:m,...D,on:b},{name:w,...d?{init:mo(d)}:{},on:[{events:{signal:m},update:`${m}[0] === ${m}[1] ? null : invert(${g}, ${m})`}]}]}{const w=p===Jt?0:1,A=c.name+e5;return[{name:m,...d?{init:`[${A}[0][${w}], ${A}[1][${w}]]`}:{value:[]},on:b}]}}(t,n,u,o&&o[u.index])),[])),t.hasProjection){const s=G(t.projectionName()),u=t.projectionName()+"_center",{x:l,y:c}=n.project.hasChannel,f=l&&l.signals.visual,d=c&&c.signals.visual,h=l?o&&o[l.index]:`${u}[0]`,p=c?o&&o[c.index]:`${u}[1]`,m=x=>t.getSizeSignalRef(x).signal,g=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":m("width")}, ${d?d+"[1]":m("height")}]]`;o&&(e.unshift({name:r+e5,init:`[scale(${s}, [${l?h[0]:h}, ${c?p[0]:p}]), scale(${s}, [${l?h[1]:h}, ${c?p[1]:p}])]`}),!l||!c)&&(e.find(x=>x.name===u)||e.unshift({name:u,update:`invert(${s}, [${m("width")}/2, ${m("height")}/2])`}));const y=`vlSelectionTuples(${`intersect(${g}, {markname: ${G(t.getName("marks"))}}, unit.mark)`}, ${`{unit: ${yo(t)}}`})`,v=a.map(x=>x.signals.visual);return e.concat({name:i,on:[{events:[...v.length?[{signal:v.join(" || ")}]:[],...o?[{signal:Fl}]:[]],update:y}]})}{if(!Ci.defined(n)){const l=r+n5,c=a.map(f=>{const d=f.channel,{data:h,visual:p}=f.signals,m=G(t.scaleName(d)),g=mr(t.getScaleComponent(d).get("type"))?"+":"";return`(!isArray(${h}) || (${g}invert(${m}, ${p})[0] === ${g}${h}[0] && ${g}invert(${m}, ${p})[1] === ${g}${h}[1]))`});c.length&&e.push({name:l,value:{},on:[{events:a.map(f=>({scale:t.scaleName(f.channel)})),update:c.join(" && ")+` ? ${l} : {}`}]})}const s=a.map(l=>l.signals.data),u=`unit: ${yo(t)}, fields: ${r+Dl}, values`;return e.concat({name:i,...o?{init:`{${u}: ${mo(o)}}`}:{},...s.length?{on:[{events:[{signal:s.join(" || ")}],update:`${s.join(" && ")} ? {${u}: [${s}]} : null`}]}:{}})}},topLevelSignals:(t,n,e)=>(Zt(t)&&t.hasProjection&&n.init&&(e.filter(r=>r.name===Fl).length||e.unshift({name:Fl,value:null,on:[{events:"timer{1}",update:`${Fl} === null ? {} : ${Fl}`}]})),e),marks:(t,n,e)=>{const r=n.name,{x:i,y:a}=n.project.hasChannel,o=i==null?void 0:i.signals.visual,s=a==null?void 0:a.signals.visual,u=`data(${G(n.name+go)})`;if(Ci.defined(n)||!i&&!a)return e;const l={x:i!==void 0?{signal:`${o}[0]`}:{value:0},y:a!==void 0?{signal:`${s}[0]`}:{value:0},x2:i!==void 0?{signal:`${o}[1]`}:{field:{group:"width"}},y2:a!==void 0?{signal:`${s}[1]`}:{field:{group:"height"}}};if(n.resolve==="global")for(const g of L(l))l[g]=[{test:`${u}.length && ${u}[0].unit === ${yo(t)}`,...l[g]},{value:0}];const{fill:c,fillOpacity:f,cursor:d,...h}=n.mark,p=L(h).reduce((g,y)=>(g[y]=[{test:[i!==void 0&&`${o}[0] !== ${o}[1]`,a!==void 0&&`${s}[0] !== ${s}[1]`].filter(v=>v).join(" && "),value:h[y]},{value:null}],g),{}),m=d??(n.translate?"move":null);return[{name:`${r+Es}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:c},fillOpacity:{value:f}},update:l}},...e,{name:r+Es,type:"rect",clip:!0,encode:{enter:{...m?{cursor:{value:m}}:{},fill:{value:"transparent"}},update:{...l,...p}}}]}};function $s({model:t,channelDef:n,vgChannel:e,invalidValueRef:r,mainRefFn:i}){const a=xl(n)&&n.condition;let o=[];a&&(o=J(a).map(u=>{const l=i(u);if(function(c){return U(c,"param")}(u)){const{param:c,empty:f}=u;return{test:q5(t,{param:c,empty:f}),...l}}return{test:Fh(t,u.test),...l}})),r!==void 0&&o.push(r);const s=i(n);return s!==void 0&&o.push(s),o.length>1||o.length===1&&o[0].test?{[e]:o}:o.length===1?{[e]:o[0]}:{}}function Xv(t,n="text"){const e=t.encoding[n];return $s({model:t,channelDef:e,vgChannel:n,mainRefFn:r=>yh(r,t.config),invalidValueRef:void 0})}function yh(t,n,e="datum"){if(t){if(yr(t))return Gt(t.value);if(ht(t)){const{format:r,formatType:i}=eh(t);return hv({fieldOrDatumDef:t,format:r,formatType:i,expr:e,config:n})}}}function r5(t,n={}){const{encoding:e,markDef:r,config:i,stack:a}=t,o=e.tooltip;if(T(o))return{tooltip:a5({tooltip:o},a,i,n)};{const s=n.reactiveGeom?"datum.datum":"datum";return $s({model:t,channelDef:o,vgChannel:"tooltip",mainRefFn:u=>{const l=yh(u,i,s);if(l)return l;if(u===null)return;let c=qt("tooltip",r,i);return c===!0&&(c={content:"encoding"}),Q(c)?{value:c}:Z(c)?et(c)?c:c.content==="encoding"?a5(e,a,i,n):{signal:s}:void 0},invalidValueRef:void 0})}}function i5(t,n,e,{reactiveGeom:r}={}){const i={...e,...e.tooltipFormat},a=new Set,o=r?"datum.datum":"datum",s=[];function u(c,f){const d=eo(f),h=oe(c)?c:{...c,type:t[d].type},p=h.title||vv(h,i),m=J(p).join(", ").replaceAll(/"/g,'\\"');let g;if(ln(f)){const y=f==="x"?"x2":"y2",v=vr(t[y]);if($n(h.bin)&&v){const x=Y(h,{expr:o}),b=Y(v,{expr:o}),{format:w,formatType:A}=eh(h);g=vl(x,b,w,A,i),a.add(y)}}if((ln(f)||f===Ge||f===cr)&&n&&n.fieldChannel===f&&n.offset==="normalize"){const{format:y,formatType:v}=eh(h);g=hv({fieldOrDatumDef:h,format:y,formatType:v,expr:o,config:i,normalizeStack:!0}).signal}g??(g=yh(h,i,o).signal),s.push({channel:f,key:m,value:g})}xv(t,(c,f)=>{H(c)?u(c,f):Zd(c)&&u(c.condition,f)});const l={};for(const{channel:c,key:f,value:d}of s)a.has(c)||l[f]||(l[f]=d);return l}function a5(t,n,e,{reactiveGeom:r}={}){const i=i5(t,n,e,{reactiveGeom:r}),a=sa(i).map(([o,s])=>`"${o}": ${s}`);return a.length>0?{signal:`{${a.join(", ")}}`}:void 0}function pT(t){const{markDef:n,config:e}=t,r=qt("aria",n,e);return r===!1?{}:{...r?{aria:r}:{},...mT(t),...gT(t)}}function mT(t){const{mark:n,markDef:e,config:r}=t;if(r.aria===!1)return{};const i=qt("ariaRoleDescription",e,r);return i!=null?{ariaRoleDescription:{value:i}}:tt(kN,n)?{}:{ariaRoleDescription:{value:n}}}function gT(t){const{encoding:n,markDef:e,config:r,stack:i}=t,a=n.description;if(a)return $s({model:t,channelDef:a,vgChannel:"description",mainRefFn:u=>yh(u,t.config),invalidValueRef:void 0});const o=qt("description",e,r);if(o!=null)return{description:Gt(o)};if(r.aria===!1)return{};const s=i5(n,i,r);return jt(s)?void 0:{description:{signal:sa(s).map(([u,l],c)=>`"${c>0?"; ":""}${u}: " + (${l})`).join(" + ")}}}function Mn(t,n,e={}){const{markDef:r,encoding:i,config:a}=n,{vgChannel:o}=e;let{defaultRef:s,defaultValue:u}=e;const l=i[t];s===void 0&&(u??(u=qt(t,r,a,{vgChannel:o,ignoreVgConfig:!xl(l)})),u!==void 0&&(s=Gt(u)));const c={markDef:r,config:a,scaleName:n.scaleName(t),scale:n.getScaleComponent(t)},f=_3({...c,scaleChannel:t,channelDef:l});return $s({model:n,channelDef:l,vgChannel:o??t,invalidValueRef:f,mainRefFn:d=>dv({...c,channel:t,channelDef:d,stack:null,defaultRef:s})})}function o5(t,n={filled:void 0}){const{markDef:e,encoding:r,config:i}=t,{type:a}=e,o=n.filled??qt("filled",e,i),s=vt(["bar","point","circle","square","geoshape"],a)?"transparent":void 0,u=qt(o===!0?"color":void 0,e,i,{vgChannel:"fill"})??i.mark[o===!0&&"color"]??s,l=qt(o===!1?"color":void 0,e,i,{vgChannel:"stroke"})??i.mark[o===!1&&"color"],c=o?"fill":"stroke",f={...u?{fill:Gt(u)}:{},...l?{stroke:Gt(l)}:{}};return e.color&&(o?e.fill:e.stroke)&&I(UE("property",{fill:"fill"in e,stroke:"stroke"in e})),{...f,...Mn("color",t,{vgChannel:c,defaultValue:o?u:l}),...Mn("fill",t,{defaultValue:r.fill?u:void 0}),...Mn("stroke",t,{defaultValue:r.stroke?l:void 0})}}function yT(t){const{encoding:n,mark:e}=t,r=n.order;return!ya(e)&&yr(r)?$s({model:t,channelDef:r,vgChannel:"zindex",mainRefFn:i=>Gt(i.value),invalidValueRef:void 0}):{}}function Cl({channel:t,markDef:n,encoding:e={},model:r,bandPosition:i}){const a=`${t}Offset`,o=n[a],s=e[a];if((a==="xOffset"||a==="yOffset")&&s)return{offsetType:"encoding",offset:dv({channel:a,channelDef:s,markDef:n,config:r==null?void 0:r.config,scaleName:r.scaleName(a),scale:r.getScaleComponent(a),stack:null,defaultRef:Gt(o),bandPosition:i})};const u=n[a];return u?{offsetType:"visual",offset:u}:{}}function se(t,n,{defaultPos:e,vgChannel:r}){const{encoding:i,markDef:a,config:o,stack:s}=n,u=i[t],l=i[Ur(t)],c=n.scaleName(t),f=n.getScaleComponent(t),{offset:d,offsetType:h}=Cl({channel:t,markDef:a,encoding:i,model:n,bandPosition:.5}),p=Jv({model:n,defaultPos:e,channel:t,scaleName:c,scale:f}),m=!u&&ln(t)&&(i.latitude||i.longitude)?{field:n.getName(t)}:function(g){const{channel:y,channelDef:v,scaleName:x,stack:b,offset:w,markDef:A}=g;if(ht(v)&&b&&y===b.fieldChannel){if(H(v)){let _=v.bandPosition;if(_!==void 0||A.type!=="text"||y!=="radius"&&y!=="theta"||(_=.5),_!==void 0)return Jd({scaleName:x,fieldOrDatumDef:v,startSuffix:"start",bandPosition:_,offset:w})}return co(v,x,{suffix:"end"},{offset:w})}return fv(g)}({channel:t,channelDef:u,channel2Def:l,markDef:a,config:o,scaleName:c,scale:f,stack:s,offset:d,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return m?{[r||t]:m}:void 0}function Jv({model:t,defaultPos:n,channel:e,scaleName:r,scale:i}){const{markDef:a,config:o}=t;return()=>{const s=eo(e),u=pa(e),l=qt(e,a,o,{vgChannel:u});if(l!==void 0)return yl(e,l);switch(n){case"zeroOrMin":return s5({scaleName:r,scale:i,mode:"zeroOrMin",mainChannel:s,config:o});case"zeroOrMax":return s5({scaleName:r,scale:i,mode:{zeroOrMax:{widthSignal:t.width.signal,heightSignal:t.height.signal}},mainChannel:s,config:o});case"mid":return{...t[ge(e)],mult:.5}}}}function s5({mainChannel:t,config:n,...e}){const r=A3(e),{mode:i}=e;if(r)return r;switch(t){case"radius":{if(i==="zeroOrMin")return{value:0};const{widthSignal:a,heightSignal:o}=i.zeroOrMax;return{signal:`min(${a},${o})/2`}}case"theta":return i==="zeroOrMin"?{value:0}:{signal:"2*PI"};case"x":return i==="zeroOrMin"?{value:0}:{field:{group:"width"}};case"y":return i==="zeroOrMin"?{field:{group:"height"}}:{value:0}}}const vT={left:"x",center:"xc",right:"x2"},bT={top:"y",middle:"yc",bottom:"y2"};function u5(t,n,e,r="middle"){if(t==="radius"||t==="theta")return pa(t);const i=t==="x"?"align":"baseline",a=qt(i,n,e);let o;return et(a)?(I(function(s){return`The ${s} for range marks cannot be an expression`}(i)),o=void 0):o=a,t==="x"?vT[o||(r==="top"?"left":"center")]:bT[o||r]}function vh(t,n,{defaultPos:e,defaultPos2:r,range:i}){return i?l5(t,n,{defaultPos:e,defaultPos2:r}):se(t,n,{defaultPos:e})}function l5(t,n,{defaultPos:e,defaultPos2:r}){const{markDef:i,config:a}=n,o=Ur(t),s=ge(t),u=function(l,c,f){const{encoding:d,mark:h,markDef:p,stack:m,config:g}=l,y=eo(f),v=ge(f),x=pa(f),b=d[y],w=l.scaleName(y),A=l.getScaleComponent(y),{offset:_}=Cl(f in d||f in p?{channel:f,markDef:p,encoding:d,model:l}:{channel:y,markDef:p,encoding:d,model:l});if(!b&&(f==="x2"||f==="y2")&&(d.latitude||d.longitude)){const D=ge(f),C=l.markDef[D];return C!=null?{[D]:{value:C}}:{[x]:{field:l.getName(f)}}}const k=function({channel:D,channelDef:C,channel2Def:F,markDef:E,config:$,scaleName:M,scale:S,stack:B,offset:z,defaultRef:j}){return ht(C)&&B&&D.charAt(0)===B.fieldChannel.charAt(0)?co(C,M,{suffix:"start"},{offset:z}):fv({channel:D,channelDef:F,scaleName:M,scale:S,stack:B,markDef:E,config:$,offset:z,defaultRef:j})}({channel:f,channelDef:b,channel2Def:d[f],markDef:p,config:g,scaleName:w,scale:A,stack:m,offset:_,defaultRef:void 0});return k!==void 0?{[x]:k}:bh(f,p)||bh(f,{[f]:Ry(f,p,g.style),[v]:Ry(v,p,g.style)})||bh(f,g[h])||bh(f,g.mark)||{[x]:Jv({model:l,defaultPos:c,channel:f,scaleName:w,scale:A})()}}(n,r,o);return{...se(t,n,{defaultPos:e,vgChannel:u[s]?u5(t,i,a):pa(t)}),...u}}function bh(t,n){const e=ge(t),r=pa(t);if(n[r]!==void 0)return{[r]:yl(t,n[r])};if(n[t]!==void 0)return{[r]:yl(t,n[t])};if(n[e]){const i=n[e];if(!lo(i))return{[e]:yl(t,i)};I(function(a){return`Position range does not support relative band size for ${a}.`}(e))}}function Ei(t,n){const{config:e,encoding:r,markDef:i}=t,a=i.type,o=Ur(n),s=ge(n),u=r[n],l=r[o],c=t.getScaleComponent(n),f=c?c.get("type"):void 0,d=i.orient,h=r[s]??r.size??qt("size",i,e,{vgChannel:s}),p=mE(n),m=a==="bar"&&(n==="x"?d==="vertical":d==="horizontal")||a==="tick"&&(n==="y"?d==="vertical":d==="horizontal");return!H(u)||!(Wt(u.bin)||$n(u.bin)||u.timeUnit&&!l)||h&&!lo(h)||r[p]||wn(f)?(ht(u)&&wn(f)||m)&&!l?function(g,y,v){var mt,pt;const{markDef:x,encoding:b,config:w,stack:A}=v,_=x.orient,k=v.scaleName(y),D=v.getScaleComponent(y),C=ge(y),F=Ur(y),E=mE(y),$=v.scaleName(E),M=v.getScaleComponent(Ey(y)),S=x.type==="tick"||_==="horizontal"&&y==="y"||_==="vertical"&&y==="x";let B;(b.size||x.size)&&(S?B=Mn("size",v,{vgChannel:C,defaultRef:Gt(x.size)}):I(function(X){return`Cannot apply size to non-oriented mark "${X}".`}(x.type)));const z=!!B,j=z3({channel:y,fieldDef:g,markDef:x,config:w,scaleType:(mt=D||M)==null?void 0:mt.get("type"),useVlSizeChannel:S});B=B||{[C]:xT(C,$||k,M||D,w,j,!!g,x.type)};const W=((pt=D||M)==null?void 0:pt.get("type"))==="band"&&lo(j)&&!z?"top":"middle",K=u5(y,x,w,W),q=K==="xc"||K==="yc",{offset:at,offsetType:ot}=Cl({channel:y,markDef:x,encoding:b,model:v,bandPosition:q?.5:0}),it=fv({channel:y,channelDef:g,markDef:x,config:w,scaleName:k,scale:D,stack:A,offset:at,defaultRef:Jv({model:v,defaultPos:"mid",channel:y,scaleName:k,scale:D}),bandPosition:q?ot==="encoding"?0:.5:et(j)?{signal:`(1-${j})/2`}:lo(j)?(1-j.band)/2:0});if(C)return{[K]:it,...B};{const X=pa(F),Mt=B[C],Tt=at?{...Mt,offset:at}:Mt;return{[K]:it,[X]:T(it)?[it[0],{...it[1],offset:Tt}]:{...it,offset:Tt}}}}(u,n,t):l5(n,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function({fieldDef:g,fieldDef2:y,channel:v,model:x}){var pt;const{config:b,markDef:w,encoding:A}=x,_=x.getScaleComponent(v),k=x.scaleName(v),D=_?_.get("type"):void 0,C=_.get("reverse"),F=z3({channel:v,fieldDef:g,markDef:w,config:b,scaleType:D}),E=(pt=x.component.axes[v])==null?void 0:pt[0],$=(E==null?void 0:E.get("translate"))??.5,M=ln(v)?qt("binSpacing",w,b)??0:0,S=Ur(v),B=pa(v),z=pa(S),j=Wr("minBandSize",w,b),{offset:W}=Cl({channel:v,markDef:w,encoding:A,model:x,bandPosition:0}),{offset:K}=Cl({channel:S,markDef:w,encoding:A,model:x,bandPosition:0}),q=function({scaleName:X,fieldDef:Mt}){const Tt=Y(Mt,{expr:"datum"});return`abs(scale("${X}", ${Y(Mt,{expr:"datum",suffix:"end"})}) - scale("${X}", ${Tt}))`}({fieldDef:g,scaleName:k}),at=c5(v,M,C,$,W,j,q),ot=c5(S,M,C,$,K??W,j,q),it=et(F)?{signal:`(1-${F.signal})/2`}:lo(F)?(1-F.band)/2:.5,mt=va({fieldDef:g,fieldDef2:y,markDef:w,config:b});if(Wt(g.bin)||g.timeUnit){const X=g.timeUnit&&mt!==.5;return{[z]:f5({fieldDef:g,scaleName:k,bandPosition:it,offset:ot,useRectOffsetField:X}),[B]:f5({fieldDef:g,scaleName:k,bandPosition:et(it)?{signal:`1-${it.signal}`}:1-it,offset:at,useRectOffsetField:X})}}if($n(g.bin)){const X=co(g,k,{},{offset:ot});if(H(y))return{[z]:X,[B]:co(y,k,{},{offset:at})};if(ro(g.bin)&&g.bin.step)return{[z]:X,[B]:{signal:`scale("${k}", ${Y(g,{expr:"datum"})} + ${g.bin.step})`,offset:at}}}return void I(VE(S))}({fieldDef:u,fieldDef2:l,channel:n,model:t})}function xT(t,n,e,r,i,a,o){if(lo(i)){if(!e)return{mult:i.band,field:{group:t}};{const s=e.get("type");if(s==="band"){let u=`bandwidth('${n}')`;i.band!==1&&(u=`${i.band} * ${u}`);const l=Wr("minBandSize",{type:o},r);return{signal:l?`max(${pr(l)}, ${u})`:u}}i.band!==1&&(I(function(u){return`Cannot use the relative band size with ${u} scale.`}(s)),i=void 0)}}else{if(et(i))return i;if(i)return{value:i}}if(e){const s=e.get("range");if(io(s)&&$t(s.step))return{value:s.step-2}}if(!a){const{bandPaddingInner:s,barBandPaddingInner:u,rectBandPaddingInner:l,tickBandPaddingInner:c}=r.scale,f=un(s,o==="tick"?c:o==="bar"?u:l);if(et(f))return{signal:`(1 - (${f.signal})) * ${t}`};if($t(f))return{signal:`${1-f} * ${t}`}}return{value:zv(r.view,t)-2}}function c5(t,n,e,r,i,a,o){if(lE(t))return 0;const s=t==="x"||t==="y2",u=s?-n/2:n/2;if(et(e)||et(i)||et(r)||a){const l=pr(e),c=pr(i),f=pr(r),d=pr(a),h=a?`(${o} < ${d} ? ${s?"":"-"}0.5 * (${d} - (${o})) : ${u})`:u;return{signal:(f?`${f} + `:"")+(l?`(${l} ? -1 : 1) * `:"")+(c?`(${c} + ${h})`:h)}}return i=i||0,r+(e?-i-u:+i+u)}function f5({fieldDef:t,scaleName:n,bandPosition:e,offset:r,useRectOffsetField:i}){return Jd({scaleName:n,fieldOrDatumDef:t,bandPosition:e,offset:r,...i?{startSuffix:ph,endSuffix:mh}:{}})}const wT=new Set(["aria","width","height"]);function Xe(t,n){const{fill:e,stroke:r}=n.color==="include"?o5(t):{};return{...AT(t.markDef,n),...d5("fill",e),...d5("stroke",r),...Mn("opacity",t),...Mn("fillOpacity",t),...Mn("strokeOpacity",t),...Mn("strokeWidth",t),...Mn("strokeDash",t),...yT(t),...r5(t),...Xv(t,"href"),...pT(t)}}function d5(t,n){return n?{[t]:n}:{}}function AT(t,n){return _N.reduce((e,r)=>(!wT.has(r)&&U(t,r)&&n[r]!=="ignore"&&(e[r]=Gt(t[r])),e),{})}function Kv(t){const{config:n,markDef:e}=t,r=new Set;if(t.forEachFieldDef((i,a)=>{var c;let o;if(!Ir(a)||!(o=t.getScaleType(a)))return;const s=Pd(i.aggregate);if((l=cv({scaleChannel:a,markDef:e,config:n,scaleType:o,isCountAggregate:s}))==="break-paths-filter-domains"||l==="break-paths-show-domains"){const f=t.vgField(a,{expr:"datum",binSuffix:(c=t.stack)!=null&&c.impute?"mid":void 0});f&&r.add(f)}var l}),r.size>0)return{defined:{signal:[...r].map(a=>Id(a,!0)).join(" && ")}}}function h5(t,n){if(n!==void 0)return{[t]:Gt(n)}}const Qv="voronoi",p5={defined:t=>t.type==="point"&&t.nearest,parse:(t,n)=>{if(n.events)for(const e of n.events)e.markname=t.getName(Qv)},marks:(t,n,e)=>{const{x:r,y:i}=n.project.hasChannel,a=t.mark;if(ya(a))return I(`The "nearest" transform is not supported for ${a} marks.`),e;const o={name:t.getName(Qv),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...r5(t,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let s=0,u=!1;return e.forEach((l,c)=>{const f=l.name??"";f===t.component.mark[0].name?s=c:f.includes(Qv)&&(u=!0)}),u||e.splice(s+1,0,o),e}},m5={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!Cv(t.bind),parse:(t,n,e)=>D5(n,e),topLevelSignals:(t,n,e)=>{const r=n.name,i=n.project,a=n.bind,o=n.init&&n.init[0],s=p5.defined(n)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((u,l)=>{const c=Xt(`${r}_${u.field}`);e.filter(f=>f.name===c).length||e.unshift({name:c,...o?{init:mo(o[l])}:{value:null},on:n.events?[{events:n.events,update:`datum && item().mark.marktype !== 'group' ? ${s}[${G(u.field)}] : null`}]:[],bind:a[u.field]??a[u.channel]??a})}),e},signals:(t,n,e)=>{const r=n.name,i=n.project,a=e.find(l=>l.name===r+$i),o=r+Dl,s=i.items.map(l=>Xt(`${r}_${l.field}`)),u=s.map(l=>`${l} !== null`).join(" && ");return s.length&&(a.update=`${u} ? {fields: ${o}, values: [${s.join(", ")}]} : null`),delete a.value,delete a.on,e}},xh="_toggle",g5={defined:t=>t.type==="point"&&!Kr(t)&&!!t.toggle,signals:(t,n,e)=>e.concat({name:n.name+xh,value:!1,on:[{events:n.events,update:n.toggle}]}),modifyExpr:(t,n)=>{const e=n.name+$i,r=n.name+xh;return`${r} ? null : ${e}, `+(n.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${yo(t)}}, `)+`${r} ? ${e} : null`}},_T={defined:t=>t.clear!==void 0&&t.clear!==!1&&!Kr(t),parse:(t,n)=>{n.clear&&(n.clear=Q(n.clear)?aa(n.clear,"view"):n.clear)},topLevelSignals:(t,n,e)=>{if(m5.defined(n))for(const r of n.project.items){const i=e.findIndex(a=>a.name===Xt(`${n.name}_${r.field}`));i!==-1&&e[i].on.push({events:n.clear,update:"null"})}return e},signals:(t,n,e)=>{function r(i,a){i!==-1&&e[i].on&&e[i].on.push({events:n.clear,update:a})}if(n.type==="interval")for(const i of n.project.items){const a=e.findIndex(o=>o.name===i.signals.visual);r(a,"[0, 0]"),a===-1&&r(e.findIndex(o=>o.name===i.signals.data),"null")}else{let i=e.findIndex(a=>a.name===n.name+$i);r(i,"null"),g5.defined(n)&&(i=e.findIndex(a=>a.name===n.name+xh),r(i,"false"))}return e}},y5={defined:t=>{const n=t.resolve==="global"&&t.bind&&Cv(t.bind),e=t.project.items.length===1&&t.project.items[0].field!==br;return n&&!e&&I("Legend bindings are only supported for selections over an individual field or encoding channel."),n&&e},parse:(t,n,e)=>{const r=ft(e);if(r.select=Q(r.select)?{type:r.select,toggle:n.toggle}:{...r.select,toggle:n.toggle},D5(n,r),Z(e.select)&&(e.select.on||e.select.clear)){const o='event.item && indexof(event.item.mark.role, "legend") < 0';for(const s of n.events)s.filter=J(s.filter??[]),s.filter.includes(o)||s.filter.push(o)}const i=Ev(n.bind)?n.bind.legend:"click",a=Q(i)?aa(i,"view"):J(i);n.bind={legend:{merge:a}}},topLevelSignals:(t,n,e)=>{const r=n.name,i=Ev(n.bind)&&n.bind.legend,a=o=>s=>{const u=ft(s);return u.markname=o,u};for(const o of n.project.items){if(!o.hasLegend)continue;const s=`${Xt(o.field)}_legend`,u=`${r}_${s}`;if(e.filter(l=>l.name===u).length===0){const l=i.merge.map(a(`${s}_symbols`)).concat(i.merge.map(a(`${s}_labels`))).concat(i.merge.map(a(`${s}_entries`)));e.unshift({name:u,...n.init?{}:{value:null},on:[{events:l,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${u}`,force:!0}]})}}return e},signals:(t,n,e)=>{const r=n.name,i=n.project,a=e.find(f=>f.name===r+$i),o=r+Dl,s=i.items.filter(f=>f.hasLegend).map(f=>Xt(`${r}_${Xt(f.field)}_legend`)),u=`${s.map(f=>`${f} !== null`).join(" && ")} ? {fields: ${o}, values: [${s.join(", ")}]} : null`;n.events&&s.length>0?a.on.push({events:s.map(f=>({signal:f})),update:u}):s.length>0&&(a.update=u,delete a.value,delete a.on);const l=e.find(f=>f.name===r+xh),c=Ev(n.bind)&&n.bind.legend;return l&&(n.events?l.on.push({...l.on[0],events:c}):l.on[0].events=c),e}},v5="_translate_anchor",b5="_translate_delta",kT={defined:t=>t.type==="interval"&&t.translate,signals:(t,n,e)=>{const r=n.name,i=Ci.defined(n),a=r+v5,{x:o,y:s}=n.project.hasChannel;let u=aa(n.translate,"scope");return i||(u=u.map(l=>(l.between[0].markname=r+Es,l))),e.push({name:a,value:{},on:[{events:u.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(o!==void 0?`, extent_x: ${i?Vv(t,Jt):`slice(${o.signals.visual})`}`:"")+(s!==void 0?`, extent_y: ${i?Vv(t,bn):`slice(${s.signals.visual})`}`:"")+"}"}]},{name:r+b5,value:{},on:[{events:u,update:`{x: ${a}.x - x(unit), y: ${a}.y - y(unit)}`}]}),o!==void 0&&x5(t,n,o,"width",e),s!==void 0&&x5(t,n,s,"height",e),e}};function x5(t,n,e,r,i){const a=n.name,o=a+v5,s=a+b5,u=e.channel,l=Ci.defined(n),c=i.find(y=>y.name===e.signals[l?"data":"visual"]),f=t.getSizeSignalRef(r).signal,d=t.getScaleComponent(u),h=d&&d.get("type"),p=d&&d.get("reverse"),m=`${o}.extent_${u}`,g=`${l&&d?h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear":"panLinear"}(${m}, ${`${l?u===Jt?p?"":"-":p?"-":"":""}${s}.${u} / ${l?`${f}`:`span(${m})`}`}${l?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":""})`;c.on.push({events:{signal:s},update:l?g:`clampRange(${g}, 0, ${f})`})}const w5="_zoom_anchor",A5="_zoom_delta",DT={defined:t=>t.type==="interval"&&t.zoom,signals:(t,n,e)=>{const r=n.name,i=Ci.defined(n),a=r+A5,{x:o,y:s}=n.project.hasChannel,u=G(t.scaleName(Jt)),l=G(t.scaleName(bn));let c=aa(n.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+Es,f))),e.push({name:r+w5,on:[{events:c,update:i?"{"+[u?`x: invert(${u}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:a,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),o!==void 0&&_5(t,n,o,"width",e),s!==void 0&&_5(t,n,s,"height",e),e}};function _5(t,n,e,r,i){const a=n.name,o=e.channel,s=Ci.defined(n),u=i.find(m=>m.name===e.signals[s?"data":"visual"]),l=t.getSizeSignalRef(r).signal,c=t.getScaleComponent(o),f=c&&c.get("type"),d=s?Vv(t,o):u.name,h=a+A5,p=`${s&&c?f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear":"zoomLinear"}(${d}, ${`${a}${w5}.${o}`}, ${h}${s?f==="pow"?`, ${c.get("exponent")??1}`:f==="symlog"?`, ${c.get("constant")??1}`:"":""})`;u.on.push({events:{signal:h},update:s?p:`clampRange(${p}, 0, ${l})`})}const go="_store",$i="_tuple",FT="_modify",k5="vlSelectionResolve",wh=[cT,hT,uT,g5,m5,Ci,y5,_T,kT,DT,p5];function yo(t,{escape:n}={escape:!0}){let e=n?G(t.name):t.name;const r=function(i){let a=i.parent;for(;a&&!$e(a);)a=a.parent;return a}(t);if(r){const{facet:i}=r;for(const a of Ye)i[a]&&(e+=` + '__facet_${a}_' + (facet[${G(r.vgField(a))}])`)}return e}function Zv(t){return En(t.component.selection??{}).reduce((n,e)=>n||e.project.hasSelectionId,!1)}function D5(t,n){!Q(n.select)&&n.select.on||delete t.events,!Q(n.select)&&n.select.clear||delete t.clear,!Q(n.select)&&n.select.toggle||delete t.toggle}function Kr(t){var n;return(n=t.events)==null?void 0:n.find(e=>"type"in e&&e.type==="timer")}const CT="Property",ET="ArrayExpression",$T="BinaryExpression",ST="CallExpression",MT="ConditionalExpression",BT="LogicalExpression",zT="MemberExpression",OT="ObjectExpression",NT="UnaryExpression";function wr(t){this.type=t}var Si,rt,R,Ln,Rt;wr.prototype.visit=function(t){let n,e,r;if(t(this))return 1;for(n=function(i){switch(i.type){case ET:return i.elements;case $T:case BT:return[i.left,i.right];case ST:return[i.callee].concat(i.arguments);case MT:return[i.test,i.consequent,i.alternate];case zT:return[i.object,i.property];case OT:return i.properties;case CT:return[i.key,i.value];case NT:return[i.argument];default:return[]}}(this),e=0,r=n.length;e<r;++e)if(n[e].visit(t))return 1},(Si={})[1]="Boolean",Si[2]="<end>",Si[3]="Identifier",Si[4]="Keyword",Si[5]="Null",Si[6]="Numeric",Si[7]="Punctuator",Si[8]="String",Si[9]="RegularExpression";var F5="Identifier",An="Unexpected token %0",tb="Invalid regular expression",nb="Invalid regular expression: missing /",C5="Octal literals are not allowed in strict mode.",Bn="ILLEGAL",El="Disabled.",RT=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]"),TT=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 Ah(t,n){if(!t)throw new Error("ASSERT: "+n)}function Mi(t){return t>=48&&t<=57}function eb(t){return"0123456789abcdefABCDEF".includes(t)}function $l(t){return"01234567".includes(t)}function PT(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(t)}function Sl(t){return t===10||t===13||t===8232||t===8233}function Ml(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&RT.test(String.fromCharCode(t))}function _h(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&TT.test(String.fromCharCode(t))}const jT={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 E5(){for(;R<Ln;){const t=rt.charCodeAt(R);if(!PT(t)&&!Sl(t))break;++R}}function rb(t){var n,e,r,i=0;for(e=t==="u"?4:2,n=0;n<e;++n)R<Ln&&eb(rt[R])?(r=rt[R++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):Ct({},An,Bn);return String.fromCharCode(i)}function LT(){var t,n,e,r;for(n=0,(t=rt[R])==="}"&&Ct({},An,Bn);R<Ln&&eb(t=rt[R++]);)n=16*n+"0123456789abcdef".indexOf(t.toLowerCase());return(n>1114111||t!=="}")&&Ct({},An,Bn),n<=65535?String.fromCharCode(n):(e=55296+(n-65536>>10),r=56320+(n-65536&1023),String.fromCharCode(e,r))}function $5(){var t,n;for(t=rt.charCodeAt(R++),n=String.fromCharCode(t),t===92&&(rt.charCodeAt(R)!==117&&Ct({},An,Bn),++R,(t=rb("u"))&&t!=="\\"&&Ml(t.charCodeAt(0))||Ct({},An,Bn),n=t);R<Ln&&_h(t=rt.charCodeAt(R));)++R,n+=String.fromCharCode(t),t===92&&(n=n.substr(0,n.length-1),rt.charCodeAt(R)!==117&&Ct({},An,Bn),++R,(t=rb("u"))&&t!=="\\"&&_h(t.charCodeAt(0))||Ct({},An,Bn),n+=t);return n}function qT(){var t,n;return t=R,n=rt.charCodeAt(R)===92?$5():function(){var e,r;for(e=R++;R<Ln;){if((r=rt.charCodeAt(R))===92)return R=e,$5();if(!_h(r))break;++R}return rt.slice(e,R)}(),{type:n.length===1?3:jT.hasOwnProperty(n)?4:n==="null"?5:n==="true"||n==="false"?1:3,value:n,start:t,end:R}}function ib(){var t,n,e,r,i=R,a=rt.charCodeAt(R),o=rt[R];switch(a){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++R,{type:7,value:String.fromCharCode(a),start:i,end:R};default:if((t=rt.charCodeAt(R+1))===61)switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:7,value:String.fromCharCode(a)+String.fromCharCode(t),start:i,end:R};case 33:case 61:return R+=2,rt.charCodeAt(R)===61&&++R,{type:7,value:rt.slice(i,R),start:i,end:R}}}return(r=rt.substr(R,4))===">>>="?{type:7,value:r,start:i,end:R+=4}:(e=r.substr(0,3))===">>>"||e==="<<="||e===">>="?{type:7,value:e,start:i,end:R+=3}:o===(n=e.substr(0,2))[1]&&"+-<>&|".includes(o)||n==="=>"?{type:7,value:n,start:i,end:R+=2}:(n==="//"&&Ct({},An,Bn),"<>=!+-*%&|^/".includes(o)?{type:7,value:o,start:i,end:++R}:void Ct({},An,Bn))}function S5(){var t,n,e;if(Ah(Mi((e=rt[R]).charCodeAt(0))||e===".","Numeric literal must start with a decimal digit or a decimal point"),n=R,t="",e!=="."){if(t=rt[R++],e=rt[R],t==="0"){if(e==="x"||e==="X")return++R,function(r){let i="";for(;R<Ln&&eb(rt[R]);)i+=rt[R++];return i.length===0&&Ct({},An,Bn),Ml(rt.charCodeAt(R))&&Ct({},An,Bn),{type:6,value:parseInt("0x"+i,16),start:r,end:R}}(n);if($l(e))return function(r){let i="0"+rt[R++];for(;R<Ln&&$l(rt[R]);)i+=rt[R++];return(Ml(rt.charCodeAt(R))||Mi(rt.charCodeAt(R)))&&Ct({},An,Bn),{type:6,value:parseInt(i,8),octal:!0,start:r,end:R}}(n);e&&Mi(e.charCodeAt(0))&&Ct({},An,Bn)}for(;Mi(rt.charCodeAt(R));)t+=rt[R++];e=rt[R]}if(e==="."){for(t+=rt[R++];Mi(rt.charCodeAt(R));)t+=rt[R++];e=rt[R]}if(e==="e"||e==="E")if(t+=rt[R++],(e=rt[R])!=="+"&&e!=="-"||(t+=rt[R++]),Mi(rt.charCodeAt(R)))for(;Mi(rt.charCodeAt(R));)t+=rt[R++];else Ct({},An,Bn);return Ml(rt.charCodeAt(R))&&Ct({},An,Bn),{type:6,value:parseFloat(t),start:n,end:R}}function UT(){var t,n,e,r;return Rt=null,E5(),t=R,n=function(){var i,a,o,s;for(Ah((i=rt[R])==="/","Regular expression literal must start with a slash"),a=rt[R++],o=!1,s=!1;R<Ln;)if(a+=i=rt[R++],i==="\\")Sl((i=rt[R++]).charCodeAt(0))&&Ct({},nb),a+=i;else if(Sl(i.charCodeAt(0)))Ct({},nb);else if(o)i==="]"&&(o=!1);else{if(i==="/"){s=!0;break}i==="["&&(o=!0)}return s||Ct({},nb),{value:a.substr(1,a.length-2),literal:a}}(),e=function(){var i,a,o;for(a="",o="";R<Ln&&_h((i=rt[R]).charCodeAt(0));)++R,i==="\\"&&R<Ln?Ct({},An,Bn):(o+=i,a+=i);return o.search(/[^gimuy]/g)>=0&&Ct({},tb,o),{value:o,literal:a}}(),r=function(i,a){let o=i;a.includes("u")&&(o=o.replace(/\\u\{([0-9a-fA-F]+)\}/g,(s,u)=>{if(parseInt(u,16)<=1114111)return"x";Ct({},tb)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(o)}catch{Ct({},tb)}try{return new RegExp(i,a)}catch{return null}}(n.value,e.value),{literal:n.literal+e.literal,value:r,regex:{pattern:n.value,flags:e.value},start:t,end:R}}function M5(){if(E5(),R>=Ln)return{type:2,start:R,end:R};const t=rt.charCodeAt(R);return Ml(t)?qT():t===40||t===41||t===59?ib():t===39||t===34?function(){var n,e,r,i,a="",o=!1;for(Ah((n=rt[R])==="'"||n==='"',"String literal must starts with a quote"),e=R,++R;R<Ln;){if((r=rt[R++])===n){n="";break}if(r==="\\")if((r=rt[R++])&&Sl(r.charCodeAt(0)))r==="\r"&&rt[R]===`
9
9
  `&&++R;else switch(r){case"u":case"x":rt[R]==="{"?(++R,a+=LT()):a+=rb(r);break;case"n":a+=`
10
10
  `;break;case"r":a+="\r";break;case"t":a+=" ";break;case"b":a+="\b";break;case"f":a+="\f";break;case"v":a+="\v";break;default:$l(r)?((i="01234567".indexOf(r))!==0&&(o=!0),R<Ln&&$l(rt[R])&&(o=!0,i=8*i+"01234567".indexOf(rt[R++]),"0123".includes(r)&&R<Ln&&$l(rt[R])&&(i=8*i+"01234567".indexOf(rt[R++]))),a+=String.fromCharCode(i)):a+=r}else{if(Sl(r.charCodeAt(0)))break;a+=r}}return n!==""&&Ct({},An,Bn),{type:8,value:a,octal:o,start:e,end:R}}():t===46?Mi(rt.charCodeAt(R+1))?S5():ib():Mi(t)?S5():ib()}function ve(){const t=Rt;return R=t.end,Rt=M5(),R=t.end,t}function B5(){const t=R;Rt=M5(),R=t}function z5(t,n,e){const r=new wr(t==="||"||t==="&&"?"LogicalExpression":"BinaryExpression");return r.operator=t,r.left=n,r.right=e,r}function IT(t,n){const e=new wr("CallExpression");return e.callee=t,e.arguments=n,e}function ab(t){const n=new wr(F5);return n.name=t,n}function Bl(t){const n=new wr("Literal");return n.value=t.value,n.raw=rt.slice(t.start,t.end),t.regex&&(n.raw==="//"&&(n.raw="/(?:)/"),n.regex=t.regex),n}function O5(t,n,e){const r=new wr("MemberExpression");return r.computed=t==="[",r.object=n,r.property=e,r.computed||(e.member=!0),r}function N5(t,n,e){const r=new wr("Property");return r.key=n,r.value=e,r.kind=t,r}function Ct(t,n){var e,r=Array.prototype.slice.call(arguments,2),i=n.replace(/%(\d)/g,(a,o)=>(Ah(o<r.length,"Message reference must be in range"),r[o]));throw(e=new Error(i)).index=R,e.description=i,e}function kh(t){t.type===2&&Ct(t,"Unexpected end of input"),t.type===6&&Ct(t,"Unexpected number"),t.type===8&&Ct(t,"Unexpected string"),t.type===3&&Ct(t,"Unexpected identifier"),t.type===4&&Ct(t,"Unexpected reserved word"),Ct(t,An,t.value)}function qn(t){const n=ve();n.type===7&&n.value===t||kh(n)}function Vt(t){return Rt.type===7&&Rt.value===t}function ob(t){return Rt.type===4&&Rt.value===t}function WT(){const t=[];for(R=Rt.start,qn("[");!Vt("]");)Vt(",")?(ve(),t.push(null)):(t.push(vo()),Vt("]")||qn(","));return ve(),function(n){const e=new wr("ArrayExpression");return e.elements=n,e}(t)}function R5(){R=Rt.start;const t=ve();return t.type===8||t.type===6?(t.octal&&Ct(t,C5),Bl(t)):ab(t.value)}function HT(){var t,n,e;return R=Rt.start,(t=Rt).type===3?(e=R5(),qn(":"),N5("init",e,vo())):t.type!==2&&t.type!==7?(n=R5(),qn(":"),N5("init",n,vo())):void kh(t)}function GT(){var t,n,e=[],r={},i=String;for(R=Rt.start,qn("{");!Vt("}");)n="$"+((t=HT()).key.type===F5?t.key.name:i(t.key.value)),Object.prototype.hasOwnProperty.call(r,n)?Ct({},"Duplicate data property in object literal not allowed in strict mode"):r[n]=!0,e.push(t),Vt("}")||qn(",");return qn("}"),function(a){const o=new wr("ObjectExpression");return o.properties=a,o}(e)}const VT={if:1};function YT(){var t,n,e;if(Vt("("))return function(){qn("(");const r=sb();return qn(")"),r}();if(Vt("["))return WT();if(Vt("{"))return GT();if(t=Rt.type,R=Rt.start,t===3||VT[Rt.value])e=ab(ve().value);else if(t===8||t===6)Rt.octal&&Ct(Rt,C5),e=Bl(ve());else{if(t===4)throw new Error(El);t===1?((n=ve()).value=n.value==="true",e=Bl(n)):t===5?((n=ve()).value=null,e=Bl(n)):Vt("/")||Vt("/=")?(e=Bl(UT()),B5()):kh(ve())}return e}function XT(){const t=[];if(qn("("),!Vt(")"))for(;R<Ln&&(t.push(vo()),!Vt(")"));)qn(",");return qn(")"),t}function JT(){return qn("."),function(){R=Rt.start;const t=ve();return function(n){return n.type===3||n.type===4||n.type===1||n.type===5}(t)||kh(t),ab(t.value)}()}function KT(){qn("[");const t=sb();return qn("]"),t}function T5(){const t=function(){var n;for(n=YT();;)if(Vt("."))n=O5(".",n,JT());else if(Vt("("))n=IT(n,XT());else{if(!Vt("["))break;n=O5("[",n,KT())}return n}();if(Rt.type===7&&(Vt("++")||Vt("--")))throw new Error(El);return t}function Dh(){var t,n;if(Rt.type!==7&&Rt.type!==4)n=T5();else{if(Vt("++")||Vt("--"))throw new Error(El);if(Vt("+")||Vt("-")||Vt("~")||Vt("!"))t=ve(),n=Dh(),n=function(e,r){const i=new wr("UnaryExpression");return i.operator=e,i.argument=r,i.prefix=!0,i}(t.value,n);else{if(ob("delete")||ob("void")||ob("typeof"))throw new Error(El);n=T5()}}return n}function P5(t){let n=0;if(t.type!==7&&t.type!==4)return 0;switch(t.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":n=7;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function vo(){var t,n;return t=function(){var e,r,i,a,o,s,u,l,c,f;if(e=Rt,c=Dh(),(o=P5(a=Rt))===0)return c;for(a.prec=o,ve(),r=[e,Rt],s=[c,a,u=Dh()];(o=P5(Rt))>0;){for(;s.length>2&&o<=s[s.length-2].prec;)u=s.pop(),l=s.pop().value,c=s.pop(),r.pop(),i=z5(l,c,u),s.push(i);(a=ve()).prec=o,s.push(a),r.push(Rt),i=Dh(),s.push(i)}for(i=s[f=s.length-1],r.pop();f>1;)r.pop(),i=z5(s[f-1].value,s[f-2],i),f-=2;return i}(),Vt("?")&&(ve(),n=vo(),qn(":"),t=function(e,r,i){const a=new wr("ConditionalExpression");return a.test=e,a.consequent=r,a.alternate=i,a}(t,n,vo())),t}function sb(){const t=vo();if(Vt(","))throw new Error(El);return t}function ub(t){const n=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(n.push(...ub(t.object)),n.push(...ub(t.property))),n)}function j5(t){return t.object.type==="MemberExpression"?j5(t.object):t.object.name==="datum"}function L5(t){const n=function(r){R=0,Ln=(rt=r).length,Rt=null,B5();const i=sb();if(Rt.type!==2)throw new Error("Unexpect token after expression.");return i}(t),e=new Set;return n.visit(r=>{r.type==="MemberExpression"&&j5(r)&&e.add(ub(r).slice(1).join("."))}),e}class Os extends Nt{clone(){return new Os(null,this.model,ft(this.filter))}constructor(n,e,r){super(n),this.model=e,this.filter=r,this.expr=Fh(this.model,this.filter,this),this._dependentFields=L5(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function q5(t,n,e,r="datum"){const i=Q(n)?n:n.param,a=Xt(i),o=G(a+go);let s;try{s=t.getSelectionComponent(a,i)}catch{return`!!${a}`}if(s.project.timeUnit){const c=e??t.component.data.raw,f=s.project.timeUnit.clone();c.parent?f.insertAsParentOf(c):c.parent=f}const u=`${s.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${o}, ${r}${s.resolve==="global"?")":`, ${G(s.resolve)})`}`,l=`length(data(${o}))`;return n.empty===!1?`${l} && ${u}`:`!${l} || ${u}`}function U5(t,n,e){const r=Xt(n),i=e.encoding;let a,o=e.field;try{a=t.getSelectionComponent(r,n)}catch{return r}if(i||o){if(i&&!o){const s=a.project.items.filter(u=>u.channel===i);!s.length||s.length>1?(o=a.project.items[0].field,I(function(u,l,c,f){return(u.length?"Multiple ":"No ")+`matching ${G(l)} encoding found for selection ${G(c.param)}. Using "field": ${G(f)}.`}(s,i,e,o))):o=s[0].field}}else o=a.project.items[0].field,a.project.items.length>1&&I(function(s){return`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${G(s)}.`}(o));return`${a.name}[${G(He(o))}]`}function Fh(t,n,e){return ul(n,r=>Q(r)?r:function(i){return U(i,"param")}(r)?q5(t,r,e):a3(r))}function lb(t,n,e,r){var i,a;t.encode??(t.encode={}),(i=t.encode)[n]??(i[n]={}),(a=t.encode[n]).update??(a.update={}),t.encode[n].update[e]=r}function zl(t,n,e,r={header:!1}){var f,d;const{disable:i,orient:a,scale:o,labelExpr:s,title:u,zindex:l,...c}=t.combine();if(!i){for(const h in c){const p=h,m=dR[p],g=c[p];if(m&&m!==n&&m!=="both")delete c[p];else if(_l(g)){const{condition:y,...v}=g,x=J(y),b=W3[p];if(b){const{vgProp:w,part:A}=b,_=[...x.map(k=>{const{test:D,...C}=k;return{test:Fh(null,D),...C}}),v];lb(c,A,w,_),delete c[p]}else if(b===null){const w={signal:x.map(A=>{const{test:_,...k}=A;return`${Fh(null,_)} ? ${FE(k)} : `}).join("")+FE(v)};c[p]=w}}else if(et(g)){const y=W3[p];if(y){const{vgProp:v,part:x}=y;lb(c,x,v,g),delete c[p]}}vt(["labelAlign","labelBaseline"],p)&&c[p]===null&&delete c[p]}if(n==="grid"){if(!c.grid)return;if(c.encode){const{grid:h}=c.encode;c.encode={...h?{grid:h}:{}},jt(c.encode)&&delete c.encode}return{scale:o,orient:a,...c,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:un(l,0)}}{if(!r.header&&t.mainExtracted)return;if(s!==void 0){let p=s;(d=(f=c.encode)==null?void 0:f.labels)!=null&&d.update&&et(c.encode.labels.update.text)&&(p=Za(s,"datum.label",c.encode.labels.update.text.signal)),lb(c,"labels","text",{signal:p})}if(c.labelAlign===null&&delete c.labelAlign,c.encode){for(const p of H3)t.hasAxisPart(p)||delete c.encode[p];jt(c.encode)&&delete c.encode}const h=function(p,m){if(p)return T(p)&&!ga(p)?p.map(g=>vv(g,m)).join(", "):p}(u,e);return{scale:o,orient:a,grid:!1,...h?{title:h}:{},...c,...e.aria===!1?{aria:!1}:{},zindex:un(l,0)}}}}function I5(t){const{axes:n}=t.component,e=[];for(const r of wi)if(n[r]){for(const i of n[r])if(!i.get("disable")&&!i.get("gridScale")){const a=r==="x"?"height":"width",o=t.getSizeSignalRef(a).signal;a!==o&&e.push({name:a,update:o})}}return e}function W5(t,n,e,r){return Object.assign.apply(null,[{},...t.map(i=>{if(i==="axisOrient"){const a=e==="x"?"bottom":"left",o=n[e==="x"?"axisBottom":"axisLeft"]||{},s=n[e==="x"?"axisTop":"axisRight"]||{},u=new Set([...L(o),...L(s)]),l={};for(const c of u.values())l[c]={signal:`${r.signal} === "${a}" ? ${pr(o[c])} : ${pr(s[c])}`};return l}return n[i]})])}function QT(t,n){var r;const e=[{}];for(const i of t){let a=(r=n[i])==null?void 0:r.style;if(a){a=J(a);for(const o of a)e.push(n.style[o])}}return Object.assign.apply(null,e)}function cb(t,n,e,r={}){var a;const i=EE(t,e,n);if(i!==void 0)return{configFrom:"style",configValue:i};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((a=r[o])==null?void 0:a[t])!==void 0)return{configFrom:o,configValue:r[o][t]};return{}}const H5={scale:({model:t,channel:n})=>t.scaleName(n),format:({format:t})=>t,formatType:({formatType:t})=>t,grid:({fieldOrDatumDef:t,axis:n,scaleType:e})=>n.grid??function(r,i){return!wn(r)&&H(i)&&!Wt(i==null?void 0:i.bin)&&!$n(i==null?void 0:i.bin)}(e,t),gridScale:({model:t,channel:n})=>function(e,r){const i=r==="x"?"y":"x";if(e.getScaleComponent(i))return e.scaleName(i)}(t,n),labelAlign:({axis:t,labelAngle:n,orient:e,channel:r})=>t.labelAlign||V5(n,e,r),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:n,orient:e,channel:r})=>t.labelBaseline||G5(n,e,r),labelFlush:({axis:t,fieldOrDatumDef:n,channel:e})=>t.labelFlush??function(r,i){if(i==="x"&&vt(["quantitative","temporal"],r))return!0}(n.type,e),labelOverlap:({axis:t,fieldOrDatumDef:n,scaleType:e})=>t.labelOverlap??function(r,i,a,o){if(a&&!Z(o)||r!=="nominal"&&r!=="ordinal")return i!=="log"&&i!=="symlog"||"greedy"}(n.type,e,H(n)&&!!n.timeUnit,H(n)?n.sort:void 0),orient:({orient:t})=>t,tickCount:({channel:t,model:n,axis:e,fieldOrDatumDef:r,scaleType:i})=>{const a=t==="x"?"width":t==="y"?"height":void 0,o=a?n.getSizeSignalRef(a):void 0;return e.tickCount??function({fieldOrDatumDef:s,scaleType:u,size:l,values:c}){var f;if(!c&&!wn(u)&&u!=="log"){if(H(s)){if(Wt(s.bin))return{signal:`ceil(${l.signal}/10)`};if(s.timeUnit&&vt(["month","hours","day","quarter"],(f=xn(s.timeUnit))==null?void 0:f.unit))return}return{signal:`ceil(${l.signal}/40)`}}}({fieldOrDatumDef:r,scaleType:i,size:o,values:e.values})},tickMinStep:function({format:t,fieldOrDatumDef:n}){if(t==="d")return 1;if(H(n)){const{timeUnit:e}=n;if(e){const r=e3(e);if(r)return{signal:r}}}},title:({axis:t,model:n,channel:e})=>{if(t.title!==void 0)return t.title;const r=Y5(n,e);if(r!==void 0)return r;const i=n.typedFieldDef(e),a=e==="x"?"x2":"y2",o=n.fieldDef(a);return SE(i?[B3(i)]:[],H(o)?[B3(o)]:[])},values:({axis:t,fieldOrDatumDef:n})=>function(e,r){const i=e.values;if(T(i))return I3(r,i);if(et(i))return i}(t,n),zindex:({axis:t,fieldOrDatumDef:n,mark:e})=>t.zindex??function(r,i){return r==="rect"&&nh(i)?1:0}(e,n)};function fb(t){return`(((${t.signal} % 360) + 360) % 360)`}function G5(t,n,e,r){if(t!==void 0){if(e==="x"){if(et(t)){const i=fb(t);return{signal:`(45 < ${i} && ${i} < 135) || (225 < ${i} && ${i} < 315) ? "middle" :(${i} <= 45 || 315 <= ${i}) === ${et(n)?`(${n.signal} === "top")`:n==="top"} ? "bottom" : "top"`}}if(45<t&&t<135||225<t&&t<315)return"middle";if(et(n)){const i=t<=45||315<=t?"===":"!==";return{signal:`${n.signal} ${i} "top" ? "bottom" : "top"`}}return(t<=45||315<=t)==(n==="top")?"bottom":"top"}if(et(t)){const i=fb(t);return{signal:`${i} <= 45 || 315 <= ${i} || (135 <= ${i} && ${i} <= 225) ? ${r?'"middle"':"null"} : (45 <= ${i} && ${i} <= 135) === ${et(n)?`(${n.signal} === "left")`:n==="left"} ? "top" : "bottom"`}}if(t<=45||315<=t||135<=t&&t<=225)return r?"middle":null;if(et(n)){const i=45<=t&&t<=135?"===":"!==";return{signal:`${n.signal} ${i} "left" ? "top" : "bottom"`}}return(45<=t&&t<=135)==(n==="left")?"top":"bottom"}}function V5(t,n,e){if(t===void 0)return;const r=e==="x",i=r?0:90,a=r?"bottom":"left";if(et(t)){const o=fb(t);return{signal:`(${i?`(${o} + 90)`:o} % 180 === 0) ? ${r?null:'"center"'} :(${i} < ${o} && ${o} < ${180+i}) === ${et(n)?`(${n.signal} === "${a}")`:n===a} ? "left" : "right"`}}if((t+i)%180==0)return r?null:"center";if(et(n)){const o=i<t&&t<180+i?"===":"!==";return{signal:`${`${n.signal} ${o} "${a}"`} ? "left" : "right"`}}return(i<t&&t<180+i)==(n===a)?"left":"right"}function Y5(t,n){const e=n==="x"?"x2":"y2",r=t.fieldDef(n),i=t.fieldDef(e),a=r?r.title:void 0,o=i?i.title:void 0;return a&&o?ME(a,o):a||o||(a!==void 0?a:o!==void 0?o:void 0)}class Rs extends Nt{clone(){return new Rs(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this._dependentFields=L5(this.transform.calculate)}static parseAllForSortIndex(n,e){return e.forEachFieldDef((r,i)=>{if(ho(r)&&M3(r.sort)){const{field:a,timeUnit:o}=r,s=r.sort,u=s.map((l,c)=>`${a3({field:a,timeUnit:o,equal:l})} ? ${c} : `).join("")+s.length;n=new Rs(n,{calculate:u,as:Ss(r,i,{forAs:!0})})}}),n}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 ${wt(this.transform)}`}}function Ss(t,n,e){return Y(t,{prefix:n,suffix:"sort_index",...e})}function Ch(t,n){return vt(["top","bottom"],n)?"column":vt(["left","right"],n)||t==="row"?"row":"column"}function Ms(t,n,e,r){const i=r==="row"?e.headerRow:r==="column"?e.headerColumn:e.headerFacet;return un((n||{})[t],i[t],e.header[t])}function Eh(t,n,e,r){const i={};for(const a of t){const o=Ms(a,n||{},e,r);o!==void 0&&(i[a]=o)}return i}const db=["row","column"],hb=["header","footer"];function ZT(t,n){const e=t.component.layoutHeaders[n].title,r=t.config?t.config:void 0,i=t.component.layoutHeaders[n].facetFieldDef?t.component.layoutHeaders[n].facetFieldDef:void 0,{titleAnchor:a,titleAngle:o,titleOrient:s}=Eh(["titleAnchor","titleAngle","titleOrient"],i.header,r,n),u=Ch(n,s),l=cl(o);return{name:`${n}-title`,type:"group",role:`${u}-title`,title:{text:e,...n==="row"?{orient:"left"}:{},style:"guide-title",...J5(l,u),...X5(u,l,a),...K5(r,i,n,xR,f$)}}}function X5(t,n,e="middle"){switch(e){case"start":return{align:"left"};case"end":return{align:"right"}}const r=V5(n,t==="row"?"left":"top",t==="row"?"y":"x");return r?{align:r}:{}}function J5(t,n){const e=G5(t,n==="row"?"left":"top",n==="row"?"y":"x",!0);return e?{baseline:e}:{}}function tP(t,n){const e=t.component.layoutHeaders[n],r=[];for(const i of hb)if(e[i])for(const a of e[i]){const o=eP(t,n,i,e,a);o!=null&&r.push(o)}return r}function nP(t,n){const{sort:e}=t;return ki(e)?{field:Y(e,{expr:"datum"}),order:e.order??"ascending"}:T(e)?{field:Ss(t,n,{expr:"datum"}),order:"ascending"}:{field:Y(t,{expr:"datum"}),order:e??"ascending"}}function pb(t,n,e){const{format:r,formatType:i,labelAngle:a,labelAnchor:o,labelOrient:s,labelExpr:u}=Eh(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,e,n),l=hv({fieldOrDatumDef:t,format:r,formatType:i,expr:"parent",config:e}).signal,c=Ch(n,s);return{text:{signal:u?Za(Za(u,"datum.label",l),"datum.value",Y(t,{expr:"parent"})):l},...n==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...J5(a,c),...X5(c,a,o),...K5(e,t,n,wR,d$)}}function eP(t,n,e,r,i){if(i){let a=null;const{facetFieldDef:o}=r,s=t.config?t.config:void 0;if(o&&i.labels){const{labelOrient:f}=Eh(["labelOrient"],o.header,s,n);(n==="row"&&!vt(["top","bottom"],f)||n==="column"&&!vt(["left","right"],f))&&(a=pb(o,n,s))}const u=$e(t)&&!bl(t.facet),l=i.axes,c=(l==null?void 0:l.length)>0;if(a||c){const f=n==="row"?"height":"width";return{name:t.getName(`${n}_${e}`),type:"group",role:`${n}-${e}`,...r.facetFieldDef?{from:{data:t.getName(`${n}_domain`)},sort:nP(o,n)}:{},...c&&u?{from:{data:t.getName(`facet_domain_${n}`)}}:{},...a?{title:a}:{},...i.sizeSignal?{encode:{update:{[f]:i.sizeSignal}}}:{},...c?{axes:l}:{}}}}return null}const rP={column:{start:0,end:1},row:{start:1,end:0}};function iP(t,n){return rP[n][t]}function K5(t,n,e,r,i){const a={};for(const o of r){if(!i[o])continue;const s=Ms(o,n==null?void 0:n.header,t,e);s!==void 0&&(a[i[o]]=s)}return a}function mb(t){return[...$h(t,"width"),...$h(t,"height"),...$h(t,"childWidth"),...$h(t,"childHeight")]}function $h(t,n){const e=n==="width"?"x":"y",r=t.component.layoutSize.get(n);if(!r||r==="merged")return[];const i=t.getSizeSignalRef(n).signal;if(r==="step"){const a=t.getScaleComponent(e);if(a){const o=a.get("type"),s=a.get("range");if(wn(o)&&io(s)){const u=t.scaleName(e);return $e(t.parent)&&t.parent.component.resolve.scale[e]==="independent"?[Q5(u,s)]:[Q5(u,s),{name:i,update:Z5(u,a,`domain('${u}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if(r=="container"){const a=i.endsWith("width"),o=a?"containerSize()[0]":"containerSize()[1]",s=`isFinite(${o}) ? ${o} : ${Bv(t.config.view,a?"width":"height")}`;return[{name:i,init:s,on:[{update:s,events:"window:resize"}]}]}return[{name:i,value:r}]}function Q5(t,n){const e=`${t}_step`;return et(n.step)?{name:e,update:n.step.signal}:{name:e,value:n.step}}function Z5(t,n,e){const r=n.get("type"),i=n.get("padding"),a=un(n.get("paddingOuter"),i);let o=n.get("paddingInner");return o=r==="band"?o!==void 0?o:i:1,`bandspace(${e}, ${pr(o)}, ${pr(a)}) * ${t}_step`}function tS(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function nS(t,n){return L(t).reduce((e,r)=>({...e,...$s({model:n,channelDef:t[r],vgChannel:r,mainRefFn:i=>Gt(i.value),invalidValueRef:void 0})}),{})}function eS(t,n){if($e(n))return t==="theta"?"independent":"shared";if(zs(n))return"shared";if(Mb(n))return ln(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function gb(t,n){const e=t.scale[n],r=ln(n)?"axis":"legend";return e==="independent"?(t[r][n]==="shared"&&I(function(i){return`Setting the scale to be independent for "${i}" means we also have to set the guide (axis or legend) to be independent.`}(n)),"independent"):t[r][n]||"shared"}const rS=L({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 aP extends Bi{}const iS={symbols:function(t,{fieldOrDatumDef:n,model:e,channel:r,legendCmpt:i,legendType:a}){if(a!=="symbol")return;const{markDef:o,encoding:s,config:u,mark:l}=e,c=o.filled&&l!=="trail";let f={...FN({},e,iR),...o5(e,{filled:c})};const d=i.get("symbolOpacity")??u.legend.symbolOpacity,h=i.get("symbolFillColor")??u.legend.symbolFillColor,p=i.get("symbolStrokeColor")??u.legend.symbolStrokeColor,m=d===void 0?aS(s.opacity)??o.opacity:void 0;if(f.fill){if(r==="fill"||c&&r===pe)delete f.fill;else if(U(f.fill,"field"))h?delete f.fill:(f.fill=Gt(u.legend.symbolBaseFillColor??"black"),f.fillOpacity=Gt(m??1));else if(T(f.fill)){const g=yb(s.fill??s.color)??o.fill??(c&&o.color);g&&(f.fill=Gt(g))}}if(f.stroke){if(r==="stroke"||!c&&r===pe)delete f.stroke;else if(U(f.stroke,"field")||p)delete f.stroke;else if(T(f.stroke)){const g=un(yb(s.stroke||s.color),o.stroke,c?o.color:void 0);g&&(f.stroke={value:g})}}if(r!==xi){const g=H(n)&&sS(e,i,n);g?f.opacity=[{test:g,...Gt(m??1)},Gt(u.legend.unselectedOpacity)]:m&&(f.opacity=Gt(m))}return f={...f,...t},jt(f)?void 0:f},gradient:function(t,{model:n,legendType:e,legendCmpt:r}){if(e!=="gradient")return;const{config:i,markDef:a,encoding:o}=n;let s={};const u=(r.get("gradientOpacity")??i.legend.gradientOpacity)===void 0?aS(o.opacity)||a.opacity:void 0;return u&&(s.opacity=Gt(u)),s={...s,...t},jt(s)?void 0:s},labels:function(t,{fieldOrDatumDef:n,model:e,channel:r,legendCmpt:i}){const a=e.legend(r)||{},o=e.config,s=H(n)?sS(e,i,n):void 0,u=s?[{test:s,value:1},{value:o.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=a;let f;fo(c)?f=gr({fieldOrDatumDef:n,field:"datum.value",format:l,formatType:c,config:o}):l===void 0&&c===void 0&&o.customFormatTypes&&(n.type==="quantitative"&&o.numberFormatType?f=gr({fieldOrDatumDef:n,field:"datum.value",format:o.numberFormat,formatType:o.numberFormatType,config:o}):n.type==="temporal"&&o.timeFormatType&&H(n)&&n.timeUnit===void 0&&(f=gr({fieldOrDatumDef:n,field:"datum.value",format:o.timeFormat,formatType:o.timeFormatType,config:o})));const d={...u?{opacity:u}:{},...f?{text:f}:{},...t};return jt(d)?void 0:d},entries:function(t,{legendCmpt:n}){const e=n.get("selections");return e!=null&&e.length?{...t,fill:{value:"transparent"}}:t}};function aS(t){return oS(t,(n,e)=>Math.max(n,e.value))}function yb(t){return oS(t,(n,e)=>un(n,e.value))}function oS(t,n){return function(e){const r=e==null?void 0:e.condition;return!!r&&(T(r)||yr(r))}(t)?J(t.condition).reduce(n,t.value):yr(t)?t.value:void 0}function sS(t,n,e){const r=n.get("selections");if(!(r!=null&&r.length))return;const i=G(e.field);return r.map(a=>`(!length(data(${G(Xt(a)+go)})) || (${a}[${i}] && indexof(${a}[${i}], datum.value) >= 0))`).join(" || ")}const uS={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:n,config:e})=>{const{format:r,formatType:i}=n;return F3(t,t.type,r,i,e,!1)},formatType:({legend:t,fieldOrDatumDef:n,scaleType:e})=>{const{formatType:r}=t;return C3(r,n,e)},gradientLength:t=>{const{legend:n,legendConfig:e}=t;return n.gradientLength??e.gradientLength??function({legendConfig:r,model:i,direction:a,orient:o,scaleType:s}){const{gradientHorizontalMaxLength:u,gradientHorizontalMinLength:l,gradientVerticalMaxLength:c,gradientVerticalMinLength:f}=r;if(Gr(s))return a==="horizontal"?o==="top"||o==="bottom"?lS(i,"width",l,u):l:lS(i,"height",f,c)}(t)},labelOverlap:({legend:t,legendConfig:n,scaleType:e})=>t.labelOverlap??n.labelOverlap??function(r){if(vt(["quantile","threshold","log","symlog"],r))return"greedy"}(e),symbolType:({legend:t,markDef:n,channel:e,encoding:r})=>t.symbolType??function(i,a,o,s){if(a!=="shape"){const u=yb(o)??s;if(u)return u}switch(i){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"}}(n.type,e,r.shape,n.shape),title:({fieldOrDatumDef:t,config:n})=>As(t,n,{allowDisabling:!0}),type:({legendType:t,scaleType:n,channel:e})=>{if(gs(e)&&Gr(n)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:n})=>function(e,r){const i=e.values;if(T(i))return I3(r,i);if(et(i))return i}(n,t)};function oP(t){const{legend:n}=t;return un(n.type,function({channel:e,timeUnit:r,scaleType:i}){if(gs(e)){if(vt(["quarter","month","day"],r))return"symbol";if(Gr(i))return"gradient"}return"symbol"}(t))}function sP({legendConfig:t,legendType:n,orient:e,legend:r}){return r.direction??t[n?"gradientDirection":"symbolDirection"]??function(i,a){switch(i){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return a==="gradient"?"horizontal":void 0}}(e,n)}function lS(t,n,e,r){return{signal:`clamp(${t.getSizeSignalRef(n).signal}, ${e}, ${r})`}}function cS(t){const n=Zt(t)?function(e){const{encoding:r}=e,i={};for(const a of[pe,...p$]){const o=mn(r[a]);o&&e.getScaleComponent(a)&&(a===me&&H(o)&&o.type===vs||(i[a]=lP(e,a)))}return i}(t):function(e){const{legends:r,resolve:i}=e.component;for(const a of e.children){cS(a);for(const o of L(a.component.legends))i.legend[o]=gb(e.component.resolve,o),i.legend[o]==="shared"&&(r[o]=fS(r[o],a.component.legends[o]),r[o]||(i.legend[o]="independent",delete r[o]))}for(const a of L(r))for(const o of e.children)o.component.legends[a]&&i.legend[a]==="shared"&&delete o.component.legends[a];return r}(t);return t.component.legends=n,n}function uP(t,n,e,r){switch(n){case"disable":return e!==void 0;case"values":return!!(e!=null&&e.values);case"title":if(n==="title"&&t===(r==null?void 0:r.title))return!0}return t===(e||{})[n]}function lP(t,n){var x;let e=t.legend(n);const{markDef:r,encoding:i,config:a}=t,o=a.legend,s=new aP({},function(b,w){const A=b.scaleName(w);if(b.mark==="trail"){if(w==="color")return{stroke:A};if(w==="size")return{strokeWidth:A}}return w==="color"?b.markDef.filled?{fill:A}:{stroke:A}:{[w]:A}}(t,n));(function(b,w,A){var k;const _=(k=b.fieldDef(w))==null?void 0:k.field;for(const D of En(b.component.selection??{})){const C=D.project.hasField[_]??D.project.hasChannel[w];if(C&&y5.defined(D)){const F=A.get("selections")??[];F.push(D.name),A.set("selections",F,!1),C.hasLegend=!0}}})(t,n,s);const u=e!==void 0?!e:o.disable;if(s.set("disable",u,e!==void 0),u)return s;e=e||{};const l=t.getScaleComponent(n).get("type"),c=mn(i[n]),f=H(c)?(x=xn(c.timeUnit))==null?void 0:x.unit:void 0,d=e.orient||a.legend.orient||"right",h=oP({legend:e,channel:n,timeUnit:f,scaleType:l}),p={legend:e,channel:n,model:t,markDef:r,encoding:i,fieldOrDatumDef:c,legendConfig:o,config:a,scaleType:l,orient:d,legendType:h,direction:sP({legend:e,legendType:h,orient:d,legendConfig:o})};for(const b of rS){if(h==="gradient"&&b.startsWith("symbol")||h==="symbol"&&b.startsWith("gradient"))continue;const w=b in uS?uS[b](p):e[b];if(w!==void 0){const A=uP(w,b,e,t.fieldDef(n));(A||a.legend[b]===void 0)&&s.set(b,w,A)}}const m=(e==null?void 0:e.encoding)??{},g=s.get("selections"),y={},v={fieldOrDatumDef:c,model:t,channel:n,legendCmpt:s,legendType:h};for(const b of["labels","legend","title","symbols","gradient","entries"]){const w=nS(m[b]??{},t),A=b in iS?iS[b](w,v):w;A===void 0||jt(A)||(y[b]={...g!=null&&g.length&&H(c)?{name:`${Xt(c.field)}_legend_${b}`}:{},...g!=null&&g.length?{interactive:!!g}:{},update:A})}return jt(y)||s.set("encode",y,!!(e!=null&&e.encoding)),s}function fS(t,n){var a,o,s,u;if(!t)return n.clone();const e=t.getWithExplicit("orient"),r=n.getWithExplicit("orient");if(e.explicit&&r.explicit&&e.value!==r.value)return;let i=!1;for(const l of rS){const c=xa(t.getWithExplicit(l),n.getWithExplicit(l),l,"legend",(f,d)=>{switch(l){case"symbolType":return cP(f,d);case"title":return BE(f,d);case"type":return i=!0,xr("symbol")}return hh(f,d,l,"legend")});t.setWithExplicit(l,c)}return i&&((o=(a=t.implicit)==null?void 0:a.encode)!=null&&o.gradient&&$d(t.implicit,["encode","gradient"]),(u=(s=t.explicit)==null?void 0:s.encode)!=null&&u.gradient&&$d(t.explicit,["encode","gradient"])),t}function cP(t,n){return n.value==="circle"?n:t}function dS(t){const n=t.component.legends,e={};for(const i of L(n)){const a=Lt(t.getScaleComponent(i).get("domains"));if(e[a])for(const o of e[a])fS(o,n[i])||e[a].push(n[i]);else e[a]=[n[i].clone()]}return En(e).flat().map(i=>function(a,o){var f,d,h;const{disable:s,labelExpr:u,selections:l,...c}=a.combine();if(!s){if(o.aria===!1&&c.aria==null&&(c.aria=!1),(f=c.encode)!=null&&f.symbols){const p=c.encode.symbols.update;!p.fill||p.fill.value==="transparent"||p.stroke||c.stroke||(p.stroke={value:"transparent"});for(const m of p$)c[m]&&delete p[m]}if(c.title||delete c.title,u!==void 0){let p=u;(h=(d=c.encode)==null?void 0:d.labels)!=null&&h.update&&et(c.encode.labels.update.text)&&(p=Za(u,"datum.label",c.encode.labels.update.text.signal)),function(m,g,y,v){var x,b;m.encode??(m.encode={}),(x=m.encode)[g]??(x[g]={}),(b=m.encode[g]).update??(b.update={}),m.encode[g].update[y]=v}(c,"labels","text",{signal:p})}return c}}(i,t.config)).filter(i=>i!==void 0)}function fP(t){return zs(t)||Mb(t)?function(n){return n.children.reduce((e,r)=>e.concat(r.assembleProjections()),hS(n))}(t):hS(t)}function hS(t){const n=t.component.projection;if(!n||n.merged)return[];const e=n.combine(),{name:r}=e;if(n.data){const i={signal:`[${n.size.map(o=>o.signal).join(", ")}]`},a=n.data.reduce((o,s)=>{const u=et(s)?s.signal:`data('${t.lookupDataSource(s)}')`;return vt(o,u)||o.push(u),o},[]);if(a.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:r,size:i,fit:{signal:a.length>1?`[${a.join(", ")}]`:a[0]},...e}]}return[{name:r,translate:{signal:"[width / 2, height / 2]"},...e}]}const dP=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class pS extends Bi{constructor(n,e,r,i){super({...e},{name:n}),this.specifiedProjection=e,this.size=r,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function mS(t){t.component.projection=Zt(t)?function(n){if(n.hasProjection){const e=Sn(n.specifiedProjection),r=!(e&&(e.scale!=null||e.translate!=null)),i=r?[n.getSizeSignalRef("width"),n.getSizeSignalRef("height")]:void 0,a=r?function(s){const u=[],{encoding:l}=s;for(const c of[[dr,fr],[Ve,hr]])(mn(l[c[0]])||mn(l[c[1]]))&&u.push({signal:s.getName(`geojson_${u.length}`)});return s.channelHasField(me)&&s.typedFieldDef(me).type===vs&&u.push({signal:s.getName(`geojson_${u.length}`)}),u.length===0&&u.push(s.requestDataName(Qt.Main)),u}(n):void 0,o=new pS(n.projectionName(!0),{...Sn(n.config.projection),...e},i,a);return o.get("type")||o.set("type","equalEarth",!1),o}}(t):function(n){if(n.children.length===0)return;let e;for(const i of n.children)mS(i);const r=xy(n.children,i=>{const a=i.component.projection;if(a){if(e){const o=function(s,u){const l=xy(dP,f=>!tt(s.explicit,f)&&!tt(u.explicit,f)||!!(tt(s.explicit,f)&&tt(u.explicit,f)&&Ce(s.get(f),u.get(f))));if(Ce(s.size,u.size)){if(l)return s;if(Ce(s.explicit,{}))return u;if(Ce(u.explicit,{}))return s}return null}(e,a);return o&&(e=o),!!o}return e=a,!0}return!0});if(e&&r){const i=n.projectionName(!0),a=new pS(i,e.specifiedProjection,e.size,ft(e.data));for(const o of n.children){const s=o.component.projection;s&&(s.isFit&&a.data.push(...o.component.projection.data),o.renameProjection(s.get("name"),i),s.merged=!0)}return a}}(t)}function hP(t,n,e,r){if(Al(n,e)){const i=Zt(t)?t.axis(e)??t.legend(e)??{}:{},a=Y(n,{expr:"datum"}),o=Y(n,{expr:"datum",binSuffix:"end"});return{formulaAs:Y(n,{binSuffix:"range",forAs:!0}),formula:vl(a,o,i.format,i.formatType,r)}}return{}}function gS(t,n){return`${wE(t)}_${n}`}function vb(t,n,e){const r=gS(ih(e,void 0)??{},n);return t.getName(`${r}_bins`)}function yS(t,n,e){let r,i;r=function(l){return"as"in l}(t)?Q(t.as)?[t.as,`${t.as}_end`]:[t.as[0],t.as[1]]:[Y(t,{forAs:!0}),Y(t,{binSuffix:"end",forAs:!0})];const a={...ih(n,void 0)},o=gS(a,t.field),{signal:s,extentSignal:u}=function(l,c){return{signal:l.getName(`${c}_bins`),extentSignal:l.getName(`${c}_extent`)}}(e,o);if(jd(a.extent)){const l=a.extent;i=U5(e,l.param,l),delete a.extent}return{key:o,binComponent:{bin:a,field:t.field,as:[r],...s?{signal:s}:{},...u?{extentSignal:u}:{},...i?{span:i}:{}}}}class Zr extends Nt{clone(){return new Zr(null,ft(this.bins))}constructor(n,e){super(n),this.bins=e}static makeFromEncoding(n,e){const r=e.reduceFieldDef((i,a,o)=>{if(oe(a)&&Wt(a.bin)){const{key:s,binComponent:u}=yS(a,a.bin,e);i[s]={...u,...i[s],...hP(e,a,o,e.config)}}return i},{});return jt(r)?null:new Zr(n,r)}static makeFromTransform(n,e,r){const{key:i,binComponent:a}=yS(e,e.bin,r);return new Zr(n,{[i]:a})}merge(n,e){for(const r of L(n.bins))r in this.bins?(e(n.bins[r].signal,this.bins[r].signal),this.bins[r].as=Pr([...this.bins[r].as,...n.bins[r].as],wt)):this.bins[r]=n.bins[r];for(const r of n.children)n.removeChild(r),r.parent=this;n.remove()}producedFields(){return new Set(En(this.bins).map(n=>n.as).flat(2))}dependentFields(){return new Set(En(this.bins).map(n=>n.field))}hash(){return`Bin ${wt(this.bins)}`}assemble(){return En(this.bins).flatMap(n=>{const e=[],[r,...i]=n.as,{extent:a,...o}=n.bin,s={type:"bin",field:He(n.field),as:r,signal:n.signal,...jd(a)?{extent:null}:{extent:a},...n.span?{span:{signal:`span(${n.span})`}}:{},...o};!a&&n.extentSignal&&(e.push({type:"extent",field:He(n.field),signal:n.extentSignal}),s.extent={signal:n.extentSignal}),e.push(s);for(const u of i)for(let l=0;l<2;l++)e.push({type:"formula",expr:Y({field:r[l]},{expr:"datum"}),as:u[l]});return n.formula&&e.push({type:"formula",expr:n.formula,as:n.formulaAs}),e})}}function pP(t,n,e,r){var a;const i=Zt(r)?r.encoding[Ur(n)]:void 0;if(oe(e)&&Zt(r)&&O3(e,i,r.markDef,r.config)){t.add(Y(e,{})),t.add(Y(e,{suffix:"end"}));const{mark:o,markDef:s,config:u}=r,l=va({fieldDef:e,markDef:s,config:u});gl(o)&&l!==.5&&ln(n)&&(t.add(Y(e,{suffix:ph})),t.add(Y(e,{suffix:mh}))),e.bin&&Al(e,n)&&t.add(Y(e,{binSuffix:"range"}))}else if(fE(n)){const o=cE(n);t.add(r.getName(o))}else t.add(Y(e));return ho(e)&&function(o){return Z(o)&&"field"in o}((a=e.scale)==null?void 0:a.range)&&t.add(e.scale.range.field),t}class _r extends Nt{clone(){return new _r(null,new Set(this.dimensions),ft(this.measures))}constructor(n,e,r){super(n),this.dimensions=e,this.measures=r}get groupBy(){return this.dimensions}static makeFromEncoding(n,e){let r=!1;e.forEachFieldDef(o=>{o.aggregate&&(r=!0)});const i={},a=new Set;return r?(e.forEachFieldDef((o,s)=>{const{aggregate:u,field:l}=o;if(u)if(u==="count")i["*"]??(i["*"]={}),i["*"].count=new Set([Y(o,{forAs:!0})]);else{if(Ai(u)||ma(u)){const c=Ai(u)?"argmin":"argmax",f=u[c];i[f]??(i[f]={}),i[f][c]=new Set([Y({op:c,field:f},{forAs:!0})])}else i[l]??(i[l]={}),i[l][u]=new Set([Y(o,{forAs:!0})]);Ir(s)&&e.scaleDomain(s)==="unaggregated"&&(i[l]??(i[l]={}),i[l].min=new Set([Y({field:l,aggregate:"min"},{forAs:!0})]),i[l].max=new Set([Y({field:l,aggregate:"max"},{forAs:!0})]))}else pP(a,s,o,e)}),a.size+L(i).length===0?null:new _r(n,a,i)):null}static makeFromTransform(n,e){var r;const i=new Set,a={};for(const o of e.aggregate){const{op:s,field:u,as:l}=o;s&&(s==="count"?(a["*"]??(a["*"]={}),a["*"].count=new Set([l||Y(o,{forAs:!0})])):(a[u]??(a[u]={}),(r=a[u])[s]??(r[s]=new Set),a[u][s].add(l||Y(o,{forAs:!0}))))}for(const o of e.groupby??[])i.add(o);return i.size+L(a).length===0?null:new _r(n,i,a)}merge(n){return nE(this.dimensions,n.dimensions)?(function(e,r){for(const i of L(r)){const a=r[i];for(const o of L(a))i in e?e[i][o]=new Set([...e[i][o]??[],...a[o]]):e[i]={[o]:a[o]}}}(this.measures,n.measures),!0):(function(...e){ml.debug(...e)}("different dimensions, cannot merge"),!1)}addDimensions(n){n.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...L(this.measures)])}producedFields(){const n=new Set;for(const e of L(this.measures))for(const r of L(this.measures[e])){const i=this.measures[e][r];i.size===0?n.add(`${r}_${e}`):i.forEach(n.add,n)}return n}hash(){return`Aggregate ${wt({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const n=[],e=[],r=[];for(const i of L(this.measures))for(const a of L(this.measures[i]))for(const o of this.measures[i][a])r.push(o),n.push(a),e.push(i==="*"?null:He(i));return{type:"aggregate",groupby:[...this.dimensions].map(He),ops:n,fields:e,as:r}}}class Bs extends Nt{constructor(n,e,r,i){super(n),this.model=e,this.name=r,this.data=i;for(const a of Ye){const o=e.facet[a];if(o){const{bin:s,sort:u}=o;this[a]={name:e.getName(`${a}_domain`),fields:[Y(o),...Wt(s)?[Y(o,{binSuffix:"end"})]:[]],...ki(u)?{sortField:u}:T(u)?{sortIndexField:Ss(o,a)}:{}}}}this.childModel=e.child}hash(){let n="Facet";for(const e of Ye)this[e]&&(n+=` ${e.charAt(0)}:${wt(this[e])}`);return n}get fields(){var e;const n=[];for(const r of Ye)(e=this[r])!=null&&e.fields&&n.push(...this[r].fields);return n}dependentFields(){const n=new Set(this.fields);for(const e of Ye)this[e]&&(this[e].sortField&&n.add(this[e].sortField.field),this[e].sortIndexField&&n.add(this[e].sortIndexField));return n}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const n={};for(const e of wi){const r=this.childModel.component.scales[e];if(r&&!r.merged){const i=r.get("type"),a=r.get("range");if(wn(i)&&io(a)){const o=$b(Sh(this.childModel,e));o?n[e]=o:I(Py(e))}}}return n}assembleRowColumnHeaderData(n,e,r){const i={row:"y",column:"x",facet:void 0}[n],a=[],o=[],s=[];i&&r&&r[i]&&(e?(a.push(`distinct_${r[i]}`),o.push("max")):(a.push(r[i]),o.push("distinct")),s.push(`distinct_${r[i]}`));const{sortField:u,sortIndexField:l}=this[n];if(u){const{op:c=Kd,field:f}=u;a.push(f),o.push(c),s.push(Y(u,{forAs:!0}))}else l&&(a.push(l),o.push("max"),s.push(l));return{name:this[n].name,source:e??this.data,transform:[{type:"aggregate",groupby:this[n].fields,...a.length?{fields:a,ops:o,as:s}:{}}]}}assembleFacetHeaderData(n){var u;const{columns:e}=this.model.layout,{layoutHeaders:r}=this.model.component,i=[],a={};for(const l of db){for(const c of hb){const f=(r[l]&&r[l][c])??[];for(const d of f)if(((u=d.axes)==null?void 0:u.length)>0){a[l]=!0;break}}if(a[l]){const c=`length(data("${this.facet.name}"))`,f=l==="row"?e?{signal:`ceil(${c} / ${e})`}:1:e?{signal:`min(${c}, ${e})`}:{signal:c};i.push({name:`${this.facet.name}_${l}`,transform:[{type:"sequence",start:0,stop:f}]})}}const{row:o,column:s}=a;return(o||s)&&i.unshift(this.assembleRowColumnHeaderData("facet",null,n)),i}assemble(){const n=[];let e=null;const r=this.getChildIndependentFieldsWithStep(),{column:i,row:a,facet:o}=this;if(i&&a&&(r.x||r.y)){e=`cross_${this.column.name}_${this.row.name}`;const s=[].concat(r.x??[],r.y??[]),u=s.map(()=>"distinct");n.push({name:e,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:s,ops:u}]})}for(const s of[gi,mi])this[s]&&n.push(this.assembleRowColumnHeaderData(s,e,r));if(o){const s=this.assembleFacetHeaderData(r);s&&n.push(...s)}return n}}function vS(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function mP(t){const n={};return Ed(t.filter,e=>{if(i3(e)){let r=null;Gy(e)?r=Ee(e.equal):Yy(e)?r=Ee(e.lte):Vy(e)?r=Ee(e.lt):Xy(e)?r=Ee(e.gt):Jy(e)?r=Ee(e.gte):Ky(e)?r=e.range[0]:Qy(e)&&(r=(e.oneOf??e.in)[0]),r&&(ao(r)?n[e.field]="date":$t(r)?n[e.field]="number":Q(r)&&(n[e.field]="string")),e.timeUnit&&(n[e.field]="date")}}),n}function gP(t){const n={};function e(r){var i;ks(r)?n[r.field]="date":r.type==="quantitative"&&(i=r.aggregate,Q(i)&&vt(["min","max"],i))?n[r.field]="number":hs(r.field)>1?r.field in n||(n[r.field]="flatten"):ho(r)&&ki(r.sort)&&hs(r.sort.field)>1&&(r.sort.field in n||(n[r.sort.field]="flatten"))}if((Zt(t)||$e(t))&&t.forEachFieldDef((r,i)=>{if(oe(r))e(r);else{const a=eo(i),o=t.fieldDef(a);e({...r,type:o.type})}}),Zt(t)){const{mark:r,markDef:i,encoding:a}=t;if(ya(r)&&!t.encoding.order){const o=a[i.orient==="horizontal"?"y":"x"];H(o)&&o.type==="quantitative"&&!(o.field in n)&&(n[o.field]="number")}}return n}class Un extends Nt{clone(){return new Un(null,ft(this._parse))}constructor(n,e){super(n),this._parse=e}hash(){return`Parse ${wt(this._parse)}`}static makeExplicit(n,e,r){var o;let i={};const a=e.data;return!wa(a)&&((o=a==null?void 0:a.format)!=null&&o.parse)&&(i=a.format.parse),this.makeWithAncestors(n,i,{},r)}static makeWithAncestors(n,e,r,i){for(const s of L(r)){const u=i.getWithExplicit(s);u.value!==void 0&&(u.explicit||u.value===r[s]||u.value==="derived"||r[s]==="flatten"?delete r[s]:I(jE(s,r[s],u.value)))}for(const s of L(e)){const u=i.get(s);u!==void 0&&(u===e[s]?delete e[s]:I(jE(s,e[s],u)))}const a=new Bi(e,r);i.copyAll(a);const o={};for(const s of L(a.combine())){const u=a.get(s);u!==null&&(o[s]=u)}return L(o).length===0||i.parseNothing?null:new Un(n,o)}get parse(){return this._parse}merge(n){this._parse={...this._parse,...n.parse},n.remove()}assembleFormatParse(){const n={};for(const e of L(this._parse)){const r=this._parse[e];hs(e)===1&&(n[e]=r)}return n}producedFields(){return new Set(L(this._parse))}dependentFields(){return new Set(L(this._parse))}assembleTransforms(n=!1){return L(this._parse).filter(e=>!n||hs(e)>1).map(e=>{const r=function(i,a){const o=ky(i);return a==="number"?`toNumber(${o})`:a==="boolean"?`toBoolean(${o})`:a==="string"?`toString(${o})`:a==="date"?`toDate(${o})`:a==="flatten"?o:a.startsWith("date:")?`timeParse(${o},'${vS(a.slice(5,a.length))}')`:a.startsWith("utc:")?`utcParse(${o},'${vS(a.slice(4,a.length))}')`:(I(`Unrecognized parse "${a}".`),null)}(e,this._parse[e]);return r?{type:"formula",expr:r,as:ds(e)}:null}).filter(e=>e!==null)}}class _a extends Nt{clone(){return new _a(null)}constructor(n){super(n)}dependentFields(){return new Set}producedFields(){return new Set([br])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:br}}}class Nl extends Nt{clone(){return new Nl(null,this.params)}constructor(n,e){super(n),this.params=e}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${wt(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class Rl extends Nt{clone(){return new Rl(null,this.params)}constructor(n,e){super(n),this.params=e}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${wt(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class bo extends Nt{constructor(n){let e;if(super(null),n??(n={name:"source"}),wa(n)||(e=n.format?{...he(n.format,["parse"])}:{}),kl(n))this._data={values:n.values};else if(Fs(n)){if(this._data={url:n.url},!e.type){let r=/(?:\.([^.]+))?$/.exec(n.url)[1];vt(["json","csv","tsv","dsv","topojson"],r)||(r="json"),e.type=r}}else W$(n)?this._data={values:[{type:"Sphere"}]}:(U$(n)||wa(n))&&(this._data={});this._generator=wa(n),n.name&&(this._name=n.name),e&&!jt(e)&&(this._data.format=e)}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(n){this._name=n}set parent(n){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 Ol,bS=function(t,n,e,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof n=="function"?t!==n||!i:!n.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(t,e):i?i.value=e:n.set(t,e),e},yP=function(t,n,e,r){if(e==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof n=="function"?t!==n||!r:!n.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?r:e==="a"?r.call(t):r?r.value:n.get(t)};function bb(t){return t instanceof bo||t instanceof Nl||t instanceof Rl}class xb{constructor(){Ol.set(this,void 0),bS(this,Ol,!1,"f")}setModified(){bS(this,Ol,!0,"f")}get modifiedFlag(){return yP(this,Ol,"f")}}Ol=new WeakMap;class xo extends xb{getNodeDepths(n,e,r){r.set(n,e);for(const i of n.children)this.getNodeDepths(i,e+1,r);return r}optimize(n){const e=[...this.getNodeDepths(n,0,new Map).entries()].sort((r,i)=>i[1]-r[1]);for(const r of e)this.run(r[0]);return this.modifiedFlag}}class wb extends xb{optimize(n){this.run(n);for(const e of n.children)this.optimize(e);return this.modifiedFlag}}class vP extends wb{mergeNodes(n,e){const r=e.shift();for(const i of e)n.removeChild(i),i.parent=r,i.remove()}run(n){const e=n.children.map(i=>i.hash()),r={};for(let i=0;i<e.length;i++)r[e[i]]===void 0?r[e[i]]=[n.children[i]]:r[e[i]].push(n.children[i]);for(const i of L(r))r[i].length>1&&(this.setModified(),this.mergeNodes(n,r[i]))}}class bP extends wb{constructor(n){super(),this.requiresSelectionId=n&&Zv(n)}run(n){n instanceof _a&&(this.requiresSelectionId&&(bb(n.parent)||n.parent instanceof _r||n.parent instanceof Un)||(this.setModified(),n.remove()))}}class xP extends xb{optimize(n){return this.run(n,new Set),this.modifiedFlag}run(n,e){let r=new Set;n instanceof Qr&&(r=n.producedFields(),wy(r,e)&&(this.setModified(),n.removeFormulas(e),n.producedFields.length===0&&n.remove()));for(const i of n.children)this.run(i,new Set([...e,...r]))}}class wP extends wb{constructor(){super()}run(n){n instanceof ye&&!n.isRequired()&&(this.setModified(),n.remove())}}class AP extends xo{run(n){if(!(bb(n)||n.numChildren()>1)){for(const e of n.children)if(e instanceof Un)if(n instanceof Un)this.setModified(),n.merge(e);else{if(_y(n.producedFields(),e.dependentFields()))continue;this.setModified(),e.swapWithParent()}}}}class _P extends xo{run(n){const e=[...n.children],r=n.children.filter(i=>i instanceof Un);if(n.numChildren()>1&&r.length>=1){const i={},a=new Set;for(const o of r){const s=o.parse;for(const u of L(s))u in i?i[u]!==s[u]&&a.add(u):i[u]=s[u]}for(const o of a)delete i[o];if(!jt(i)){this.setModified();const o=new Un(n,i);for(const s of e){if(s instanceof Un)for(const u of L(i))delete s.parse[u];n.removeChild(s),s.parent=o,s instanceof Un&&L(s.parse).length===0&&s.remove()}}}}}class kP extends xo{run(n){n instanceof ye||n.numChildren()>0||n instanceof Bs||n instanceof bo||(this.setModified(),n.remove())}}class DP extends xo{run(n){const e=n.children.filter(i=>i instanceof Qr),r=e.pop();for(const i of e)this.setModified(),r.merge(i)}}class FP extends xo{run(n){const e=n.children.filter(i=>i instanceof _r),r={};for(const i of e){const a=wt(i.groupBy);a in r||(r[a]=[]),r[a].push(i)}for(const i of L(r)){const a=r[i];if(a.length>1){const o=a.pop();for(const s of a)o.merge(s)&&(n.removeChild(s),s.parent=o,s.remove(),this.setModified())}}}}class CP extends xo{constructor(n){super(),this.model=n}run(n){const e=!(bb(n)||n instanceof Os||n instanceof Un||n instanceof _a),r=[],i=[];for(const a of n.children)a instanceof Zr&&(e&&!_y(n.producedFields(),a.dependentFields())?r.push(a):i.push(a));if(r.length>0){const a=r.pop();for(const o of r)a.merge(o,this.model.renameSignal.bind(this.model));this.setModified(),n instanceof Zr?n.merge(a,this.model.renameSignal.bind(this.model)):a.swapWithParent()}if(i.length>1){const a=i.pop();for(const o of i)a.merge(o,this.model.renameSignal.bind(this.model));this.setModified()}}}class EP extends xo{run(n){const e=[...n.children];if(!fs(e,a=>a instanceof ye)||n.numChildren()<=1)return;const r=[];let i;for(const a of e)if(a instanceof ye){let o=a;for(;o.numChildren()===1;){const[s]=o.children;if(!(s instanceof ye))break;o=s}r.push(...o.children),i?(n.removeChild(a),a.parent=i.parent,i.parent.removeChild(i),i.parent=o,this.setModified()):i=o}else r.push(a);if(r.length){this.setModified();for(const a of r)a.parent.removeChild(a),a.parent=i}}}class wo extends Nt{clone(){return new wo(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e}addDimensions(n){this.transform.groupby=Pr(this.transform.groupby.concat(n),e=>e)}dependentFields(){const n=new Set;return this.transform.groupby&&this.transform.groupby.forEach(n.add,n),this.transform.joinaggregate.map(e=>e.field).filter(e=>e!==void 0).forEach(n.add,n),n}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(n){return n.as??Y(n)}hash(){return`JoinAggregateTransform ${wt(this.transform)}`}assemble(){const n=[],e=[],r=[];for(const a of this.transform.joinaggregate)e.push(a.op),r.push(this.getDefaultName(a)),n.push(a.field===void 0?null:a.field);const i=this.transform.groupby;return{type:"joinaggregate",as:r,ops:e,fields:n,...i!==void 0?{groupby:i}:{}}}}class Ts extends Nt{clone(){return new Ts(null,{...this.filter})}constructor(n,e){super(n),this.filter=e}static make(n,e,r){const{config:i,markDef:a}=e,{marks:o,scales:s}=r;if(o==="include-invalid-values"&&s==="include-invalid-values")return null;const u=e.reduceFieldDef((l,c,f)=>{const d=Ir(f)&&e.getScaleComponent(f);if(d){const h=d.get("type"),{aggregate:p}=c,m=cv({scaleChannel:f,markDef:a,config:i,scaleType:h,isCountAggregate:Pd(p)});m!=="show"&&m!=="always-valid"&&(l[c.field]=c)}return l},{});return L(u).length?new Ts(n,u):null}dependentFields(){return new Set(L(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${wt(this.filter)}`}assemble(){const n=L(this.filter).reduce((e,r)=>{const i=this.filter[r],a=Y(i,{expr:"datum"});return i!==null&&(i.type==="temporal"?e.push(`(isDate(${a}) || (${Ab(a)}))`):i.type==="quantitative"&&e.push(Ab(a))),e},[]);return n.length>0?{type:"filter",expr:n.join(" && ")}:null}}function Ab(t){return`isValid(${t}) && isFinite(+${t})`}class zi extends Nt{clone(){return new zi(null,ft(this._stack))}constructor(n,e){super(n),this._stack=e}static makeFromTransform(n,e){const{stack:r,groupby:i,as:a,offset:o="zero"}=e,s=[],u=[];if(e.sort!==void 0)for(const f of e.sort)s.push(f.field),u.push(un(f.order,"ascending"));const l={field:s,order:u};let c;return c=function(f){return T(f)&&f.every(d=>Q(d))&&f.length>1}(a)?a:Q(a)?[a,`${a}_end`]:[`${e.stack}_start`,`${e.stack}_end`],new zi(n,{dimensionFieldDefs:[],stackField:r,groupby:i,offset:o,sort:l,facetby:[],as:c})}static makeFromEncoding(n,e){const r=e.stack,{encoding:i}=e;if(!r)return null;const{groupbyChannels:a,fieldChannel:o,offset:s,impute:u}=r,l=a.map(h=>vr(i[h])).filter(h=>!!h),c=function(h){return h.stack.stackBy.reduce((p,m)=>{const g=Y(m.fieldDef);return g&&p.push(g),p},[])}(e),f=e.encoding.order;let d;if(T(f)||H(f))d=$E(f);else{const h=N3(f)?f.sort:o==="y"?"descending":"ascending";d=c.reduce((p,m)=>(p.field.includes(m)||(p.field.push(m),p.order.push(h)),p),{field:[],order:[]})}return new zi(n,{dimensionFieldDefs:l,stackField:e.vgField(o),facetby:[],stackby:c,sort:d,offset:s,impute:u,as:[e.vgField(o,{suffix:"start",forAs:!0}),e.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(n){this._stack.facetby.push(...n)}dependentFields(){const n=new Set;return n.add(this._stack.stackField),this.getGroupbyFields().forEach(n.add,n),this._stack.facetby.forEach(n.add,n),this._stack.sort.field.forEach(n.add,n),n}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${wt(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:n,impute:e,groupby:r}=this._stack;return n.length>0?n.map(i=>i.bin?e?[Y(i,{binSuffix:"mid"})]:[Y(i,{}),Y(i,{binSuffix:"end"})]:[Y(i)]).flat():r??[]}assemble(){const n=[],{facetby:e,dimensionFieldDefs:r,stackField:i,stackby:a,sort:o,offset:s,impute:u,as:l}=this._stack;if(u)for(const c of r){const{bandPosition:f=.5,bin:d}=c;if(d){const h=Y(c,{expr:"datum"}),p=Y(c,{expr:"datum",binSuffix:"end"});n.push({type:"formula",expr:`${Ab(h)} ? ${f}*${h}+${1-f}*${p} : ${h}`,as:Y(c,{binSuffix:"mid",forAs:!0})})}n.push({type:"impute",field:i,groupby:[...a,...e],key:Y(c,{binSuffix:"mid"}),method:"value",value:0})}return n.push({type:"stack",groupby:[...this.getGroupbyFields(),...e],field:i,sort:o,as:l,offset:s}),n}}class Ns extends Nt{clone(){return new Ns(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e}addDimensions(n){this.transform.groupby=Pr(this.transform.groupby.concat(n),e=>e)}dependentFields(){const n=new Set;return(this.transform.groupby??[]).forEach(n.add,n),(this.transform.sort??[]).forEach(e=>n.add(e.field)),this.transform.window.map(e=>e.field).filter(e=>e!==void 0).forEach(n.add,n),n}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(n){return n.as??Y(n)}hash(){return`WindowTransform ${wt(this.transform)}`}assemble(){const n=[],e=[],r=[],i=[];for(const f of this.transform.window)e.push(f.op),r.push(this.getDefaultName(f)),i.push(f.param===void 0?null:f.param),n.push(f.field===void 0?null:f.field);const a=this.transform.frame,o=this.transform.groupby;if(a&&a[0]===null&&a[1]===null&&e.every(f=>Td(f)))return{type:"joinaggregate",as:r,ops:e,fields:n,...o!==void 0?{groupby:o}:{}};const s=[],u=[];if(this.transform.sort!==void 0)for(const f of this.transform.sort)s.push(f.field),u.push(f.order??"ascending");const l={field:s,order:u},c=this.transform.ignorePeers;return{type:"window",params:i,as:r,ops:e,fields:n,sort:l,...c!==void 0?{ignorePeers:c}:{},...o!==void 0?{groupby:o}:{},...a!==void 0?{frame:a}:{}}}}function _b(t){if(t instanceof Bs)if(t.numChildren()!==1||t.children[0]instanceof ye){const e=t.model.component.data.main;xS(e);const r=(n=t,function a(o){if(!(o instanceof Bs)){const s=o.clone();if(s instanceof ye){const u=kb+s.getSource();s.setSource(u),n.model.component.data.outputNodes[u]=s}else(s instanceof _r||s instanceof zi||s instanceof Ns||s instanceof wo)&&s.addDimensions(n.fields);for(const u of o.children.flatMap(a))u.parent=s;return[s]}return o.children.flatMap(a)}),i=t.children.map(r).flat();for(const a of i)a.parent=e}else{const e=t.children[0];(e instanceof _r||e instanceof zi||e instanceof Ns||e instanceof wo)&&e.addDimensions(t.fields),e.swapWithParent(),_b(t)}else t.children.map(_b);var n}function xS(t){if(t instanceof ye&&t.type===Qt.Main&&t.numChildren()===1){const n=t.children[0];n instanceof Bs||(n.swapWithParent(),xS(t))}}const kb="scale_";function Db(t){for(const n of t){for(const e of n.children)if(e.parent!==n)return!1;if(!Db(n.children))return!1}return!0}function Ar(t,n){let e=!1;for(const r of n)e=t.optimize(r)||e;return e}function wS(t,n,e){let r=t.sources,i=!1;return i=Ar(new wP,r)||i,i=Ar(new bP(n),r)||i,r=r.filter(a=>a.numChildren()>0),i=Ar(new kP,r)||i,r=r.filter(a=>a.numChildren()>0),e||(i=Ar(new AP,r)||i,i=Ar(new CP(n),r)||i,i=Ar(new xP,r)||i,i=Ar(new _P,r)||i,i=Ar(new FP,r)||i,i=Ar(new DP,r)||i,i=Ar(new vP,r)||i,i=Ar(new EP,r)||i),t.sources=r,i}class _n{constructor(n){Object.defineProperty(this,"signal",{enumerable:!0,get:n})}static fromName(n,e){return new _n(()=>n(e))}}function AS(t){Zt(t)?function(n){const e=n.component.scales;for(const r of L(e)){const i=$P(n,r);if(e[r].setWithExplicit("domains",i),SP(n,r),n.component.data.isFaceted){let a=n;for(;!$e(a)&&a.parent;)a=a.parent;if(a.component.resolve.scale[r]==="shared")for(const o of i.value)_i(o)&&(o.data=kb+o.data.replace(kb,""))}}}(t):function(n){for(const r of n.children)AS(r);const e=n.component.scales;for(const r of L(e)){let i,a=null;for(const o of n.children){const s=o.component.scales[r];if(s){i=i===void 0?s.getWithExplicit("domains"):xa(i,s.getWithExplicit("domains"),"domains","scale",Eb);const u=s.get("selectionExtent");a&&u&&a.param!==u.param&&I($N),a=u}}e[r].setWithExplicit("domains",i),a&&e[r].set("selectionExtent",a,!0)}}(t)}function $P(t,n){const e=t.getScaleComponent(n).get("type"),{encoding:r}=t,i=function(a,o,s,u){if(a==="unaggregated"){const{valid:l,reason:c}=_S(o,s);if(!l)return void I(c)}else if(a===void 0&&u.useUnaggregatedDomain){const{valid:l}=_S(o,s);if(l)return"unaggregated"}return a}(t.scaleDomain(n),t.typedFieldDef(n),e,t.config.scale);return i!==t.scaleDomain(n)&&(t.specifiedScales[n]={...t.specifiedScales[n],domain:i}),n==="x"&&mn(r.x2)?mn(r.x)?xa(Aa(e,i,t,"x"),Aa(e,i,t,"x2"),"domain","scale",Eb):Aa(e,i,t,"x2"):n==="y"&&mn(r.y2)?mn(r.y)?xa(Aa(e,i,t,"y"),Aa(e,i,t,"y2"),"domain","scale",Eb):Aa(e,i,t,"y2"):Aa(e,i,t,n)}function Fb(t,n,e){var i;const r=(i=xn(e))==null?void 0:i.unit;return n==="temporal"||r?function(a,o,s){return a.map(u=>({signal:`{data: ${ah(u,{timeUnit:s,type:o})}}`}))}(t,n,r):[t]}function Aa(t,n,e,r){const{encoding:i,markDef:a,mark:o,config:s,stack:u}=e,l=mn(i[r]),{type:c}=l,f=l.timeUnit,d=function(m){const{marks:g,scales:y}=H$(m);return g===y?Qt.Main:y==="include-invalid-values"?Qt.PreFilterInvalid:Qt.PostFilterInvalid}({invalid:Wr("invalid",a,s),isPath:ya(o)});if(function(m){return U(m,"unionWith")}(n)){const m=Aa(t,void 0,e,r);return Jr([...Fb(n.unionWith,c,f),...m.value])}if(et(n))return Jr([n]);if(n&&n!=="unaggregated"&&!p3(n))return Jr(Fb(n,c,f));if(u&&r===u.fieldChannel){if(u.offset==="normalize")return xr([[0,1]]);const m=e.requestDataName(d);return xr([{data:m,field:e.vgField(r,{suffix:"start"})},{data:m,field:e.vgField(r,{suffix:"end"})}])}const h=Ir(r)&&H(l)?function(m,g,y){if(!wn(y))return;const v=m.fieldDef(g),x=v.sort;if(M3(x))return{op:"min",field:Ss(v,g),order:"ascending"};const{stack:b}=m,w=b?new Set([...b.groupbyFields,...b.stackBy.map(A=>A.fieldDef.field)]):void 0;if(ki(x))return Cb(x,b&&!w.has(x.field));if(function(A){return U(A,"encoding")}(x)){const{encoding:A,order:_}=x,k=m.fieldDef(A),{aggregate:D,field:C}=k,F=b&&!w.has(C);if(Ai(D)||ma(D))return Cb({field:Y(k),order:_},F);if(Td(D)||!D)return Cb({op:D,field:C,order:_},F)}else{if(x==="descending")return{op:"min",field:m.vgField(g),order:"descending"};if(vt(["ascending",void 0],x))return!0}}(e,r,t):void 0;if(Yr(l))return xr(Fb([l.datum],c,f));const p=l;if(n==="unaggregated"){const{field:m}=l;return xr([{data:e.requestDataName(d),field:Y({field:m,aggregate:"min"})},{data:e.requestDataName(d),field:Y({field:m,aggregate:"max"})}])}if(Wt(p.bin)){if(wn(t))return xr(t==="bin-ordinal"?[]:[{data:sl(h)?e.requestDataName(d):e.requestDataName(Qt.Raw),field:e.vgField(r,Al(p,r)?{binSuffix:"range"}:{}),sort:h!==!0&&Z(h)?h:{field:e.vgField(r,{}),op:"min"}}]);{const{bin:m}=p;if(Wt(m)){const g=vb(e,p.field,m);return xr([new _n(()=>{const y=e.getSignalName(g);return`[${y}.start, ${y}.stop]`})])}return xr([{data:e.requestDataName(d),field:e.vgField(r,{})}])}}if(p.timeUnit&&vt(["time","utc"],t)){const m=i[Ur(r)];if(O3(p,m,a,s)){const g=e.requestDataName(d),y=va({fieldDef:p,fieldDef2:m,markDef:a,config:s}),v=gl(o)&&y!==.5&&ln(r);return xr([{data:g,field:e.vgField(r,v?{suffix:ph}:{})},{data:g,field:e.vgField(r,{suffix:v?mh:"end"})}])}}return xr(h?[{data:sl(h)?e.requestDataName(d):e.requestDataName(Qt.Raw),field:e.vgField(r),sort:h}]:[{data:e.requestDataName(d),field:e.vgField(r)}])}function Cb(t,n){const{op:e,field:r,order:i}=t;return{op:e??(n?"sum":Kd),...r?{field:He(r)}:{},...i?{order:i}:{}}}function SP(t,n){var s;const e=t.component.scales[n],r=t.specifiedScales[n].domain,i=(s=t.fieldDef(n))==null?void 0:s.bin,a=p3(r)?r:void 0,o=ro(i)&&jd(i.extent)?i.extent:void 0;(a||o)&&e.set("selectionExtent",a??o,!0)}function _S(t,n){const{aggregate:e,type:r}=t;return e?Q(e)&&!AN.has(e)?{valid:!1,reason:RN(e)}:r==="quantitative"&&n==="log"?{valid:!1,reason:TN(t)}:{valid:!0}:{valid:!1,reason:NN(t)}}function Eb(t,n,e,r){return t.explicit&&n.explicit&&I(function(i,a,o,s){return`Conflicting ${a.toString()} property "${i.toString()}" (${Lt(o)} and ${Lt(s)}). Using the union of the two domains.`}(e,r,t.value,n.value)),{explicit:t.explicit,value:[...t.value,...n.value]}}function MP(t){const n=Pr(t.map(o=>{if(_i(o)){const{sort:s,...u}=o;return u}return o}),wt),e=Pr(t.map(o=>{if(_i(o)){const s=o.sort;return s===void 0||sl(s)||("op"in s&&s.op==="count"&&delete s.field,s.order==="ascending"&&delete s.order),s}}).filter(o=>o!==void 0),wt);if(n.length===0)return;if(n.length===1){const o=t[0];if(_i(o)&&e.length>0){let s=e[0];if(e.length>1){I(HE);const u=e.filter(l=>Z(l)&&"op"in l&&l.op!=="min");s=!e.every(l=>Z(l)&&"op"in l)||u.length!==1||u[0]}else if(Z(s)&&"field"in s){const u=s.field;o.field===u&&(s=!s.order||{order:s.order})}return{...o,sort:s}}return o}const r=Pr(e.map(o=>sl(o)||!("op"in o)||Q(o.op)&&tt(bN,o.op)?o:(I(function(s){return`Dropping sort property ${Lt(s)} as unioned domains only support boolean or op "count", "min", and "max".`}(o)),!0)),wt);let i;r.length===1?i=r[0]:r.length>1&&(I(HE),i=!0);const a=Pr(t.map(o=>_i(o)?o.data:null),o=>o);return a.length===1&&a[0]!==null?{data:a[0],fields:n.map(o=>o.field),...i?{sort:i}:{}}:{fields:n,...i?{sort:i}:{}}}function $b(t){if(_i(t)&&Q(t.field))return t.field;if(function(n){return!T(n)&&U(n,"fields")&&!U(n,"data")}(t)){let n;for(const e of t.fields)if(_i(e)&&Q(e.field))if(n){if(n!==e.field)return I("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."),n}else n=e.field;return I("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."),n}if(function(n){return!T(n)&&U(n,"fields")&&U(n,"data")}(t)){I("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 n=t.fields[0];return Q(n)?n:void 0}}function Sh(t,n){const e=t.component.scales[n].get("domains").map(r=>(_i(r)&&(r.data=t.lookupDataSource(r.data)),r));return MP(e)}function kS(t){return zs(t)||Mb(t)?t.children.reduce((n,e)=>n.concat(kS(e)),DS(t)):DS(t)}function DS(t){return L(t.component.scales).reduce((n,e)=>{const r=t.component.scales[e];if(r.merged)return n;const i=r.combine(),{name:a,type:o,selectionExtent:s,domains:u,range:l,reverse:c,...f}=i,d=function(m,g,y,v){if(ln(y)){if(io(m))return{step:{signal:`${g}_step`}}}else if(Z(m)&&_i(m))return{...m,data:v.lookupDataSource(m.data)};return m}(i.range,a,e,t),h=Sh(t,e),p=s?function(m,g,y,v){const x=U5(m,g.param,g);return{signal:mr(y.get("type"))&&T(v)&&v[0]>v[1]?`isValid(${x}) && reverse(${x})`:x}}(t,s,r,h):null;return n.push({name:a,type:o,...h?{domain:h}:{},...p?{domainRaw:p}:{},range:d,...c!==void 0?{reverse:c}:{},...f}),n},[])}class FS extends Bi{constructor(n,e){super({},{name:n}),this.merged=!1,this.setWithExplicit("type",e)}domainHasZero(){const n=this.get("type");if(vt([HN,nv,Wd],n))return"definitely-not";const e=this.get("zero");if(e===!0||e===void 0&&vt([s3,VN,GN],n))return"definitely";const r=this.get("domains");if(r.length>0){let i=!1,a=!1,o=!1;for(const s of r){if(T(s)){const u=s[0],l=s[s.length-1];if($t(u)&&$t(l)){if(u<=0&&l>=0){i=!0;continue}a=!0;continue}}o=!0}if(i)return"definitely";if(a&&!o)return"definitely-not"}return"maybe"}}const BP=["range","scheme"];function CS(t,n){const e=t.fieldDef(n);if(e!=null&&e.bin){const{bin:r,field:i}=e,a=ge(n),o=t.getName(a);if(Z(r)&&r.binned&&r.step!==void 0)return new _n(()=>{const s=t.scaleName(n),u=`(domain("${s}")[1] - domain("${s}")[0]) / ${r.step}`;return`${t.getSignalName(o)} / (${u})`});if(Wt(r)){const s=vb(t,i,r);return new _n(()=>{const u=t.getSignalName(s),l=`(${u}.stop - ${u}.start) / ${u}.step`;return`${t.getSignalName(o)} / (${l})`})}}}function zP(t,n){const e=n.specifiedScales[t],{size:r}=n,i=n.getScaleComponent(t).get("type");for(const c of BP)if(e[c]!==void 0){const f=iv(i,c),d=m3(t,c);if(f)if(d)I(d);else switch(c){case"range":{const h=e.range;if(T(h)){if(ln(t))return Jr(h.map(p=>{if(p==="width"||p==="height"){const m=n.getName(p),g=n.getSignalName.bind(n);return _n.fromName(g,m)}return p}))}else if(Z(h))return Jr({data:n.requestDataName(Qt.Main),field:h.field,sort:{op:"min",field:n.vgField(t)}});return Jr(h)}case"scheme":return Jr(OP(e[c]))}else I(IE(i,c,t))}const a=t===Jt||t==="xOffset"?"width":"height",o=r[a];if(Xr(o)){if(ln(t))if(wn(i)){const c=$S(o,n,t);if(c)return Jr({step:c})}else I(WE(a));else if(hl(t)){const c=t===ua?"x":"y";if(n.getScaleComponent(c).get("type")==="band"){const f=SS(o,i);if(f)return Jr(f)}}}const{rangeMin:s,rangeMax:u}=e,l=function(c,f){const{size:d,config:h,mark:p,encoding:m}=f,{type:g}=mn(m[c]),y=f.getScaleComponent(c),v=y.get("type"),{domain:x,domainMid:b}=f.specifiedScales[c];switch(c){case Jt:case bn:if(vt(["point","band"],v)){const w=MS(c,d,h.view);if(Xr(w))return{step:$S(w,f,c)}}return ES(c,f,v);case ua:case ps:return function(w,A,_){const k=w===ua?"x":"y",D=A.getScaleComponent(k);if(!D)return ES(k,A,_,{center:!0});const C=D.get("type"),F=A.scaleName(k),{markDef:E,config:$}=A;if(C==="band"){const M=MS(k,A.size,A.config.view);if(Xr(M)){const S=SS(M,_);if(S)return S}return[0,{signal:`bandwidth('${F}')`}]}{const M=A.encoding[k];if(H(M)&&M.timeUnit){const S=e3(M.timeUnit,W=>`scale('${F}', ${W})`),B=A.config.scale.bandWithNestedOffsetPaddingInner,z=va({fieldDef:M,markDef:E,config:$})-.5,j=z!==0?` + ${z}`:"";return B?[{signal:`${et(B)?`${B.signal}/2`+j:`${B/2+z}`} * (${S})`},{signal:`${et(B)?`(1 - ${B.signal}/2)`+j:`${1-B/2+z}`} * (${S})`}]:[0,{signal:S}]}return ZC(`Cannot use ${w} scale if ${k} scale is not discrete.`)}}(c,f,v);case bi:{const w=function(_,k){switch(_){case"bar":case"tick":return k.scale.minBandSize;case"line":case"trail":case"rule":return k.scale.minStrokeWidth;case"text":return k.scale.minFontSize;case"point":case"square":case"circle":return k.scale.minSize}throw new Error(Ld("size",_))}(p,h),A=function(_,k,D,C){const F={x:CS(D,"x"),y:CS(D,"y")};switch(_){case"bar":case"tick":{if(C.scale.maxBandSize!==void 0)return C.scale.maxBandSize;const E=zS(k,F,C.view);return $t(E)?E-1:new _n(()=>`${E.signal} - 1`)}case"line":case"trail":case"rule":return C.scale.maxStrokeWidth;case"text":return C.scale.maxFontSize;case"point":case"square":case"circle":{if(C.scale.maxSize)return C.scale.maxSize;const E=zS(k,F,C.view);return $t(E)?Math.pow(BS*E,2):new _n(()=>`pow(${BS} * ${E.signal}, 2)`)}}throw new Error(Ld("size",_))}(p,d,f,h);return bs(v)?function(_,k,D){const C=()=>{const F=pr(k),E=pr(_),$=`(${F} - ${E}) / (${D} - 1)`;return`sequence(${E}, ${F} + ${$}, ${$})`};return et(k)?new _n(C):{signal:C()}}(w,A,function(_,k,D,C){switch(_){case"quantile":return k.scale.quantileCount;case"quantize":return k.scale.quantizeCount;case"threshold":return D!==void 0&&T(D)?D.length+1:(I(function(F){return`Domain for ${F} is required for threshold scale.`}(C)),3)}}(v,h,x,c)):[w,A]}case Ge:return[0,2*Math.PI];case to:return[0,360];case cr:return[0,new _n(()=>`min(${f.getSignalName($e(f.parent)?"child_width":"width")},${f.getSignalName($e(f.parent)?"child_height":"height")})/2`)];case la:return{step:1e3/h.scale.framesPerSecond};case da:return[h.scale.minStrokeWidth,h.scale.maxStrokeWidth];case ha:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case me:return"symbol";case pe:case Lr:case qr:return v==="ordinal"?g==="nominal"?"category":"ordinal":b!==void 0?"diverging":p==="rect"||p==="geoshape"?"heatmap":"ramp";case xi:case ca:case fa:return[h.scale.minOpacity,h.scale.maxOpacity]}}(t,n);return(s!==void 0||u!==void 0)&&iv(i,"rangeMin")&&T(l)&&l.length===2?Jr([s??l[0],u??l[1]]):xr(l)}function OP(t){return function(n){return!Q(n)&&U(n,"name")}(t)?{scheme:t.name,...he(t,["name"])}:{scheme:t}}function ES(t,n,e,{center:r}={}){const i=ge(t),a=n.getName(i),o=n.getSignalName.bind(n);return t===bn&&mr(e)?r?[_n.fromName(s=>`${o(s)}/2`,a),_n.fromName(s=>`-${o(s)}/2`,a)]:[_n.fromName(o,a),0]:r?[_n.fromName(s=>`-${o(s)}/2`,a),_n.fromName(s=>`${o(s)}/2`,a)]:[0,_n.fromName(o,a)]}function $S(t,n,e){const{encoding:r}=n,i=n.getScaleComponent(e),a=Ey(e),o=r[a];if(g$({step:t,offsetIsDiscrete:ht(o)&&o3(o.type)})==="offset"&&X3(r,a)){const s=n.getScaleComponent(a);let u=`domain('${n.scaleName(a)}').length`;s.get("type")==="band"&&(u=`bandspace(${u}, ${s.get("paddingInner")??s.get("padding")??0}, ${s.get("paddingOuter")??s.get("padding")??0})`);const l=i.get("paddingInner")??i.get("padding");return{signal:`${t.step} * ${u} / (1-${DN(l)})`}}return t.step}function SS(t,n){if(g$({step:t,offsetIsDiscrete:wn(n)})==="offset")return{step:t.step}}function MS(t,n,e){const r=t===Jt?"width":"height";return n[r]||fh(e,r)}const BS=.95;function zS(t,n,e){const r=Xr(t.width)?t.width.step:zv(e,"width"),i=Xr(t.height)?t.height.step:zv(e,"height");return n.x||n.y?new _n(()=>`min(${[n.x?n.x.signal:r,n.y?n.y.signal:i].join(", ")})`):Math.min(r,i)}function OS(t,n){Zt(t)?function(e,r){const i=e.component.scales,{config:a,encoding:o,markDef:s,specifiedScales:u}=e;for(const l of L(i)){const c=u[l],f=i[l],d=e.getScaleComponent(l),h=mn(o[l]),p=c[r],m=d.get("type"),g=d.get("padding"),y=d.get("paddingInner"),v=iv(m,r),x=m3(l,r);if(p!==void 0&&(v?x&&I(x):I(IE(m,r,l))),v&&x===void 0)if(p!==void 0){const b=h.timeUnit,w=h.type;switch(r){case"domainMax":case"domainMin":ao(c[r])||w==="temporal"||b?f.set(r,{signal:ah(c[r],{type:w,timeUnit:b})},!0):f.set(r,c[r],!0);break;default:f.copyKeyFromObject(r,c)}}else{const b=U(NS,r)?NS[r]({model:e,channel:l,fieldOrDatumDef:h,scaleType:m,scalePadding:g,scalePaddingInner:y,domain:c.domain,domainMin:c.domainMin,domainMax:c.domainMax,markDef:s,config:a,hasNestedOffsetScale:J3(o,l),hasSecondaryRangeChannel:!!o[Ur(l)]}):a.scale[r];b!==void 0&&f.set(r,b,!1)}}}(t,n):TS(t,n)}const NS={bins:({model:t,fieldOrDatumDef:n})=>H(n)?function(e,r){const i=r.bin;if(Wt(i)){const a=vb(e,r.field,i);return new _n(()=>e.getSignalName(a))}if($n(i)&&ro(i)&&i.step!==void 0)return{step:i.step}}(t,n):void 0,interpolate:({channel:t,fieldOrDatumDef:n})=>function(e,r){if(vt([pe,Lr,qr],e)&&r!=="nominal")return"hcl"}(t,n.type),nice:({scaleType:t,channel:n,domain:e,domainMin:r,domainMax:i,fieldOrDatumDef:a})=>function(o,s,u,l,c,f){var d;if(!((d=vr(f))!=null&&d.bin||T(u)||c!=null||l!=null||vt([nv,Wd],o)))return!!ln(s)||void 0}(t,n,e,r,i,a),padding:({channel:t,scaleType:n,fieldOrDatumDef:e,markDef:r,config:i})=>function(a,o,s,u,l,c){if(ln(a)){if(Gr(o)){if(s.continuousPadding!==void 0)return s.continuousPadding;const{type:f,orient:d}=l;if(f==="bar"&&(!H(u)||!u.bin&&!u.timeUnit)&&(d==="vertical"&&a==="x"||d==="horizontal"&&a==="y"))return c.continuousBandSize}if(o===u3)return s.pointPadding}}(t,n,i.scale,e,r,i.bar),paddingInner:({scalePadding:t,channel:n,markDef:e,scaleType:r,config:i,hasNestedOffsetScale:a})=>function(o,s,u,l,c,f=!1){if(o===void 0){if(ln(s)){const{bandPaddingInner:d,barBandPaddingInner:h,rectBandPaddingInner:p,tickBandPaddingInner:m,bandWithNestedOffsetPaddingInner:g}=c;return f?g:un(d,u==="bar"?h:u==="tick"?m:p)}if(hl(s)&&l===ev)return c.offsetBandPaddingInner}}(t,n,e.type,r,i.scale,a),paddingOuter:({scalePadding:t,channel:n,scaleType:e,scalePaddingInner:r,config:i,hasNestedOffsetScale:a})=>function(o,s,u,l,c,f=!1){if(o===void 0){if(ln(s)){const{bandPaddingOuter:d,bandWithNestedOffsetPaddingOuter:h}=c;if(f)return h;if(u===ev)return un(d,et(l)?{signal:`${l.signal}/2`}:l/2)}else if(hl(s)){if(u===u3)return .5;if(u===ev)return c.offsetBandPaddingOuter}}}(t,n,e,r,i.scale,a),reverse:({fieldOrDatumDef:t,scaleType:n,channel:e,config:r})=>function(i,a,o,s){if(o==="x"&&s.xReverse!==void 0)return mr(i)&&a==="descending"?et(s.xReverse)?{signal:`!${s.xReverse.signal}`}:!s.xReverse:s.xReverse;if(mr(i)&&a==="descending")return!0}(n,H(t)?t.sort:void 0,e,r.scale),zero:({channel:t,fieldOrDatumDef:n,domain:e,markDef:r,scaleType:i,config:a,hasSecondaryRangeChannel:o})=>function(s,u,l,c,f,d,h){if(l&&l!=="unaggregated"&&mr(f)){if(T(l)){const p=l[0],m=l[l.length-1];if($t(p)&&p<=0&&$t(m)&&m>=0)return!0}return!1}if(s==="size"&&u.type==="quantitative"&&!bs(f))return!0;if((!H(u)||!u.bin)&&vt([...wi,...pN],s)){const{orient:p,type:m}=c;return(!vt(["bar","area","line","trail"],m)||!(p==="horizontal"&&s==="y"||p==="vertical"&&s==="x"))&&(!(!vt(["bar","area"],m)||h)||(d==null?void 0:d.zero))}return!1}(t,n,e,r,i,a.scale,o)};function RS(t){Zt(t)?function(n){const e=n.component.scales;for(const r of zy){const i=e[r];if(!i)continue;const a=zP(r,n);i.setWithExplicit("range",a)}}(t):TS(t,"range")}function TS(t,n){const e=t.component.scales;for(const r of t.children)n==="range"?RS(r):OS(r,n);for(const r of L(e)){let i;for(const a of t.children){const o=a.component.scales[r];o&&(i=xa(i,o.getWithExplicit(n),n,"scale",q$((s,u)=>n==="range"&&s.step&&u.step?s.step-u.step:0)))}e[r].setWithExplicit(n,i)}}function NP(t,n,e,r,i=!1){const a=function(l,c,f,d){var h;switch(c.type){case"nominal":case"ordinal":if(gs(l)||Oy(l)==="discrete")return l==="shape"&&c.type==="ordinal"&&I(qy(l,"ordinal")),"ordinal";if(By(l))return"band";if(ln(l)||hl(l)){if(vt(["rect","bar","image","rule","tick"],f.type)||d)return"band"}else if(f.type==="arc"&&l in My)return"band";return lo(f[ge(l)])||ws(c)&&((h=c.axis)!=null&&h.tickBand)?"band":"point";case"temporal":return gs(l)?"time":Oy(l)==="discrete"?(I(qy(l,"temporal")),"ordinal"):H(c)&&c.timeUnit&&xn(c.timeUnit).utc?"utc":By(l)?"band":"time";case"quantitative":return gs(l)?H(c)&&Wt(c.bin)?"bin-ordinal":"linear":Oy(l)==="discrete"?(I(qy(l,"quantitative")),"ordinal"):By(l)?"band":"linear";case"geojson":return}throw new Error(qE(c.type))}(n,e,r,i),{type:o}=t;return Ir(n)?o!==void 0?function(l,c,f=!1){if(!Ir(l))return!1;switch(l){case Jt:case bn:case ua:case ps:case Ge:case cr:return!!Gr(c)||c==="band"||c==="point"&&!f;case la:return vt(["linear","band"],c);case bi:case da:case xi:case ca:case fa:case to:return Gr(c)||bs(c)||vt(["band","point","ordinal"],c);case pe:case Lr:case qr:return c!=="band";case ha:case me:return c==="ordinal"||bs(c)}}(n,o)?H(e)&&(s=o,u=e.type,!(vt([Zy,tv],u)?s===void 0||wn(s):u===ys?vt([nv,Wd,void 0],s):u!==uo||d3(s)||bs(s)||s===void 0))?(I(function(l,c){return`FieldDef does not work with "${l}" scale. We are using "${c}" scale instead.`}(o,a)),a):o:(I(function(l,c,f){return`Channel "${l}" does not work with "${c}" scale. We are using "${f}" scale instead.`}(n,o,a)),a):a:null;var s,u}function PS(t){Zt(t)?t.component.scales=function(n){const{encoding:e,mark:r,markDef:i}=n,a={};for(const o of zy){const s=mn(e[o]);if(s&&r===v3&&o===me&&s.type===vs)continue;let u=s&&s.scale;if(s&&u!==null&&u!==!1){u??(u={});const l=NP(u,o,s,i,J3(e,o));a[o]=new FS(n.scaleName(`${o}`,!0),{value:l,explicit:u.type===l})}}return a}(t):t.component.scales=function(n){var e;const r=n.component.scales={},i={},a=n.component.resolve;for(const o of n.children){PS(o);for(const s of L(o.component.scales))if((e=a.scale)[s]??(e[s]=eS(s,n)),a.scale[s]==="shared"){const u=i[s],l=o.component.scales[s].getWithExplicit("type");u?YN(u.value,l.value)?i[s]=xa(u,l,"type","scale",RP):(a.scale[s]="independent",delete i[s]):i[s]=l}}for(const o of L(i)){const s=n.scaleName(o,!0),u=i[o];r[o]=new FS(s,u);for(const l of n.children){const c=l.component.scales[o];c&&(l.renameScale(c.get("name"),s),c.merged=!0)}}return r}(t)}const RP=q$((t,n)=>l3(t)-l3(n));class Sb{constructor(){this.nameMap={}}rename(n,e){this.nameMap[n]=e}has(n){return this.nameMap[n]!==void 0}get(n){for(;this.nameMap[n]&&n!==this.nameMap[n];)n=this.nameMap[n];return n}}function Zt(t){return(t==null?void 0:t.type)==="unit"}function $e(t){return(t==null?void 0:t.type)==="facet"}function Mb(t){return(t==null?void 0:t.type)==="concat"}function zs(t){return(t==null?void 0:t.type)==="layer"}class Bb{constructor(n,e,r,i,a,o,s){this.type=e,this.parent=r,this.config=a,this.parent=r,this.config=a,this.view=Sn(s),this.name=n.name??i,this.title=ga(n.title)?{text:n.title}:n.title?Sn(n.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new Sb,this.projectionNameMap=r?r.projectionNameMap:new Sb,this.signalNameMap=r?r.signalNameMap:new Sb,this.data=n.data,this.description=n.description,this.transforms=function(u){return u.map(l=>Pv(l)?{filter:ls(l.filter,IN)}:l)}(n.transform??[]),this.layout=e==="layer"||e==="unit"?{}:function(u,l,c){const f=c[l],d={},{spacing:h,columns:p}=f;h!==void 0&&(d.spacing=h),p!==void 0&&(Qd(u)&&!bl(u.facet)||Sv(u))&&(d.columns=p),ch(u)&&(d.columns=1);for(const m of _R)if(u[m]!==void 0)if(m==="spacing"){const g=u[m];d[m]=$t(g)?g:{row:g.row??h,column:g.column??h}}else d[m]=u[m];return d}(n,e,a),this.component={data:{sources:r?r.component.data.sources:[],outputNodes:r?r.component.data.outputNodes:{},outputNodeRefCounts:r?r.component.data.outputNodeRefCounts:{},isFaceted:Qd(n)||(r==null?void 0:r.component.data.isFaceted)&&n.data===void 0},layoutSize:new Bi,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...o?ft(o):{}},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(n,{ignoreRange:e}={}){PS(n),AS(n);for(const r of ZN)OS(n,r);e||RS(n)})(this)}parseProjection(){mS(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){cS(this)}assembleEncodeFromView(n){const{style:e,...r}=n,i={};for(const a of L(r)){const o=r[a];o!==void 0&&(i[a]=Gt(o))}return i}assembleGroupEncodeEntry(n){let e={};return this.view&&(e=this.assembleEncodeFromView(this.view)),n||(this.description&&(e.description=Gt(this.description)),this.type!=="unit"&&this.type!=="layer")?jt(e)?void 0:e:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...e}}assembleLayout(){if(!this.layout)return;const{spacing:n,...e}=this.layout,{component:r,config:i}=this,a=function(o,s){const u={};for(const l of Ye){const c=o[l];if(c!=null&&c.facetFieldDef){const{titleAnchor:f,titleOrient:d}=Eh(["titleAnchor","titleOrient"],c.facetFieldDef.header,s,l),h=Ch(l,d),p=iP(f,h);p!==void 0&&(u[h]=p)}}return jt(u)?void 0:u}(r.layoutHeaders,i);return{padding:n,...this.assembleDefaultLayout(),...e,...a?{titleBand:a}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:n}=this.component;let e=[];for(const r of Ye)n[r].title&&e.push(ZT(this,r));for(const r of db)e=e.concat(tP(this,r));return e}assembleAxes(){return function(n,e){const{x:r=[],y:i=[]}=n;return[...r.map(a=>zl(a,"grid",e)),...i.map(a=>zl(a,"grid",e)),...r.map(a=>zl(a,"main",e)),...i.map(a=>zl(a,"main",e))].filter(a=>a)}(this.component.axes,this.config)}assembleLegends(){return dS(this)}assembleProjections(){return fP(this)}assembleTitle(){const{encoding:n,...e}=this.title??{},r={..._E(this.config.title).nonMarkTitleProperties,...e,...n?{encode:{update:n}}:{}};if(r.text)return vt(["unit","layer"],this.type)?vt(["middle",void 0],r.anchor)&&(r.frame??(r.frame="group")):r.anchor??(r.anchor="start"),jt(r)?void 0:r}assembleGroup(n=[]){const e={};(n=n.concat(this.assembleSignals())).length>0&&(e.signals=n);const r=this.assembleLayout();r&&(e.layout=r),e.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||$e(this.parent)?kS(this):[];i.length>0&&(e.scales=i);const a=this.assembleAxes();a.length>0&&(e.axes=a);const o=this.assembleLegends();return o.length>0&&(e.legends=o),e}getName(n){return Xt((this.name?`${this.name}_`:"")+n)}getDataName(n){return this.getName(Qt[n].toLowerCase())}requestDataName(n){const e=this.getDataName(n),r=this.component.data.outputNodeRefCounts;return r[e]=(r[e]||0)+1,e}getSizeSignalRef(n){if($e(this.parent)){const e=Rd(tS(n)),r=this.component.scales[e];if(r&&!r.merged){const i=r.get("type"),a=r.get("range");if(wn(i)&&io(a)){const o=r.get("name"),s=$b(Sh(this,e));return s?{signal:Z5(o,r,Y({aggregate:"distinct",field:s},{expr:"datum"}))}:(I(Py(e)),null)}}}return{signal:this.signalNameMap.get(this.getName(n))}}lookupDataSource(n){const e=this.component.data.outputNodes[n];return e?e.getSource():n}getSignalName(n){return this.signalNameMap.get(n)}renameSignal(n,e){this.signalNameMap.rename(n,e)}renameScale(n,e){this.scaleNameMap.rename(n,e)}renameProjection(n,e){this.projectionNameMap.rename(n,e)}scaleName(n,e){return e?this.getName(n):hE(n)&&Ir(n)&&this.component.scales[n]||this.scaleNameMap.has(this.getName(n))?this.scaleNameMap.get(this.getName(n)):void 0}projectionName(n){return n?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(n){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const e=this.component.scales[n];return e&&!e.merged?e:this.parent?this.parent.getScaleComponent(n):void 0}getScaleType(n){const e=this.getScaleComponent(n);return e?e.get("type"):void 0}getSelectionComponent(n,e){let r=this.component.selection[n];if(!r&&this.parent&&(r=this.parent.getSelectionComponent(n,e)),!r)throw new Error(`Cannot find a selection named "${e}".`);return r}hasAxisOrientSignalRef(){var n,e;return((n=this.component.axes.x)==null?void 0:n.some(r=>r.hasOrientSignalRef()))||((e=this.component.axes.y)==null?void 0:e.some(r=>r.hasOrientSignalRef()))}}class jS extends Bb{vgField(n,e={}){const r=this.fieldDef(n);if(r)return Y(r,e)}reduceFieldDef(n,e){return function(r,i,a,o){return r?L(r).reduce((s,u)=>{const l=r[u];return T(l)?l.reduce((c,f)=>i.call(o,c,f,u),s):i.call(o,s,l,u)},a):a}(this.getMapping(),(r,i,a)=>{const o=vr(i);return o?n(r,o,a):r},e)}forEachFieldDef(n,e){xv(this.getMapping(),(r,i)=>{const a=vr(r);a&&n(a,i)},e)}}class Rh extends Nt{clone(){return new Rh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"value",r[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 ${wt(this.transform)}`}assemble(){const{density:n,...e}=this.transform,r={type:"kde",field:n,...e};return r.resolve=this.transform.resolve,r}}class Th extends Nt{clone(){return new Th(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${wt(this.transform)}`}assemble(){const{extent:n,param:e}=this.transform;return{type:"extent",field:n,signal:e}}}class Ph extends Nt{clone(){return new Ph(this.parent,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const{flatten:r,as:i=[]}=this.transform;this.transform.as=r.map((a,o)=>i[o]??a)}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${wt(this.transform)}`}assemble(){const{flatten:n,as:e}=this.transform;return{type:"flatten",fields:n,as:e}}}class jh extends Nt{clone(){return new jh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"key",r[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${wt(this.transform)}`}assemble(){const{fold:n,as:e}=this.transform;return{type:"fold",fields:n,as:e}}}class Ps extends Nt{clone(){return new Ps(null,ft(this.fields),this.geojson,this.signal)}static parseAll(n,e){if(e.component.projection&&!e.component.projection.isFit)return n;let r=0;for(const i of[[dr,fr],[Ve,hr]]){const a=i.map(o=>{const s=mn(e.encoding[o]);return H(s)?s.field:Yr(s)?{expr:`${s.datum}`}:yr(s)?{expr:`${s.value}`}:void 0});(a[0]||a[1])&&(n=new Ps(n,a,null,e.getName("geojson_"+r++)))}if(e.channelHasField(me)){const i=e.typedFieldDef(me);i.type===vs&&(n=new Ps(n,null,i.field,e.getName("geojson_"+r++)))}return n}constructor(n,e,r,i){super(n),this.fields=e,this.geojson=r,this.signal=i}dependentFields(){const n=(this.fields??[]).filter(Q);return new Set([...this.geojson?[this.geojson]:[],...n])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${wt(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 Pl extends Nt{clone(){return new Pl(null,this.projection,ft(this.fields),ft(this.as))}constructor(n,e,r,i){super(n),this.projection=e,this.fields=r,this.as=i}static parseAll(n,e){if(!e.projectionName())return n;for(const r of[[dr,fr],[Ve,hr]]){const i=r.map(o=>{const s=mn(e.encoding[o]);return H(s)?s.field:Yr(s)?{expr:`${s.datum}`}:yr(s)?{expr:`${s.value}`}:void 0}),a=r[0]===Ve?"2":"";(i[0]||i[1])&&(n=new Pl(n,e.projectionName(),i,[e.getName(`x${a}`),e.getName(`y${a}`)]))}return n}dependentFields(){return new Set(this.fields.filter(Q))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${wt(this.fields)} ${wt(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Ao extends Nt{clone(){return new Ao(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(n){const{start:e=0,stop:r,step:i}=n;return{signal:`sequence(${[e,r,...i?[i]:[]].join(",")})`}}static makeFromTransform(n,e){return new Ao(n,e)}static makeFromEncoding(n,e){const r=e.encoding,i=r.x,a=r.y;if(H(i)&&H(a)){const o=i.impute?i:a.impute?a:void 0;if(o===void 0)return;const s=i.impute?a:a.impute?i:void 0,{method:u,value:l,frame:c,keyvals:f}=o.impute,d=Z3(e.mark,r);return new Ao(n,{impute:o.field,key:s.field,...u?{method:u}:{},...l!==void 0?{value:l}:{},...c?{frame:c}:{},...f!==void 0?{keyvals:f}:{},...d.length?{groupby:d}:{}})}return null}hash(){return`Impute ${wt(this.transform)}`}assemble(){const{impute:n,key:e,keyvals:r,method:i,groupby:a,value:o,frame:s=[null,null]}=this.transform,u={type:"impute",field:n,key:e,...r?{keyvals:(l=r,U(l,"stop")?this.processSequence(r):r)}:{},method:"value",...a?{groupby:a}:{},value:i&&i!=="value"?null:o};var l;return i&&i!=="value"?[u,{type:"window",as:[`imputed_${n}_value`],ops:[i],fields:[n],frame:s,ignorePeers:!1,...a?{groupby:a}:{}},{type:"formula",expr:`datum.${n} === null ? datum.imputed_${n}_value : datum.${n}`,as:n}]:[u]}}class Lh extends Nt{clone(){return new Lh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??e.on,r[1]??e.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${wt(this.transform)}`}assemble(){const{loess:n,on:e,...r}=this.transform;return{type:"loess",x:e,y:n,...r}}}class jl extends Nt{clone(){return new jl(null,ft(this.transform),this.secondary)}constructor(n,e,r){super(n),this.transform=e,this.secondary=r}static make(n,e,r,i){const a=e.component.data.sources,{from:o}=r;let s=null;if(function(u){return U(u,"data")}(o)){let u=IS(o.data,a);u||(u=new bo(o.data),a.push(u));const l=e.getName(`lookup_${i}`);s=new ye(u,l,Qt.Lookup,e.component.data.outputNodeRefCounts),e.component.data.outputNodes[l]=s}else if(function(u){return U(u,"param")}(o)){const u=o.param;let l;r={as:u,...r};try{l=e.getSelectionComponent(Xt(u),u)}catch{throw new Error(`Lookups can only be performed on selection parameters. "${u}" is a variable parameter.`)}if(s=l.materialized,!s)throw new Error(function(c){return`Cannot define and lookup the "${c}" selection in the same view. Try moving the lookup into a second, layered view?`}(u))}return new jl(n,r,s.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?J(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${wt({transform:this.transform,secondary:this.secondary})}`}assemble(){let n;if(this.transform.from.fields)n={values:this.transform.from.fields,...this.transform.as?{as:J(this.transform.as)}:{}};else{let e=this.transform.as;Q(e)||(I('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.'),e="_lookup"),n={as:[e]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...n,...this.transform.default?{default:this.transform.default}:{}}}}class qh extends Nt{clone(){return new qh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"prob",r[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${wt(this.transform)}`}assemble(){const{quantile:n,...e}=this.transform;return{type:"quantile",field:n,...e}}}class Uh extends Nt{clone(){return new Uh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??e.on,r[1]??e.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${wt(this.transform)}`}assemble(){const{regression:n,on:e,...r}=this.transform;return{type:"regression",x:e,y:n,...r}}}class Ih extends Nt{clone(){return new Ih(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e}addDimensions(n){this.transform.groupby=Pr((this.transform.groupby??[]).concat(n),e=>e)}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${wt(this.transform)}`}assemble(){const{pivot:n,value:e,groupby:r,limit:i,op:a}=this.transform;return{type:"pivot",field:n,value:e,...i!==void 0?{limit:i}:{},...a!==void 0?{op:a}:{},...r!==void 0?{groupby:r}:{}}}}class Wh extends Nt{clone(){return new Wh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${wt(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function LS(t){let n=0;return function e(r,i){if(r instanceof bo&&!r.isGenerator&&!Fs(r.data)&&(t.push(i),i={name:null,source:i.name,transform:[]}),r instanceof Un&&(r.parent instanceof bo&&!i.source?(i.format={...i.format,parse:r.assembleFormatParse()},i.transform.push(...r.assembleTransforms(!0))):i.transform.push(...r.assembleTransforms())),r instanceof Bs)return i.name||(i.name="data_"+n++),!i.source||i.transform.length>0?(t.push(i),r.data=i.name):r.data=i.source,void t.push(...r.assemble());switch((r instanceof Nl||r instanceof Rl||r instanceof Ts||r instanceof Os||r instanceof Rs||r instanceof Pl||r instanceof _r||r instanceof jl||r instanceof Ns||r instanceof wo||r instanceof jh||r instanceof Ph||r instanceof Rh||r instanceof Lh||r instanceof qh||r instanceof Uh||r instanceof _a||r instanceof Wh||r instanceof Ih||r instanceof Th)&&i.transform.push(r.assemble()),(r instanceof Zr||r instanceof Qr||r instanceof Ao||r instanceof zi||r instanceof Ps)&&i.transform.push(...r.assemble()),r instanceof ye&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof ye?r.setSource(i.name):(i.name||(i.name="data_"+n++),r.setSource(i.name),r.numChildren()===1&&(t.push(i),i={name:null,source:i.name,transform:[]}))),r.numChildren()){case 0:r instanceof ye&&(!i.source||i.transform.length>0)&&t.push(i);break;case 1:e(r.children[0],i);break;default:{i.name||(i.name="data_"+n++);let a=i.name;!i.source||i.transform.length>0?t.push(i):a=i.source;for(const o of r.children)e(o,{name:null,source:a,transform:[]});break}}}}function TP(t){return t==="top"||t==="left"||et(t)?"header":"footer"}function PP(t,n){var o;const{facet:e,config:r,child:i,component:a}=t;if(t.channelHasField(n)){const s=e[n],u=Ms("title",null,r,n);let l=As(s,r,{allowDisabling:!0,includeDefault:u===void 0||!!u});i.component.layoutHeaders[n].title&&(l=T(l)?l.join(", "):l,l+=` / ${i.component.layoutHeaders[n].title}`,i.component.layoutHeaders[n].title=null);const c=Ms("labelOrient",s.header,r,n),f=s.header!==null&&un((o=s.header)==null?void 0:o.labels,r.header.labels,!0),d=vt(["bottom","right"],c)?"footer":"header";a.layoutHeaders[n]={title:s.header!==null?l:null,facetFieldDef:s,[d]:n==="facet"?[]:[qS(t,n,f)]}}}function qS(t,n,e){const r=n==="row"?"height":"width";return{labels:e,sizeSignal:t.child.component.layoutSize.get(r)?t.child.getSizeSignalRef(r):void 0,axes:[]}}function US(t,n){const{child:e}=t;if(e.component.axes[n]){const{layoutHeaders:r,resolve:i}=t.component;if(i.axis[n]=gb(i,n),i.axis[n]==="shared"){const a=n==="x"?"column":"row",o=r[a];for(const s of e.component.axes[n]){const u=TP(s.get("orient"));o[u]??(o[u]=[qS(t,a,!1)]);const l=zl(s,"main",t.config,{header:!0});l&&o[u][0].axes.push(l),s.mainExtracted=!0}}}}function zb(t){for(const n of t.children)n.parseLayoutSize()}function Mh(t,n){const e=tS(n),r=Rd(e),i=t.component.resolve,a=t.component.layoutSize;let o;for(const s of t.children){const u=s.component.layoutSize.getWithExplicit(e),l=i.scale[r]??eS(r,t);if(l==="independent"&&u.value==="step"){o=void 0;break}if(o){if(l==="independent"&&o.value!==u.value){o=void 0;break}o=xa(o,u,e,"")}else o=u}if(o){for(const s of t.children)t.renameSignal(s.getName(e),t.getName(n)),s.component.layoutSize.set(e,"merged",!1);a.setWithExplicit(n,o)}else a.setWithExplicit(n,{explicit:!1,value:void 0})}function jP(t,n){const e=n==="width"?"x":"y",r=t.config,i=t.getScaleComponent(e);if(i){const a=i.get("type"),o=i.get("range");if(wn(a)){const s=fh(r.view,n);return io(o)||Xr(s)?"step":s}return Bv(r.view,n)}if(t.hasProjection||t.mark==="arc")return Bv(r.view,n);{const a=fh(r.view,n);return Xr(a)?a.step:a}}function Ob(t,n,e){return Y(n,{suffix:`by_${Y(t)}`,...e})}class Tl extends jS{constructor(n,e,r,i){super(n,"facet",e,r,i,n.resolve),this.child=Tb(n.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(n.facet)}initFacet(n){if(!bl(n))return{facet:this.initFacetFieldDef(n,"facet")};const e=L(n),r={};for(const i of e){if(![mi,gi].includes(i)){I(Ld(i,"facet"));break}const a=n[i];if(a.field===void 0){I(Ly(a,i));break}r[i]=this.initFacetFieldDef(a,i)}return r}initFacetFieldDef(n,e){const r=bv(n,e);return r.header?r.header=Sn(r.header):r.header===null&&(r.header=null),r}channelHasField(n){return U(this.facet,n)}fieldDef(n){return this.facet[n]}parseData(){this.component.data=Bh(this),this.child.parseData()}parseLayoutSize(){zb(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection,Object.values(this.component.selection).some(n=>Kr(n))&&Uy(jy)}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(n){for(const e of Ye)PP(n,e);US(n,"x"),US(n,"y")}(this)}assembleSelectionTopLevelSignals(n){return this.child.assembleSelectionTopLevelSignals(n)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(n){return this.child.assembleSelectionData(n)}getHeaderLayoutMixins(){const n={};for(const e of Ye)for(const r of hb){const i=this.component.layoutHeaders[e],a=i[r],{facetFieldDef:o}=i;if(o){const s=Ms("titleOrient",o.header,this.config,e);if(["right","bottom"].includes(s)){const u=Ch(e,s);n.titleAnchor??(n.titleAnchor={}),n.titleAnchor[u]="end"}}if(a!=null&&a[0]){const s=e==="row"?"height":"width",u=r==="header"?"headerBand":"footerBand";e==="facet"||this.child.component.layoutSize.get(s)||(n[u]??(n[u]={}),n[u][e]=.5),i.title&&(n.offset??(n.offset={}),n.offset[e==="row"?"rowTitle":"columnTitle"]=10)}}return n}assembleDefaultLayout(){const{column:n,row:e}=this.facet,r=n?this.columnDistinctSignal():e?1:void 0;let i="all";return(e||this.component.resolve.scale.x!=="independent")&&(n||this.component.resolve.scale.y!=="independent")||(i="none"),{...this.getHeaderLayoutMixins(),...r?{columns:r}:{},bounds:"full",align:i}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof Tl))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(n){return this.parent&&this.parent instanceof Tl?{...this.channelHasField("column")?{encode:{update:{columns:{field:Y(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(n)}:super.assembleGroup(n)}getCardinalityAggregateForChild(){const n=[],e=[],r=[];if(this.child instanceof Tl){if(this.child.channelHasField("column")){const i=Y(this.child.facet.column);n.push(i),e.push("distinct"),r.push(`distinct_${i}`)}}else for(const i of wi){const a=this.child.component.scales[i];if(a&&!a.merged){const o=a.get("type"),s=a.get("range");if(wn(o)&&io(s)){const u=$b(Sh(this.child,i));u?(n.push(u),e.push("distinct"),r.push(`distinct_${u}`)):I(Py(i))}}}return{fields:n,ops:e,as:r}}assembleFacet(){const{name:n,data:e}=this.component.data.facetRoot,{row:r,column:i}=this.facet,{fields:a,ops:o,as:s}=this.getCardinalityAggregateForChild(),u=[];for(const c of Ye){const f=this.facet[c];if(f){u.push(Y(f));const{bin:d,sort:h}=f;if(Wt(d)&&u.push(Y(f,{binSuffix:"end"})),ki(h)){const{field:p,op:m=Kd}=h,g=Ob(f,h);r&&i?(a.push(g),o.push("max"),s.push(g)):(a.push(p),o.push(m),s.push(g))}else if(T(h)){const p=Ss(f,c);a.push(p),o.push("max"),s.push(p)}}}const l=!!r&&!!i;return{name:n,data:e,groupby:u,...l||a.length>0?{aggregate:{...l?{cross:l}:{},...a.length?{fields:a,ops:o,as:s}:{}}}:{}}}facetSortFields(n){const{facet:e}=this,r=e[n];return r?ki(r.sort)?[Ob(r,r.sort,{expr:"datum"})]:T(r.sort)?[Ss(r,n,{expr:"datum"})]:[Y(r,{expr:"datum"})]:[]}facetSortOrder(n){const{facet:e}=this,r=e[n];if(r){const{sort:i}=r;return[(ki(i)?i.order:!T(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var i;const{facet:n,config:e}=this;if(n.facet)return pb(n.facet,"facet",e);const r={row:["top","bottom"],column:["left","right"]};for(const a of db)if(n[a]){const o=Ms("labelOrient",(i=n[a])==null?void 0:i.header,e,a);if(r[a].includes(o))return pb(n[a],a,e)}}assembleMarks(){const{child:n}=this,e=function(s){const u=[],l=LS(u);for(const c of s.children)l(c,{source:s.name,name:null,transform:[]});return u}(this.component.data.facetRoot),r=n.assembleGroupEncodeEntry(!1),i=this.assembleLabelTitle()||n.assembleTitle(),a=n.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...i?{title:i}:{},...a?{style:a}:{},from:{facet:this.assembleFacet()},sort:{field:Ye.map(s=>this.facetSortFields(s)).flat(),order:Ye.map(s=>this.facetSortOrder(s)).flat()},...e.length>0?{data:e}:{},...r?{encode:{update:r}}:{},...n.assembleGroup(dT(this,[]))}]}getMapping(){return this.facet}}function IS(t,n){var e,r,i,a;for(const o of n){const s=o.data;if(t.name&&o.hasName()&&t.name!==o.dataName)continue;const u=(e=t.format)==null?void 0:e.mesh,l=(r=s.format)==null?void 0:r.feature;if(u&&l)continue;const c=(i=t.format)==null?void 0:i.feature;if((c||l)&&c!==l)continue;const f=(a=s.format)==null?void 0:a.mesh;if(!u&&!f||u===f){if(kl(t)&&kl(s)){if(Ce(t.values,s.values))return o}else if(Fs(t)&&Fs(s)){if(t.url===s.url)return o}else if(U$(t)&&t.name===o.dataName)return o}}return null}function Bh(t){var m;let n=function(g,y){if(g.data||!g.parent){if(g.data===null){const x=new bo({values:[]});return y.push(x),x}const v=IS(g.data,y);if(v)return wa(g.data)||(v.data.format=tE({},g.data.format,v.data.format)),!v.hasName()&&g.data.name&&(v.dataName=g.data.name),v;{const x=new bo(g.data);return y.push(x),x}}return g.parent.component.data.facetRoot?g.parent.component.data.facetRoot:g.parent.component.data.main}(t,t.component.data.sources);const{outputNodes:e,outputNodeRefCounts:r}=t.component.data,i=t.data,a=!(i&&(wa(i)||Fs(i)||kl(i)))&&t.parent?t.parent.component.data.ancestorParse.clone():new oT;wa(i)?(I$(i)?n=new Rl(n,i.sequence):qv(i)&&(n=new Nl(n,i.graticule)),a.parseNothing=!0):((m=i==null?void 0:i.format)==null?void 0:m.parse)===null&&(a.parseNothing=!0),n=Un.makeExplicit(n,t,a)??n,n=new _a(n);const o=t.parent&&zs(t.parent);(Zt(t)||$e(t))&&o&&(n=Zr.makeFromEncoding(n,t)??n),t.transforms.length>0&&(n=function(g,y,v){let x=0;for(const b of y.transforms){let w,A;if(YR(b))A=g=new Rs(g,b),w="derived";else if(Pv(b)){const _=mP(b);A=g=Un.makeWithAncestors(g,{},_,v)??g,g=new Os(g,y,b.filter)}else if(O$(b))A=g=Zr.makeFromTransform(g,b,y),w="number";else if(JR(b))w="date",v.getWithExplicit(b.field).value===void 0&&(g=new Un(g,{[b.field]:w}),v.set(b.field,w,!1)),A=g=Qr.makeFromTransform(g,b);else if(KR(b))A=g=_r.makeFromTransform(g,b),w="number",Zv(y)&&(g=new _a(g));else if(z$(b))A=g=jl.make(g,y,b,x++),w="derived";else if(HR(b))A=g=new Ns(g,b),w="number";else if(GR(b))A=g=new wo(g,b),w="number";else if(QR(b))A=g=zi.makeFromTransform(g,b),w="derived";else if(ZR(b))A=g=new jh(g,b),w="derived";else if(tT(b))A=g=new Th(g,b),w="derived";else if(VR(b))A=g=new Ph(g,b),w="derived";else if(jR(b))A=g=new Ih(g,b),w="derived";else if(WR(b))g=new Wh(g,b);else if(XR(b))A=g=Ao.makeFromTransform(g,b),w="derived";else if(LR(b))A=g=new Rh(g,b),w="derived";else if(qR(b))A=g=new qh(g,b),w="derived";else if(UR(b))A=g=new Uh(g,b),w="derived";else{if(!IR(b)){I(SN(b));continue}A=g=new Lh(g,b),w="derived"}if(A&&w!==void 0)for(const _ of A.producedFields()??[])v.set(_,w,!1)}return g}(n,t,a));const s=function(g){const y={};if(Zt(g)&&g.component.selection)for(const v of L(g.component.selection)){const x=g.component.selection[v];for(const b of x.project.items)!b.channel&&hs(b.field)>1&&(y[b.field]="flatten")}return y}(t),u=gP(t);n=Un.makeWithAncestors(n,{},{...s,...u},a)??n,Zt(t)&&(n=Ps.parseAll(n,t),n=Pl.parseAll(n,t)),(Zt(t)||$e(t))&&(o||(n=Zr.makeFromEncoding(n,t)??n),n=Qr.makeFromEncoding(n,t)??n,n=Rs.parseAllForSortIndex(n,t));const l=n=zh(Qt.Raw,t,n);if(Zt(t)){const g=_r.makeFromEncoding(n,t);g&&(n=g,Zv(t)&&(n=new _a(n))),n=Ao.makeFromEncoding(n,t)??n,n=zi.makeFromEncoding(n,t)??n}let c,f;if(Zt(t)){const{markDef:g,mark:y,config:v}=t,x=qt("invalid",g,v),{marks:b,scales:w}=f=H$({invalid:x,isPath:ya(y)});b!==w&&w==="include-invalid-values"&&(c=n=zh(Qt.PreFilterInvalid,t,n)),b==="exclude-invalid-values"&&(n=Ts.make(n,t,f)??n)}const d=n=zh(Qt.Main,t,n);let h;if(Zt(t)&&f){const{marks:g,scales:y}=f;g==="include-invalid-values"&&y==="exclude-invalid-values"&&(n=Ts.make(n,t,f)??n,h=n=zh(Qt.PostFilterInvalid,t,n))}Zt(t)&&function(g,y){for(const[v,x]of sa(g.component.selection??{})){const b=g.getName(`lookup_${v}`);g.component.data.outputNodes[b]=x.materialized=new ye(new Os(y,g,{param:v}),b,Qt.Lookup,g.component.data.outputNodeRefCounts)}}(t,d);let p=null;if($e(t)){const g=t.getName("facet");n=function(y,v){const{row:x,column:b}=v;if(x&&b){let w=null;for(const A of[x,b])if(ki(A.sort)){const{field:_,op:k=Kd}=A.sort;y=w=new wo(y,{joinaggregate:[{op:k,field:_,as:Ob(A,A.sort,{forAs:!0})}],groupby:[Y(A)]})}return w}return null}(n,t.facet)??n,p=new Bs(n,t,g,d.getSource()),e[g]=p}return{...t.component.data,outputNodes:e,outputNodeRefCounts:r,raw:l,main:d,facetRoot:p,ancestorParse:a,preFilterInvalid:c,postFilterInvalid:h}}function zh(t,n,e){const{outputNodes:r,outputNodeRefCounts:i}=n.component.data,a=n.getDataName(t),o=new ye(e,a,t,i);return r[a]=o,o}class LP extends Bb{constructor(n,e,r,i){var a,o,s,u;super(n,"concat",e,r,i,n.resolve),((o=(a=n.resolve)==null?void 0:a.axis)==null?void 0:o.x)!=="shared"&&((u=(s=n.resolve)==null?void 0:s.axis)==null?void 0:u.y)!=="shared"||I("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(n).map((l,c)=>Tb(l,this,this.getName(`concat_${c}`),void 0,i))}parseData(){this.component.data=Bh(this);for(const n of this.children)n.parseData()}parseSelections(){this.component.selection={};for(const n of this.children){n.parseSelections();for(const e of L(n.component.selection))this.component.selection[e]=n.component.selection[e]}Object.values(this.component.selection).some(n=>Kr(n))&&Uy(jy)}parseMarkGroup(){for(const n of this.children)n.parseMarkGroup()}parseAxesAndHeaders(){for(const n of this.children)n.parseAxesAndHeaders()}getChildren(n){return ch(n)?n.vconcat:Mv(n)?n.hconcat:n.concat}parseLayoutSize(){(function(n){zb(n);const e=n.layout.columns===1?"width":"childWidth",r=n.layout.columns===void 0?"height":"childHeight";Mh(n,e),Mh(n,r)})(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(n){return this.children.reduce((e,r)=>r.assembleSelectionTopLevelSignals(e),n)}assembleSignals(){return this.children.forEach(n=>n.assembleSignals()),[]}assembleLayoutSignals(){const n=mb(this);for(const e of this.children)n.push(...e.assembleLayoutSignals());return n}assembleSelectionData(n){return this.children.reduce((e,r)=>r.assembleSelectionData(e),n)}assembleMarks(){return this.children.map(n=>{const e=n.assembleTitle(),r=n.assembleGroupStyle(),i=n.assembleGroupEncodeEntry(!1);return{type:"group",name:n.getName("group"),...e?{title:e}:{},...r?{style:r}:{},...i?{encode:{update:i}}:{},...n.assembleGroup()}})}assembleGroupStyle(){}assembleDefaultLayout(){const n=this.layout.columns;return{...n!=null?{columns:n}:{},bounds:"full",align:"each"}}}const qP={disable:1,gridScale:1,scale:1,...G3,labelExpr:1,encode:1},WS=L(qP);class jb extends Bi{constructor(n={},e={},r=!1){super(),this.explicit=n,this.implicit=e,this.mainExtracted=r}clone(){return new jb(ft(this.explicit),ft(this.implicit),this.mainExtracted)}hasAxisPart(n){return n==="axis"||(n==="grid"||n==="title"?!!this.get(n):!((e=this.get(n))===!1||e===null));var e}hasOrientSignalRef(){return et(this.explicit.orient)}}const UP={bottom:"top",top:"bottom",left:"right",right:"left"};function IP(t,n){if(!t)return n.map(e=>e.clone());{if(t.length!==n.length)return;const e=t.length;for(let r=0;r<e;r++){const i=t[r],a=n[r];if(!!i!=!!a)return;if(i&&a){const o=i.getWithExplicit("orient"),s=a.getWithExplicit("orient");if(o.explicit&&s.explicit&&o.value!==s.value)return;t[r]=WP(i,a)}}}return t}function WP(t,n){for(const e of WS){const r=xa(t.getWithExplicit(e),n.getWithExplicit(e),e,"axis",(i,a)=>{switch(e){case"title":return BE(i,a);case"gridScale":return{explicit:i.explicit,value:un(i.value,a.value)}}return hh(i,a,e,"axis")});t.setWithExplicit(e,r)}return t}function HP(t,n,e,r,i){if(n==="disable")return e!==void 0;switch(e=e||{},n){case"titleAngle":case"labelAngle":return t===(et(e.labelAngle)?e.labelAngle:cl(e.labelAngle));case"values":return!!e.values;case"encode":return!!e.encoding||!!e.labelAngle;case"title":if(t===Y5(r,i))return!0}return t===e[n]}const GP=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function VP(t,n){var y,v;let e=n.axis(t);const r=new jb,i=mn(n.encoding[t]),{mark:a,config:o}=n,s=(e==null?void 0:e.orient)||((y=o[t==="x"?"axisX":"axisY"])==null?void 0:y.orient)||((v=o.axis)==null?void 0:v.orient)||function(x){return x==="x"?"bottom":"left"}(t),u=n.getScaleComponent(t).get("type"),l=function(x,b,w,A){const _=b==="band"?["axisDiscrete","axisBand"]:b==="point"?["axisDiscrete","axisPoint"]:d3(b)?["axisQuantitative"]:b==="time"||b==="utc"?["axisTemporal"]:[],k=x==="x"?"axisX":"axisY",D=et(w)?"axisOrient":`axis${ll(w)}`,C=[..._,..._.map(E=>k+E.substr(4))],F=["axis",D,k];return{vlOnlyAxisConfig:W5(C,A,x,w),vgAxisConfig:W5(F,A,x,w),axisConfigStyle:QT([...F,...C],A)}}(t,u,s,n.config),c=e!==void 0?!e:cb("disable",o.style,e==null?void 0:e.style,l).configValue;if(r.set("disable",c,e!==void 0),c)return r;e=e||{};const f=function(x,b,w,A,_){const k=b==null?void 0:b.labelAngle;if(k!==void 0)return et(k)?k:cl(k);{const{configValue:D}=cb("labelAngle",A,b==null?void 0:b.style,_);return D!==void 0?cl(D):w!==Jt||!vt([tv,Zy],x.type)||H(x)&&x.timeUnit?void 0:270}}(i,e,t,o.style,l),d=C3(e.formatType,i,u),h=F3(i,i.type,e.format,e.formatType,o,!0),p={fieldOrDatumDef:i,axis:e,channel:t,model:n,scaleType:u,orient:s,labelAngle:f,format:h,formatType:d,mark:a,config:o};for(const x of WS){const b=x in H5?H5[x](p):V3(x)?e[x]:void 0,w=b!==void 0,A=HP(b,x,e,n,t);if(w&&A)r.set(x,b,A);else{const{configValue:_,configFrom:k}=V3(x)&&x!=="values"?cb(x,o.style,e.style,l):{},D=_!==void 0;w&&!D?r.set(x,b,A):(k!=="vgAxisConfig"||GP.has(x)&&D||_l(_)||et(_))&&r.set(x,_,!1)}}const m=e.encoding??{},g=H3.reduce((x,b)=>{if(!r.hasAxisPart(b))return x;const w=nS(m[b]??{},n),A=b==="labels"?function(_,k,D){const{encoding:C,config:F}=_,E=mn(C[k])??mn(C[Ur(k)]),$=_.axis(k)||{},{format:M,formatType:S}=$;if(fo(S))return{text:gr({fieldOrDatumDef:E,field:"datum.value",format:M,formatType:S,config:F}),...D};if(M===void 0&&S===void 0&&F.customFormatTypes){if(xs(E)==="quantitative"){if(ws(E)&&E.stack==="normalize"&&F.normalizedNumberFormatType)return{text:gr({fieldOrDatumDef:E,field:"datum.value",format:F.normalizedNumberFormat,formatType:F.normalizedNumberFormatType,config:F}),...D};if(F.numberFormatType)return{text:gr({fieldOrDatumDef:E,field:"datum.value",format:F.numberFormat,formatType:F.numberFormatType,config:F}),...D}}if(xs(E)==="temporal"&&F.timeFormatType&&H(E)&&!E.timeUnit)return{text:gr({fieldOrDatumDef:E,field:"datum.value",format:F.timeFormat,formatType:F.timeFormatType,config:F}),...D}}return D}(n,t,w):w;return A===void 0||jt(A)||(x[b]={update:A}),x},{});return jt(g)||r.set("encode",g,!!e.encoding||e.labelAngle!==void 0),r}function Nb(t,n){const{config:e}=t;return{...Xe(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...se("x",t,{defaultPos:"mid"}),...se("y",t,{defaultPos:"mid"}),...Mn("size",t),...Mn("angle",t),...YP(t,e,n)}}function YP(t,n,e){return e?{shape:{value:e}}:Mn("shape",t)}const XP={vgMark:"rule",encodeEntry:t=>{const{markDef:n}=t,e=n.orient;return t.encoding.x||t.encoding.y||t.encoding.latitude||t.encoding.longitude?{...Xe(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...vh("x",t,{defaultPos:e==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:e!=="vertical"}),...vh("y",t,{defaultPos:e==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:e!=="horizontal"}),...Mn("size",t,{vgChannel:"strokeWidth"})}:{}}};function JP(t,n,e){if(qt("align",t,e)===void 0)return"center"}function KP(t,n,e){if(qt("baseline",t,e)===void 0)return"middle"}const QP={vgMark:"rect",encodeEntry:t=>{const{config:n,markDef:e}=t,r=e.orient,i=r==="horizontal"?"x":"y",a=r==="horizontal"?"y":"x",o=r==="horizontal"?"height":"width";return{...Xe(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ei(t,i),...se(a,t,{defaultPos:"mid",vgChannel:a==="y"?"yc":"xc"}),[o]:Gt(qt("thickness",e,n))}}},Oh={arc:{vgMark:"arc",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...se("x",t,{defaultPos:"mid"}),...se("y",t,{defaultPos:"mid"}),...Ei(t,"radius"),...Ei(t,"theta")})},area:{vgMark:"area",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...vh("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"}),...vh("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"}),...Kv(t)})},bar:{vgMark:"rect",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ei(t,"x"),...Ei(t,"y")})},circle:{vgMark:"symbol",encodeEntry:t=>Nb(t,"circle")},geoshape:{vgMark:"shape",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:t=>{const{encoding:n}=t,e=n.shape;return[{type:"geoshape",projection:t.projectionName(),...e&&H(e)&&e.type===vs?{field:Y(e,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...Ei(t,"x"),...Ei(t,"y"),...Xv(t,"url")})},line:{vgMark:"line",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...se("x",t,{defaultPos:"mid"}),...se("y",t,{defaultPos:"mid"}),...Mn("size",t,{vgChannel:"strokeWidth"}),...Kv(t)})},point:{vgMark:"symbol",encodeEntry:t=>Nb(t)},rect:{vgMark:"rect",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ei(t,"x"),...Ei(t,"y")})},rule:XP,square:{vgMark:"symbol",encodeEntry:t=>Nb(t,"square")},text:{vgMark:"text",encodeEntry:t=>{const{config:n,encoding:e}=t;return{...Xe(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...se("x",t,{defaultPos:"mid"}),...se("y",t,{defaultPos:"mid"}),...Xv(t),...Mn("size",t,{vgChannel:"fontSize"}),...Mn("angle",t),...h5("align",JP(t.markDef,e,n)),...h5("baseline",KP(t.markDef,e,n)),...se("radius",t,{defaultPos:null}),...se("theta",t,{defaultPos:null})}}},tick:QP,trail:{vgMark:"trail",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...se("x",t,{defaultPos:"mid"}),...se("y",t,{defaultPos:"mid"}),...Mn("size",t),...Kv(t)})}};function ZP(t){if(vt([Vd,Hd,eR],t.mark)){const n=Z3(t.mark,t.encoding);if(n.length>0)return function(e,r){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:HS+e.requestDataName(Qt.Main),data:e.requestDataName(Qt.Main),groupby:r}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:Rb(e,{fromPrefix:HS})}]}(t,n)}else if(t.mark===Gd){const n=Ny.some(e=>qt(e,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&n)return function(e){var c;const[r]=Rb(e,{fromPrefix:GS}),i=e.scaleName(e.stack.fieldChannel),a=(f={})=>e.vgField(e.stack.fieldChannel,f),o=(f,d)=>`${f}(${[a({prefix:"min",suffix:"start",expr:d}),a({prefix:"max",suffix:"start",expr:d}),a({prefix:"min",suffix:"end",expr:d}),a({prefix:"max",suffix:"end",expr:d})].map(h=>`scale('${i}',${h})`).join(",")})`;let s,u;e.stack.fieldChannel==="x"?(s={...cs(r.encode.update,["y","yc","y2","height",...Ny]),x:{signal:o("min","datum")},x2:{signal:o("max","datum")},clip:{value:!0}},u={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},r.encode.update={...he(r.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(s={...cs(r.encode.update,["x","xc","x2","width"]),y:{signal:o("min","datum")},y2:{signal:o("max","datum")},clip:{value:!0}},u={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},r.encode.update={...he(r.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const f of Ny){const d=Wr(f,e.markDef,e.config);r.encode.update[f]?(s[f]=r.encode.update[f],delete r.encode.update[f]):d&&(s[f]=Gt(d)),d&&(r.encode.update[f]={value:0})}const l=[];if(((c=e.stack.groupbyChannels)==null?void 0:c.length)>0)for(const f of e.stack.groupbyChannels){const d=e.fieldDef(f),h=Y(d);h&&l.push(h),(d!=null&&d.bin||d!=null&&d.timeUnit)&&l.push(Y(d,{binSuffix:"end"}))}return s=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((f,d)=>{if(r.encode.update[d])return{...f,[d]:r.encode.update[d]};{const h=Wr(d,e.markDef,e.config);return h!==void 0?{...f,[d]:Gt(h)}:f}},s),s.stroke&&(s.strokeForeground={value:!0},s.strokeOffset={value:0}),[{type:"group",from:{facet:{data:e.requestDataName(Qt.Main),name:GS+e.requestDataName(Qt.Main),groupby:l,aggregate:{fields:[a({suffix:"start"}),a({suffix:"start"}),a({suffix:"end"}),a({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:s},marks:[{type:"group",encode:{update:u},marks:[r]}]}]}(t)}return Rb(t)}const HS="faceted_path_",GS="stack_group_";function Rb(t,n={fromPrefix:""}){const{mark:e,markDef:r,encoding:i,config:a}=t,o=un(r.clip,function(h){const p=h.getScaleComponent("x"),m=h.getScaleComponent("y");return!(!(p!=null&&p.get("selectionExtent"))&&!(m!=null&&m.get("selectionExtent")))||void 0}(t),function(h){const p=h.component.projection;return!(!p||p.isFit)||void 0}(t)),s=CE(r),u=i.key,l=function(h){const{encoding:p,stack:m,mark:g,markDef:y,config:v}=h,x=p.order;if(!(!T(x)&&yr(x)&&by(x.value)||!x&&by(qt("order",y,v)))){if((T(x)||H(x))&&!m)return $E(x,{expr:"datum"});if(ya(g)){const b=y.orient==="horizontal"?"y":"x";if(H(p[b]))return{field:b}}}}(t),c=function(h){if(!h.component.selection)return null;const p=L(h.component.selection).length;let m=p,g=h.parent;for(;g&&m===0;)m=L(g.component.selection).length,g=g.parent;return m?{interactive:p>0||h.mark==="geoshape"||!!h.encoding.tooltip||!!h.markDef.tooltip}:null}(t),f=qt("aria",r,a),d=Oh[e].postEncodingTransform?Oh[e].postEncodingTransform(t):null;return[{name:t.getName("marks"),type:Oh[e].vgMark,...o?{clip:o}:{},...s?{style:s}:{},...u?{key:u.field}:{},...l?{sort:l}:{},...c||{},...f===!1?{aria:f}:{},from:{data:n.fromPrefix+t.requestDataName(Qt.Main)},encode:{update:Oh[e].encodeEntry(t)},...d?{transform:d}:{}}]}class VS extends jS{constructor(n,e,r,i={},a){super(n,"unit",e,r,a,void 0,y$(n)?n.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[],this.correctDataNames=l=>{var c,f,d;return(c=l.from)!=null&&c.data&&(l.from.data=this.lookupDataSource(l.from.data),"time"in this.encoding&&(l.from.data=l.from.data+J$)),(d=(f=l.from)==null?void 0:f.facet)!=null&&d.data&&(l.from.facet.data=this.lookupDataSource(l.from.facet.data)),l};const o=Vr(n.mark)?{...n.mark}:{type:n.mark},s=o.type;o.filled===void 0&&(o.filled=function(l,c,{graticule:f}){if(f)return!1;const d=Wr("filled",l,c),h=l.type;return un(d,h!==Yd&&h!==Vd&&h!==Xd)}(o,a,{graticule:n.data&&qv(n.data)}));const u=this.encoding=function(l,c,f,d){const h={};for(const p of L(l))hE(p)||I(BN(p));for(let p of dN){if(!l[p])continue;const m=l[p];if(hl(p)){const g=fN(p),y=h[g];if(H(y)&&WN(y.type)&&H(m)&&!y.timeUnit){I(MN(g));continue}}if(p!=="angle"||c!=="arc"||l.theta||(I("Arc marks uses theta channel rather than angle, replacing angle with theta."),p=Ge),pR(l,p,c)){if(p===bi&&c==="line"){const g=vr(l[p]);if(g!=null&&g.aggregate){I("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}}if(p===pe&&(f?"fill"in l:"stroke"in l))I(UE("encoding",{fill:"fill"in l,stroke:"stroke"in l}));else if(p===dl||p===ms&&!T(m)&&!yr(m)||p===no&&T(m)){if(m){if(p===ms){const g=l[p];if(N3(g)){h[p]=g;continue}}h[p]=J(m).reduce((g,y)=>(H(y)?g.push(bv(y,p)):I(Ly(y,p)),g),[])}}else{if(p===no&&m===null)h[p]=null;else if(!(H(m)||Yr(m)||yr(m)||xl(m)||et(m))){I(Ly(m,p));continue}h[p]=U3(m,p,d)}}else I(Ld(p,c))}return h}(n.encoding||{},s,o.filled,a);this.markDef=D$(o,u,a),this.size=function({encoding:l,size:c}){for(const f of wi){const d=ge(f);Xr(c[d])&&ba(l[f])&&(delete c[d],I(WE(d)))}return c}({encoding:u,size:y$(n)?{...i,...n.width?{width:n.width}:{},...n.height?{height:n.height}:{}}:i}),this.stack=k$(this.markDef,u),this.specifiedScales=this.initScales(s,u),this.specifiedAxes=this.initAxes(u),this.specifiedLegends=this.initLegends(u),this.specifiedProjection=n.projection,this.selection=(n.params??[]).filter(l=>$v(l))}get hasProjection(){const{encoding:n}=this,e=this.mark===v3,r=n&&aN.some(i=>ht(n[i]));return e||r}scaleDomain(n){const e=this.specifiedScales[n];return e?e.domain:void 0}axis(n){return this.specifiedAxes[n]}legend(n){return this.specifiedLegends[n]}initScales(n,e){return zy.reduce((r,i)=>{const a=mn(e[i]);return a&&(r[i]=this.initScale(a.scale??{})),r},{})}initScale(n){const{domain:e,range:r}=n,i=Sn(n);return T(e)&&(i.domain=e.map(Ee)),T(r)&&(i.range=r.map(Ee)),i}initAxes(n){return wi.reduce((e,r)=>{const i=n[r];if(ht(i)||r===Jt&&ht(n.x2)||r===bn&&ht(n.y2)){const a=ht(i)?i.axis:void 0;e[r]=a&&this.initAxis({...a})}return e},{})}initAxis(n){const e=L(n),r={};for(const i of e){const a=n[i];r[i]=_l(a)?kE(a):Ee(a)}return r}initLegends(n){return vE.reduce((e,r)=>{const i=mn(n[r]);if(i&&function(a){switch(a){case pe:case Lr:case qr:case bi:case me:case xi:case da:case ha:return!0;case ca:case fa:case to:case la:return!1}}(r)){const a=i.legend;e[r]=a&&Sn(a)}return e},{})}parseData(){this.component.data=Bh(this)}parseLayoutSize(){(function(n){const{size:e,component:r}=n;for(const i of wi){const a=ge(i);if(e[a]){const o=e[a];r.layoutSize.set(a,Xr(o)?"step":o,!0)}else{const o=jP(n,a);r.layoutSize.set(a,o,!1)}}})(this)}parseSelections(){this.component.selection=function(n,e){const r={},i=n.config.selection;if(!e||!e.length)return r;let a=0;for(const o of e){const s=Xt(o.name),u=o.select,l=Q(u)?u:u.type,c=Z(u)?ft(u):{type:l},f=i[l];for(const p in f)p!=="fields"&&p!=="encodings"&&(p==="mark"&&(c.mark={...f.mark,...c.mark}),c[p]!==void 0&&c[p]!==!0||(c[p]=ft(f[p]??c[p])));const d=r[s]={...c,name:s,type:l,init:o.value,bind:o.bind,events:Q(c.on)?aa(c.on,"scope"):J(ft(c.on))};if(Kr(d)&&(a++,a>1)){delete r[s];continue}const h=ft(o);for(const p of wh)p.defined(d)&&p.parse&&p.parse(n,d,h)}return a>1&&I("Multiple timer selections in one unit spec are not supported. Ignoring all but the first."),r}(this,this.selection)}parseMarkGroup(){this.component.mark=ZP(this)}parseAxesAndHeaders(){var n;this.component.axes=(n=this,wi.reduce((e,r)=>(n.component.scales[r]&&(e[r]=[VP(r,n)]),e),{}))}assembleSelectionTopLevelSignals(n){return function(e,r){let i=!1;for(const a of En(e.component.selection??{})){const o=a.name,s=G(o+go);if(r.filter(u=>u.name===o).length===0){const u=a.resolve==="global"?"union":a.resolve,l=a.type==="point"?", true, true)":")";r.push({name:a.name,update:`${k5}(${s}, ${G(u)}${l}`})}i=!0;for(const u of wh)u.defined(a)&&u.topLevelSignals&&(r=u.topLevelSignals(e,a,r))}return i&&r.filter(a=>a.name==="unit").length===0&&r.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),Gv(r)}(this,n)}assembleSignals(){return[...I5(this),...fT(this,[])]}assembleSelectionData(n){return function(e,r){const i=[],a=[],o=yo(e,{escape:!1});for(const s of En(e.component.selection??{})){const u={name:s.name+go};if(s.project.hasSelectionId&&(u.transform=[{type:"collect",sort:{field:br}}]),s.init){const l=s.project.items.map(Z$);u.values=s.project.hasSelectionId?s.init.map(c=>({unit:o,[br]:mo(c,!1)[0]})):s.init.map(c=>({unit:o,fields:l,values:mo(c,!1)}))}if([...i,...r].filter(l=>l.name===s.name+go).length||i.push(u),Kr(s)&&r.length){const l=e.lookupDataSource(e.getDataName(Qt.Main)),c=r.find(d=>d.name===l),f=c.transform.find(d=>d.type==="filter"&&d.expr.includes("vlSelectionTest"));if(f){c.transform=c.transform.filter(h=>h!==f);const d={name:c.name+J$,source:c.name,transform:[f]};a.push(d)}}}return i.concat(r,a)}(this,n)}assembleLayout(){return null}assembleLayoutSignals(){return mb(this)}assembleMarks(){let n=this.component.mark??[];return this.parent&&zs(this.parent)||(n=t5(this,n)),n.map(this.correctDataNames)}assembleGroupStyle(){const{style:n}=this.view||{};return n!==void 0?n:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(n){return po(this.encoding,n)}fieldDef(n){return vr(this.encoding[n])}typedFieldDef(n){const e=this.fieldDef(n);return oe(e)?e:null}}class Lb extends Bb{constructor(n,e,r,i,a){super(n,"layer",e,r,a,n.resolve,n.view);const o={...i,...n.width?{width:n.width}:{},...n.height?{height:n.height}:{}};this.children=n.layer.map((s,u)=>{if(dh(s))return new Lb(s,this,this.getName(`layer_${u}`),o,a);if(Di(s))return new VS(s,this,this.getName(`layer_${u}`),o,a);throw new Error(Ty(s))})}parseData(){this.component.data=Bh(this);for(const n of this.children)n.parseData()}parseLayoutSize(){var n;zb(n=this),Mh(n,"width"),Mh(n,"height")}parseSelections(){this.component.selection={};for(const n of this.children){n.parseSelections();for(const e of L(n.component.selection))this.component.selection[e]=n.component.selection[e]}Object.values(this.component.selection).some(n=>Kr(n))&&Uy(jy)}parseMarkGroup(){for(const n of this.children)n.parseMarkGroup()}parseAxesAndHeaders(){(function(n){const{axes:e,resolve:r}=n.component,i={top:0,bottom:0,right:0,left:0};for(const a of n.children){a.parseAxesAndHeaders();for(const o of L(a.component.axes))r.axis[o]=gb(n.component.resolve,o),r.axis[o]==="shared"&&(e[o]=IP(e[o],a.component.axes[o]),e[o]||(r.axis[o]="independent",delete e[o]))}for(const a of wi){for(const o of n.children)if(o.component.axes[a]){if(r.axis[a]==="independent"){e[a]=(e[a]??[]).concat(o.component.axes[a]);for(const s of o.component.axes[a]){const{value:u,explicit:l}=s.getWithExplicit("orient");if(!et(u)){if(i[u]>0&&!l){const c=UP[u];i[u]>i[c]&&s.set("orient",c,!1)}i[u]++}}}delete o.component.axes[a]}if(r.axis[a]==="independent"&&e[a]&&e[a].length>1)for(const[o,s]of(e[a]||[]).entries())o>0&&s.get("grid")&&!s.explicit.grid&&(s.implicit.grid=!1)}})(this)}assembleSelectionTopLevelSignals(n){return this.children.reduce((e,r)=>r.assembleSelectionTopLevelSignals(e),n)}assembleSignals(){return this.children.reduce((n,e)=>n.concat(e.assembleSignals()),I5(this))}assembleLayoutSignals(){return this.children.reduce((n,e)=>n.concat(e.assembleLayoutSignals()),mb(this))}assembleSelectionData(n){return this.children.reduce((e,r)=>r.assembleSelectionData(e),n)}assembleGroupStyle(){const n=new Set;for(const r of this.children)for(const i of J(r.assembleGroupStyle()))n.add(i);const e=Array.from(n);return e.length>1?e:e.length===1?e[0]:void 0}assembleTitle(){let n=super.assembleTitle();if(n)return n;for(const e of this.children)if(n=e.assembleTitle(),n)return n}assembleLayout(){return null}assembleMarks(){return function(n,e){for(const r of n.children)Zt(r)&&(e=t5(r,e));return e}(this,this.children.flatMap(n=>n.assembleMarks()))}assembleLegends(){return this.children.reduce((n,e)=>n.concat(e.assembleLegends()),dS(this))}}function Tb(t,n,e,r,i){if(Qd(t))return new Tl(t,n,e,i);if(dh(t))return new Lb(t,n,e,r,i);if(Di(t))return new VS(t,n,e,r,i);if(function(a){return ch(a)||Mv(a)||Sv(a)}(t))return new LP(t,n,e,i);throw new Error(Ty(t))}function tj(t,n={}){var e;n.logger&&(e=n.logger,ml=e),n.fieldTitle&&q3(n.fieldTitle);try{const r=A$(Hl(n.config,t.config)),i=P$(t,r),a=Tb(i,null,"",void 0,r);return a.parse(),function(s,u){Db(s.sources);let l=0,c=0;for(let f=0;f<5&&wS(s,u,!0);f++)l++;s.sources.map(_b);for(let f=0;f<5&&wS(s,u,!1);f++)c++;Db(s.sources),Math.max(l,c)===5&&I("Maximum optimization runs(5) reached.")}(a.component.data,a),{spec:function(s,u,l={},c){const f=s.config?$R(s.config):void 0,d=function(w,A){const _=[],k=LS(_);let D=0;for(const F of w.sources){F.hasName()||(F.dataName="source_"+D++);const E=F.assemble();k(F,E)}for(const F of _)F.transform.length===0&&delete F.transform;let C=0;for(const[F,E]of _.entries())(E.transform??[]).length!==0||E.source||_.splice(C++,0,_.splice(F,1)[0]);for(const F of _)for(const E of F.transform??[])E.type==="lookup"&&(E.from=w.outputNodes[E.from].getSource());for(const F of _)F.name in A&&(F.values=A[F.name]);return _}(s.component.data,l),h=s.assembleSelectionData(d),p=s.assembleProjections(),m=s.assembleTitle(),g=s.assembleGroupStyle(),y=s.assembleGroupEncodeEntry(!0);let v=s.assembleLayoutSignals();v=v.filter(w=>w.name!=="width"&&w.name!=="height"||w.value===void 0||(u[w.name]=+w.value,!1));const{params:x,...b}=u;return{$schema:"https://vega.github.io/schema/vega/v5.json",...s.description?{description:s.description}:{},...b,...m?{title:m}:{},...g?{style:g}:{},...y?{encode:{update:y}}:{},data:h,...p.length>0?{projections:p}:{},...s.assembleGroup([...v,...s.assembleSelectionTopLevelSignals([]),...m$(x)]),...f?{config:f}:{},...c?{usermeta:c}:{}}}(a,function(s,u,l,c){const f=c.component.layoutSize.get("width"),d=c.component.layoutSize.get("height");if(u===void 0?(u={type:"pad"},c.hasAxisOrientSignalRef()&&(u.resize=!0)):Q(u)&&(u={type:u}),f&&d&&(h=u.type,["fit","fit-x","fit-y"].includes(h))){if(f==="step"&&d==="step")I(NE()),u.type="pad";else if(f==="step"||d==="step"){const p=f==="step"?"width":"height";I(NE(Rd(p)));const m=p==="width"?"height":"width";u.type=function(g){return g?`fit-${Rd(g)}`:"fit"}(m)}}var h;return{...L(u).length===1&&u.type?u.type==="pad"?{}:{autosize:u.type}:{autosize:u},...L$(l,!1),...L$(s,!0)}}(t,i.autosize,r,a),t.datasets,t.usermeta),normalized:i}}finally{n.logger&&(ml=YE),n.fieldTitle&&q3(j3)}}export{ZC as A,P$ as B,cl as C,he as D,cs as E,Ay as F,ds as G,Za as H,He as I,iN as J,nE as K,fs as L,jn as M,Lt as N,ll as O,Pr as P,iE as Q,En as R,Xt as S,tN as T,Td as U,vE as V,hs as a,ky as b,tj as c,Ot as d,vt as e,Ce as f,$d as g,ft as h,sa as i,xy as j,_y as k,eE as l,un as m,wy as n,U as o,wt as p,aE as q,sl as r,jt as s,eN as t,oE as u,by as v,Sd as w,L as x,ul as y,tE as z};