causantic 0.3.4 → 0.3.6

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 (66) hide show
  1. package/dist/cli/commands/hook.d.ts +16 -0
  2. package/dist/cli/commands/hook.d.ts.map +1 -1
  3. package/dist/cli/commands/hook.js +74 -7
  4. package/dist/cli/commands/hook.js.map +1 -1
  5. package/dist/cli/commands/init.d.ts.map +1 -1
  6. package/dist/cli/commands/init.js +1 -1
  7. package/dist/cli/commands/init.js.map +1 -1
  8. package/dist/dashboard/client/assets/{index-Ofx8zngH.js → index-DtSi-1L8.js} +3 -3
  9. package/dist/dashboard/client/index.html +1 -1
  10. package/dist/dashboard/routes/chain.d.ts.map +1 -1
  11. package/dist/dashboard/routes/chain.js.map +1 -1
  12. package/dist/eval/collection-benchmark/chain-quality.d.ts.map +1 -1
  13. package/dist/eval/collection-benchmark/chain-quality.js +1 -3
  14. package/dist/eval/collection-benchmark/chain-quality.js.map +1 -1
  15. package/dist/eval/collection-benchmark/tuning.d.ts.map +1 -1
  16. package/dist/eval/collection-benchmark/tuning.js.map +1 -1
  17. package/dist/hooks/hook-status.d.ts +1 -0
  18. package/dist/hooks/hook-status.d.ts.map +1 -1
  19. package/dist/hooks/hook-status.js +4 -2
  20. package/dist/hooks/hook-status.js.map +1 -1
  21. package/dist/hooks/hook-utils.d.ts +2 -0
  22. package/dist/hooks/hook-utils.d.ts.map +1 -1
  23. package/dist/hooks/hook-utils.js +2 -0
  24. package/dist/hooks/hook-utils.js.map +1 -1
  25. package/dist/hooks/index.d.ts +1 -1
  26. package/dist/hooks/index.d.ts.map +1 -1
  27. package/dist/hooks/index.js +1 -1
  28. package/dist/hooks/index.js.map +1 -1
  29. package/dist/hooks/pre-compact.d.ts +4 -1
  30. package/dist/hooks/pre-compact.d.ts.map +1 -1
  31. package/dist/hooks/pre-compact.js +2 -1
  32. package/dist/hooks/pre-compact.js.map +1 -1
  33. package/dist/hooks/session-end.d.ts +4 -1
  34. package/dist/hooks/session-end.d.ts.map +1 -1
  35. package/dist/hooks/session-end.js +2 -1
  36. package/dist/hooks/session-end.js.map +1 -1
  37. package/dist/ingest/ingest-session.d.ts.map +1 -1
  38. package/dist/ingest/ingest-session.js +1 -1
  39. package/dist/ingest/ingest-session.js.map +1 -1
  40. package/dist/ingest/rebuild-edges.d.ts.map +1 -1
  41. package/dist/ingest/rebuild-edges.js.map +1 -1
  42. package/dist/maintenance/scheduler.d.ts +2 -26
  43. package/dist/maintenance/scheduler.d.ts.map +1 -1
  44. package/dist/maintenance/scheduler.js.map +1 -1
  45. package/dist/maintenance/tasks/cleanup-vectors.d.ts +1 -1
  46. package/dist/maintenance/tasks/cleanup-vectors.d.ts.map +1 -1
  47. package/dist/maintenance/tasks/scan-projects.d.ts +1 -1
  48. package/dist/maintenance/tasks/scan-projects.d.ts.map +1 -1
  49. package/dist/maintenance/tasks/update-clusters.d.ts +1 -1
  50. package/dist/maintenance/tasks/update-clusters.d.ts.map +1 -1
  51. package/dist/maintenance/tasks/vacuum.d.ts +1 -1
  52. package/dist/maintenance/tasks/vacuum.d.ts.map +1 -1
  53. package/dist/maintenance/types.d.ts +33 -0
  54. package/dist/maintenance/types.d.ts.map +1 -0
  55. package/dist/maintenance/types.js +8 -0
  56. package/dist/maintenance/types.js.map +1 -0
  57. package/dist/mcp/server.d.ts.map +1 -1
  58. package/dist/mcp/server.js +2 -4
  59. package/dist/mcp/server.js.map +1 -1
  60. package/dist/retrieval/chain-walker.d.ts.map +1 -1
  61. package/dist/retrieval/chain-walker.js.map +1 -1
  62. package/dist/retrieval/index.d.ts +1 -1
  63. package/dist/retrieval/index.d.ts.map +1 -1
  64. package/dist/retrieval/index.js +1 -1
  65. package/dist/retrieval/index.js.map +1 -1
  66. package/package.json +1 -1
@@ -157,10 +157,10 @@ Please change the parent <Route path="${L}"> to <Route path="${L==="/"?"*":`${L}
157
157
  *
158
158
  * This source code is licensed under the ISC license.
159
159
  * See the LICENSE file in the root directory of this source tree.
160
- */const f2=he("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function d2(){const[n,a]=R.useState(()=>typeof window>"u"?"dark":localStorage.getItem("causantic-theme")??"dark");R.useEffect(()=>{const r=document.documentElement;n==="light"?r.classList.add("light"):r.classList.remove("light"),localStorage.setItem("causantic-theme",n)},[n]);const i=R.useCallback(()=>{a(r=>r==="dark"?"light":"dark")},[]);return{theme:n,toggle:i}}function h2(){const{theme:n,toggle:a}=d2();return _.jsx("button",{onClick:a,className:"rounded-md p-2 hover:bg-muted transition-colors","aria-label":"Toggle theme",children:n==="dark"?_.jsx(s2,{className:"h-5 w-5"}):_.jsx(o2,{className:"h-5 w-5"})})}function Up(n){var a,i,r="";if(typeof n=="string"||typeof n=="number")r+=n;else if(typeof n=="object")if(Array.isArray(n)){var o=n.length;for(a=0;a<o;a++)n[a]&&(i=Up(n[a]))&&(r&&(r+=" "),r+=i)}else for(i in n)n[i]&&(r&&(r+=" "),r+=i);return r}function jp(){for(var n,a,i=0,r="",o=arguments.length;i<o;i++)(n=arguments[i])&&(a=Up(n))&&(r&&(r+=" "),r+=a);return r}const Mf="-",m2=n=>{const a=p2(n),{conflictingClassGroups:i,conflictingClassGroupModifiers:r}=n;return{getClassGroupId:d=>{const g=d.split(Mf);return g[0]===""&&g.length!==1&&g.shift(),Hp(g,a)||g2(d)},getConflictingClassGroupIds:(d,g)=>{const m=i[d]||[];return g&&r[d]?[...m,...r[d]]:m}}},Hp=(n,a)=>{var d;if(n.length===0)return a.classGroupId;const i=n[0],r=a.nextPart.get(i),o=r?Hp(n.slice(1),r):void 0;if(o)return o;if(a.validators.length===0)return;const f=n.join(Mf);return(d=a.validators.find(({validator:g})=>g(f)))==null?void 0:d.classGroupId},rg=/^\[(.+)\]$/,g2=n=>{if(rg.test(n)){const a=rg.exec(n)[1],i=a==null?void 0:a.substring(0,a.indexOf(":"));if(i)return"arbitrary.."+i}},p2=n=>{const{theme:a,prefix:i}=n,r={nextPart:new Map,validators:[]};return v2(Object.entries(n.classGroups),i).forEach(([f,d])=>{tf(d,r,f,a)}),r},tf=(n,a,i,r)=>{n.forEach(o=>{if(typeof o=="string"){const f=o===""?a:cg(a,o);f.classGroupId=i;return}if(typeof o=="function"){if(y2(o)){tf(o(r),a,i,r);return}a.validators.push({validator:o,classGroupId:i});return}Object.entries(o).forEach(([f,d])=>{tf(d,cg(a,f),i,r)})})},cg=(n,a)=>{let i=n;return a.split(Mf).forEach(r=>{i.nextPart.has(r)||i.nextPart.set(r,{nextPart:new Map,validators:[]}),i=i.nextPart.get(r)}),i},y2=n=>n.isThemeGetter,v2=(n,a)=>a?n.map(([i,r])=>{const o=r.map(f=>typeof f=="string"?a+f:typeof f=="object"?Object.fromEntries(Object.entries(f).map(([d,g])=>[a+d,g])):f);return[i,o]}):n,x2=n=>{if(n<1)return{get:()=>{},set:()=>{}};let a=0,i=new Map,r=new Map;const o=(f,d)=>{i.set(f,d),a++,a>n&&(a=0,r=i,i=new Map)};return{get(f){let d=i.get(f);if(d!==void 0)return d;if((d=r.get(f))!==void 0)return o(f,d),d},set(f,d){i.has(f)?i.set(f,d):o(f,d)}}},Lp="!",b2=n=>{const{separator:a,experimentalParseClassName:i}=n,r=a.length===1,o=a[0],f=a.length,d=g=>{const m=[];let h=0,v=0,y;for(let C=0;C<g.length;C++){let A=g[C];if(h===0){if(A===o&&(r||g.slice(C,C+f)===a)){m.push(g.slice(v,C)),v=C+f;continue}if(A==="/"){y=C;continue}}A==="["?h++:A==="]"&&h--}const x=m.length===0?g:g.substring(v),w=x.startsWith(Lp),k=w?x.substring(1):x,N=y&&y>v?y-v:void 0;return{modifiers:m,hasImportantModifier:w,baseClassName:k,maybePostfixModifierPosition:N}};return i?g=>i({className:g,parseClassName:d}):d},S2=n=>{if(n.length<=1)return n;const a=[];let i=[];return n.forEach(r=>{r[0]==="["?(a.push(...i.sort(),r),i=[]):i.push(r)}),a.push(...i.sort()),a},_2=n=>({cache:x2(n.cacheSize),parseClassName:b2(n),...m2(n)}),w2=/\s+/,T2=(n,a)=>{const{parseClassName:i,getClassGroupId:r,getConflictingClassGroupIds:o}=a,f=[],d=n.trim().split(w2);let g="";for(let m=d.length-1;m>=0;m-=1){const h=d[m],{modifiers:v,hasImportantModifier:y,baseClassName:x,maybePostfixModifierPosition:w}=i(h);let k=!!w,N=r(k?x.substring(0,w):x);if(!N){if(!k){g=h+(g.length>0?" "+g:g);continue}if(N=r(x),!N){g=h+(g.length>0?" "+g:g);continue}k=!1}const C=S2(v).join(":"),A=y?C+Lp:C,q=A+N;if(f.includes(q))continue;f.push(q);const L=o(N,k);for(let J=0;J<L.length;++J){const nt=L[J];f.push(A+nt)}g=h+(g.length>0?" "+g:g)}return g};function M2(){let n=0,a,i,r="";for(;n<arguments.length;)(a=arguments[n++])&&(i=kp(a))&&(r&&(r+=" "),r+=i);return r}const kp=n=>{if(typeof n=="string")return n;let a,i="";for(let r=0;r<n.length;r++)n[r]&&(a=kp(n[r]))&&(i&&(i+=" "),i+=a);return i};function E2(n,...a){let i,r,o,f=d;function d(m){const h=a.reduce((v,y)=>y(v),n());return i=_2(h),r=i.cache.get,o=i.cache.set,f=g,g(m)}function g(m){const h=r(m);if(h)return h;const v=T2(m,i);return o(m,v),v}return function(){return f(M2.apply(null,arguments))}}const Gt=n=>{const a=i=>i[n]||[];return a.isThemeGetter=!0,a},Yp=/^\[(?:([a-z-]+):)?(.+)\]$/i,A2=/^\d+\/\d+$/,C2=new Set(["px","full","screen"]),z2=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,N2=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,D2=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,R2=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,O2=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Nn=n=>Ra(n)||C2.has(n)||A2.test(n),hl=n=>Ga(n,"length",q2),Ra=n=>!!n&&!Number.isNaN(Number(n)),Hs=n=>Ga(n,"number",Ra),Yu=n=>!!n&&Number.isInteger(Number(n)),U2=n=>n.endsWith("%")&&Ra(n.slice(0,-1)),bt=n=>Yp.test(n),ml=n=>z2.test(n),j2=new Set(["length","size","percentage"]),H2=n=>Ga(n,j2,Bp),L2=n=>Ga(n,"position",Bp),k2=new Set(["image","url"]),Y2=n=>Ga(n,k2,X2),B2=n=>Ga(n,"",G2),Bu=()=>!0,Ga=(n,a,i)=>{const r=Yp.exec(n);return r?r[1]?typeof a=="string"?r[1]===a:a.has(r[1]):i(r[2]):!1},q2=n=>N2.test(n)&&!D2.test(n),Bp=()=>!1,G2=n=>R2.test(n),X2=n=>O2.test(n),V2=()=>{const n=Gt("colors"),a=Gt("spacing"),i=Gt("blur"),r=Gt("brightness"),o=Gt("borderColor"),f=Gt("borderRadius"),d=Gt("borderSpacing"),g=Gt("borderWidth"),m=Gt("contrast"),h=Gt("grayscale"),v=Gt("hueRotate"),y=Gt("invert"),x=Gt("gap"),w=Gt("gradientColorStops"),k=Gt("gradientColorStopPositions"),N=Gt("inset"),C=Gt("margin"),A=Gt("opacity"),q=Gt("padding"),L=Gt("saturate"),J=Gt("scale"),nt=Gt("sepia"),V=Gt("skew"),K=Gt("space"),st=Gt("translate"),dt=()=>["auto","contain","none"],vt=()=>["auto","hidden","clip","visible","scroll"],_t=()=>["auto",bt,a],X=()=>[bt,a],ht=()=>["",Nn,hl],D=()=>["auto",Ra,bt],P=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],M=()=>["solid","dashed","dotted","double","none"],Y=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],F=()=>["start","end","center","between","around","evenly","stretch"],at=()=>["","0",bt],lt=()=>["auto","avoid","all","avoid-page","page","left","right","column"],S=()=>[Ra,bt];return{cacheSize:500,separator:":",theme:{colors:[Bu],spacing:[Nn,hl],blur:["none","",ml,bt],brightness:S(),borderColor:[n],borderRadius:["none","","full",ml,bt],borderSpacing:X(),borderWidth:ht(),contrast:S(),grayscale:at(),hueRotate:S(),invert:at(),gap:X(),gradientColorStops:[n],gradientColorStopPositions:[U2,hl],inset:_t(),margin:_t(),opacity:S(),padding:X(),saturate:S(),scale:S(),sepia:at(),skew:S(),space:X(),translate:X()},classGroups:{aspect:[{aspect:["auto","square","video",bt]}],container:["container"],columns:[{columns:[ml]}],"break-after":[{"break-after":lt()}],"break-before":[{"break-before":lt()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...P(),bt]}],overflow:[{overflow:vt()}],"overflow-x":[{"overflow-x":vt()}],"overflow-y":[{"overflow-y":vt()}],overscroll:[{overscroll:dt()}],"overscroll-x":[{"overscroll-x":dt()}],"overscroll-y":[{"overscroll-y":dt()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[N]}],"inset-x":[{"inset-x":[N]}],"inset-y":[{"inset-y":[N]}],start:[{start:[N]}],end:[{end:[N]}],top:[{top:[N]}],right:[{right:[N]}],bottom:[{bottom:[N]}],left:[{left:[N]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Yu,bt]}],basis:[{basis:_t()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",bt]}],grow:[{grow:at()}],shrink:[{shrink:at()}],order:[{order:["first","last","none",Yu,bt]}],"grid-cols":[{"grid-cols":[Bu]}],"col-start-end":[{col:["auto",{span:["full",Yu,bt]},bt]}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":[Bu]}],"row-start-end":[{row:["auto",{span:[Yu,bt]},bt]}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",bt]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",bt]}],gap:[{gap:[x]}],"gap-x":[{"gap-x":[x]}],"gap-y":[{"gap-y":[x]}],"justify-content":[{justify:["normal",...F()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...F(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...F(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[q]}],px:[{px:[q]}],py:[{py:[q]}],ps:[{ps:[q]}],pe:[{pe:[q]}],pt:[{pt:[q]}],pr:[{pr:[q]}],pb:[{pb:[q]}],pl:[{pl:[q]}],m:[{m:[C]}],mx:[{mx:[C]}],my:[{my:[C]}],ms:[{ms:[C]}],me:[{me:[C]}],mt:[{mt:[C]}],mr:[{mr:[C]}],mb:[{mb:[C]}],ml:[{ml:[C]}],"space-x":[{"space-x":[K]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[K]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",bt,a]}],"min-w":[{"min-w":[bt,a,"min","max","fit"]}],"max-w":[{"max-w":[bt,a,"none","full","min","max","fit","prose",{screen:[ml]},ml]}],h:[{h:[bt,a,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[bt,a,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[bt,a,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[bt,a,"auto","min","max","fit"]}],"font-size":[{text:["base",ml,hl]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Hs]}],"font-family":[{font:[Bu]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",bt]}],"line-clamp":[{"line-clamp":["none",Ra,Hs]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Nn,bt]}],"list-image":[{"list-image":["none",bt]}],"list-style-type":[{list:["none","disc","decimal",bt]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[n]}],"placeholder-opacity":[{"placeholder-opacity":[A]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[n]}],"text-opacity":[{"text-opacity":[A]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...M(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Nn,hl]}],"underline-offset":[{"underline-offset":["auto",Nn,bt]}],"text-decoration-color":[{decoration:[n]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:X()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",bt]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",bt]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[A]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...P(),L2]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",H2]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Y2]}],"bg-color":[{bg:[n]}],"gradient-from-pos":[{from:[k]}],"gradient-via-pos":[{via:[k]}],"gradient-to-pos":[{to:[k]}],"gradient-from":[{from:[w]}],"gradient-via":[{via:[w]}],"gradient-to":[{to:[w]}],rounded:[{rounded:[f]}],"rounded-s":[{"rounded-s":[f]}],"rounded-e":[{"rounded-e":[f]}],"rounded-t":[{"rounded-t":[f]}],"rounded-r":[{"rounded-r":[f]}],"rounded-b":[{"rounded-b":[f]}],"rounded-l":[{"rounded-l":[f]}],"rounded-ss":[{"rounded-ss":[f]}],"rounded-se":[{"rounded-se":[f]}],"rounded-ee":[{"rounded-ee":[f]}],"rounded-es":[{"rounded-es":[f]}],"rounded-tl":[{"rounded-tl":[f]}],"rounded-tr":[{"rounded-tr":[f]}],"rounded-br":[{"rounded-br":[f]}],"rounded-bl":[{"rounded-bl":[f]}],"border-w":[{border:[g]}],"border-w-x":[{"border-x":[g]}],"border-w-y":[{"border-y":[g]}],"border-w-s":[{"border-s":[g]}],"border-w-e":[{"border-e":[g]}],"border-w-t":[{"border-t":[g]}],"border-w-r":[{"border-r":[g]}],"border-w-b":[{"border-b":[g]}],"border-w-l":[{"border-l":[g]}],"border-opacity":[{"border-opacity":[A]}],"border-style":[{border:[...M(),"hidden"]}],"divide-x":[{"divide-x":[g]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[g]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[A]}],"divide-style":[{divide:M()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...M()]}],"outline-offset":[{"outline-offset":[Nn,bt]}],"outline-w":[{outline:[Nn,hl]}],"outline-color":[{outline:[n]}],"ring-w":[{ring:ht()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[n]}],"ring-opacity":[{"ring-opacity":[A]}],"ring-offset-w":[{"ring-offset":[Nn,hl]}],"ring-offset-color":[{"ring-offset":[n]}],shadow:[{shadow:["","inner","none",ml,B2]}],"shadow-color":[{shadow:[Bu]}],opacity:[{opacity:[A]}],"mix-blend":[{"mix-blend":[...Y(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":Y()}],filter:[{filter:["","none"]}],blur:[{blur:[i]}],brightness:[{brightness:[r]}],contrast:[{contrast:[m]}],"drop-shadow":[{"drop-shadow":["","none",ml,bt]}],grayscale:[{grayscale:[h]}],"hue-rotate":[{"hue-rotate":[v]}],invert:[{invert:[y]}],saturate:[{saturate:[L]}],sepia:[{sepia:[nt]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[i]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[m]}],"backdrop-grayscale":[{"backdrop-grayscale":[h]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[v]}],"backdrop-invert":[{"backdrop-invert":[y]}],"backdrop-opacity":[{"backdrop-opacity":[A]}],"backdrop-saturate":[{"backdrop-saturate":[L]}],"backdrop-sepia":[{"backdrop-sepia":[nt]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[d]}],"border-spacing-x":[{"border-spacing-x":[d]}],"border-spacing-y":[{"border-spacing-y":[d]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",bt]}],duration:[{duration:S()}],ease:[{ease:["linear","in","out","in-out",bt]}],delay:[{delay:S()}],animate:[{animate:["none","spin","ping","pulse","bounce",bt]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[J]}],"scale-x":[{"scale-x":[J]}],"scale-y":[{"scale-y":[J]}],rotate:[{rotate:[Yu,bt]}],"translate-x":[{"translate-x":[st]}],"translate-y":[{"translate-y":[st]}],"skew-x":[{"skew-x":[V]}],"skew-y":[{"skew-y":[V]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",bt]}],accent:[{accent:["auto",n]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",bt]}],"caret-color":[{caret:[n]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":X()}],"scroll-mx":[{"scroll-mx":X()}],"scroll-my":[{"scroll-my":X()}],"scroll-ms":[{"scroll-ms":X()}],"scroll-me":[{"scroll-me":X()}],"scroll-mt":[{"scroll-mt":X()}],"scroll-mr":[{"scroll-mr":X()}],"scroll-mb":[{"scroll-mb":X()}],"scroll-ml":[{"scroll-ml":X()}],"scroll-p":[{"scroll-p":X()}],"scroll-px":[{"scroll-px":X()}],"scroll-py":[{"scroll-py":X()}],"scroll-ps":[{"scroll-ps":X()}],"scroll-pe":[{"scroll-pe":X()}],"scroll-pt":[{"scroll-pt":X()}],"scroll-pr":[{"scroll-pr":X()}],"scroll-pb":[{"scroll-pb":X()}],"scroll-pl":[{"scroll-pl":X()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",bt]}],fill:[{fill:[n,"none"]}],"stroke-w":[{stroke:[Nn,hl,Hs]}],stroke:[{stroke:[n,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},Q2=E2(V2);function tn(...n){return Q2(jp(n))}const Z2=[{to:"/",icon:r2,label:"Overview"},{to:"/timeline",icon:Rp,label:"Timeline"},{to:"/clusters",icon:Dp,label:"Clusters"},{to:"/search",icon:Op,label:"Search"},{to:"/projects",icon:a2,label:"Projects"}];function $2(){const[n,a]=R.useState(!1);return _.jsxs("div",{className:"flex h-screen overflow-hidden",children:[n&&_.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),_.jsxs("aside",{className:tn("fixed inset-y-0 left-0 z-50 flex w-64 flex-col border-r border-border bg-card transition-transform lg:static lg:translate-x-0",n?"translate-x-0":"-translate-x-full"),children:[_.jsxs("div",{className:"flex h-16 items-center gap-2 border-b border-border px-6",children:[_.jsx(e2,{className:"h-6 w-6 text-accent"}),_.jsx("span",{className:"text-lg font-bold",children:"Causantic"}),_.jsx("span",{className:"text-sm text-muted-foreground",children:"Dashboard"})]}),_.jsx("nav",{className:"flex-1 space-y-1 p-4",children:Z2.map(i=>_.jsxs(Cp,{to:i.to,end:i.to==="/",onClick:()=>a(!1),className:({isActive:r})=>tn("flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition-colors",r?"bg-accent/10 text-accent":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[_.jsx(i.icon,{className:"h-4 w-4"}),i.label]},i.to))}),_.jsx("div",{className:"border-t border-border p-4 text-xs text-muted-foreground",children:"Causantic"})]}),_.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[_.jsxs("header",{className:"flex h-16 items-center justify-between border-b border-border px-6",children:[_.jsx("button",{className:"rounded-md p-2 hover:bg-muted lg:hidden",onClick:()=>a(!0),children:_.jsx(c2,{className:"h-5 w-5"})}),_.jsx("div",{className:"flex-1"}),_.jsx(h2,{})]}),_.jsx("main",{className:"flex-1 overflow-y-auto p-6",children:_.jsx(gb,{})})]})]})}const og=new Map,K2=3e4;function Pe(n){const[a,i]=R.useState(null),[r,o]=R.useState(!0),[f,d]=R.useState(null),g=R.useRef(null),m=R.useCallback(()=>{var y;if(!n){o(!1);return}const h=og.get(n);if(h&&Date.now()-h.ts<K2){i(h.data),o(!1);return}(y=g.current)==null||y.abort();const v=new AbortController;g.current=v,o(!0),d(null),fetch(n,{signal:v.signal}).then(x=>{if(!x.ok)throw new Error(`HTTP ${x.status}`);return x.json()}).then(x=>{og.set(n,{data:x,ts:Date.now()}),i(x),o(!1)}).catch(x=>{x.name!=="AbortError"&&(d(x.message),o(!1))})},[n]);return R.useEffect(()=>(m(),()=>{var h;return(h=g.current)==null?void 0:h.abort()}),[m]),{data:a,loading:r,error:f,refetch:m}}function ii({className:n}){return _.jsx("div",{className:tn("flex items-center justify-center p-8",n),children:_.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-muted border-t-accent"})})}function Wu({className:n,...a}){return _.jsx("div",{className:tn("rounded-lg border border-border bg-card text-card-foreground shadow-sm",n),...a})}function ef({className:n,...a}){return _.jsx("div",{className:tn("flex flex-col space-y-1.5 p-6",n),...a})}function nf({className:n,...a}){return _.jsx("h3",{className:tn("text-lg font-semibold leading-none tracking-tight",n),...a})}function J2({className:n,...a}){return _.jsx("p",{className:tn("text-sm text-muted-foreground",n),...a})}function Iu({className:n,...a}){return _.jsx("div",{className:tn("p-6 pt-0",n),...a})}function Cr({label:n,value:a,icon:i}){const[r,o]=R.useState(0);return R.useEffect(()=>{if(a===0)return;const f=600,d=30,g=a/d;let m=0;const h=setInterval(()=>{m+=g,m>=a?(o(a),clearInterval(h)):o(Math.floor(m))},f/d);return()=>clearInterval(h)},[a]),_.jsx(Wu,{children:_.jsxs(Iu,{className:"flex items-center gap-4 p-6",children:[_.jsx("div",{className:"rounded-lg bg-accent/10 p-3 text-accent",children:i}),_.jsxs("div",{children:[_.jsx("p",{className:"text-sm text-muted-foreground",children:n}),_.jsx("p",{className:"text-3xl font-bold tabular-nums",children:r.toLocaleString()})]})]})})}function Yr(n,a){return n==null||a==null?NaN:n<a?-1:n>a?1:n>=a?0:NaN}function F2(n,a){return n==null||a==null?NaN:a<n?-1:a>n?1:a>=n?0:NaN}function Ef(n){let a,i,r;n.length!==2?(a=Yr,i=(g,m)=>Yr(n(g),m),r=(g,m)=>n(g)-m):(a=n===Yr||n===F2?n:W2,i=n,r=n);function o(g,m,h=0,v=g.length){if(h<v){if(a(m,m)!==0)return v;do{const y=h+v>>>1;i(g[y],m)<0?h=y+1:v=y}while(h<v)}return h}function f(g,m,h=0,v=g.length){if(h<v){if(a(m,m)!==0)return v;do{const y=h+v>>>1;i(g[y],m)<=0?h=y+1:v=y}while(h<v)}return h}function d(g,m,h=0,v=g.length){const y=o(g,m,h,v-1);return y>h&&r(g[y-1],m)>-r(g[y],m)?y-1:y}return{left:o,center:d,right:f}}function W2(){return 0}function I2(n){return n===null?NaN:+n}const P2=Ef(Yr),tS=P2.right;Ef(I2).center;function eS(n,a){let i,r;if(a===void 0)for(const o of n)o!=null&&(i===void 0?o>=o&&(i=r=o):(i>o&&(i=o),r<o&&(r=o)));else{let o=-1;for(let f of n)(f=a(f,++o,n))!=null&&(i===void 0?f>=f&&(i=r=f):(i>f&&(i=f),r<f&&(r=f)))}return[i,r]}class sg extends Map{constructor(a,i=aS){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:i}}),a!=null)for(const[r,o]of a)this.set(r,o)}get(a){return super.get(fg(this,a))}has(a){return super.has(fg(this,a))}set(a,i){return super.set(nS(this,a),i)}delete(a){return super.delete(lS(this,a))}}function fg({_intern:n,_key:a},i){const r=a(i);return n.has(r)?n.get(r):i}function nS({_intern:n,_key:a},i){const r=a(i);return n.has(r)?n.get(r):(n.set(r,i),i)}function lS({_intern:n,_key:a},i){const r=a(i);return n.has(r)&&(i=n.get(r),n.delete(r)),i}function aS(n){return n!==null&&typeof n=="object"?n.valueOf():n}const uS=Math.sqrt(50),iS=Math.sqrt(10),rS=Math.sqrt(2);function Qr(n,a,i){const r=(a-n)/Math.max(0,i),o=Math.floor(Math.log10(r)),f=r/Math.pow(10,o),d=f>=uS?10:f>=iS?5:f>=rS?2:1;let g,m,h;return o<0?(h=Math.pow(10,-o)/d,g=Math.round(n*h),m=Math.round(a*h),g/h<n&&++g,m/h>a&&--m,h=-h):(h=Math.pow(10,o)*d,g=Math.round(n/h),m=Math.round(a/h),g*h<n&&++g,m*h>a&&--m),m<g&&.5<=i&&i<2?Qr(n,a,i*2):[g,m,h]}function cS(n,a,i){if(a=+a,n=+n,i=+i,!(i>0))return[];if(n===a)return[n];const r=a<n,[o,f,d]=r?Qr(a,n,i):Qr(n,a,i);if(!(f>=o))return[];const g=f-o+1,m=new Array(g);if(r)if(d<0)for(let h=0;h<g;++h)m[h]=(f-h)/-d;else for(let h=0;h<g;++h)m[h]=(f-h)*d;else if(d<0)for(let h=0;h<g;++h)m[h]=(o+h)/-d;else for(let h=0;h<g;++h)m[h]=(o+h)*d;return m}function lf(n,a,i){return a=+a,n=+n,i=+i,Qr(n,a,i)[2]}function af(n,a,i){a=+a,n=+n,i=+i;const r=a<n,o=r?lf(a,n,i):lf(n,a,i);return(r?-1:1)*(o<0?1/-o:o)}function oS(n,a){let i;if(a===void 0)for(const r of n)r!=null&&(i<r||i===void 0&&r>=r)&&(i=r);else{let r=-1;for(let o of n)(o=a(o,++r,n))!=null&&(i<o||i===void 0&&o>=o)&&(i=o)}return i}function sS(n,a,i){n=+n,a=+a,i=(o=arguments.length)<2?(a=n,n=0,1):o<3?1:+i;for(var r=-1,o=Math.max(0,Math.ceil((a-n)/i))|0,f=new Array(o);++r<o;)f[r]=n+r*i;return f}function fS(n){return n}var Ls=1,ks=2,uf=3,Zu=4,dg=1e-6;function dS(n){return"translate("+n+",0)"}function hS(n){return"translate(0,"+n+")"}function mS(n){return a=>+n(a)}function gS(n,a){return a=Math.max(0,n.bandwidth()-a*2)/2,n.round()&&(a=Math.round(a)),i=>+n(i)+a}function pS(){return!this.__axis}function qp(n,a){var i=[],r=null,o=null,f=6,d=6,g=3,m=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=n===Ls||n===Zu?-1:1,v=n===Zu||n===ks?"x":"y",y=n===Ls||n===uf?dS:hS;function x(w){var k=r??(a.ticks?a.ticks.apply(a,i):a.domain()),N=o??(a.tickFormat?a.tickFormat.apply(a,i):fS),C=Math.max(f,0)+g,A=a.range(),q=+A[0]+m,L=+A[A.length-1]+m,J=(a.bandwidth?gS:mS)(a.copy(),m),nt=w.selection?w.selection():w,V=nt.selectAll(".domain").data([null]),K=nt.selectAll(".tick").data(k,a).order(),st=K.exit(),dt=K.enter().append("g").attr("class","tick"),vt=K.select("line"),_t=K.select("text");V=V.merge(V.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),K=K.merge(dt),vt=vt.merge(dt.append("line").attr("stroke","currentColor").attr(v+"2",h*f)),_t=_t.merge(dt.append("text").attr("fill","currentColor").attr(v,h*C).attr("dy",n===Ls?"0em":n===uf?"0.71em":"0.32em")),w!==nt&&(V=V.transition(w),K=K.transition(w),vt=vt.transition(w),_t=_t.transition(w),st=st.transition(w).attr("opacity",dg).attr("transform",function(X){return isFinite(X=J(X))?y(X+m):this.getAttribute("transform")}),dt.attr("opacity",dg).attr("transform",function(X){var ht=this.parentNode.__axis;return y((ht&&isFinite(ht=ht(X))?ht:J(X))+m)})),st.remove(),V.attr("d",n===Zu||n===ks?d?"M"+h*d+","+q+"H"+m+"V"+L+"H"+h*d:"M"+m+","+q+"V"+L:d?"M"+q+","+h*d+"V"+m+"H"+L+"V"+h*d:"M"+q+","+m+"H"+L),K.attr("opacity",1).attr("transform",function(X){return y(J(X)+m)}),vt.attr(v+"2",h*f),_t.attr(v,h*C).text(N),nt.filter(pS).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",n===ks?"start":n===Zu?"end":"middle"),nt.each(function(){this.__axis=J})}return x.scale=function(w){return arguments.length?(a=w,x):a},x.ticks=function(){return i=Array.from(arguments),x},x.tickArguments=function(w){return arguments.length?(i=w==null?[]:Array.from(w),x):i.slice()},x.tickValues=function(w){return arguments.length?(r=w==null?null:Array.from(w),x):r&&r.slice()},x.tickFormat=function(w){return arguments.length?(o=w,x):o},x.tickSize=function(w){return arguments.length?(f=d=+w,x):f},x.tickSizeInner=function(w){return arguments.length?(f=+w,x):f},x.tickSizeOuter=function(w){return arguments.length?(d=+w,x):d},x.tickPadding=function(w){return arguments.length?(g=+w,x):g},x.offset=function(w){return arguments.length?(m=+w,x):m},x}function Pu(n){return qp(uf,n)}function Gp(n){return qp(Zu,n)}var yS={value:()=>{}};function Af(){for(var n=0,a=arguments.length,i={},r;n<a;++n){if(!(r=arguments[n]+"")||r in i||/[\s.]/.test(r))throw new Error("illegal type: "+r);i[r]=[]}return new Br(i)}function Br(n){this._=n}function vS(n,a){return n.trim().split(/^|\s+/).map(function(i){var r="",o=i.indexOf(".");if(o>=0&&(r=i.slice(o+1),i=i.slice(0,o)),i&&!a.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:r}})}Br.prototype=Af.prototype={constructor:Br,on:function(n,a){var i=this._,r=vS(n+"",i),o,f=-1,d=r.length;if(arguments.length<2){for(;++f<d;)if((o=(n=r[f]).type)&&(o=xS(i[o],n.name)))return o;return}if(a!=null&&typeof a!="function")throw new Error("invalid callback: "+a);for(;++f<d;)if(o=(n=r[f]).type)i[o]=hg(i[o],n.name,a);else if(a==null)for(o in i)i[o]=hg(i[o],n.name,null);return this},copy:function(){var n={},a=this._;for(var i in a)n[i]=a[i].slice();return new Br(n)},call:function(n,a){if((o=arguments.length-2)>0)for(var i=new Array(o),r=0,o,f;r<o;++r)i[r]=arguments[r+2];if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(f=this._[n],r=0,o=f.length;r<o;++r)f[r].value.apply(a,i)},apply:function(n,a,i){if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(var r=this._[n],o=0,f=r.length;o<f;++o)r[o].value.apply(a,i)}};function xS(n,a){for(var i=0,r=n.length,o;i<r;++i)if((o=n[i]).name===a)return o.value}function hg(n,a,i){for(var r=0,o=n.length;r<o;++r)if(n[r].name===a){n[r]=yS,n=n.slice(0,r).concat(n.slice(r+1));break}return i!=null&&n.push({name:a,value:i}),n}var rf="http://www.w3.org/1999/xhtml";const mg={svg:"http://www.w3.org/2000/svg",xhtml:rf,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function oc(n){var a=n+="",i=a.indexOf(":");return i>=0&&(a=n.slice(0,i))!=="xmlns"&&(n=n.slice(i+1)),mg.hasOwnProperty(a)?{space:mg[a],local:n}:n}function bS(n){return function(){var a=this.ownerDocument,i=this.namespaceURI;return i===rf&&a.documentElement.namespaceURI===rf?a.createElement(n):a.createElementNS(i,n)}}function SS(n){return function(){return this.ownerDocument.createElementNS(n.space,n.local)}}function Xp(n){var a=oc(n);return(a.local?SS:bS)(a)}function _S(){}function Cf(n){return n==null?_S:function(){return this.querySelector(n)}}function wS(n){typeof n!="function"&&(n=Cf(n));for(var a=this._groups,i=a.length,r=new Array(i),o=0;o<i;++o)for(var f=a[o],d=f.length,g=r[o]=new Array(d),m,h,v=0;v<d;++v)(m=f[v])&&(h=n.call(m,m.__data__,v,f))&&("__data__"in m&&(h.__data__=m.__data__),g[v]=h);return new je(r,this._parents)}function TS(n){return n==null?[]:Array.isArray(n)?n:Array.from(n)}function MS(){return[]}function Vp(n){return n==null?MS:function(){return this.querySelectorAll(n)}}function ES(n){return function(){return TS(n.apply(this,arguments))}}function AS(n){typeof n=="function"?n=ES(n):n=Vp(n);for(var a=this._groups,i=a.length,r=[],o=[],f=0;f<i;++f)for(var d=a[f],g=d.length,m,h=0;h<g;++h)(m=d[h])&&(r.push(n.call(m,m.__data__,h,d)),o.push(m));return new je(r,o)}function Qp(n){return function(){return this.matches(n)}}function Zp(n){return function(a){return a.matches(n)}}var CS=Array.prototype.find;function zS(n){return function(){return CS.call(this.children,n)}}function NS(){return this.firstElementChild}function DS(n){return this.select(n==null?NS:zS(typeof n=="function"?n:Zp(n)))}var RS=Array.prototype.filter;function OS(){return Array.from(this.children)}function US(n){return function(){return RS.call(this.children,n)}}function jS(n){return this.selectAll(n==null?OS:US(typeof n=="function"?n:Zp(n)))}function HS(n){typeof n!="function"&&(n=Qp(n));for(var a=this._groups,i=a.length,r=new Array(i),o=0;o<i;++o)for(var f=a[o],d=f.length,g=r[o]=[],m,h=0;h<d;++h)(m=f[h])&&n.call(m,m.__data__,h,f)&&g.push(m);return new je(r,this._parents)}function $p(n){return new Array(n.length)}function LS(){return new je(this._enter||this._groups.map($p),this._parents)}function Zr(n,a){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=a}Zr.prototype={constructor:Zr,appendChild:function(n){return this._parent.insertBefore(n,this._next)},insertBefore:function(n,a){return this._parent.insertBefore(n,a)},querySelector:function(n){return this._parent.querySelector(n)},querySelectorAll:function(n){return this._parent.querySelectorAll(n)}};function kS(n){return function(){return n}}function YS(n,a,i,r,o,f){for(var d=0,g,m=a.length,h=f.length;d<h;++d)(g=a[d])?(g.__data__=f[d],r[d]=g):i[d]=new Zr(n,f[d]);for(;d<m;++d)(g=a[d])&&(o[d]=g)}function BS(n,a,i,r,o,f,d){var g,m,h=new Map,v=a.length,y=f.length,x=new Array(v),w;for(g=0;g<v;++g)(m=a[g])&&(x[g]=w=d.call(m,m.__data__,g,a)+"",h.has(w)?o[g]=m:h.set(w,m));for(g=0;g<y;++g)w=d.call(n,f[g],g,f)+"",(m=h.get(w))?(r[g]=m,m.__data__=f[g],h.delete(w)):i[g]=new Zr(n,f[g]);for(g=0;g<v;++g)(m=a[g])&&h.get(x[g])===m&&(o[g]=m)}function qS(n){return n.__data__}function GS(n,a){if(!arguments.length)return Array.from(this,qS);var i=a?BS:YS,r=this._parents,o=this._groups;typeof n!="function"&&(n=kS(n));for(var f=o.length,d=new Array(f),g=new Array(f),m=new Array(f),h=0;h<f;++h){var v=r[h],y=o[h],x=y.length,w=XS(n.call(v,v&&v.__data__,h,r)),k=w.length,N=g[h]=new Array(k),C=d[h]=new Array(k),A=m[h]=new Array(x);i(v,y,N,C,A,w,a);for(var q=0,L=0,J,nt;q<k;++q)if(J=N[q]){for(q>=L&&(L=q+1);!(nt=C[L])&&++L<k;);J._next=nt||null}}return d=new je(d,r),d._enter=g,d._exit=m,d}function XS(n){return typeof n=="object"&&"length"in n?n:Array.from(n)}function VS(){return new je(this._exit||this._groups.map($p),this._parents)}function QS(n,a,i){var r=this.enter(),o=this,f=this.exit();return typeof n=="function"?(r=n(r),r&&(r=r.selection())):r=r.append(n+""),a!=null&&(o=a(o),o&&(o=o.selection())),i==null?f.remove():i(f),r&&o?r.merge(o).order():o}function ZS(n){for(var a=n.selection?n.selection():n,i=this._groups,r=a._groups,o=i.length,f=r.length,d=Math.min(o,f),g=new Array(o),m=0;m<d;++m)for(var h=i[m],v=r[m],y=h.length,x=g[m]=new Array(y),w,k=0;k<y;++k)(w=h[k]||v[k])&&(x[k]=w);for(;m<o;++m)g[m]=i[m];return new je(g,this._parents)}function $S(){for(var n=this._groups,a=-1,i=n.length;++a<i;)for(var r=n[a],o=r.length-1,f=r[o],d;--o>=0;)(d=r[o])&&(f&&d.compareDocumentPosition(f)^4&&f.parentNode.insertBefore(d,f),f=d);return this}function KS(n){n||(n=JS);function a(y,x){return y&&x?n(y.__data__,x.__data__):!y-!x}for(var i=this._groups,r=i.length,o=new Array(r),f=0;f<r;++f){for(var d=i[f],g=d.length,m=o[f]=new Array(g),h,v=0;v<g;++v)(h=d[v])&&(m[v]=h);m.sort(a)}return new je(o,this._parents).order()}function JS(n,a){return n<a?-1:n>a?1:n>=a?0:NaN}function FS(){var n=arguments[0];return arguments[0]=this,n.apply(null,arguments),this}function WS(){return Array.from(this)}function IS(){for(var n=this._groups,a=0,i=n.length;a<i;++a)for(var r=n[a],o=0,f=r.length;o<f;++o){var d=r[o];if(d)return d}return null}function PS(){let n=0;for(const a of this)++n;return n}function t_(){return!this.node()}function e_(n){for(var a=this._groups,i=0,r=a.length;i<r;++i)for(var o=a[i],f=0,d=o.length,g;f<d;++f)(g=o[f])&&n.call(g,g.__data__,f,o);return this}function n_(n){return function(){this.removeAttribute(n)}}function l_(n){return function(){this.removeAttributeNS(n.space,n.local)}}function a_(n,a){return function(){this.setAttribute(n,a)}}function u_(n,a){return function(){this.setAttributeNS(n.space,n.local,a)}}function i_(n,a){return function(){var i=a.apply(this,arguments);i==null?this.removeAttribute(n):this.setAttribute(n,i)}}function r_(n,a){return function(){var i=a.apply(this,arguments);i==null?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,i)}}function c_(n,a){var i=oc(n);if(arguments.length<2){var r=this.node();return i.local?r.getAttributeNS(i.space,i.local):r.getAttribute(i)}return this.each((a==null?i.local?l_:n_:typeof a=="function"?i.local?r_:i_:i.local?u_:a_)(i,a))}function Kp(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function o_(n){return function(){this.style.removeProperty(n)}}function s_(n,a,i){return function(){this.style.setProperty(n,a,i)}}function f_(n,a,i){return function(){var r=a.apply(this,arguments);r==null?this.style.removeProperty(n):this.style.setProperty(n,r,i)}}function d_(n,a,i){return arguments.length>1?this.each((a==null?o_:typeof a=="function"?f_:s_)(n,a,i??"")):Ua(this.node(),n)}function Ua(n,a){return n.style.getPropertyValue(a)||Kp(n).getComputedStyle(n,null).getPropertyValue(a)}function h_(n){return function(){delete this[n]}}function m_(n,a){return function(){this[n]=a}}function g_(n,a){return function(){var i=a.apply(this,arguments);i==null?delete this[n]:this[n]=i}}function p_(n,a){return arguments.length>1?this.each((a==null?h_:typeof a=="function"?g_:m_)(n,a)):this.node()[n]}function Jp(n){return n.trim().split(/^|\s+/)}function zf(n){return n.classList||new Fp(n)}function Fp(n){this._node=n,this._names=Jp(n.getAttribute("class")||"")}Fp.prototype={add:function(n){var a=this._names.indexOf(n);a<0&&(this._names.push(n),this._node.setAttribute("class",this._names.join(" ")))},remove:function(n){var a=this._names.indexOf(n);a>=0&&(this._names.splice(a,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};function Wp(n,a){for(var i=zf(n),r=-1,o=a.length;++r<o;)i.add(a[r])}function Ip(n,a){for(var i=zf(n),r=-1,o=a.length;++r<o;)i.remove(a[r])}function y_(n){return function(){Wp(this,n)}}function v_(n){return function(){Ip(this,n)}}function x_(n,a){return function(){(a.apply(this,arguments)?Wp:Ip)(this,n)}}function b_(n,a){var i=Jp(n+"");if(arguments.length<2){for(var r=zf(this.node()),o=-1,f=i.length;++o<f;)if(!r.contains(i[o]))return!1;return!0}return this.each((typeof a=="function"?x_:a?y_:v_)(i,a))}function S_(){this.textContent=""}function __(n){return function(){this.textContent=n}}function w_(n){return function(){var a=n.apply(this,arguments);this.textContent=a??""}}function T_(n){return arguments.length?this.each(n==null?S_:(typeof n=="function"?w_:__)(n)):this.node().textContent}function M_(){this.innerHTML=""}function E_(n){return function(){this.innerHTML=n}}function A_(n){return function(){var a=n.apply(this,arguments);this.innerHTML=a??""}}function C_(n){return arguments.length?this.each(n==null?M_:(typeof n=="function"?A_:E_)(n)):this.node().innerHTML}function z_(){this.nextSibling&&this.parentNode.appendChild(this)}function N_(){return this.each(z_)}function D_(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function R_(){return this.each(D_)}function O_(n){var a=typeof n=="function"?n:Xp(n);return this.select(function(){return this.appendChild(a.apply(this,arguments))})}function U_(){return null}function j_(n,a){var i=typeof n=="function"?n:Xp(n),r=a==null?U_:typeof a=="function"?a:Cf(a);return this.select(function(){return this.insertBefore(i.apply(this,arguments),r.apply(this,arguments)||null)})}function H_(){var n=this.parentNode;n&&n.removeChild(this)}function L_(){return this.each(H_)}function k_(){var n=this.cloneNode(!1),a=this.parentNode;return a?a.insertBefore(n,this.nextSibling):n}function Y_(){var n=this.cloneNode(!0),a=this.parentNode;return a?a.insertBefore(n,this.nextSibling):n}function B_(n){return this.select(n?Y_:k_)}function q_(n){return arguments.length?this.property("__data__",n):this.node().__data__}function G_(n){return function(a){n.call(this,a,this.__data__)}}function X_(n){return n.trim().split(/^|\s+/).map(function(a){var i="",r=a.indexOf(".");return r>=0&&(i=a.slice(r+1),a=a.slice(0,r)),{type:a,name:i}})}function V_(n){return function(){var a=this.__on;if(a){for(var i=0,r=-1,o=a.length,f;i<o;++i)f=a[i],(!n.type||f.type===n.type)&&f.name===n.name?this.removeEventListener(f.type,f.listener,f.options):a[++r]=f;++r?a.length=r:delete this.__on}}}function Q_(n,a,i){return function(){var r=this.__on,o,f=G_(a);if(r){for(var d=0,g=r.length;d<g;++d)if((o=r[d]).type===n.type&&o.name===n.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=f,o.options=i),o.value=a;return}}this.addEventListener(n.type,f,i),o={type:n.type,name:n.name,value:a,listener:f,options:i},r?r.push(o):this.__on=[o]}}function Z_(n,a,i){var r=X_(n+""),o,f=r.length,d;if(arguments.length<2){var g=this.node().__on;if(g){for(var m=0,h=g.length,v;m<h;++m)for(o=0,v=g[m];o<f;++o)if((d=r[o]).type===v.type&&d.name===v.name)return v.value}return}for(g=a?Q_:V_,o=0;o<f;++o)this.each(g(r[o],a,i));return this}function Pp(n,a,i){var r=Kp(n),o=r.CustomEvent;typeof o=="function"?o=new o(a,i):(o=r.document.createEvent("Event"),i?(o.initEvent(a,i.bubbles,i.cancelable),o.detail=i.detail):o.initEvent(a,!1,!1)),n.dispatchEvent(o)}function $_(n,a){return function(){return Pp(this,n,a)}}function K_(n,a){return function(){return Pp(this,n,a.apply(this,arguments))}}function J_(n,a){return this.each((typeof a=="function"?K_:$_)(n,a))}function*F_(){for(var n=this._groups,a=0,i=n.length;a<i;++a)for(var r=n[a],o=0,f=r.length,d;o<f;++o)(d=r[o])&&(yield d)}var ty=[null];function je(n,a){this._groups=n,this._parents=a}function ri(){return new je([[document.documentElement]],ty)}function W_(){return this}je.prototype=ri.prototype={constructor:je,select:wS,selectAll:AS,selectChild:DS,selectChildren:jS,filter:HS,data:GS,enter:LS,exit:VS,join:QS,merge:ZS,selection:W_,order:$S,sort:KS,call:FS,nodes:WS,node:IS,size:PS,empty:t_,each:e_,attr:c_,style:d_,property:p_,classed:b_,text:T_,html:C_,raise:N_,lower:R_,append:O_,insert:j_,remove:L_,clone:B_,datum:q_,on:Z_,dispatch:J_,[Symbol.iterator]:F_};function Ue(n){return typeof n=="string"?new je([[document.querySelector(n)]],[document.documentElement]):new je([[n]],ty)}function I_(n){let a;for(;a=n.sourceEvent;)n=a;return n}function Ol(n,a){if(n=I_(n),a===void 0&&(a=n.currentTarget),a){var i=a.ownerSVGElement||a;if(i.createSVGPoint){var r=i.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(a.getScreenCTM().inverse()),[r.x,r.y]}if(a.getBoundingClientRect){var o=a.getBoundingClientRect();return[n.clientX-o.left-a.clientLeft,n.clientY-o.top-a.clientTop]}}return[n.pageX,n.pageY]}const cf={capture:!0,passive:!1};function of(n){n.preventDefault(),n.stopImmediatePropagation()}function P_(n){var a=n.document.documentElement,i=Ue(n).on("dragstart.drag",of,cf);"onselectstart"in a?i.on("selectstart.drag",of,cf):(a.__noselect=a.style.MozUserSelect,a.style.MozUserSelect="none")}function tw(n,a){var i=n.document.documentElement,r=Ue(n).on("dragstart.drag",null);a&&(r.on("click.drag",of,cf),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in i?r.on("selectstart.drag",null):(i.style.MozUserSelect=i.__noselect,delete i.__noselect)}function Nf(n,a,i){n.prototype=a.prototype=i,i.constructor=n}function ey(n,a){var i=Object.create(n.prototype);for(var r in a)i[r]=a[r];return i}function ci(){}var ti=.7,$r=1/ti,Oa="\\s*([+-]?\\d+)\\s*",ei="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",rn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ew=/^#([0-9a-f]{3,8})$/,nw=new RegExp(`^rgb\\(${Oa},${Oa},${Oa}\\)$`),lw=new RegExp(`^rgb\\(${rn},${rn},${rn}\\)$`),aw=new RegExp(`^rgba\\(${Oa},${Oa},${Oa},${ei}\\)$`),uw=new RegExp(`^rgba\\(${rn},${rn},${rn},${ei}\\)$`),iw=new RegExp(`^hsl\\(${ei},${rn},${rn}\\)$`),rw=new RegExp(`^hsla\\(${ei},${rn},${rn},${ei}\\)$`),gg={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Nf(ci,kl,{copy(n){return Object.assign(new this.constructor,this,n)},displayable(){return this.rgb().displayable()},hex:pg,formatHex:pg,formatHex8:cw,formatHsl:ow,formatRgb:yg,toString:yg});function pg(){return this.rgb().formatHex()}function cw(){return this.rgb().formatHex8()}function ow(){return ny(this).formatHsl()}function yg(){return this.rgb().formatRgb()}function kl(n){var a,i;return n=(n+"").trim().toLowerCase(),(a=ew.exec(n))?(i=a[1].length,a=parseInt(a[1],16),i===6?vg(a):i===3?new we(a>>8&15|a>>4&240,a>>4&15|a&240,(a&15)<<4|a&15,1):i===8?zr(a>>24&255,a>>16&255,a>>8&255,(a&255)/255):i===4?zr(a>>12&15|a>>8&240,a>>8&15|a>>4&240,a>>4&15|a&240,((a&15)<<4|a&15)/255):null):(a=nw.exec(n))?new we(a[1],a[2],a[3],1):(a=lw.exec(n))?new we(a[1]*255/100,a[2]*255/100,a[3]*255/100,1):(a=aw.exec(n))?zr(a[1],a[2],a[3],a[4]):(a=uw.exec(n))?zr(a[1]*255/100,a[2]*255/100,a[3]*255/100,a[4]):(a=iw.exec(n))?Sg(a[1],a[2]/100,a[3]/100,1):(a=rw.exec(n))?Sg(a[1],a[2]/100,a[3]/100,a[4]):gg.hasOwnProperty(n)?vg(gg[n]):n==="transparent"?new we(NaN,NaN,NaN,0):null}function vg(n){return new we(n>>16&255,n>>8&255,n&255,1)}function zr(n,a,i,r){return r<=0&&(n=a=i=NaN),new we(n,a,i,r)}function sw(n){return n instanceof ci||(n=kl(n)),n?(n=n.rgb(),new we(n.r,n.g,n.b,n.opacity)):new we}function sf(n,a,i,r){return arguments.length===1?sw(n):new we(n,a,i,r??1)}function we(n,a,i,r){this.r=+n,this.g=+a,this.b=+i,this.opacity=+r}Nf(we,sf,ey(ci,{brighter(n){return n=n==null?$r:Math.pow($r,n),new we(this.r*n,this.g*n,this.b*n,this.opacity)},darker(n){return n=n==null?ti:Math.pow(ti,n),new we(this.r*n,this.g*n,this.b*n,this.opacity)},rgb(){return this},clamp(){return new we(Ll(this.r),Ll(this.g),Ll(this.b),Kr(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:xg,formatHex:xg,formatHex8:fw,formatRgb:bg,toString:bg}));function xg(){return`#${Hl(this.r)}${Hl(this.g)}${Hl(this.b)}`}function fw(){return`#${Hl(this.r)}${Hl(this.g)}${Hl(this.b)}${Hl((isNaN(this.opacity)?1:this.opacity)*255)}`}function bg(){const n=Kr(this.opacity);return`${n===1?"rgb(":"rgba("}${Ll(this.r)}, ${Ll(this.g)}, ${Ll(this.b)}${n===1?")":`, ${n})`}`}function Kr(n){return isNaN(n)?1:Math.max(0,Math.min(1,n))}function Ll(n){return Math.max(0,Math.min(255,Math.round(n)||0))}function Hl(n){return n=Ll(n),(n<16?"0":"")+n.toString(16)}function Sg(n,a,i,r){return r<=0?n=a=i=NaN:i<=0||i>=1?n=a=NaN:a<=0&&(n=NaN),new Ie(n,a,i,r)}function ny(n){if(n instanceof Ie)return new Ie(n.h,n.s,n.l,n.opacity);if(n instanceof ci||(n=kl(n)),!n)return new Ie;if(n instanceof Ie)return n;n=n.rgb();var a=n.r/255,i=n.g/255,r=n.b/255,o=Math.min(a,i,r),f=Math.max(a,i,r),d=NaN,g=f-o,m=(f+o)/2;return g?(a===f?d=(i-r)/g+(i<r)*6:i===f?d=(r-a)/g+2:d=(a-i)/g+4,g/=m<.5?f+o:2-f-o,d*=60):g=m>0&&m<1?0:d,new Ie(d,g,m,n.opacity)}function dw(n,a,i,r){return arguments.length===1?ny(n):new Ie(n,a,i,r??1)}function Ie(n,a,i,r){this.h=+n,this.s=+a,this.l=+i,this.opacity=+r}Nf(Ie,dw,ey(ci,{brighter(n){return n=n==null?$r:Math.pow($r,n),new Ie(this.h,this.s,this.l*n,this.opacity)},darker(n){return n=n==null?ti:Math.pow(ti,n),new Ie(this.h,this.s,this.l*n,this.opacity)},rgb(){var n=this.h%360+(this.h<0)*360,a=isNaN(n)||isNaN(this.s)?0:this.s,i=this.l,r=i+(i<.5?i:1-i)*a,o=2*i-r;return new we(Ys(n>=240?n-240:n+120,o,r),Ys(n,o,r),Ys(n<120?n+240:n-120,o,r),this.opacity)},clamp(){return new Ie(_g(this.h),Nr(this.s),Nr(this.l),Kr(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const n=Kr(this.opacity);return`${n===1?"hsl(":"hsla("}${_g(this.h)}, ${Nr(this.s)*100}%, ${Nr(this.l)*100}%${n===1?")":`, ${n})`}`}}));function _g(n){return n=(n||0)%360,n<0?n+360:n}function Nr(n){return Math.max(0,Math.min(1,n||0))}function Ys(n,a,i){return(n<60?a+(i-a)*n/60:n<180?i:n<240?a+(i-a)*(240-n)/60:a)*255}const Df=n=>()=>n;function hw(n,a){return function(i){return n+i*a}}function mw(n,a,i){return n=Math.pow(n,i),a=Math.pow(a,i)-n,i=1/i,function(r){return Math.pow(n+r*a,i)}}function gw(n){return(n=+n)==1?ly:function(a,i){return i-a?mw(a,i,n):Df(isNaN(a)?i:a)}}function ly(n,a){var i=a-n;return i?hw(n,i):Df(isNaN(n)?a:n)}const Jr=(function n(a){var i=gw(a);function r(o,f){var d=i((o=sf(o)).r,(f=sf(f)).r),g=i(o.g,f.g),m=i(o.b,f.b),h=ly(o.opacity,f.opacity);return function(v){return o.r=d(v),o.g=g(v),o.b=m(v),o.opacity=h(v),o+""}}return r.gamma=n,r})(1);function pw(n,a){a||(a=[]);var i=n?Math.min(a.length,n.length):0,r=a.slice(),o;return function(f){for(o=0;o<i;++o)r[o]=n[o]*(1-f)+a[o]*f;return r}}function yw(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function vw(n,a){var i=a?a.length:0,r=n?Math.min(i,n.length):0,o=new Array(r),f=new Array(i),d;for(d=0;d<r;++d)o[d]=Rf(n[d],a[d]);for(;d<i;++d)f[d]=a[d];return function(g){for(d=0;d<r;++d)f[d]=o[d](g);return f}}function xw(n,a){var i=new Date;return n=+n,a=+a,function(r){return i.setTime(n*(1-r)+a*r),i}}function We(n,a){return n=+n,a=+a,function(i){return n*(1-i)+a*i}}function bw(n,a){var i={},r={},o;(n===null||typeof n!="object")&&(n={}),(a===null||typeof a!="object")&&(a={});for(o in a)o in n?i[o]=Rf(n[o],a[o]):r[o]=a[o];return function(f){for(o in i)r[o]=i[o](f);return r}}var ff=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Bs=new RegExp(ff.source,"g");function Sw(n){return function(){return n}}function _w(n){return function(a){return n(a)+""}}function ay(n,a){var i=ff.lastIndex=Bs.lastIndex=0,r,o,f,d=-1,g=[],m=[];for(n=n+"",a=a+"";(r=ff.exec(n))&&(o=Bs.exec(a));)(f=o.index)>i&&(f=a.slice(i,f),g[d]?g[d]+=f:g[++d]=f),(r=r[0])===(o=o[0])?g[d]?g[d]+=o:g[++d]=o:(g[++d]=null,m.push({i:d,x:We(r,o)})),i=Bs.lastIndex;return i<a.length&&(f=a.slice(i),g[d]?g[d]+=f:g[++d]=f),g.length<2?m[0]?_w(m[0].x):Sw(a):(a=m.length,function(h){for(var v=0,y;v<a;++v)g[(y=m[v]).i]=y.x(h);return g.join("")})}function Rf(n,a){var i=typeof a,r;return a==null||i==="boolean"?Df(a):(i==="number"?We:i==="string"?(r=kl(a))?(a=r,Jr):ay:a instanceof kl?Jr:a instanceof Date?xw:yw(a)?pw:Array.isArray(a)?vw:typeof a.valueOf!="function"&&typeof a.toString!="function"||isNaN(a)?bw:We)(n,a)}function ww(n,a){return n=+n,a=+a,function(i){return Math.round(n*(1-i)+a*i)}}var wg=180/Math.PI,df={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function uy(n,a,i,r,o,f){var d,g,m;return(d=Math.sqrt(n*n+a*a))&&(n/=d,a/=d),(m=n*i+a*r)&&(i-=n*m,r-=a*m),(g=Math.sqrt(i*i+r*r))&&(i/=g,r/=g,m/=g),n*r<a*i&&(n=-n,a=-a,m=-m,d=-d),{translateX:o,translateY:f,rotate:Math.atan2(a,n)*wg,skewX:Math.atan(m)*wg,scaleX:d,scaleY:g}}var Dr;function Tw(n){const a=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(n+"");return a.isIdentity?df:uy(a.a,a.b,a.c,a.d,a.e,a.f)}function Mw(n){return n==null||(Dr||(Dr=document.createElementNS("http://www.w3.org/2000/svg","g")),Dr.setAttribute("transform",n),!(n=Dr.transform.baseVal.consolidate()))?df:(n=n.matrix,uy(n.a,n.b,n.c,n.d,n.e,n.f))}function iy(n,a,i,r){function o(h){return h.length?h.pop()+" ":""}function f(h,v,y,x,w,k){if(h!==y||v!==x){var N=w.push("translate(",null,a,null,i);k.push({i:N-4,x:We(h,y)},{i:N-2,x:We(v,x)})}else(y||x)&&w.push("translate("+y+a+x+i)}function d(h,v,y,x){h!==v?(h-v>180?v+=360:v-h>180&&(h+=360),x.push({i:y.push(o(y)+"rotate(",null,r)-2,x:We(h,v)})):v&&y.push(o(y)+"rotate("+v+r)}function g(h,v,y,x){h!==v?x.push({i:y.push(o(y)+"skewX(",null,r)-2,x:We(h,v)}):v&&y.push(o(y)+"skewX("+v+r)}function m(h,v,y,x,w,k){if(h!==y||v!==x){var N=w.push(o(w)+"scale(",null,",",null,")");k.push({i:N-4,x:We(h,y)},{i:N-2,x:We(v,x)})}else(y!==1||x!==1)&&w.push(o(w)+"scale("+y+","+x+")")}return function(h,v){var y=[],x=[];return h=n(h),v=n(v),f(h.translateX,h.translateY,v.translateX,v.translateY,y,x),d(h.rotate,v.rotate,y,x),g(h.skewX,v.skewX,y,x),m(h.scaleX,h.scaleY,v.scaleX,v.scaleY,y,x),h=v=null,function(w){for(var k=-1,N=x.length,C;++k<N;)y[(C=x[k]).i]=C.x(w);return y.join("")}}}var Ew=iy(Tw,"px, ","px)","deg)"),Aw=iy(Mw,", ",")",")"),Cw=1e-12;function Tg(n){return((n=Math.exp(n))+1/n)/2}function zw(n){return((n=Math.exp(n))-1/n)/2}function Nw(n){return((n=Math.exp(2*n))-1)/(n+1)}const Dw=(function n(a,i,r){function o(f,d){var g=f[0],m=f[1],h=f[2],v=d[0],y=d[1],x=d[2],w=v-g,k=y-m,N=w*w+k*k,C,A;if(N<Cw)A=Math.log(x/h)/a,C=function(K){return[g+K*w,m+K*k,h*Math.exp(a*K*A)]};else{var q=Math.sqrt(N),L=(x*x-h*h+r*N)/(2*h*i*q),J=(x*x-h*h-r*N)/(2*x*i*q),nt=Math.log(Math.sqrt(L*L+1)-L),V=Math.log(Math.sqrt(J*J+1)-J);A=(V-nt)/a,C=function(K){var st=K*A,dt=Tg(nt),vt=h/(i*q)*(dt*Nw(a*st+nt)-zw(nt));return[g+vt*w,m+vt*k,h*dt/Tg(a*st+nt)]}}return C.duration=A*1e3*a/Math.SQRT2,C}return o.rho=function(f){var d=Math.max(.001,+f),g=d*d,m=g*g;return n(d,g,m)},o})(Math.SQRT2,2,4);var ja=0,$u=0,qu=0,ry=1e3,Fr,Ku,Wr=0,Yl=0,sc=0,ni=typeof performance=="object"&&performance.now?performance:Date,cy=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(n){setTimeout(n,17)};function Of(){return Yl||(cy(Rw),Yl=ni.now()+sc)}function Rw(){Yl=0}function Ir(){this._call=this._time=this._next=null}Ir.prototype=oy.prototype={constructor:Ir,restart:function(n,a,i){if(typeof n!="function")throw new TypeError("callback is not a function");i=(i==null?Of():+i)+(a==null?0:+a),!this._next&&Ku!==this&&(Ku?Ku._next=this:Fr=this,Ku=this),this._call=n,this._time=i,hf()},stop:function(){this._call&&(this._call=null,this._time=1/0,hf())}};function oy(n,a,i){var r=new Ir;return r.restart(n,a,i),r}function Ow(){Of(),++ja;for(var n=Fr,a;n;)(a=Yl-n._time)>=0&&n._call.call(void 0,a),n=n._next;--ja}function Mg(){Yl=(Wr=ni.now())+sc,ja=$u=0;try{Ow()}finally{ja=0,jw(),Yl=0}}function Uw(){var n=ni.now(),a=n-Wr;a>ry&&(sc-=a,Wr=n)}function jw(){for(var n,a=Fr,i,r=1/0;a;)a._call?(r>a._time&&(r=a._time),n=a,a=a._next):(i=a._next,a._next=null,a=n?n._next=i:Fr=i);Ku=n,hf(r)}function hf(n){if(!ja){$u&&($u=clearTimeout($u));var a=n-Yl;a>24?(n<1/0&&($u=setTimeout(Mg,n-ni.now()-sc)),qu&&(qu=clearInterval(qu))):(qu||(Wr=ni.now(),qu=setInterval(Uw,ry)),ja=1,cy(Mg))}}function Eg(n,a,i){var r=new Ir;return a=a==null?0:+a,r.restart(o=>{r.stop(),n(o+a)},a,i),r}var Hw=Af("start","end","cancel","interrupt"),Lw=[],sy=0,Ag=1,mf=2,qr=3,Cg=4,gf=5,Gr=6;function fc(n,a,i,r,o,f){var d=n.__transition;if(!d)n.__transition={};else if(i in d)return;kw(n,i,{name:a,index:r,group:o,on:Hw,tween:Lw,time:f.time,delay:f.delay,duration:f.duration,ease:f.ease,timer:null,state:sy})}function Uf(n,a){var i=en(n,a);if(i.state>sy)throw new Error("too late; already scheduled");return i}function sn(n,a){var i=en(n,a);if(i.state>qr)throw new Error("too late; already running");return i}function en(n,a){var i=n.__transition;if(!i||!(i=i[a]))throw new Error("transition not found");return i}function kw(n,a,i){var r=n.__transition,o;r[a]=i,i.timer=oy(f,0,i.time);function f(h){i.state=Ag,i.timer.restart(d,i.delay,i.time),i.delay<=h&&d(h-i.delay)}function d(h){var v,y,x,w;if(i.state!==Ag)return m();for(v in r)if(w=r[v],w.name===i.name){if(w.state===qr)return Eg(d);w.state===Cg?(w.state=Gr,w.timer.stop(),w.on.call("interrupt",n,n.__data__,w.index,w.group),delete r[v]):+v<a&&(w.state=Gr,w.timer.stop(),w.on.call("cancel",n,n.__data__,w.index,w.group),delete r[v])}if(Eg(function(){i.state===qr&&(i.state=Cg,i.timer.restart(g,i.delay,i.time),g(h))}),i.state=mf,i.on.call("start",n,n.__data__,i.index,i.group),i.state===mf){for(i.state=qr,o=new Array(x=i.tween.length),v=0,y=-1;v<x;++v)(w=i.tween[v].value.call(n,n.__data__,i.index,i.group))&&(o[++y]=w);o.length=y+1}}function g(h){for(var v=h<i.duration?i.ease.call(null,h/i.duration):(i.timer.restart(m),i.state=gf,1),y=-1,x=o.length;++y<x;)o[y].call(n,v);i.state===gf&&(i.on.call("end",n,n.__data__,i.index,i.group),m())}function m(){i.state=Gr,i.timer.stop(),delete r[a];for(var h in r)return;delete n.__transition}}function Xr(n,a){var i=n.__transition,r,o,f=!0,d;if(i){a=a==null?null:a+"";for(d in i){if((r=i[d]).name!==a){f=!1;continue}o=r.state>mf&&r.state<gf,r.state=Gr,r.timer.stop(),r.on.call(o?"interrupt":"cancel",n,n.__data__,r.index,r.group),delete i[d]}f&&delete n.__transition}}function Yw(n){return this.each(function(){Xr(this,n)})}function Bw(n,a){var i,r;return function(){var o=sn(this,n),f=o.tween;if(f!==i){r=i=f;for(var d=0,g=r.length;d<g;++d)if(r[d].name===a){r=r.slice(),r.splice(d,1);break}}o.tween=r}}function qw(n,a,i){var r,o;if(typeof i!="function")throw new Error;return function(){var f=sn(this,n),d=f.tween;if(d!==r){o=(r=d).slice();for(var g={name:a,value:i},m=0,h=o.length;m<h;++m)if(o[m].name===a){o[m]=g;break}m===h&&o.push(g)}f.tween=o}}function Gw(n,a){var i=this._id;if(n+="",arguments.length<2){for(var r=en(this.node(),i).tween,o=0,f=r.length,d;o<f;++o)if((d=r[o]).name===n)return d.value;return null}return this.each((a==null?Bw:qw)(i,n,a))}function jf(n,a,i){var r=n._id;return n.each(function(){var o=sn(this,r);(o.value||(o.value={}))[a]=i.apply(this,arguments)}),function(o){return en(o,r).value[a]}}function fy(n,a){var i;return(typeof a=="number"?We:a instanceof kl?Jr:(i=kl(a))?(a=i,Jr):ay)(n,a)}function Xw(n){return function(){this.removeAttribute(n)}}function Vw(n){return function(){this.removeAttributeNS(n.space,n.local)}}function Qw(n,a,i){var r,o=i+"",f;return function(){var d=this.getAttribute(n);return d===o?null:d===r?f:f=a(r=d,i)}}function Zw(n,a,i){var r,o=i+"",f;return function(){var d=this.getAttributeNS(n.space,n.local);return d===o?null:d===r?f:f=a(r=d,i)}}function $w(n,a,i){var r,o,f;return function(){var d,g=i(this),m;return g==null?void this.removeAttribute(n):(d=this.getAttribute(n),m=g+"",d===m?null:d===r&&m===o?f:(o=m,f=a(r=d,g)))}}function Kw(n,a,i){var r,o,f;return function(){var d,g=i(this),m;return g==null?void this.removeAttributeNS(n.space,n.local):(d=this.getAttributeNS(n.space,n.local),m=g+"",d===m?null:d===r&&m===o?f:(o=m,f=a(r=d,g)))}}function Jw(n,a){var i=oc(n),r=i==="transform"?Aw:fy;return this.attrTween(n,typeof a=="function"?(i.local?Kw:$w)(i,r,jf(this,"attr."+n,a)):a==null?(i.local?Vw:Xw)(i):(i.local?Zw:Qw)(i,r,a))}function Fw(n,a){return function(i){this.setAttribute(n,a.call(this,i))}}function Ww(n,a){return function(i){this.setAttributeNS(n.space,n.local,a.call(this,i))}}function Iw(n,a){var i,r;function o(){var f=a.apply(this,arguments);return f!==r&&(i=(r=f)&&Ww(n,f)),i}return o._value=a,o}function Pw(n,a){var i,r;function o(){var f=a.apply(this,arguments);return f!==r&&(i=(r=f)&&Fw(n,f)),i}return o._value=a,o}function t3(n,a){var i="attr."+n;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(a==null)return this.tween(i,null);if(typeof a!="function")throw new Error;var r=oc(n);return this.tween(i,(r.local?Iw:Pw)(r,a))}function e3(n,a){return function(){Uf(this,n).delay=+a.apply(this,arguments)}}function n3(n,a){return a=+a,function(){Uf(this,n).delay=a}}function l3(n){var a=this._id;return arguments.length?this.each((typeof n=="function"?e3:n3)(a,n)):en(this.node(),a).delay}function a3(n,a){return function(){sn(this,n).duration=+a.apply(this,arguments)}}function u3(n,a){return a=+a,function(){sn(this,n).duration=a}}function i3(n){var a=this._id;return arguments.length?this.each((typeof n=="function"?a3:u3)(a,n)):en(this.node(),a).duration}function r3(n,a){if(typeof a!="function")throw new Error;return function(){sn(this,n).ease=a}}function c3(n){var a=this._id;return arguments.length?this.each(r3(a,n)):en(this.node(),a).ease}function o3(n,a){return function(){var i=a.apply(this,arguments);if(typeof i!="function")throw new Error;sn(this,n).ease=i}}function s3(n){if(typeof n!="function")throw new Error;return this.each(o3(this._id,n))}function f3(n){typeof n!="function"&&(n=Qp(n));for(var a=this._groups,i=a.length,r=new Array(i),o=0;o<i;++o)for(var f=a[o],d=f.length,g=r[o]=[],m,h=0;h<d;++h)(m=f[h])&&n.call(m,m.__data__,h,f)&&g.push(m);return new Ln(r,this._parents,this._name,this._id)}function d3(n){if(n._id!==this._id)throw new Error;for(var a=this._groups,i=n._groups,r=a.length,o=i.length,f=Math.min(r,o),d=new Array(r),g=0;g<f;++g)for(var m=a[g],h=i[g],v=m.length,y=d[g]=new Array(v),x,w=0;w<v;++w)(x=m[w]||h[w])&&(y[w]=x);for(;g<r;++g)d[g]=a[g];return new Ln(d,this._parents,this._name,this._id)}function h3(n){return(n+"").trim().split(/^|\s+/).every(function(a){var i=a.indexOf(".");return i>=0&&(a=a.slice(0,i)),!a||a==="start"})}function m3(n,a,i){var r,o,f=h3(a)?Uf:sn;return function(){var d=f(this,n),g=d.on;g!==r&&(o=(r=g).copy()).on(a,i),d.on=o}}function g3(n,a){var i=this._id;return arguments.length<2?en(this.node(),i).on.on(n):this.each(m3(i,n,a))}function p3(n){return function(){var a=this.parentNode;for(var i in this.__transition)if(+i!==n)return;a&&a.removeChild(this)}}function y3(){return this.on("end.remove",p3(this._id))}function v3(n){var a=this._name,i=this._id;typeof n!="function"&&(n=Cf(n));for(var r=this._groups,o=r.length,f=new Array(o),d=0;d<o;++d)for(var g=r[d],m=g.length,h=f[d]=new Array(m),v,y,x=0;x<m;++x)(v=g[x])&&(y=n.call(v,v.__data__,x,g))&&("__data__"in v&&(y.__data__=v.__data__),h[x]=y,fc(h[x],a,i,x,h,en(v,i)));return new Ln(f,this._parents,a,i)}function x3(n){var a=this._name,i=this._id;typeof n!="function"&&(n=Vp(n));for(var r=this._groups,o=r.length,f=[],d=[],g=0;g<o;++g)for(var m=r[g],h=m.length,v,y=0;y<h;++y)if(v=m[y]){for(var x=n.call(v,v.__data__,y,m),w,k=en(v,i),N=0,C=x.length;N<C;++N)(w=x[N])&&fc(w,a,i,N,x,k);f.push(x),d.push(v)}return new Ln(f,d,a,i)}var b3=ri.prototype.constructor;function S3(){return new b3(this._groups,this._parents)}function _3(n,a){var i,r,o;return function(){var f=Ua(this,n),d=(this.style.removeProperty(n),Ua(this,n));return f===d?null:f===i&&d===r?o:o=a(i=f,r=d)}}function dy(n){return function(){this.style.removeProperty(n)}}function w3(n,a,i){var r,o=i+"",f;return function(){var d=Ua(this,n);return d===o?null:d===r?f:f=a(r=d,i)}}function T3(n,a,i){var r,o,f;return function(){var d=Ua(this,n),g=i(this),m=g+"";return g==null&&(m=g=(this.style.removeProperty(n),Ua(this,n))),d===m?null:d===r&&m===o?f:(o=m,f=a(r=d,g))}}function M3(n,a){var i,r,o,f="style."+a,d="end."+f,g;return function(){var m=sn(this,n),h=m.on,v=m.value[f]==null?g||(g=dy(a)):void 0;(h!==i||o!==v)&&(r=(i=h).copy()).on(d,o=v),m.on=r}}function E3(n,a,i){var r=(n+="")=="transform"?Ew:fy;return a==null?this.styleTween(n,_3(n,r)).on("end.style."+n,dy(n)):typeof a=="function"?this.styleTween(n,T3(n,r,jf(this,"style."+n,a))).each(M3(this._id,n)):this.styleTween(n,w3(n,r,a),i).on("end.style."+n,null)}function A3(n,a,i){return function(r){this.style.setProperty(n,a.call(this,r),i)}}function C3(n,a,i){var r,o;function f(){var d=a.apply(this,arguments);return d!==o&&(r=(o=d)&&A3(n,d,i)),r}return f._value=a,f}function z3(n,a,i){var r="style."+(n+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(a==null)return this.tween(r,null);if(typeof a!="function")throw new Error;return this.tween(r,C3(n,a,i??""))}function N3(n){return function(){this.textContent=n}}function D3(n){return function(){var a=n(this);this.textContent=a??""}}function R3(n){return this.tween("text",typeof n=="function"?D3(jf(this,"text",n)):N3(n==null?"":n+""))}function O3(n){return function(a){this.textContent=n.call(this,a)}}function U3(n){var a,i;function r(){var o=n.apply(this,arguments);return o!==i&&(a=(i=o)&&O3(o)),a}return r._value=n,r}function j3(n){var a="text";if(arguments.length<1)return(a=this.tween(a))&&a._value;if(n==null)return this.tween(a,null);if(typeof n!="function")throw new Error;return this.tween(a,U3(n))}function H3(){for(var n=this._name,a=this._id,i=hy(),r=this._groups,o=r.length,f=0;f<o;++f)for(var d=r[f],g=d.length,m,h=0;h<g;++h)if(m=d[h]){var v=en(m,a);fc(m,n,i,h,d,{time:v.time+v.delay+v.duration,delay:0,duration:v.duration,ease:v.ease})}return new Ln(r,this._parents,n,i)}function L3(){var n,a,i=this,r=i._id,o=i.size();return new Promise(function(f,d){var g={value:d},m={value:function(){--o===0&&f()}};i.each(function(){var h=sn(this,r),v=h.on;v!==n&&(a=(n=v).copy(),a._.cancel.push(g),a._.interrupt.push(g),a._.end.push(m)),h.on=a}),o===0&&f()})}var k3=0;function Ln(n,a,i,r){this._groups=n,this._parents=a,this._name=i,this._id=r}function hy(){return++k3}var Dn=ri.prototype;Ln.prototype={constructor:Ln,select:v3,selectAll:x3,selectChild:Dn.selectChild,selectChildren:Dn.selectChildren,filter:f3,merge:d3,selection:S3,transition:H3,call:Dn.call,nodes:Dn.nodes,node:Dn.node,size:Dn.size,empty:Dn.empty,each:Dn.each,on:g3,attr:Jw,attrTween:t3,style:E3,styleTween:z3,text:R3,textTween:j3,remove:y3,tween:Gw,delay:l3,duration:i3,ease:c3,easeVarying:s3,end:L3,[Symbol.iterator]:Dn[Symbol.iterator]};function Y3(n){return((n*=2)<=1?n*n*n:(n-=2)*n*n+2)/2}var B3={time:null,delay:0,duration:250,ease:Y3};function q3(n,a){for(var i;!(i=n.__transition)||!(i=i[a]);)if(!(n=n.parentNode))throw new Error(`transition ${a} not found`);return i}function G3(n){var a,i;n instanceof Ln?(a=n._id,n=n._name):(a=hy(),(i=B3).time=Of(),n=n==null?null:n+"");for(var r=this._groups,o=r.length,f=0;f<o;++f)for(var d=r[f],g=d.length,m,h=0;h<g;++h)(m=d[h])&&fc(m,n,a,h,d,i||q3(m,a));return new Ln(r,this._parents,n,a)}ri.prototype.interrupt=Yw;ri.prototype.transition=G3;const pf=Math.PI,yf=2*pf,jl=1e-6,X3=yf-jl;function my(n){this._+=n[0];for(let a=1,i=n.length;a<i;++a)this._+=arguments[a]+n[a]}function V3(n){let a=Math.floor(n);if(!(a>=0))throw new Error(`invalid digits: ${n}`);if(a>15)return my;const i=10**a;return function(r){this._+=r[0];for(let o=1,f=r.length;o<f;++o)this._+=Math.round(arguments[o]*i)/i+r[o]}}class Q3{constructor(a){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=a==null?my:V3(a)}moveTo(a,i){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+i}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(a,i){this._append`L${this._x1=+a},${this._y1=+i}`}quadraticCurveTo(a,i,r,o){this._append`Q${+a},${+i},${this._x1=+r},${this._y1=+o}`}bezierCurveTo(a,i,r,o,f,d){this._append`C${+a},${+i},${+r},${+o},${this._x1=+f},${this._y1=+d}`}arcTo(a,i,r,o,f){if(a=+a,i=+i,r=+r,o=+o,f=+f,f<0)throw new Error(`negative radius: ${f}`);let d=this._x1,g=this._y1,m=r-a,h=o-i,v=d-a,y=g-i,x=v*v+y*y;if(this._x1===null)this._append`M${this._x1=a},${this._y1=i}`;else if(x>jl)if(!(Math.abs(y*m-h*v)>jl)||!f)this._append`L${this._x1=a},${this._y1=i}`;else{let w=r-d,k=o-g,N=m*m+h*h,C=w*w+k*k,A=Math.sqrt(N),q=Math.sqrt(x),L=f*Math.tan((pf-Math.acos((N+x-C)/(2*A*q)))/2),J=L/q,nt=L/A;Math.abs(J-1)>jl&&this._append`L${a+J*v},${i+J*y}`,this._append`A${f},${f},0,0,${+(y*w>v*k)},${this._x1=a+nt*m},${this._y1=i+nt*h}`}}arc(a,i,r,o,f,d){if(a=+a,i=+i,r=+r,d=!!d,r<0)throw new Error(`negative radius: ${r}`);let g=r*Math.cos(o),m=r*Math.sin(o),h=a+g,v=i+m,y=1^d,x=d?o-f:f-o;this._x1===null?this._append`M${h},${v}`:(Math.abs(this._x1-h)>jl||Math.abs(this._y1-v)>jl)&&this._append`L${h},${v}`,r&&(x<0&&(x=x%yf+yf),x>X3?this._append`A${r},${r},0,1,${y},${a-g},${i-m}A${r},${r},0,1,${y},${this._x1=h},${this._y1=v}`:x>jl&&this._append`A${r},${r},0,${+(x>=pf)},${y},${this._x1=a+r*Math.cos(f)},${this._y1=i+r*Math.sin(f)}`)}rect(a,i,r,o){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+i}h${r=+r}v${+o}h${-r}Z`}toString(){return this._}}function Z3(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function Pr(n,a){if(!isFinite(n)||n===0)return null;var i=(n=a?n.toExponential(a-1):n.toExponential()).indexOf("e"),r=n.slice(0,i);return[r.length>1?r[0]+r.slice(2):r,+n.slice(i+1)]}function Ha(n){return n=Pr(Math.abs(n)),n?n[1]:NaN}function $3(n,a){return function(i,r){for(var o=i.length,f=[],d=0,g=n[0],m=0;o>0&&g>0&&(m+g+1>r&&(g=Math.max(1,r-m)),f.push(i.substring(o-=g,o+g)),!((m+=g+1)>r));)g=n[d=(d+1)%n.length];return f.reverse().join(a)}}function K3(n){return function(a){return a.replace(/[0-9]/g,function(i){return n[+i]})}}var J3=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tc(n){if(!(a=J3.exec(n)))throw new Error("invalid format: "+n);var a;return new Hf({fill:a[1],align:a[2],sign:a[3],symbol:a[4],zero:a[5],width:a[6],comma:a[7],precision:a[8]&&a[8].slice(1),trim:a[9],type:a[10]})}tc.prototype=Hf.prototype;function Hf(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}Hf.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function F3(n){t:for(var a=n.length,i=1,r=-1,o;i<a;++i)switch(n[i]){case".":r=o=i;break;case"0":r===0&&(r=i),o=i;break;default:if(!+n[i])break t;r>0&&(r=0);break}return r>0?n.slice(0,r)+n.slice(o+1):n}var ec;function W3(n,a){var i=Pr(n,a);if(!i)return ec=void 0,n.toPrecision(a);var r=i[0],o=i[1],f=o-(ec=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,d=r.length;return f===d?r:f>d?r+new Array(f-d+1).join("0"):f>0?r.slice(0,f)+"."+r.slice(f):"0."+new Array(1-f).join("0")+Pr(n,Math.max(0,a+f-1))[0]}function zg(n,a){var i=Pr(n,a);if(!i)return n+"";var r=i[0],o=i[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}const Ng={"%":(n,a)=>(n*100).toFixed(a),b:n=>Math.round(n).toString(2),c:n=>n+"",d:Z3,e:(n,a)=>n.toExponential(a),f:(n,a)=>n.toFixed(a),g:(n,a)=>n.toPrecision(a),o:n=>Math.round(n).toString(8),p:(n,a)=>zg(n*100,a),r:zg,s:W3,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function Dg(n){return n}var Rg=Array.prototype.map,Og=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function I3(n){var a=n.grouping===void 0||n.thousands===void 0?Dg:$3(Rg.call(n.grouping,Number),n.thousands+""),i=n.currency===void 0?"":n.currency[0]+"",r=n.currency===void 0?"":n.currency[1]+"",o=n.decimal===void 0?".":n.decimal+"",f=n.numerals===void 0?Dg:K3(Rg.call(n.numerals,String)),d=n.percent===void 0?"%":n.percent+"",g=n.minus===void 0?"−":n.minus+"",m=n.nan===void 0?"NaN":n.nan+"";function h(y,x){y=tc(y);var w=y.fill,k=y.align,N=y.sign,C=y.symbol,A=y.zero,q=y.width,L=y.comma,J=y.precision,nt=y.trim,V=y.type;V==="n"?(L=!0,V="g"):Ng[V]||(J===void 0&&(J=12),nt=!0,V="g"),(A||w==="0"&&k==="=")&&(A=!0,w="0",k="=");var K=(x&&x.prefix!==void 0?x.prefix:"")+(C==="$"?i:C==="#"&&/[boxX]/.test(V)?"0"+V.toLowerCase():""),st=(C==="$"?r:/[%p]/.test(V)?d:"")+(x&&x.suffix!==void 0?x.suffix:""),dt=Ng[V],vt=/[defgprs%]/.test(V);J=J===void 0?6:/[gprs]/.test(V)?Math.max(1,Math.min(21,J)):Math.max(0,Math.min(20,J));function _t(X){var ht=K,D=st,P,M,Y;if(V==="c")D=dt(X)+D,X="";else{X=+X;var F=X<0||1/X<0;if(X=isNaN(X)?m:dt(Math.abs(X),J),nt&&(X=F3(X)),F&&+X==0&&N!=="+"&&(F=!1),ht=(F?N==="("?N:g:N==="-"||N==="("?"":N)+ht,D=(V==="s"&&!isNaN(X)&&ec!==void 0?Og[8+ec/3]:"")+D+(F&&N==="("?")":""),vt){for(P=-1,M=X.length;++P<M;)if(Y=X.charCodeAt(P),48>Y||Y>57){D=(Y===46?o+X.slice(P+1):X.slice(P))+D,X=X.slice(0,P);break}}}L&&!A&&(X=a(X,1/0));var at=ht.length+X.length+D.length,lt=at<q?new Array(q-at+1).join(w):"";switch(L&&A&&(X=a(lt+X,lt.length?q-D.length:1/0),lt=""),k){case"<":X=ht+X+D+lt;break;case"=":X=ht+lt+X+D;break;case"^":X=lt.slice(0,at=lt.length>>1)+ht+X+D+lt.slice(at);break;default:X=lt+ht+X+D;break}return f(X)}return _t.toString=function(){return y+""},_t}function v(y,x){var w=Math.max(-8,Math.min(8,Math.floor(Ha(x)/3)))*3,k=Math.pow(10,-w),N=h((y=tc(y),y.type="f",y),{suffix:Og[8+w/3]});return function(C){return N(k*C)}}return{format:h,formatPrefix:v}}var Rr,gy,py;P3({thousands:",",grouping:[3],currency:["$",""]});function P3(n){return Rr=I3(n),gy=Rr.format,py=Rr.formatPrefix,Rr}function tT(n){return Math.max(0,-Ha(Math.abs(n)))}function eT(n,a){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ha(a)/3)))*3-Ha(Math.abs(n)))}function nT(n,a){return n=Math.abs(n),a=Math.abs(a)-n,Math.max(0,Ha(a)-Ha(n))+1}function lT(n){var a=0,i=n.children,r=i&&i.length;if(!r)a=1;else for(;--r>=0;)a+=i[r].value;n.value=a}function aT(){return this.eachAfter(lT)}function uT(n,a){let i=-1;for(const r of this)n.call(a,r,++i,this);return this}function iT(n,a){for(var i=this,r=[i],o,f,d=-1;i=r.pop();)if(n.call(a,i,++d,this),o=i.children)for(f=o.length-1;f>=0;--f)r.push(o[f]);return this}function rT(n,a){for(var i=this,r=[i],o=[],f,d,g,m=-1;i=r.pop();)if(o.push(i),f=i.children)for(d=0,g=f.length;d<g;++d)r.push(f[d]);for(;i=o.pop();)n.call(a,i,++m,this);return this}function cT(n,a){let i=-1;for(const r of this)if(n.call(a,r,++i,this))return r}function oT(n){return this.eachAfter(function(a){for(var i=+n(a.data)||0,r=a.children,o=r&&r.length;--o>=0;)i+=r[o].value;a.value=i})}function sT(n){return this.eachBefore(function(a){a.children&&a.children.sort(n)})}function fT(n){for(var a=this,i=dT(a,n),r=[a];a!==i;)a=a.parent,r.push(a);for(var o=r.length;n!==i;)r.splice(o,0,n),n=n.parent;return r}function dT(n,a){if(n===a)return n;var i=n.ancestors(),r=a.ancestors(),o=null;for(n=i.pop(),a=r.pop();n===a;)o=n,n=i.pop(),a=r.pop();return o}function hT(){for(var n=this,a=[n];n=n.parent;)a.push(n);return a}function mT(){return Array.from(this)}function gT(){var n=[];return this.eachBefore(function(a){a.children||n.push(a)}),n}function pT(){var n=this,a=[];return n.each(function(i){i!==n&&a.push({source:i.parent,target:i})}),a}function*yT(){var n=this,a,i=[n],r,o,f;do for(a=i.reverse(),i=[];n=a.pop();)if(yield n,r=n.children)for(o=0,f=r.length;o<f;++o)i.push(r[o]);while(i.length)}function Lf(n,a){n instanceof Map?(n=[void 0,n],a===void 0&&(a=bT)):a===void 0&&(a=xT);for(var i=new nc(n),r,o=[i],f,d,g,m;r=o.pop();)if((d=a(r.data))&&(m=(d=Array.from(d)).length))for(r.children=d,g=m-1;g>=0;--g)o.push(f=d[g]=new nc(d[g])),f.parent=r,f.depth=r.depth+1;return i.eachBefore(_T)}function vT(){return Lf(this).eachBefore(ST)}function xT(n){return n.children}function bT(n){return Array.isArray(n)?n[1]:null}function ST(n){n.data.value!==void 0&&(n.value=n.data.value),n.data=n.data.data}function _T(n){var a=0;do n.height=a;while((n=n.parent)&&n.height<++a)}function nc(n){this.data=n,this.depth=this.height=0,this.parent=null}nc.prototype=Lf.prototype={constructor:nc,count:aT,each:uT,eachAfter:rT,eachBefore:iT,find:cT,sum:oT,sort:sT,path:fT,ancestors:hT,descendants:mT,leaves:gT,links:pT,copy:vT,[Symbol.iterator]:yT};function wT(n){return n==null?null:TT(n)}function TT(n){if(typeof n!="function")throw new Error;return n}function Ug(){return 0}function MT(n){return function(){return n}}const ET=1664525,AT=1013904223,jg=4294967296;function CT(){let n=1;return()=>(n=(ET*n+AT)%jg)/jg}function zT(n){return typeof n=="object"&&"length"in n?n:Array.from(n)}function NT(n,a){let i=n.length,r,o;for(;i;)o=a()*i--|0,r=n[i],n[i]=n[o],n[o]=r;return n}function DT(n,a){for(var i=0,r=(n=NT(Array.from(n),a)).length,o=[],f,d;i<r;)f=n[i],d&&yy(d,f)?++i:(d=OT(o=RT(o,f)),i=0);return d}function RT(n,a){var i,r;if(qs(a,n))return[a];for(i=0;i<n.length;++i)if(Or(a,n[i])&&qs(Ju(n[i],a),n))return[n[i],a];for(i=0;i<n.length-1;++i)for(r=i+1;r<n.length;++r)if(Or(Ju(n[i],n[r]),a)&&Or(Ju(n[i],a),n[r])&&Or(Ju(n[r],a),n[i])&&qs(vy(n[i],n[r],a),n))return[n[i],n[r],a];throw new Error}function Or(n,a){var i=n.r-a.r,r=a.x-n.x,o=a.y-n.y;return i<0||i*i<r*r+o*o}function yy(n,a){var i=n.r-a.r+Math.max(n.r,a.r,1)*1e-9,r=a.x-n.x,o=a.y-n.y;return i>0&&i*i>r*r+o*o}function qs(n,a){for(var i=0;i<a.length;++i)if(!yy(n,a[i]))return!1;return!0}function OT(n){switch(n.length){case 1:return UT(n[0]);case 2:return Ju(n[0],n[1]);case 3:return vy(n[0],n[1],n[2])}}function UT(n){return{x:n.x,y:n.y,r:n.r}}function Ju(n,a){var i=n.x,r=n.y,o=n.r,f=a.x,d=a.y,g=a.r,m=f-i,h=d-r,v=g-o,y=Math.sqrt(m*m+h*h);return{x:(i+f+m/y*v)/2,y:(r+d+h/y*v)/2,r:(y+o+g)/2}}function vy(n,a,i){var r=n.x,o=n.y,f=n.r,d=a.x,g=a.y,m=a.r,h=i.x,v=i.y,y=i.r,x=r-d,w=r-h,k=o-g,N=o-v,C=m-f,A=y-f,q=r*r+o*o-f*f,L=q-d*d-g*g+m*m,J=q-h*h-v*v+y*y,nt=w*k-x*N,V=(k*J-N*L)/(nt*2)-r,K=(N*C-k*A)/nt,st=(w*L-x*J)/(nt*2)-o,dt=(x*A-w*C)/nt,vt=K*K+dt*dt-1,_t=2*(f+V*K+st*dt),X=V*V+st*st-f*f,ht=-(Math.abs(vt)>1e-6?(_t+Math.sqrt(_t*_t-4*vt*X))/(2*vt):X/_t);return{x:r+V+K*ht,y:o+st+dt*ht,r:ht}}function Hg(n,a,i){var r=n.x-a.x,o,f,d=n.y-a.y,g,m,h=r*r+d*d;h?(f=a.r+i.r,f*=f,m=n.r+i.r,m*=m,f>m?(o=(h+m-f)/(2*h),g=Math.sqrt(Math.max(0,m/h-o*o)),i.x=n.x-o*r-g*d,i.y=n.y-o*d+g*r):(o=(h+f-m)/(2*h),g=Math.sqrt(Math.max(0,f/h-o*o)),i.x=a.x+o*r-g*d,i.y=a.y+o*d+g*r)):(i.x=a.x+i.r,i.y=a.y)}function Lg(n,a){var i=n.r+a.r-1e-6,r=a.x-n.x,o=a.y-n.y;return i>0&&i*i>r*r+o*o}function kg(n){var a=n._,i=n.next._,r=a.r+i.r,o=(a.x*i.r+i.x*a.r)/r,f=(a.y*i.r+i.y*a.r)/r;return o*o+f*f}function Ur(n){this._=n,this.next=null,this.previous=null}function jT(n,a){if(!(f=(n=zT(n)).length))return 0;var i,r,o,f,d,g,m,h,v,y,x;if(i=n[0],i.x=0,i.y=0,!(f>1))return i.r;if(r=n[1],i.x=-r.r,r.x=i.r,r.y=0,!(f>2))return i.r+r.r;Hg(r,i,o=n[2]),i=new Ur(i),r=new Ur(r),o=new Ur(o),i.next=o.previous=r,r.next=i.previous=o,o.next=r.previous=i;t:for(m=3;m<f;++m){Hg(i._,r._,o=n[m]),o=new Ur(o),h=r.next,v=i.previous,y=r._.r,x=i._.r;do if(y<=x){if(Lg(h._,o._)){r=h,i.next=r,r.previous=i,--m;continue t}y+=h._.r,h=h.next}else{if(Lg(v._,o._)){i=v,i.next=r,r.previous=i,--m;continue t}x+=v._.r,v=v.previous}while(h!==v.next);for(o.previous=i,o.next=r,i.next=r.previous=r=o,d=kg(i);(o=o.next)!==r;)(g=kg(o))<d&&(i=o,d=g);r=i.next}for(i=[r._],o=r;(o=o.next)!==r;)i.push(o._);for(o=DT(i,a),m=0;m<f;++m)i=n[m],i.x-=o.x,i.y-=o.y;return o.r}function HT(n){return Math.sqrt(n.value)}function LT(){var n=null,a=1,i=1,r=Ug;function o(f){const d=CT();return f.x=a/2,f.y=i/2,n?f.eachBefore(Yg(n)).eachAfter(Gs(r,.5,d)).eachBefore(Bg(1)):f.eachBefore(Yg(HT)).eachAfter(Gs(Ug,1,d)).eachAfter(Gs(r,f.r/Math.min(a,i),d)).eachBefore(Bg(Math.min(a,i)/(2*f.r))),f}return o.radius=function(f){return arguments.length?(n=wT(f),o):n},o.size=function(f){return arguments.length?(a=+f[0],i=+f[1],o):[a,i]},o.padding=function(f){return arguments.length?(r=typeof f=="function"?f:MT(+f),o):r},o}function Yg(n){return function(a){a.children||(a.r=Math.max(0,+n(a)||0))}}function Gs(n,a,i){return function(r){if(o=r.children){var o,f,d=o.length,g=n(r)*a||0,m;if(g)for(f=0;f<d;++f)o[f].r+=g;if(m=jT(o,i),g)for(f=0;f<d;++f)o[f].r-=g;r.r=m+g}}}function Bg(n){return function(a){var i=a.parent;a.r*=n,i&&(a.x=i.x+n*a.x,a.y=i.y+n*a.y)}}function dc(n,a){switch(arguments.length){case 0:break;case 1:this.range(n);break;default:this.range(a).domain(n);break}return this}const qg=Symbol("implicit");function xy(){var n=new sg,a=[],i=[],r=qg;function o(f){let d=n.get(f);if(d===void 0){if(r!==qg)return r;n.set(f,d=a.push(f)-1)}return i[d%i.length]}return o.domain=function(f){if(!arguments.length)return a.slice();a=[],n=new sg;for(const d of f)n.has(d)||n.set(d,a.push(d)-1);return o},o.range=function(f){return arguments.length?(i=Array.from(f),o):i.slice()},o.unknown=function(f){return arguments.length?(r=f,o):r},o.copy=function(){return xy(a,i).unknown(r)},dc.apply(o,arguments),o}function kf(){var n=xy().unknown(void 0),a=n.domain,i=n.range,r=0,o=1,f,d,g=!1,m=0,h=0,v=.5;delete n.unknown;function y(){var x=a().length,w=o<r,k=w?o:r,N=w?r:o;f=(N-k)/Math.max(1,x-m+h*2),g&&(f=Math.floor(f)),k+=(N-k-f*(x-m))*v,d=f*(1-m),g&&(k=Math.round(k),d=Math.round(d));var C=sS(x).map(function(A){return k+f*A});return i(w?C.reverse():C)}return n.domain=function(x){return arguments.length?(a(x),y()):a()},n.range=function(x){return arguments.length?([r,o]=x,r=+r,o=+o,y()):[r,o]},n.rangeRound=function(x){return[r,o]=x,r=+r,o=+o,g=!0,y()},n.bandwidth=function(){return d},n.step=function(){return f},n.round=function(x){return arguments.length?(g=!!x,y()):g},n.padding=function(x){return arguments.length?(m=Math.min(1,h=+x),y()):m},n.paddingInner=function(x){return arguments.length?(m=Math.min(1,x),y()):m},n.paddingOuter=function(x){return arguments.length?(h=+x,y()):h},n.align=function(x){return arguments.length?(v=Math.max(0,Math.min(1,x)),y()):v},n.copy=function(){return kf(a(),[r,o]).round(g).paddingInner(m).paddingOuter(h).align(v)},dc.apply(y(),arguments)}function kT(n){return function(){return n}}function YT(n){return+n}var Gg=[0,1];function Na(n){return n}function vf(n,a){return(a-=n=+n)?function(i){return(i-n)/a}:kT(isNaN(a)?NaN:.5)}function BT(n,a){var i;return n>a&&(i=n,n=a,a=i),function(r){return Math.max(n,Math.min(a,r))}}function qT(n,a,i){var r=n[0],o=n[1],f=a[0],d=a[1];return o<r?(r=vf(o,r),f=i(d,f)):(r=vf(r,o),f=i(f,d)),function(g){return f(r(g))}}function GT(n,a,i){var r=Math.min(n.length,a.length)-1,o=new Array(r),f=new Array(r),d=-1;for(n[r]<n[0]&&(n=n.slice().reverse(),a=a.slice().reverse());++d<r;)o[d]=vf(n[d],n[d+1]),f[d]=i(a[d],a[d+1]);return function(g){var m=tS(n,g,1,r)-1;return f[m](o[m](g))}}function by(n,a){return a.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function XT(){var n=Gg,a=Gg,i=Rf,r,o,f,d=Na,g,m,h;function v(){var x=Math.min(n.length,a.length);return d!==Na&&(d=BT(n[0],n[x-1])),g=x>2?GT:qT,m=h=null,y}function y(x){return x==null||isNaN(x=+x)?f:(m||(m=g(n.map(r),a,i)))(r(d(x)))}return y.invert=function(x){return d(o((h||(h=g(a,n.map(r),We)))(x)))},y.domain=function(x){return arguments.length?(n=Array.from(x,YT),v()):n.slice()},y.range=function(x){return arguments.length?(a=Array.from(x),v()):a.slice()},y.rangeRound=function(x){return a=Array.from(x),i=ww,v()},y.clamp=function(x){return arguments.length?(d=x?!0:Na,v()):d!==Na},y.interpolate=function(x){return arguments.length?(i=x,v()):i},y.unknown=function(x){return arguments.length?(f=x,y):f},function(x,w){return r=x,o=w,v()}}function Sy(){return XT()(Na,Na)}function VT(n,a,i,r){var o=af(n,a,i),f;switch(r=tc(r??",f"),r.type){case"s":{var d=Math.max(Math.abs(n),Math.abs(a));return r.precision==null&&!isNaN(f=eT(o,d))&&(r.precision=f),py(r,d)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(f=nT(o,Math.max(Math.abs(n),Math.abs(a))))&&(r.precision=f-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(f=tT(o))&&(r.precision=f-(r.type==="%")*2);break}}return gy(r)}function QT(n){var a=n.domain;return n.ticks=function(i){var r=a();return cS(r[0],r[r.length-1],i??10)},n.tickFormat=function(i,r){var o=a();return VT(o[0],o[o.length-1],i??10,r)},n.nice=function(i){i==null&&(i=10);var r=a(),o=0,f=r.length-1,d=r[o],g=r[f],m,h,v=10;for(g<d&&(h=d,d=g,g=h,h=o,o=f,f=h);v-- >0;){if(h=lf(d,g,i),h===m)return r[o]=d,r[f]=g,a(r);if(h>0)d=Math.floor(d/h)*h,g=Math.ceil(g/h)*h;else if(h<0)d=Math.ceil(d*h)/h,g=Math.floor(g*h)/h;else break;m=h}return n},n}function _y(){var n=Sy();return n.copy=function(){return by(n,_y())},dc.apply(n,arguments),QT(n)}function ZT(n,a){n=n.slice();var i=0,r=n.length-1,o=n[i],f=n[r],d;return f<o&&(d=i,i=r,r=d,d=o,o=f,f=d),n[i]=a.floor(o),n[r]=a.ceil(f),n}const Xs=new Date,Vs=new Date;function ne(n,a,i,r){function o(f){return n(f=arguments.length===0?new Date:new Date(+f)),f}return o.floor=f=>(n(f=new Date(+f)),f),o.ceil=f=>(n(f=new Date(f-1)),a(f,1),n(f),f),o.round=f=>{const d=o(f),g=o.ceil(f);return f-d<g-f?d:g},o.offset=(f,d)=>(a(f=new Date(+f),d==null?1:Math.floor(d)),f),o.range=(f,d,g)=>{const m=[];if(f=o.ceil(f),g=g==null?1:Math.floor(g),!(f<d)||!(g>0))return m;let h;do m.push(h=new Date(+f)),a(f,g),n(f);while(h<f&&f<d);return m},o.filter=f=>ne(d=>{if(d>=d)for(;n(d),!f(d);)d.setTime(d-1)},(d,g)=>{if(d>=d)if(g<0)for(;++g<=0;)for(;a(d,-1),!f(d););else for(;--g>=0;)for(;a(d,1),!f(d););}),i&&(o.count=(f,d)=>(Xs.setTime(+f),Vs.setTime(+d),n(Xs),n(Vs),Math.floor(i(Xs,Vs))),o.every=f=>(f=Math.floor(f),!isFinite(f)||!(f>0)?null:f>1?o.filter(r?d=>r(d)%f===0:d=>o.count(0,d)%f===0):o)),o}const lc=ne(()=>{},(n,a)=>{n.setTime(+n+a)},(n,a)=>a-n);lc.every=n=>(n=Math.floor(n),!isFinite(n)||!(n>0)?null:n>1?ne(a=>{a.setTime(Math.floor(a/n)*n)},(a,i)=>{a.setTime(+a+i*n)},(a,i)=>(i-a)/n):lc);lc.range;const Rn=1e3,Ze=Rn*60,On=Ze*60,kn=On*24,Yf=kn*7,Xg=kn*30,Qs=kn*365,Da=ne(n=>{n.setTime(n-n.getMilliseconds())},(n,a)=>{n.setTime(+n+a*Rn)},(n,a)=>(a-n)/Rn,n=>n.getUTCSeconds());Da.range;const Bf=ne(n=>{n.setTime(n-n.getMilliseconds()-n.getSeconds()*Rn)},(n,a)=>{n.setTime(+n+a*Ze)},(n,a)=>(a-n)/Ze,n=>n.getMinutes());Bf.range;const $T=ne(n=>{n.setUTCSeconds(0,0)},(n,a)=>{n.setTime(+n+a*Ze)},(n,a)=>(a-n)/Ze,n=>n.getUTCMinutes());$T.range;const qf=ne(n=>{n.setTime(n-n.getMilliseconds()-n.getSeconds()*Rn-n.getMinutes()*Ze)},(n,a)=>{n.setTime(+n+a*On)},(n,a)=>(a-n)/On,n=>n.getHours());qf.range;const KT=ne(n=>{n.setUTCMinutes(0,0,0)},(n,a)=>{n.setTime(+n+a*On)},(n,a)=>(a-n)/On,n=>n.getUTCHours());KT.range;const oi=ne(n=>n.setHours(0,0,0,0),(n,a)=>n.setDate(n.getDate()+a),(n,a)=>(a-n-(a.getTimezoneOffset()-n.getTimezoneOffset())*Ze)/kn,n=>n.getDate()-1);oi.range;const Gf=ne(n=>{n.setUTCHours(0,0,0,0)},(n,a)=>{n.setUTCDate(n.getUTCDate()+a)},(n,a)=>(a-n)/kn,n=>n.getUTCDate()-1);Gf.range;const JT=ne(n=>{n.setUTCHours(0,0,0,0)},(n,a)=>{n.setUTCDate(n.getUTCDate()+a)},(n,a)=>(a-n)/kn,n=>Math.floor(n/kn));JT.range;function Gl(n){return ne(a=>{a.setDate(a.getDate()-(a.getDay()+7-n)%7),a.setHours(0,0,0,0)},(a,i)=>{a.setDate(a.getDate()+i*7)},(a,i)=>(i-a-(i.getTimezoneOffset()-a.getTimezoneOffset())*Ze)/Yf)}const hc=Gl(0),ac=Gl(1),FT=Gl(2),WT=Gl(3),La=Gl(4),IT=Gl(5),PT=Gl(6);hc.range;ac.range;FT.range;WT.range;La.range;IT.range;PT.range;function Xl(n){return ne(a=>{a.setUTCDate(a.getUTCDate()-(a.getUTCDay()+7-n)%7),a.setUTCHours(0,0,0,0)},(a,i)=>{a.setUTCDate(a.getUTCDate()+i*7)},(a,i)=>(i-a)/Yf)}const wy=Xl(0),uc=Xl(1),tM=Xl(2),eM=Xl(3),ka=Xl(4),nM=Xl(5),lM=Xl(6);wy.range;uc.range;tM.range;eM.range;ka.range;nM.range;lM.range;const Xf=ne(n=>{n.setDate(1),n.setHours(0,0,0,0)},(n,a)=>{n.setMonth(n.getMonth()+a)},(n,a)=>a.getMonth()-n.getMonth()+(a.getFullYear()-n.getFullYear())*12,n=>n.getMonth());Xf.range;const aM=ne(n=>{n.setUTCDate(1),n.setUTCHours(0,0,0,0)},(n,a)=>{n.setUTCMonth(n.getUTCMonth()+a)},(n,a)=>a.getUTCMonth()-n.getUTCMonth()+(a.getUTCFullYear()-n.getUTCFullYear())*12,n=>n.getUTCMonth());aM.range;const Yn=ne(n=>{n.setMonth(0,1),n.setHours(0,0,0,0)},(n,a)=>{n.setFullYear(n.getFullYear()+a)},(n,a)=>a.getFullYear()-n.getFullYear(),n=>n.getFullYear());Yn.every=n=>!isFinite(n=Math.floor(n))||!(n>0)?null:ne(a=>{a.setFullYear(Math.floor(a.getFullYear()/n)*n),a.setMonth(0,1),a.setHours(0,0,0,0)},(a,i)=>{a.setFullYear(a.getFullYear()+i*n)});Yn.range;const Bl=ne(n=>{n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},(n,a)=>{n.setUTCFullYear(n.getUTCFullYear()+a)},(n,a)=>a.getUTCFullYear()-n.getUTCFullYear(),n=>n.getUTCFullYear());Bl.every=n=>!isFinite(n=Math.floor(n))||!(n>0)?null:ne(a=>{a.setUTCFullYear(Math.floor(a.getUTCFullYear()/n)*n),a.setUTCMonth(0,1),a.setUTCHours(0,0,0,0)},(a,i)=>{a.setUTCFullYear(a.getUTCFullYear()+i*n)});Bl.range;function uM(n,a,i,r,o,f){const d=[[Da,1,Rn],[Da,5,5*Rn],[Da,15,15*Rn],[Da,30,30*Rn],[f,1,Ze],[f,5,5*Ze],[f,15,15*Ze],[f,30,30*Ze],[o,1,On],[o,3,3*On],[o,6,6*On],[o,12,12*On],[r,1,kn],[r,2,2*kn],[i,1,Yf],[a,1,Xg],[a,3,3*Xg],[n,1,Qs]];function g(h,v,y){const x=v<h;x&&([h,v]=[v,h]);const w=y&&typeof y.range=="function"?y:m(h,v,y),k=w?w.range(h,+v+1):[];return x?k.reverse():k}function m(h,v,y){const x=Math.abs(v-h)/y,w=Ef(([,,C])=>C).right(d,x);if(w===d.length)return n.every(af(h/Qs,v/Qs,y));if(w===0)return lc.every(Math.max(af(h,v,y),1));const[k,N]=d[x/d[w-1][2]<d[w][2]/x?w-1:w];return k.every(N)}return[g,m]}const[iM,rM]=uM(Yn,Xf,hc,oi,qf,Bf);function Zs(n){if(0<=n.y&&n.y<100){var a=new Date(-1,n.m,n.d,n.H,n.M,n.S,n.L);return a.setFullYear(n.y),a}return new Date(n.y,n.m,n.d,n.H,n.M,n.S,n.L)}function $s(n){if(0<=n.y&&n.y<100){var a=new Date(Date.UTC(-1,n.m,n.d,n.H,n.M,n.S,n.L));return a.setUTCFullYear(n.y),a}return new Date(Date.UTC(n.y,n.m,n.d,n.H,n.M,n.S,n.L))}function Gu(n,a,i){return{y:n,m:a,d:i,H:0,M:0,S:0,L:0}}function cM(n){var a=n.dateTime,i=n.date,r=n.time,o=n.periods,f=n.days,d=n.shortDays,g=n.months,m=n.shortMonths,h=Xu(o),v=Vu(o),y=Xu(f),x=Vu(f),w=Xu(d),k=Vu(d),N=Xu(g),C=Vu(g),A=Xu(m),q=Vu(m),L={a:Y,A:F,b:at,B:lt,c:null,d:Jg,e:Jg,f:DM,g:qM,G:XM,H:CM,I:zM,j:NM,L:Ty,m:RM,M:OM,p:S,q:O,Q:Ig,s:Pg,S:UM,u:jM,U:HM,V:LM,w:kM,W:YM,x:null,X:null,y:BM,Y:GM,Z:VM,"%":Wg},J={a:Z,A:I,b:tt,B:ut,c:null,d:Fg,e:Fg,f:KM,g:a4,G:i4,H:QM,I:ZM,j:$M,L:Ey,m:JM,M:FM,p:ct,q:Ct,Q:Ig,s:Pg,S:WM,u:IM,U:PM,V:t4,w:e4,W:n4,x:null,X:null,y:l4,Y:u4,Z:r4,"%":Wg},nt={a:vt,A:_t,b:X,B:ht,c:D,d:$g,e:$g,f:TM,g:Zg,G:Qg,H:Kg,I:Kg,j:bM,L:wM,m:xM,M:SM,p:dt,q:vM,Q:EM,s:AM,S:_M,u:hM,U:mM,V:gM,w:dM,W:pM,x:P,X:M,y:Zg,Y:Qg,Z:yM,"%":MM};L.x=V(i,L),L.X=V(r,L),L.c=V(a,L),J.x=V(i,J),J.X=V(r,J),J.c=V(a,J);function V(et,gt){return function(pt){var W=[],Vt=-1,St=0,Kt=et.length,Yt,ge,fn;for(pt instanceof Date||(pt=new Date(+pt));++Vt<Kt;)et.charCodeAt(Vt)===37&&(W.push(et.slice(St,Vt)),(ge=Vg[Yt=et.charAt(++Vt)])!=null?Yt=et.charAt(++Vt):ge=Yt==="e"?" ":"0",(fn=gt[Yt])&&(Yt=fn(pt,ge)),W.push(Yt),St=Vt+1);return W.push(et.slice(St,Vt)),W.join("")}}function K(et,gt){return function(pt){var W=Gu(1900,void 0,1),Vt=st(W,et,pt+="",0),St,Kt;if(Vt!=pt.length)return null;if("Q"in W)return new Date(W.Q);if("s"in W)return new Date(W.s*1e3+("L"in W?W.L:0));if(gt&&!("Z"in W)&&(W.Z=0),"p"in W&&(W.H=W.H%12+W.p*12),W.m===void 0&&(W.m="q"in W?W.q:0),"V"in W){if(W.V<1||W.V>53)return null;"w"in W||(W.w=1),"Z"in W?(St=$s(Gu(W.y,0,1)),Kt=St.getUTCDay(),St=Kt>4||Kt===0?uc.ceil(St):uc(St),St=Gf.offset(St,(W.V-1)*7),W.y=St.getUTCFullYear(),W.m=St.getUTCMonth(),W.d=St.getUTCDate()+(W.w+6)%7):(St=Zs(Gu(W.y,0,1)),Kt=St.getDay(),St=Kt>4||Kt===0?ac.ceil(St):ac(St),St=oi.offset(St,(W.V-1)*7),W.y=St.getFullYear(),W.m=St.getMonth(),W.d=St.getDate()+(W.w+6)%7)}else("W"in W||"U"in W)&&("w"in W||(W.w="u"in W?W.u%7:"W"in W?1:0),Kt="Z"in W?$s(Gu(W.y,0,1)).getUTCDay():Zs(Gu(W.y,0,1)).getDay(),W.m=0,W.d="W"in W?(W.w+6)%7+W.W*7-(Kt+5)%7:W.w+W.U*7-(Kt+6)%7);return"Z"in W?(W.H+=W.Z/100|0,W.M+=W.Z%100,$s(W)):Zs(W)}}function st(et,gt,pt,W){for(var Vt=0,St=gt.length,Kt=pt.length,Yt,ge;Vt<St;){if(W>=Kt)return-1;if(Yt=gt.charCodeAt(Vt++),Yt===37){if(Yt=gt.charAt(Vt++),ge=nt[Yt in Vg?gt.charAt(Vt++):Yt],!ge||(W=ge(et,pt,W))<0)return-1}else if(Yt!=pt.charCodeAt(W++))return-1}return W}function dt(et,gt,pt){var W=h.exec(gt.slice(pt));return W?(et.p=v.get(W[0].toLowerCase()),pt+W[0].length):-1}function vt(et,gt,pt){var W=w.exec(gt.slice(pt));return W?(et.w=k.get(W[0].toLowerCase()),pt+W[0].length):-1}function _t(et,gt,pt){var W=y.exec(gt.slice(pt));return W?(et.w=x.get(W[0].toLowerCase()),pt+W[0].length):-1}function X(et,gt,pt){var W=A.exec(gt.slice(pt));return W?(et.m=q.get(W[0].toLowerCase()),pt+W[0].length):-1}function ht(et,gt,pt){var W=N.exec(gt.slice(pt));return W?(et.m=C.get(W[0].toLowerCase()),pt+W[0].length):-1}function D(et,gt,pt){return st(et,a,gt,pt)}function P(et,gt,pt){return st(et,i,gt,pt)}function M(et,gt,pt){return st(et,r,gt,pt)}function Y(et){return d[et.getDay()]}function F(et){return f[et.getDay()]}function at(et){return m[et.getMonth()]}function lt(et){return g[et.getMonth()]}function S(et){return o[+(et.getHours()>=12)]}function O(et){return 1+~~(et.getMonth()/3)}function Z(et){return d[et.getUTCDay()]}function I(et){return f[et.getUTCDay()]}function tt(et){return m[et.getUTCMonth()]}function ut(et){return g[et.getUTCMonth()]}function ct(et){return o[+(et.getUTCHours()>=12)]}function Ct(et){return 1+~~(et.getUTCMonth()/3)}return{format:function(et){var gt=V(et+="",L);return gt.toString=function(){return et},gt},parse:function(et){var gt=K(et+="",!1);return gt.toString=function(){return et},gt},utcFormat:function(et){var gt=V(et+="",J);return gt.toString=function(){return et},gt},utcParse:function(et){var gt=K(et+="",!0);return gt.toString=function(){return et},gt}}}var Vg={"-":"",_:" ",0:"0"},ie=/^\s*\d+/,oM=/^%/,sM=/[\\^$*+?|[\]().{}]/g;function Dt(n,a,i){var r=n<0?"-":"",o=(r?-n:n)+"",f=o.length;return r+(f<i?new Array(i-f+1).join(a)+o:o)}function fM(n){return n.replace(sM,"\\$&")}function Xu(n){return new RegExp("^(?:"+n.map(fM).join("|")+")","i")}function Vu(n){return new Map(n.map((a,i)=>[a.toLowerCase(),i]))}function dM(n,a,i){var r=ie.exec(a.slice(i,i+1));return r?(n.w=+r[0],i+r[0].length):-1}function hM(n,a,i){var r=ie.exec(a.slice(i,i+1));return r?(n.u=+r[0],i+r[0].length):-1}function mM(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.U=+r[0],i+r[0].length):-1}function gM(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.V=+r[0],i+r[0].length):-1}function pM(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.W=+r[0],i+r[0].length):-1}function Qg(n,a,i){var r=ie.exec(a.slice(i,i+4));return r?(n.y=+r[0],i+r[0].length):-1}function Zg(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.y=+r[0]+(+r[0]>68?1900:2e3),i+r[0].length):-1}function yM(n,a,i){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(a.slice(i,i+6));return r?(n.Z=r[1]?0:-(r[2]+(r[3]||"00")),i+r[0].length):-1}function vM(n,a,i){var r=ie.exec(a.slice(i,i+1));return r?(n.q=r[0]*3-3,i+r[0].length):-1}function xM(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.m=r[0]-1,i+r[0].length):-1}function $g(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.d=+r[0],i+r[0].length):-1}function bM(n,a,i){var r=ie.exec(a.slice(i,i+3));return r?(n.m=0,n.d=+r[0],i+r[0].length):-1}function Kg(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.H=+r[0],i+r[0].length):-1}function SM(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.M=+r[0],i+r[0].length):-1}function _M(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.S=+r[0],i+r[0].length):-1}function wM(n,a,i){var r=ie.exec(a.slice(i,i+3));return r?(n.L=+r[0],i+r[0].length):-1}function TM(n,a,i){var r=ie.exec(a.slice(i,i+6));return r?(n.L=Math.floor(r[0]/1e3),i+r[0].length):-1}function MM(n,a,i){var r=oM.exec(a.slice(i,i+1));return r?i+r[0].length:-1}function EM(n,a,i){var r=ie.exec(a.slice(i));return r?(n.Q=+r[0],i+r[0].length):-1}function AM(n,a,i){var r=ie.exec(a.slice(i));return r?(n.s=+r[0],i+r[0].length):-1}function Jg(n,a){return Dt(n.getDate(),a,2)}function CM(n,a){return Dt(n.getHours(),a,2)}function zM(n,a){return Dt(n.getHours()%12||12,a,2)}function NM(n,a){return Dt(1+oi.count(Yn(n),n),a,3)}function Ty(n,a){return Dt(n.getMilliseconds(),a,3)}function DM(n,a){return Ty(n,a)+"000"}function RM(n,a){return Dt(n.getMonth()+1,a,2)}function OM(n,a){return Dt(n.getMinutes(),a,2)}function UM(n,a){return Dt(n.getSeconds(),a,2)}function jM(n){var a=n.getDay();return a===0?7:a}function HM(n,a){return Dt(hc.count(Yn(n)-1,n),a,2)}function My(n){var a=n.getDay();return a>=4||a===0?La(n):La.ceil(n)}function LM(n,a){return n=My(n),Dt(La.count(Yn(n),n)+(Yn(n).getDay()===4),a,2)}function kM(n){return n.getDay()}function YM(n,a){return Dt(ac.count(Yn(n)-1,n),a,2)}function BM(n,a){return Dt(n.getFullYear()%100,a,2)}function qM(n,a){return n=My(n),Dt(n.getFullYear()%100,a,2)}function GM(n,a){return Dt(n.getFullYear()%1e4,a,4)}function XM(n,a){var i=n.getDay();return n=i>=4||i===0?La(n):La.ceil(n),Dt(n.getFullYear()%1e4,a,4)}function VM(n){var a=n.getTimezoneOffset();return(a>0?"-":(a*=-1,"+"))+Dt(a/60|0,"0",2)+Dt(a%60,"0",2)}function Fg(n,a){return Dt(n.getUTCDate(),a,2)}function QM(n,a){return Dt(n.getUTCHours(),a,2)}function ZM(n,a){return Dt(n.getUTCHours()%12||12,a,2)}function $M(n,a){return Dt(1+Gf.count(Bl(n),n),a,3)}function Ey(n,a){return Dt(n.getUTCMilliseconds(),a,3)}function KM(n,a){return Ey(n,a)+"000"}function JM(n,a){return Dt(n.getUTCMonth()+1,a,2)}function FM(n,a){return Dt(n.getUTCMinutes(),a,2)}function WM(n,a){return Dt(n.getUTCSeconds(),a,2)}function IM(n){var a=n.getUTCDay();return a===0?7:a}function PM(n,a){return Dt(wy.count(Bl(n)-1,n),a,2)}function Ay(n){var a=n.getUTCDay();return a>=4||a===0?ka(n):ka.ceil(n)}function t4(n,a){return n=Ay(n),Dt(ka.count(Bl(n),n)+(Bl(n).getUTCDay()===4),a,2)}function e4(n){return n.getUTCDay()}function n4(n,a){return Dt(uc.count(Bl(n)-1,n),a,2)}function l4(n,a){return Dt(n.getUTCFullYear()%100,a,2)}function a4(n,a){return n=Ay(n),Dt(n.getUTCFullYear()%100,a,2)}function u4(n,a){return Dt(n.getUTCFullYear()%1e4,a,4)}function i4(n,a){var i=n.getUTCDay();return n=i>=4||i===0?ka(n):ka.ceil(n),Dt(n.getUTCFullYear()%1e4,a,4)}function r4(){return"+0000"}function Wg(){return"%"}function Ig(n){return+n}function Pg(n){return Math.floor(+n/1e3)}var za,Vf,Cy;c4({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function c4(n){return za=cM(n),Vf=za.format,Cy=za.parse,za.utcFormat,za.utcParse,za}function o4(n){return new Date(n)}function s4(n){return n instanceof Date?+n:+new Date(+n)}function zy(n,a,i,r,o,f,d,g,m,h){var v=Sy(),y=v.invert,x=v.domain,w=h(".%L"),k=h(":%S"),N=h("%I:%M"),C=h("%I %p"),A=h("%a %d"),q=h("%b %d"),L=h("%B"),J=h("%Y");function nt(V){return(m(V)<V?w:g(V)<V?k:d(V)<V?N:f(V)<V?C:r(V)<V?o(V)<V?A:q:i(V)<V?L:J)(V)}return v.invert=function(V){return new Date(y(V))},v.domain=function(V){return arguments.length?x(Array.from(V,s4)):x().map(o4)},v.ticks=function(V){var K=x();return n(K[0],K[K.length-1],V??10)},v.tickFormat=function(V,K){return K==null?nt:h(K)},v.nice=function(V){var K=x();return(!V||typeof V.range!="function")&&(V=a(K[0],K[K.length-1],V??10)),V?x(ZT(K,V)):v},v.copy=function(){return by(v,zy(n,a,i,r,o,f,d,g,m,h))},v}function Qf(){return dc.apply(zy(iM,rM,Yn,Xf,hc,oi,qf,Bf,Da,Vf).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ue(n){return function(){return n}}function Ny(n){let a=3;return n.digits=function(i){if(!arguments.length)return a;if(i==null)a=null;else{const r=Math.floor(i);if(!(r>=0))throw new RangeError(`invalid digits: ${i}`);a=r}return n},()=>new Q3(a)}function Dy(n){return typeof n=="object"&&"length"in n?n:Array.from(n)}function Ry(n){this._context=n}Ry.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(n,a){switch(n=+n,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(n,a):this._context.moveTo(n,a);break;case 1:this._point=2;default:this._context.lineTo(n,a);break}}};function Oy(n){return new Ry(n)}function Uy(n){return n[0]}function jy(n){return n[1]}function Hy(n,a){var i=ue(!0),r=null,o=Oy,f=null,d=Ny(g);n=typeof n=="function"?n:n===void 0?Uy:ue(n),a=typeof a=="function"?a:a===void 0?jy:ue(a);function g(m){var h,v=(m=Dy(m)).length,y,x=!1,w;for(r==null&&(f=o(w=d())),h=0;h<=v;++h)!(h<v&&i(y=m[h],h,m))===x&&((x=!x)?f.lineStart():f.lineEnd()),x&&f.point(+n(y,h,m),+a(y,h,m));if(w)return f=null,w+""||null}return g.x=function(m){return arguments.length?(n=typeof m=="function"?m:ue(+m),g):n},g.y=function(m){return arguments.length?(a=typeof m=="function"?m:ue(+m),g):a},g.defined=function(m){return arguments.length?(i=typeof m=="function"?m:ue(!!m),g):i},g.curve=function(m){return arguments.length?(o=m,r!=null&&(f=o(r)),g):o},g.context=function(m){return arguments.length?(m==null?r=f=null:f=o(r=m),g):r},g}function f4(n,a,i){var r=null,o=ue(!0),f=null,d=Oy,g=null,m=Ny(h);n=typeof n=="function"?n:n===void 0?Uy:ue(+n),a=typeof a=="function"?a:ue(a===void 0?0:+a),i=typeof i=="function"?i:i===void 0?jy:ue(+i);function h(y){var x,w,k,N=(y=Dy(y)).length,C,A=!1,q,L=new Array(N),J=new Array(N);for(f==null&&(g=d(q=m())),x=0;x<=N;++x){if(!(x<N&&o(C=y[x],x,y))===A)if(A=!A)w=x,g.areaStart(),g.lineStart();else{for(g.lineEnd(),g.lineStart(),k=x-1;k>=w;--k)g.point(L[k],J[k]);g.lineEnd(),g.areaEnd()}A&&(L[x]=+n(C,x,y),J[x]=+a(C,x,y),g.point(r?+r(C,x,y):L[x],i?+i(C,x,y):J[x]))}if(q)return g=null,q+""||null}function v(){return Hy().defined(o).curve(d).context(f)}return h.x=function(y){return arguments.length?(n=typeof y=="function"?y:ue(+y),r=null,h):n},h.x0=function(y){return arguments.length?(n=typeof y=="function"?y:ue(+y),h):n},h.x1=function(y){return arguments.length?(r=y==null?null:typeof y=="function"?y:ue(+y),h):r},h.y=function(y){return arguments.length?(a=typeof y=="function"?y:ue(+y),i=null,h):a},h.y0=function(y){return arguments.length?(a=typeof y=="function"?y:ue(+y),h):a},h.y1=function(y){return arguments.length?(i=y==null?null:typeof y=="function"?y:ue(+y),h):i},h.lineX0=h.lineY0=function(){return v().x(n).y(a)},h.lineY1=function(){return v().x(n).y(i)},h.lineX1=function(){return v().x(r).y(a)},h.defined=function(y){return arguments.length?(o=typeof y=="function"?y:ue(!!y),h):o},h.curve=function(y){return arguments.length?(d=y,f!=null&&(g=d(f)),h):d},h.context=function(y){return arguments.length?(y==null?f=g=null:g=d(f=y),h):f},h}function tp(n){return n<0?-1:1}function ep(n,a,i){var r=n._x1-n._x0,o=a-n._x1,f=(n._y1-n._y0)/(r||o<0&&-0),d=(i-n._y1)/(o||r<0&&-0),g=(f*o+d*r)/(r+o);return(tp(f)+tp(d))*Math.min(Math.abs(f),Math.abs(d),.5*Math.abs(g))||0}function np(n,a){var i=n._x1-n._x0;return i?(3*(n._y1-n._y0)/i-a)/2:a}function Ks(n,a,i){var r=n._x0,o=n._y0,f=n._x1,d=n._y1,g=(f-r)/3;n._context.bezierCurveTo(r+g,o+g*a,f-g,d-g*i,f,d)}function ic(n){this._context=n}ic.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Ks(this,this._t0,np(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(n,a){var i=NaN;if(n=+n,a=+a,!(n===this._x1&&a===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(n,a):this._context.moveTo(n,a);break;case 1:this._point=2;break;case 2:this._point=3,Ks(this,np(this,i=ep(this,n,a)),i);break;default:Ks(this,this._t0,i=ep(this,n,a));break}this._x0=this._x1,this._x1=n,this._y0=this._y1,this._y1=a,this._t0=i}}};Object.create(ic.prototype).point=function(n,a){ic.prototype.point.call(this,a,n)};function lp(n){return new ic(n)}const jr=n=>()=>n;function d4(n,{sourceEvent:a,target:i,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:n,enumerable:!0,configurable:!0},sourceEvent:{value:a,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function Un(n,a,i){this.k=n,this.x=a,this.y=i}Un.prototype={constructor:Un,scale:function(n){return n===1?this:new Un(this.k*n,this.x,this.y)},translate:function(n,a){return n===0&a===0?this:new Un(this.k,this.x+this.k*n,this.y+this.k*a)},apply:function(n){return[n[0]*this.k+this.x,n[1]*this.k+this.y]},applyX:function(n){return n*this.k+this.x},applyY:function(n){return n*this.k+this.y},invert:function(n){return[(n[0]-this.x)/this.k,(n[1]-this.y)/this.k]},invertX:function(n){return(n-this.x)/this.k},invertY:function(n){return(n-this.y)/this.k},rescaleX:function(n){return n.copy().domain(n.range().map(this.invertX,this).map(n.invert,n))},rescaleY:function(n){return n.copy().domain(n.range().map(this.invertY,this).map(n.invert,n))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ly=new Un(1,0,0);Un.prototype;function Js(n){n.stopImmediatePropagation()}function Qu(n){n.preventDefault(),n.stopImmediatePropagation()}function h4(n){return(!n.ctrlKey||n.type==="wheel")&&!n.button}function m4(){var n=this;return n instanceof SVGElement?(n=n.ownerSVGElement||n,n.hasAttribute("viewBox")?(n=n.viewBox.baseVal,[[n.x,n.y],[n.x+n.width,n.y+n.height]]):[[0,0],[n.width.baseVal.value,n.height.baseVal.value]]):[[0,0],[n.clientWidth,n.clientHeight]]}function ap(){return this.__zoom||Ly}function g4(n){return-n.deltaY*(n.deltaMode===1?.05:n.deltaMode?1:.002)*(n.ctrlKey?10:1)}function p4(){return navigator.maxTouchPoints||"ontouchstart"in this}function y4(n,a,i){var r=n.invertX(a[0][0])-i[0][0],o=n.invertX(a[1][0])-i[1][0],f=n.invertY(a[0][1])-i[0][1],d=n.invertY(a[1][1])-i[1][1];return n.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),d>f?(f+d)/2:Math.min(0,f)||Math.max(0,d))}function ky(){var n=h4,a=m4,i=y4,r=g4,o=p4,f=[0,1/0],d=[[-1/0,-1/0],[1/0,1/0]],g=250,m=Dw,h=Af("start","zoom","end"),v,y,x,w=500,k=150,N=0,C=10;function A(D){D.property("__zoom",ap).on("wheel.zoom",st,{passive:!1}).on("mousedown.zoom",dt).on("dblclick.zoom",vt).filter(o).on("touchstart.zoom",_t).on("touchmove.zoom",X).on("touchend.zoom touchcancel.zoom",ht).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}A.transform=function(D,P,M,Y){var F=D.selection?D.selection():D;F.property("__zoom",ap),D!==F?nt(D,P,M,Y):F.interrupt().each(function(){V(this,arguments).event(Y).start().zoom(null,typeof P=="function"?P.apply(this,arguments):P).end()})},A.scaleBy=function(D,P,M,Y){A.scaleTo(D,function(){var F=this.__zoom.k,at=typeof P=="function"?P.apply(this,arguments):P;return F*at},M,Y)},A.scaleTo=function(D,P,M,Y){A.transform(D,function(){var F=a.apply(this,arguments),at=this.__zoom,lt=M==null?J(F):typeof M=="function"?M.apply(this,arguments):M,S=at.invert(lt),O=typeof P=="function"?P.apply(this,arguments):P;return i(L(q(at,O),lt,S),F,d)},M,Y)},A.translateBy=function(D,P,M,Y){A.transform(D,function(){return i(this.__zoom.translate(typeof P=="function"?P.apply(this,arguments):P,typeof M=="function"?M.apply(this,arguments):M),a.apply(this,arguments),d)},null,Y)},A.translateTo=function(D,P,M,Y,F){A.transform(D,function(){var at=a.apply(this,arguments),lt=this.__zoom,S=Y==null?J(at):typeof Y=="function"?Y.apply(this,arguments):Y;return i(Ly.translate(S[0],S[1]).scale(lt.k).translate(typeof P=="function"?-P.apply(this,arguments):-P,typeof M=="function"?-M.apply(this,arguments):-M),at,d)},Y,F)};function q(D,P){return P=Math.max(f[0],Math.min(f[1],P)),P===D.k?D:new Un(P,D.x,D.y)}function L(D,P,M){var Y=P[0]-M[0]*D.k,F=P[1]-M[1]*D.k;return Y===D.x&&F===D.y?D:new Un(D.k,Y,F)}function J(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function nt(D,P,M,Y){D.on("start.zoom",function(){V(this,arguments).event(Y).start()}).on("interrupt.zoom end.zoom",function(){V(this,arguments).event(Y).end()}).tween("zoom",function(){var F=this,at=arguments,lt=V(F,at).event(Y),S=a.apply(F,at),O=M==null?J(S):typeof M=="function"?M.apply(F,at):M,Z=Math.max(S[1][0]-S[0][0],S[1][1]-S[0][1]),I=F.__zoom,tt=typeof P=="function"?P.apply(F,at):P,ut=m(I.invert(O).concat(Z/I.k),tt.invert(O).concat(Z/tt.k));return function(ct){if(ct===1)ct=tt;else{var Ct=ut(ct),et=Z/Ct[2];ct=new Un(et,O[0]-Ct[0]*et,O[1]-Ct[1]*et)}lt.zoom(null,ct)}})}function V(D,P,M){return!M&&D.__zooming||new K(D,P)}function K(D,P){this.that=D,this.args=P,this.active=0,this.sourceEvent=null,this.extent=a.apply(D,P),this.taps=0}K.prototype={event:function(D){return D&&(this.sourceEvent=D),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(D,P){return this.mouse&&D!=="mouse"&&(this.mouse[1]=P.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=P.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=P.invert(this.touch1[0])),this.that.__zoom=P,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var P=Ue(this.that).datum();h.call(D,this.that,new d4(D,{sourceEvent:this.sourceEvent,target:A,transform:this.that.__zoom,dispatch:h}),P)}};function st(D,...P){if(!n.apply(this,arguments))return;var M=V(this,P).event(D),Y=this.__zoom,F=Math.max(f[0],Math.min(f[1],Y.k*Math.pow(2,r.apply(this,arguments)))),at=Ol(D);if(M.wheel)(M.mouse[0][0]!==at[0]||M.mouse[0][1]!==at[1])&&(M.mouse[1]=Y.invert(M.mouse[0]=at)),clearTimeout(M.wheel);else{if(Y.k===F)return;M.mouse=[at,Y.invert(at)],Xr(this),M.start()}Qu(D),M.wheel=setTimeout(lt,k),M.zoom("mouse",i(L(q(Y,F),M.mouse[0],M.mouse[1]),M.extent,d));function lt(){M.wheel=null,M.end()}}function dt(D,...P){if(x||!n.apply(this,arguments))return;var M=D.currentTarget,Y=V(this,P,!0).event(D),F=Ue(D.view).on("mousemove.zoom",O,!0).on("mouseup.zoom",Z,!0),at=Ol(D,M),lt=D.clientX,S=D.clientY;P_(D.view),Js(D),Y.mouse=[at,this.__zoom.invert(at)],Xr(this),Y.start();function O(I){if(Qu(I),!Y.moved){var tt=I.clientX-lt,ut=I.clientY-S;Y.moved=tt*tt+ut*ut>N}Y.event(I).zoom("mouse",i(L(Y.that.__zoom,Y.mouse[0]=Ol(I,M),Y.mouse[1]),Y.extent,d))}function Z(I){F.on("mousemove.zoom mouseup.zoom",null),tw(I.view,Y.moved),Qu(I),Y.event(I).end()}}function vt(D,...P){if(n.apply(this,arguments)){var M=this.__zoom,Y=Ol(D.changedTouches?D.changedTouches[0]:D,this),F=M.invert(Y),at=M.k*(D.shiftKey?.5:2),lt=i(L(q(M,at),Y,F),a.apply(this,P),d);Qu(D),g>0?Ue(this).transition().duration(g).call(nt,lt,Y,D):Ue(this).call(A.transform,lt,Y,D)}}function _t(D,...P){if(n.apply(this,arguments)){var M=D.touches,Y=M.length,F=V(this,P,D.changedTouches.length===Y).event(D),at,lt,S,O;for(Js(D),lt=0;lt<Y;++lt)S=M[lt],O=Ol(S,this),O=[O,this.__zoom.invert(O),S.identifier],F.touch0?!F.touch1&&F.touch0[2]!==O[2]&&(F.touch1=O,F.taps=0):(F.touch0=O,at=!0,F.taps=1+!!v);v&&(v=clearTimeout(v)),at&&(F.taps<2&&(y=O[0],v=setTimeout(function(){v=null},w)),Xr(this),F.start())}}function X(D,...P){if(this.__zooming){var M=V(this,P).event(D),Y=D.changedTouches,F=Y.length,at,lt,S,O;for(Qu(D),at=0;at<F;++at)lt=Y[at],S=Ol(lt,this),M.touch0&&M.touch0[2]===lt.identifier?M.touch0[0]=S:M.touch1&&M.touch1[2]===lt.identifier&&(M.touch1[0]=S);if(lt=M.that.__zoom,M.touch1){var Z=M.touch0[0],I=M.touch0[1],tt=M.touch1[0],ut=M.touch1[1],ct=(ct=tt[0]-Z[0])*ct+(ct=tt[1]-Z[1])*ct,Ct=(Ct=ut[0]-I[0])*Ct+(Ct=ut[1]-I[1])*Ct;lt=q(lt,Math.sqrt(ct/Ct)),S=[(Z[0]+tt[0])/2,(Z[1]+tt[1])/2],O=[(I[0]+ut[0])/2,(I[1]+ut[1])/2]}else if(M.touch0)S=M.touch0[0],O=M.touch0[1];else return;M.zoom("touch",i(L(lt,S,O),M.extent,d))}}function ht(D,...P){if(this.__zooming){var M=V(this,P).event(D),Y=D.changedTouches,F=Y.length,at,lt;for(Js(D),x&&clearTimeout(x),x=setTimeout(function(){x=null},w),at=0;at<F;++at)lt=Y[at],M.touch0&&M.touch0[2]===lt.identifier?delete M.touch0:M.touch1&&M.touch1[2]===lt.identifier&&delete M.touch1;if(M.touch1&&!M.touch0&&(M.touch0=M.touch1,delete M.touch1),M.touch0)M.touch0[1]=this.__zoom.invert(M.touch0[0]);else if(M.end(),M.taps===2&&(lt=Ol(lt,this),Math.hypot(y[0]-lt[0],y[1]-lt[1])<C)){var S=Ue(this).on("dblclick.zoom");S&&S.apply(this,arguments)}}}return A.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:jr(+D),A):r},A.filter=function(D){return arguments.length?(n=typeof D=="function"?D:jr(!!D),A):n},A.touchable=function(D){return arguments.length?(o=typeof D=="function"?D:jr(!!D),A):o},A.extent=function(D){return arguments.length?(a=typeof D=="function"?D:jr([[+D[0][0],+D[0][1]],[+D[1][0],+D[1][1]]]),A):a},A.scaleExtent=function(D){return arguments.length?(f[0]=+D[0],f[1]=+D[1],A):[f[0],f[1]]},A.translateExtent=function(D){return arguments.length?(d[0][0]=+D[0][0],d[1][0]=+D[1][0],d[0][1]=+D[0][1],d[1][1]=+D[1][1],A):[[d[0][0],d[0][1]],[d[1][0],d[1][1]]]},A.constrain=function(D){return arguments.length?(i=D,A):i},A.duration=function(D){return arguments.length?(g=+D,A):g},A.interpolate=function(D){return arguments.length?(m=D,A):m},A.on=function(){var D=h.on.apply(h,arguments);return D===h?A:D},A.clickDistance=function(D){return arguments.length?(N=(D=+D)*D,A):Math.sqrt(N)},A.tapDistance=function(D){return arguments.length?(C=+D,A):C},A}function v4({data:n}){const a=R.useRef(null);return R.useEffect(()=>{if(!a.current||n.length===0)return;const i=Ue(a.current);i.selectAll("*").remove();const r=a.current.parentElement;if(!r)return;const o=r.clientWidth,f=250,d={top:20,right:20,bottom:40,left:50},g=o-d.left-d.right,m=f-d.top-d.bottom;i.attr("width",o).attr("height",f);const h=i.append("g").attr("transform",`translate(${d.left},${d.top})`),v=Cy("%Y-%m-%d"),y=n.map(K=>({date:v(K.week),count:K.count})),[x,w]=eS(y,K=>K.date),k=x.getTime()===w.getTime()?10080*60*1e3:0,N=Qf().domain([new Date(x.getTime()-k),new Date(w.getTime()+k)]).range([0,g]),C=_y().domain([0,oS(y,K=>K.count)??0]).nice().range([m,0]),A=getComputedStyle(document.documentElement),q=A.getPropertyValue("--muted-fg").trim()||"#94a3b8",L=A.getPropertyValue("--accent-color").trim()||"#10b981",J=A.getPropertyValue("--border-color").trim()||"#334155";h.append("g").attr("transform",`translate(0,${m})`).call(Pu(N).ticks(6).tickFormat(Vf("%b %y"))).attr("color",q).selectAll("line").attr("stroke",J),h.append("g").call(Gp(C).ticks(5)).attr("color",q).selectAll("line").attr("stroke",J);const nt=f4().x(K=>N(K.date)).y0(m).y1(K=>C(K.count)).curve(lp);h.append("path").datum(y).attr("fill",L).attr("fill-opacity",.15).attr("d",nt);const V=Hy().x(K=>N(K.date)).y(K=>C(K.count)).curve(lp);h.append("path").datum(y).attr("fill","none").attr("stroke",L).attr("stroke-width",2).attr("d",V)},[n]),_.jsx("svg",{ref:a,className:"w-full"})}const up=n=>typeof n=="boolean"?`${n}`:n===0?"0":n,ip=jp,x4=(n,a)=>i=>{var r;if((a==null?void 0:a.variants)==null)return ip(n,i==null?void 0:i.class,i==null?void 0:i.className);const{variants:o,defaultVariants:f}=a,d=Object.keys(o).map(h=>{const v=i==null?void 0:i[h],y=f==null?void 0:f[h];if(v===null)return null;const x=up(v)||up(y);return o[h][x]}),g=i&&Object.entries(i).reduce((h,v)=>{let[y,x]=v;return x===void 0||(h[y]=x),h},{}),m=a==null||(r=a.compoundVariants)===null||r===void 0?void 0:r.reduce((h,v)=>{let{class:y,className:x,...w}=v;return Object.entries(w).every(k=>{let[N,C]=k;return Array.isArray(C)?C.includes({...f,...g}[N]):{...f,...g}[N]===C})?[...h,y,x]:h},[]);return ip(n,d,m,i==null?void 0:i.class,i==null?void 0:i.className)},b4=x4("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors",{variants:{variant:{default:"border-transparent bg-accent text-accent-foreground",secondary:"border-transparent bg-muted text-muted-foreground",outline:"border-border text-foreground"}},defaultVariants:{variant:"default"}});function Bn({className:n,variant:a,...i}){return _.jsx("div",{className:tn(b4({variant:a}),n),...i})}function S4(){const{data:n,loading:a}=Pe("/api/stats"),{data:i}=Pe("/api/chunks?limit=10");return a||!n?_.jsx(ii,{}):_.jsxs("div",{className:"space-y-6 animate-fade-in",children:[_.jsx("h1",{className:"text-2xl font-bold",children:"Overview"}),_.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[_.jsx(Cr,{label:"Chunks",value:n.chunks,icon:_.jsx(i2,{className:"h-5 w-5"})}),_.jsx(Cr,{label:"Edges",value:n.edges,icon:_.jsx(u2,{className:"h-5 w-5"})}),_.jsx(Cr,{label:"Clusters",value:n.clusters,icon:_.jsx(Dp,{className:"h-5 w-5"})}),_.jsx(Cr,{label:"Sessions",value:n.sessions,icon:_.jsx(Rp,{className:"h-5 w-5"})})]}),n.chunkTimeSeries.length>0&&_.jsxs(Wu,{children:[_.jsx(ef,{children:_.jsx(nf,{children:"Chunks Over Time"})}),_.jsx(Iu,{children:_.jsx(v4,{data:n.chunkTimeSeries})})]}),(i==null?void 0:i.chunks)&&i.chunks.length>0&&_.jsxs(Wu,{children:[_.jsx(ef,{children:_.jsx(nf,{children:"Recent Activity"})}),_.jsx(Iu,{children:_.jsx("div",{className:"space-y-3",children:i.chunks.map(r=>_.jsxs("div",{className:"flex items-start gap-3 rounded-md border border-border p-3",children:[_.jsxs("div",{className:"flex-1 min-w-0",children:[_.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[_.jsx(Bn,{variant:"secondary",children:r.sessionSlug}),_.jsx("span",{className:"text-xs text-muted-foreground",children:new Date(r.startTime).toLocaleDateString()})]}),_.jsx("p",{className:"text-sm text-muted-foreground truncate",children:r.preview})]}),_.jsxs("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:[r.tokenCount," tokens"]})]},r.id))})})]})]})}function _4({className:n,options:a,placeholder:i,...r}){return _.jsxs("select",{className:tn("flex h-10 w-full rounded-md border border-border bg-background px-3 py-2 text-sm","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",n),...r,children:[i&&_.jsx("option",{value:"",children:i}),a.map(o=>_.jsx("option",{value:o.value,children:o.label},o.value))]})}const Ya=["#10b981","#06b6d4","#8b5cf6","#f59e0b","#ef4444","#ec4899","#14b8a6","#f97316","#6366f1","#84cc16","#0ea5e9","#d946ef","#22c55e","#eab308","#a855f7"];function w4({clusters:n,activeClusterIds:a,unclusteredCount:i}){var k;const r=R.useRef(null),[o,f]=R.useState({visible:!1,cluster:null,anchorRect:null}),d=new Map(n.map(N=>[N.id,N])),m=[...a.map(N=>({id:N,info:d.get(N)})).sort((N,C)=>{var A,q;return(((A=C.info)==null?void 0:A.memberCount)??0)-(((q=N.info)==null?void 0:q.memberCount)??0)}).map((N,C)=>{var A,q;return{key:N.id,color:Ya[C%Ya.length],name:((A=N.info)==null?void 0:A.name)??`Topic ${C+1}`,count:((q=N.info)==null?void 0:q.memberCount)??0,info:N.info??null}}),...i>0?[{key:"_unclustered",color:"#64748b",name:"Unclustered",count:i,info:null}]:[]],h=(N,C)=>{const A=N.currentTarget.getBoundingClientRect();f({visible:!0,cluster:C,anchorRect:A})},v=()=>{f({visible:!1,cluster:null,anchorRect:null})},y=(k=r.current)==null?void 0:k.getBoundingClientRect(),x=o.anchorRect&&y?Math.min(o.anchorRect.left-y.left,y.width-296):0,w=o.anchorRect&&y?o.anchorRect.bottom-y.top+6:0;return _.jsxs("div",{ref:r,className:"relative rounded-lg border border-border bg-card px-4 py-2.5",children:[_.jsx("div",{className:"text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:"Topic Clusters"}),_.jsx("div",{className:"grid gap-x-6 gap-y-1",style:{gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))"},children:m.map(N=>_.jsxs("div",{className:"flex items-center gap-2 text-xs cursor-default hover:bg-muted/50 rounded px-1.5 py-0.5 transition-colors min-w-0",onMouseEnter:N.info?C=>h(C,N.info):void 0,onMouseLeave:v,children:[_.jsx("span",{className:"inline-block w-2.5 h-2.5 rounded-full shrink-0",style:{backgroundColor:N.color}}),_.jsx("span",{className:"text-foreground truncate",children:N.name}),_.jsx("span",{className:"text-muted-foreground tabular-nums ml-auto shrink-0",children:N.count})]},N.key))}),o.visible&&o.cluster&&_.jsxs("div",{className:"absolute z-50 rounded-md border border-border/80 bg-card/50 backdrop-blur-md px-3 py-2.5 text-xs shadow-lg w-72 pointer-events-none",style:{left:Math.max(0,x),top:w},children:[_.jsx("div",{className:"font-semibold text-foreground mb-1",children:o.cluster.name??"Unnamed"}),o.cluster.description&&_.jsx("p",{className:"text-muted-foreground mb-2 leading-relaxed",children:o.cluster.description}),_.jsx("div",{className:"flex gap-4 text-muted-foreground",children:_.jsxs("div",{children:["Members: ",_.jsx("span",{className:"text-foreground tabular-nums",children:o.cluster.memberCount})]})})]})]})}function T4({chunks:n,edges:a,timeRange:i,onChunkClick:r,selectedChunkId:o,clusters:f}){const d=R.useRef(null),g=[...new Set(n.map(x=>x.clusterId).filter(Boolean))],m=new Map((f??[]).map(x=>[x.id,x])),h=g.map(x=>({id:x,info:m.get(x)})).sort((x,w)=>{var k,N;return(((k=w.info)==null?void 0:k.memberCount)??0)-(((N=x.info)==null?void 0:N.memberCount)??0)}),v=new Map(h.map((x,w)=>[x.id,w]));function y(x){if(!x)return"#64748b";const w=v.get(x);return w===void 0?"#64748b":Ya[w%Ya.length]}return R.useEffect(()=>{var _t;const x=Ue(d.current);if(x.selectAll("*").remove(),n.length===0||!i.earliest||!i.latest)return;const w=(_t=d.current)==null?void 0:_t.parentElement,k=(w==null?void 0:w.clientWidth)??800,N=(w==null?void 0:w.clientHeight)??400,C={top:30,right:30,bottom:40,left:160},A=k-C.left-C.right,q=N-C.top-C.bottom,L=[...new Set(n.map(X=>X.sessionSlug))],J=Qf().domain([new Date(i.earliest),new Date(i.latest)]).range([0,A]),nt=kf().domain(L).range([0,q]).padding(.3);x.attr("width",k).attr("height",N),x.append("defs").append("clipPath").attr("id","timeline-clip").append("rect").attr("width",A).attr("height",q);const V=x.append("g").attr("transform",`translate(${C.left},${C.top})`),K=ky().scaleExtent([.5,20]).translateExtent([[-100,0],[A+100,N]]).on("zoom",X=>{const ht=X.transform.rescaleX(J);st.call(Pu(ht).ticks(8)),vt.attr("x",D=>ht(new Date(D.startTime))).attr("width",D=>{const P=ht(new Date(D.endTime))-ht(new Date(D.startTime));return Math.max(4,P)})});x.call(K);const st=V.append("g").attr("transform",`translate(0,${q})`).call(Pu(J).ticks(8)).attr("class","timeline-axis");V.append("g").call(Gp(nt)).attr("class","timeline-axis").selectAll("text").style("font-size","11px"),V.selectAll(".timeline-axis line, .timeline-axis path").attr("stroke","var(--border-color, #334155)"),V.selectAll(".timeline-axis text").attr("fill","var(--muted-foreground, #94a3b8)");const vt=V.append("g").attr("clip-path","url(#timeline-clip)").append("g").selectAll("rect").data(n).join("rect").attr("x",X=>J(new Date(X.startTime))).attr("y",X=>nt(X.sessionSlug)??0).attr("width",X=>{const ht=J(new Date(X.endTime))-J(new Date(X.startTime));return Math.max(4,ht)}).attr("height",nt.bandwidth()).attr("rx",2).attr("fill",X=>y(X.clusterId)).attr("fill-opacity",X=>X.id===o?1:.7).attr("stroke",X=>X.id===o?"#ffffff":"none").attr("stroke-width",2).attr("cursor","pointer").on("click",(X,ht)=>r(ht.id)).on("mouseenter",function(){Ue(this).attr("fill-opacity",1)}).on("mouseleave",function(X,ht){Ue(this).attr("fill-opacity",ht.id===o?1:.7)});vt.append("title").text(X=>{const ht=X.clusterId?m.get(X.clusterId):null,D=(ht==null?void 0:ht.name)??(X.clusterId?"Unknown cluster":"Unclustered");return`${X.sessionSlug}
160
+ */const f2=he("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function d2(){const[n,a]=R.useState(()=>typeof window>"u"?"dark":localStorage.getItem("causantic-theme")??"dark");R.useEffect(()=>{const r=document.documentElement;n==="light"?r.classList.add("light"):r.classList.remove("light"),localStorage.setItem("causantic-theme",n)},[n]);const i=R.useCallback(()=>{a(r=>r==="dark"?"light":"dark")},[]);return{theme:n,toggle:i}}function h2(){const{theme:n,toggle:a}=d2();return _.jsx("button",{onClick:a,className:"rounded-md p-2 hover:bg-muted transition-colors","aria-label":"Toggle theme",children:n==="dark"?_.jsx(s2,{className:"h-5 w-5"}):_.jsx(o2,{className:"h-5 w-5"})})}function Up(n){var a,i,r="";if(typeof n=="string"||typeof n=="number")r+=n;else if(typeof n=="object")if(Array.isArray(n)){var o=n.length;for(a=0;a<o;a++)n[a]&&(i=Up(n[a]))&&(r&&(r+=" "),r+=i)}else for(i in n)n[i]&&(r&&(r+=" "),r+=i);return r}function jp(){for(var n,a,i=0,r="",o=arguments.length;i<o;i++)(n=arguments[i])&&(a=Up(n))&&(r&&(r+=" "),r+=a);return r}const Mf="-",m2=n=>{const a=p2(n),{conflictingClassGroups:i,conflictingClassGroupModifiers:r}=n;return{getClassGroupId:d=>{const g=d.split(Mf);return g[0]===""&&g.length!==1&&g.shift(),Hp(g,a)||g2(d)},getConflictingClassGroupIds:(d,g)=>{const m=i[d]||[];return g&&r[d]?[...m,...r[d]]:m}}},Hp=(n,a)=>{var d;if(n.length===0)return a.classGroupId;const i=n[0],r=a.nextPart.get(i),o=r?Hp(n.slice(1),r):void 0;if(o)return o;if(a.validators.length===0)return;const f=n.join(Mf);return(d=a.validators.find(({validator:g})=>g(f)))==null?void 0:d.classGroupId},rg=/^\[(.+)\]$/,g2=n=>{if(rg.test(n)){const a=rg.exec(n)[1],i=a==null?void 0:a.substring(0,a.indexOf(":"));if(i)return"arbitrary.."+i}},p2=n=>{const{theme:a,prefix:i}=n,r={nextPart:new Map,validators:[]};return v2(Object.entries(n.classGroups),i).forEach(([f,d])=>{tf(d,r,f,a)}),r},tf=(n,a,i,r)=>{n.forEach(o=>{if(typeof o=="string"){const f=o===""?a:cg(a,o);f.classGroupId=i;return}if(typeof o=="function"){if(y2(o)){tf(o(r),a,i,r);return}a.validators.push({validator:o,classGroupId:i});return}Object.entries(o).forEach(([f,d])=>{tf(d,cg(a,f),i,r)})})},cg=(n,a)=>{let i=n;return a.split(Mf).forEach(r=>{i.nextPart.has(r)||i.nextPart.set(r,{nextPart:new Map,validators:[]}),i=i.nextPart.get(r)}),i},y2=n=>n.isThemeGetter,v2=(n,a)=>a?n.map(([i,r])=>{const o=r.map(f=>typeof f=="string"?a+f:typeof f=="object"?Object.fromEntries(Object.entries(f).map(([d,g])=>[a+d,g])):f);return[i,o]}):n,x2=n=>{if(n<1)return{get:()=>{},set:()=>{}};let a=0,i=new Map,r=new Map;const o=(f,d)=>{i.set(f,d),a++,a>n&&(a=0,r=i,i=new Map)};return{get(f){let d=i.get(f);if(d!==void 0)return d;if((d=r.get(f))!==void 0)return o(f,d),d},set(f,d){i.has(f)?i.set(f,d):o(f,d)}}},Lp="!",b2=n=>{const{separator:a,experimentalParseClassName:i}=n,r=a.length===1,o=a[0],f=a.length,d=g=>{const m=[];let h=0,v=0,y;for(let C=0;C<g.length;C++){let A=g[C];if(h===0){if(A===o&&(r||g.slice(C,C+f)===a)){m.push(g.slice(v,C)),v=C+f;continue}if(A==="/"){y=C;continue}}A==="["?h++:A==="]"&&h--}const x=m.length===0?g:g.substring(v),w=x.startsWith(Lp),k=w?x.substring(1):x,N=y&&y>v?y-v:void 0;return{modifiers:m,hasImportantModifier:w,baseClassName:k,maybePostfixModifierPosition:N}};return i?g=>i({className:g,parseClassName:d}):d},S2=n=>{if(n.length<=1)return n;const a=[];let i=[];return n.forEach(r=>{r[0]==="["?(a.push(...i.sort(),r),i=[]):i.push(r)}),a.push(...i.sort()),a},_2=n=>({cache:x2(n.cacheSize),parseClassName:b2(n),...m2(n)}),w2=/\s+/,T2=(n,a)=>{const{parseClassName:i,getClassGroupId:r,getConflictingClassGroupIds:o}=a,f=[],d=n.trim().split(w2);let g="";for(let m=d.length-1;m>=0;m-=1){const h=d[m],{modifiers:v,hasImportantModifier:y,baseClassName:x,maybePostfixModifierPosition:w}=i(h);let k=!!w,N=r(k?x.substring(0,w):x);if(!N){if(!k){g=h+(g.length>0?" "+g:g);continue}if(N=r(x),!N){g=h+(g.length>0?" "+g:g);continue}k=!1}const C=S2(v).join(":"),A=y?C+Lp:C,q=A+N;if(f.includes(q))continue;f.push(q);const L=o(N,k);for(let J=0;J<L.length;++J){const nt=L[J];f.push(A+nt)}g=h+(g.length>0?" "+g:g)}return g};function M2(){let n=0,a,i,r="";for(;n<arguments.length;)(a=arguments[n++])&&(i=kp(a))&&(r&&(r+=" "),r+=i);return r}const kp=n=>{if(typeof n=="string")return n;let a,i="";for(let r=0;r<n.length;r++)n[r]&&(a=kp(n[r]))&&(i&&(i+=" "),i+=a);return i};function E2(n,...a){let i,r,o,f=d;function d(m){const h=a.reduce((v,y)=>y(v),n());return i=_2(h),r=i.cache.get,o=i.cache.set,f=g,g(m)}function g(m){const h=r(m);if(h)return h;const v=T2(m,i);return o(m,v),v}return function(){return f(M2.apply(null,arguments))}}const Gt=n=>{const a=i=>i[n]||[];return a.isThemeGetter=!0,a},Yp=/^\[(?:([a-z-]+):)?(.+)\]$/i,A2=/^\d+\/\d+$/,C2=new Set(["px","full","screen"]),z2=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,N2=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,D2=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,R2=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,O2=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Nn=n=>Ra(n)||C2.has(n)||A2.test(n),hl=n=>Ga(n,"length",q2),Ra=n=>!!n&&!Number.isNaN(Number(n)),Hs=n=>Ga(n,"number",Ra),Yu=n=>!!n&&Number.isInteger(Number(n)),U2=n=>n.endsWith("%")&&Ra(n.slice(0,-1)),bt=n=>Yp.test(n),ml=n=>z2.test(n),j2=new Set(["length","size","percentage"]),H2=n=>Ga(n,j2,Bp),L2=n=>Ga(n,"position",Bp),k2=new Set(["image","url"]),Y2=n=>Ga(n,k2,X2),B2=n=>Ga(n,"",G2),Bu=()=>!0,Ga=(n,a,i)=>{const r=Yp.exec(n);return r?r[1]?typeof a=="string"?r[1]===a:a.has(r[1]):i(r[2]):!1},q2=n=>N2.test(n)&&!D2.test(n),Bp=()=>!1,G2=n=>R2.test(n),X2=n=>O2.test(n),V2=()=>{const n=Gt("colors"),a=Gt("spacing"),i=Gt("blur"),r=Gt("brightness"),o=Gt("borderColor"),f=Gt("borderRadius"),d=Gt("borderSpacing"),g=Gt("borderWidth"),m=Gt("contrast"),h=Gt("grayscale"),v=Gt("hueRotate"),y=Gt("invert"),x=Gt("gap"),w=Gt("gradientColorStops"),k=Gt("gradientColorStopPositions"),N=Gt("inset"),C=Gt("margin"),A=Gt("opacity"),q=Gt("padding"),L=Gt("saturate"),J=Gt("scale"),nt=Gt("sepia"),V=Gt("skew"),K=Gt("space"),st=Gt("translate"),dt=()=>["auto","contain","none"],vt=()=>["auto","hidden","clip","visible","scroll"],_t=()=>["auto",bt,a],X=()=>[bt,a],ht=()=>["",Nn,hl],D=()=>["auto",Ra,bt],P=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],M=()=>["solid","dashed","dotted","double","none"],Y=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],F=()=>["start","end","center","between","around","evenly","stretch"],at=()=>["","0",bt],lt=()=>["auto","avoid","all","avoid-page","page","left","right","column"],S=()=>[Ra,bt];return{cacheSize:500,separator:":",theme:{colors:[Bu],spacing:[Nn,hl],blur:["none","",ml,bt],brightness:S(),borderColor:[n],borderRadius:["none","","full",ml,bt],borderSpacing:X(),borderWidth:ht(),contrast:S(),grayscale:at(),hueRotate:S(),invert:at(),gap:X(),gradientColorStops:[n],gradientColorStopPositions:[U2,hl],inset:_t(),margin:_t(),opacity:S(),padding:X(),saturate:S(),scale:S(),sepia:at(),skew:S(),space:X(),translate:X()},classGroups:{aspect:[{aspect:["auto","square","video",bt]}],container:["container"],columns:[{columns:[ml]}],"break-after":[{"break-after":lt()}],"break-before":[{"break-before":lt()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...P(),bt]}],overflow:[{overflow:vt()}],"overflow-x":[{"overflow-x":vt()}],"overflow-y":[{"overflow-y":vt()}],overscroll:[{overscroll:dt()}],"overscroll-x":[{"overscroll-x":dt()}],"overscroll-y":[{"overscroll-y":dt()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[N]}],"inset-x":[{"inset-x":[N]}],"inset-y":[{"inset-y":[N]}],start:[{start:[N]}],end:[{end:[N]}],top:[{top:[N]}],right:[{right:[N]}],bottom:[{bottom:[N]}],left:[{left:[N]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Yu,bt]}],basis:[{basis:_t()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",bt]}],grow:[{grow:at()}],shrink:[{shrink:at()}],order:[{order:["first","last","none",Yu,bt]}],"grid-cols":[{"grid-cols":[Bu]}],"col-start-end":[{col:["auto",{span:["full",Yu,bt]},bt]}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":[Bu]}],"row-start-end":[{row:["auto",{span:[Yu,bt]},bt]}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",bt]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",bt]}],gap:[{gap:[x]}],"gap-x":[{"gap-x":[x]}],"gap-y":[{"gap-y":[x]}],"justify-content":[{justify:["normal",...F()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...F(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...F(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[q]}],px:[{px:[q]}],py:[{py:[q]}],ps:[{ps:[q]}],pe:[{pe:[q]}],pt:[{pt:[q]}],pr:[{pr:[q]}],pb:[{pb:[q]}],pl:[{pl:[q]}],m:[{m:[C]}],mx:[{mx:[C]}],my:[{my:[C]}],ms:[{ms:[C]}],me:[{me:[C]}],mt:[{mt:[C]}],mr:[{mr:[C]}],mb:[{mb:[C]}],ml:[{ml:[C]}],"space-x":[{"space-x":[K]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[K]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",bt,a]}],"min-w":[{"min-w":[bt,a,"min","max","fit"]}],"max-w":[{"max-w":[bt,a,"none","full","min","max","fit","prose",{screen:[ml]},ml]}],h:[{h:[bt,a,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[bt,a,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[bt,a,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[bt,a,"auto","min","max","fit"]}],"font-size":[{text:["base",ml,hl]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Hs]}],"font-family":[{font:[Bu]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",bt]}],"line-clamp":[{"line-clamp":["none",Ra,Hs]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Nn,bt]}],"list-image":[{"list-image":["none",bt]}],"list-style-type":[{list:["none","disc","decimal",bt]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[n]}],"placeholder-opacity":[{"placeholder-opacity":[A]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[n]}],"text-opacity":[{"text-opacity":[A]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...M(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Nn,hl]}],"underline-offset":[{"underline-offset":["auto",Nn,bt]}],"text-decoration-color":[{decoration:[n]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:X()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",bt]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",bt]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[A]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...P(),L2]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",H2]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Y2]}],"bg-color":[{bg:[n]}],"gradient-from-pos":[{from:[k]}],"gradient-via-pos":[{via:[k]}],"gradient-to-pos":[{to:[k]}],"gradient-from":[{from:[w]}],"gradient-via":[{via:[w]}],"gradient-to":[{to:[w]}],rounded:[{rounded:[f]}],"rounded-s":[{"rounded-s":[f]}],"rounded-e":[{"rounded-e":[f]}],"rounded-t":[{"rounded-t":[f]}],"rounded-r":[{"rounded-r":[f]}],"rounded-b":[{"rounded-b":[f]}],"rounded-l":[{"rounded-l":[f]}],"rounded-ss":[{"rounded-ss":[f]}],"rounded-se":[{"rounded-se":[f]}],"rounded-ee":[{"rounded-ee":[f]}],"rounded-es":[{"rounded-es":[f]}],"rounded-tl":[{"rounded-tl":[f]}],"rounded-tr":[{"rounded-tr":[f]}],"rounded-br":[{"rounded-br":[f]}],"rounded-bl":[{"rounded-bl":[f]}],"border-w":[{border:[g]}],"border-w-x":[{"border-x":[g]}],"border-w-y":[{"border-y":[g]}],"border-w-s":[{"border-s":[g]}],"border-w-e":[{"border-e":[g]}],"border-w-t":[{"border-t":[g]}],"border-w-r":[{"border-r":[g]}],"border-w-b":[{"border-b":[g]}],"border-w-l":[{"border-l":[g]}],"border-opacity":[{"border-opacity":[A]}],"border-style":[{border:[...M(),"hidden"]}],"divide-x":[{"divide-x":[g]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[g]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[A]}],"divide-style":[{divide:M()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...M()]}],"outline-offset":[{"outline-offset":[Nn,bt]}],"outline-w":[{outline:[Nn,hl]}],"outline-color":[{outline:[n]}],"ring-w":[{ring:ht()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[n]}],"ring-opacity":[{"ring-opacity":[A]}],"ring-offset-w":[{"ring-offset":[Nn,hl]}],"ring-offset-color":[{"ring-offset":[n]}],shadow:[{shadow:["","inner","none",ml,B2]}],"shadow-color":[{shadow:[Bu]}],opacity:[{opacity:[A]}],"mix-blend":[{"mix-blend":[...Y(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":Y()}],filter:[{filter:["","none"]}],blur:[{blur:[i]}],brightness:[{brightness:[r]}],contrast:[{contrast:[m]}],"drop-shadow":[{"drop-shadow":["","none",ml,bt]}],grayscale:[{grayscale:[h]}],"hue-rotate":[{"hue-rotate":[v]}],invert:[{invert:[y]}],saturate:[{saturate:[L]}],sepia:[{sepia:[nt]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[i]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[m]}],"backdrop-grayscale":[{"backdrop-grayscale":[h]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[v]}],"backdrop-invert":[{"backdrop-invert":[y]}],"backdrop-opacity":[{"backdrop-opacity":[A]}],"backdrop-saturate":[{"backdrop-saturate":[L]}],"backdrop-sepia":[{"backdrop-sepia":[nt]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[d]}],"border-spacing-x":[{"border-spacing-x":[d]}],"border-spacing-y":[{"border-spacing-y":[d]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",bt]}],duration:[{duration:S()}],ease:[{ease:["linear","in","out","in-out",bt]}],delay:[{delay:S()}],animate:[{animate:["none","spin","ping","pulse","bounce",bt]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[J]}],"scale-x":[{"scale-x":[J]}],"scale-y":[{"scale-y":[J]}],rotate:[{rotate:[Yu,bt]}],"translate-x":[{"translate-x":[st]}],"translate-y":[{"translate-y":[st]}],"skew-x":[{"skew-x":[V]}],"skew-y":[{"skew-y":[V]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",bt]}],accent:[{accent:["auto",n]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",bt]}],"caret-color":[{caret:[n]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":X()}],"scroll-mx":[{"scroll-mx":X()}],"scroll-my":[{"scroll-my":X()}],"scroll-ms":[{"scroll-ms":X()}],"scroll-me":[{"scroll-me":X()}],"scroll-mt":[{"scroll-mt":X()}],"scroll-mr":[{"scroll-mr":X()}],"scroll-mb":[{"scroll-mb":X()}],"scroll-ml":[{"scroll-ml":X()}],"scroll-p":[{"scroll-p":X()}],"scroll-px":[{"scroll-px":X()}],"scroll-py":[{"scroll-py":X()}],"scroll-ps":[{"scroll-ps":X()}],"scroll-pe":[{"scroll-pe":X()}],"scroll-pt":[{"scroll-pt":X()}],"scroll-pr":[{"scroll-pr":X()}],"scroll-pb":[{"scroll-pb":X()}],"scroll-pl":[{"scroll-pl":X()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",bt]}],fill:[{fill:[n,"none"]}],"stroke-w":[{stroke:[Nn,hl,Hs]}],stroke:[{stroke:[n,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},Q2=E2(V2);function tn(...n){return Q2(jp(n))}const Z2=[{to:"/",icon:r2,label:"Overview"},{to:"/timeline",icon:Rp,label:"Timeline"},{to:"/clusters",icon:Dp,label:"Clusters"},{to:"/search",icon:Op,label:"Search"},{to:"/projects",icon:a2,label:"Projects"}];function $2(){const[n,a]=R.useState(!1);return _.jsxs("div",{className:"flex h-screen overflow-hidden",children:[n&&_.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),_.jsxs("aside",{className:tn("fixed inset-y-0 left-0 z-50 flex w-64 flex-col border-r border-border bg-card transition-transform lg:static lg:translate-x-0",n?"translate-x-0":"-translate-x-full"),children:[_.jsxs("div",{className:"flex h-16 items-center gap-2 border-b border-border px-6",children:[_.jsx(e2,{className:"h-6 w-6 text-accent"}),_.jsx("span",{className:"text-lg font-bold",children:"Causantic"}),_.jsx("span",{className:"text-sm text-muted-foreground",children:"Dashboard"})]}),_.jsx("nav",{className:"flex-1 space-y-1 p-4",children:Z2.map(i=>_.jsxs(Cp,{to:i.to,end:i.to==="/",onClick:()=>a(!1),className:({isActive:r})=>tn("flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition-colors",r?"bg-accent/10 text-accent":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[_.jsx(i.icon,{className:"h-4 w-4"}),i.label]},i.to))}),_.jsx("div",{className:"border-t border-border p-4 text-xs text-muted-foreground",children:"Causantic"})]}),_.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[_.jsxs("header",{className:"flex h-16 items-center justify-between border-b border-border px-6",children:[_.jsx("button",{className:"rounded-md p-2 hover:bg-muted lg:hidden",onClick:()=>a(!0),children:_.jsx(c2,{className:"h-5 w-5"})}),_.jsx("div",{className:"flex-1"}),_.jsx(h2,{})]}),_.jsx("main",{className:"flex-1 overflow-y-auto p-6",children:_.jsx(gb,{})})]})]})}const og=new Map,K2=3e4;function Pe(n){const[a,i]=R.useState(null),[r,o]=R.useState(!0),[f,d]=R.useState(null),g=R.useRef(null),m=R.useCallback(()=>{var y;if(!n){o(!1);return}const h=og.get(n);if(h&&Date.now()-h.ts<K2){i(h.data),o(!1);return}(y=g.current)==null||y.abort();const v=new AbortController;g.current=v,o(!0),d(null),fetch(n,{signal:v.signal}).then(x=>{if(!x.ok)throw new Error(`HTTP ${x.status}`);return x.json()}).then(x=>{og.set(n,{data:x,ts:Date.now()}),i(x),o(!1)}).catch(x=>{x.name!=="AbortError"&&(d(x.message),o(!1))})},[n]);return R.useEffect(()=>(m(),()=>{var h;return(h=g.current)==null?void 0:h.abort()}),[m]),{data:a,loading:r,error:f,refetch:m}}function ii({className:n}){return _.jsx("div",{className:tn("flex items-center justify-center p-8",n),children:_.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-muted border-t-accent"})})}function Wu({className:n,...a}){return _.jsx("div",{className:tn("rounded-lg border border-border bg-card text-card-foreground shadow-sm",n),...a})}function ef({className:n,...a}){return _.jsx("div",{className:tn("flex flex-col space-y-1.5 p-6",n),...a})}function nf({className:n,...a}){return _.jsx("h3",{className:tn("text-lg font-semibold leading-none tracking-tight",n),...a})}function J2({className:n,...a}){return _.jsx("p",{className:tn("text-sm text-muted-foreground",n),...a})}function Iu({className:n,...a}){return _.jsx("div",{className:tn("p-6 pt-0",n),...a})}function Cr({label:n,value:a,icon:i}){const[r,o]=R.useState(0);return R.useEffect(()=>{if(a===0)return;const f=600,d=30,g=a/d;let m=0;const h=setInterval(()=>{m+=g,m>=a?(o(a),clearInterval(h)):o(Math.floor(m))},f/d);return()=>clearInterval(h)},[a]),_.jsx(Wu,{children:_.jsxs(Iu,{className:"flex items-center gap-4 p-6",children:[_.jsx("div",{className:"rounded-lg bg-accent/10 p-3 text-accent",children:i}),_.jsxs("div",{children:[_.jsx("p",{className:"text-sm text-muted-foreground",children:n}),_.jsx("p",{className:"text-3xl font-bold tabular-nums",children:r.toLocaleString()})]})]})})}function Yr(n,a){return n==null||a==null?NaN:n<a?-1:n>a?1:n>=a?0:NaN}function F2(n,a){return n==null||a==null?NaN:a<n?-1:a>n?1:a>=n?0:NaN}function Ef(n){let a,i,r;n.length!==2?(a=Yr,i=(g,m)=>Yr(n(g),m),r=(g,m)=>n(g)-m):(a=n===Yr||n===F2?n:W2,i=n,r=n);function o(g,m,h=0,v=g.length){if(h<v){if(a(m,m)!==0)return v;do{const y=h+v>>>1;i(g[y],m)<0?h=y+1:v=y}while(h<v)}return h}function f(g,m,h=0,v=g.length){if(h<v){if(a(m,m)!==0)return v;do{const y=h+v>>>1;i(g[y],m)<=0?h=y+1:v=y}while(h<v)}return h}function d(g,m,h=0,v=g.length){const y=o(g,m,h,v-1);return y>h&&r(g[y-1],m)>-r(g[y],m)?y-1:y}return{left:o,center:d,right:f}}function W2(){return 0}function I2(n){return n===null?NaN:+n}const P2=Ef(Yr),tS=P2.right;Ef(I2).center;function eS(n,a){let i,r;if(a===void 0)for(const o of n)o!=null&&(i===void 0?o>=o&&(i=r=o):(i>o&&(i=o),r<o&&(r=o)));else{let o=-1;for(let f of n)(f=a(f,++o,n))!=null&&(i===void 0?f>=f&&(i=r=f):(i>f&&(i=f),r<f&&(r=f)))}return[i,r]}class sg extends Map{constructor(a,i=aS){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:i}}),a!=null)for(const[r,o]of a)this.set(r,o)}get(a){return super.get(fg(this,a))}has(a){return super.has(fg(this,a))}set(a,i){return super.set(nS(this,a),i)}delete(a){return super.delete(lS(this,a))}}function fg({_intern:n,_key:a},i){const r=a(i);return n.has(r)?n.get(r):i}function nS({_intern:n,_key:a},i){const r=a(i);return n.has(r)?n.get(r):(n.set(r,i),i)}function lS({_intern:n,_key:a},i){const r=a(i);return n.has(r)&&(i=n.get(r),n.delete(r)),i}function aS(n){return n!==null&&typeof n=="object"?n.valueOf():n}const uS=Math.sqrt(50),iS=Math.sqrt(10),rS=Math.sqrt(2);function Qr(n,a,i){const r=(a-n)/Math.max(0,i),o=Math.floor(Math.log10(r)),f=r/Math.pow(10,o),d=f>=uS?10:f>=iS?5:f>=rS?2:1;let g,m,h;return o<0?(h=Math.pow(10,-o)/d,g=Math.round(n*h),m=Math.round(a*h),g/h<n&&++g,m/h>a&&--m,h=-h):(h=Math.pow(10,o)*d,g=Math.round(n/h),m=Math.round(a/h),g*h<n&&++g,m*h>a&&--m),m<g&&.5<=i&&i<2?Qr(n,a,i*2):[g,m,h]}function cS(n,a,i){if(a=+a,n=+n,i=+i,!(i>0))return[];if(n===a)return[n];const r=a<n,[o,f,d]=r?Qr(a,n,i):Qr(n,a,i);if(!(f>=o))return[];const g=f-o+1,m=new Array(g);if(r)if(d<0)for(let h=0;h<g;++h)m[h]=(f-h)/-d;else for(let h=0;h<g;++h)m[h]=(f-h)*d;else if(d<0)for(let h=0;h<g;++h)m[h]=(o+h)/-d;else for(let h=0;h<g;++h)m[h]=(o+h)*d;return m}function lf(n,a,i){return a=+a,n=+n,i=+i,Qr(n,a,i)[2]}function af(n,a,i){a=+a,n=+n,i=+i;const r=a<n,o=r?lf(a,n,i):lf(n,a,i);return(r?-1:1)*(o<0?1/-o:o)}function oS(n,a){let i;if(a===void 0)for(const r of n)r!=null&&(i<r||i===void 0&&r>=r)&&(i=r);else{let r=-1;for(let o of n)(o=a(o,++r,n))!=null&&(i<o||i===void 0&&o>=o)&&(i=o)}return i}function sS(n,a,i){n=+n,a=+a,i=(o=arguments.length)<2?(a=n,n=0,1):o<3?1:+i;for(var r=-1,o=Math.max(0,Math.ceil((a-n)/i))|0,f=new Array(o);++r<o;)f[r]=n+r*i;return f}function fS(n){return n}var Ls=1,ks=2,uf=3,Zu=4,dg=1e-6;function dS(n){return"translate("+n+",0)"}function hS(n){return"translate(0,"+n+")"}function mS(n){return a=>+n(a)}function gS(n,a){return a=Math.max(0,n.bandwidth()-a*2)/2,n.round()&&(a=Math.round(a)),i=>+n(i)+a}function pS(){return!this.__axis}function qp(n,a){var i=[],r=null,o=null,f=6,d=6,g=3,m=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=n===Ls||n===Zu?-1:1,v=n===Zu||n===ks?"x":"y",y=n===Ls||n===uf?dS:hS;function x(w){var k=r??(a.ticks?a.ticks.apply(a,i):a.domain()),N=o??(a.tickFormat?a.tickFormat.apply(a,i):fS),C=Math.max(f,0)+g,A=a.range(),q=+A[0]+m,L=+A[A.length-1]+m,J=(a.bandwidth?gS:mS)(a.copy(),m),nt=w.selection?w.selection():w,V=nt.selectAll(".domain").data([null]),K=nt.selectAll(".tick").data(k,a).order(),st=K.exit(),dt=K.enter().append("g").attr("class","tick"),vt=K.select("line"),_t=K.select("text");V=V.merge(V.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),K=K.merge(dt),vt=vt.merge(dt.append("line").attr("stroke","currentColor").attr(v+"2",h*f)),_t=_t.merge(dt.append("text").attr("fill","currentColor").attr(v,h*C).attr("dy",n===Ls?"0em":n===uf?"0.71em":"0.32em")),w!==nt&&(V=V.transition(w),K=K.transition(w),vt=vt.transition(w),_t=_t.transition(w),st=st.transition(w).attr("opacity",dg).attr("transform",function(X){return isFinite(X=J(X))?y(X+m):this.getAttribute("transform")}),dt.attr("opacity",dg).attr("transform",function(X){var ht=this.parentNode.__axis;return y((ht&&isFinite(ht=ht(X))?ht:J(X))+m)})),st.remove(),V.attr("d",n===Zu||n===ks?d?"M"+h*d+","+q+"H"+m+"V"+L+"H"+h*d:"M"+m+","+q+"V"+L:d?"M"+q+","+h*d+"V"+m+"H"+L+"V"+h*d:"M"+q+","+m+"H"+L),K.attr("opacity",1).attr("transform",function(X){return y(J(X)+m)}),vt.attr(v+"2",h*f),_t.attr(v,h*C).text(N),nt.filter(pS).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",n===ks?"start":n===Zu?"end":"middle"),nt.each(function(){this.__axis=J})}return x.scale=function(w){return arguments.length?(a=w,x):a},x.ticks=function(){return i=Array.from(arguments),x},x.tickArguments=function(w){return arguments.length?(i=w==null?[]:Array.from(w),x):i.slice()},x.tickValues=function(w){return arguments.length?(r=w==null?null:Array.from(w),x):r&&r.slice()},x.tickFormat=function(w){return arguments.length?(o=w,x):o},x.tickSize=function(w){return arguments.length?(f=d=+w,x):f},x.tickSizeInner=function(w){return arguments.length?(f=+w,x):f},x.tickSizeOuter=function(w){return arguments.length?(d=+w,x):d},x.tickPadding=function(w){return arguments.length?(g=+w,x):g},x.offset=function(w){return arguments.length?(m=+w,x):m},x}function Pu(n){return qp(uf,n)}function Gp(n){return qp(Zu,n)}var yS={value:()=>{}};function Af(){for(var n=0,a=arguments.length,i={},r;n<a;++n){if(!(r=arguments[n]+"")||r in i||/[\s.]/.test(r))throw new Error("illegal type: "+r);i[r]=[]}return new Br(i)}function Br(n){this._=n}function vS(n,a){return n.trim().split(/^|\s+/).map(function(i){var r="",o=i.indexOf(".");if(o>=0&&(r=i.slice(o+1),i=i.slice(0,o)),i&&!a.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:r}})}Br.prototype=Af.prototype={constructor:Br,on:function(n,a){var i=this._,r=vS(n+"",i),o,f=-1,d=r.length;if(arguments.length<2){for(;++f<d;)if((o=(n=r[f]).type)&&(o=xS(i[o],n.name)))return o;return}if(a!=null&&typeof a!="function")throw new Error("invalid callback: "+a);for(;++f<d;)if(o=(n=r[f]).type)i[o]=hg(i[o],n.name,a);else if(a==null)for(o in i)i[o]=hg(i[o],n.name,null);return this},copy:function(){var n={},a=this._;for(var i in a)n[i]=a[i].slice();return new Br(n)},call:function(n,a){if((o=arguments.length-2)>0)for(var i=new Array(o),r=0,o,f;r<o;++r)i[r]=arguments[r+2];if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(f=this._[n],r=0,o=f.length;r<o;++r)f[r].value.apply(a,i)},apply:function(n,a,i){if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(var r=this._[n],o=0,f=r.length;o<f;++o)r[o].value.apply(a,i)}};function xS(n,a){for(var i=0,r=n.length,o;i<r;++i)if((o=n[i]).name===a)return o.value}function hg(n,a,i){for(var r=0,o=n.length;r<o;++r)if(n[r].name===a){n[r]=yS,n=n.slice(0,r).concat(n.slice(r+1));break}return i!=null&&n.push({name:a,value:i}),n}var rf="http://www.w3.org/1999/xhtml";const mg={svg:"http://www.w3.org/2000/svg",xhtml:rf,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function oc(n){var a=n+="",i=a.indexOf(":");return i>=0&&(a=n.slice(0,i))!=="xmlns"&&(n=n.slice(i+1)),mg.hasOwnProperty(a)?{space:mg[a],local:n}:n}function bS(n){return function(){var a=this.ownerDocument,i=this.namespaceURI;return i===rf&&a.documentElement.namespaceURI===rf?a.createElement(n):a.createElementNS(i,n)}}function SS(n){return function(){return this.ownerDocument.createElementNS(n.space,n.local)}}function Xp(n){var a=oc(n);return(a.local?SS:bS)(a)}function _S(){}function Cf(n){return n==null?_S:function(){return this.querySelector(n)}}function wS(n){typeof n!="function"&&(n=Cf(n));for(var a=this._groups,i=a.length,r=new Array(i),o=0;o<i;++o)for(var f=a[o],d=f.length,g=r[o]=new Array(d),m,h,v=0;v<d;++v)(m=f[v])&&(h=n.call(m,m.__data__,v,f))&&("__data__"in m&&(h.__data__=m.__data__),g[v]=h);return new je(r,this._parents)}function TS(n){return n==null?[]:Array.isArray(n)?n:Array.from(n)}function MS(){return[]}function Vp(n){return n==null?MS:function(){return this.querySelectorAll(n)}}function ES(n){return function(){return TS(n.apply(this,arguments))}}function AS(n){typeof n=="function"?n=ES(n):n=Vp(n);for(var a=this._groups,i=a.length,r=[],o=[],f=0;f<i;++f)for(var d=a[f],g=d.length,m,h=0;h<g;++h)(m=d[h])&&(r.push(n.call(m,m.__data__,h,d)),o.push(m));return new je(r,o)}function Qp(n){return function(){return this.matches(n)}}function Zp(n){return function(a){return a.matches(n)}}var CS=Array.prototype.find;function zS(n){return function(){return CS.call(this.children,n)}}function NS(){return this.firstElementChild}function DS(n){return this.select(n==null?NS:zS(typeof n=="function"?n:Zp(n)))}var RS=Array.prototype.filter;function OS(){return Array.from(this.children)}function US(n){return function(){return RS.call(this.children,n)}}function jS(n){return this.selectAll(n==null?OS:US(typeof n=="function"?n:Zp(n)))}function HS(n){typeof n!="function"&&(n=Qp(n));for(var a=this._groups,i=a.length,r=new Array(i),o=0;o<i;++o)for(var f=a[o],d=f.length,g=r[o]=[],m,h=0;h<d;++h)(m=f[h])&&n.call(m,m.__data__,h,f)&&g.push(m);return new je(r,this._parents)}function $p(n){return new Array(n.length)}function LS(){return new je(this._enter||this._groups.map($p),this._parents)}function Zr(n,a){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=a}Zr.prototype={constructor:Zr,appendChild:function(n){return this._parent.insertBefore(n,this._next)},insertBefore:function(n,a){return this._parent.insertBefore(n,a)},querySelector:function(n){return this._parent.querySelector(n)},querySelectorAll:function(n){return this._parent.querySelectorAll(n)}};function kS(n){return function(){return n}}function YS(n,a,i,r,o,f){for(var d=0,g,m=a.length,h=f.length;d<h;++d)(g=a[d])?(g.__data__=f[d],r[d]=g):i[d]=new Zr(n,f[d]);for(;d<m;++d)(g=a[d])&&(o[d]=g)}function BS(n,a,i,r,o,f,d){var g,m,h=new Map,v=a.length,y=f.length,x=new Array(v),w;for(g=0;g<v;++g)(m=a[g])&&(x[g]=w=d.call(m,m.__data__,g,a)+"",h.has(w)?o[g]=m:h.set(w,m));for(g=0;g<y;++g)w=d.call(n,f[g],g,f)+"",(m=h.get(w))?(r[g]=m,m.__data__=f[g],h.delete(w)):i[g]=new Zr(n,f[g]);for(g=0;g<v;++g)(m=a[g])&&h.get(x[g])===m&&(o[g]=m)}function qS(n){return n.__data__}function GS(n,a){if(!arguments.length)return Array.from(this,qS);var i=a?BS:YS,r=this._parents,o=this._groups;typeof n!="function"&&(n=kS(n));for(var f=o.length,d=new Array(f),g=new Array(f),m=new Array(f),h=0;h<f;++h){var v=r[h],y=o[h],x=y.length,w=XS(n.call(v,v&&v.__data__,h,r)),k=w.length,N=g[h]=new Array(k),C=d[h]=new Array(k),A=m[h]=new Array(x);i(v,y,N,C,A,w,a);for(var q=0,L=0,J,nt;q<k;++q)if(J=N[q]){for(q>=L&&(L=q+1);!(nt=C[L])&&++L<k;);J._next=nt||null}}return d=new je(d,r),d._enter=g,d._exit=m,d}function XS(n){return typeof n=="object"&&"length"in n?n:Array.from(n)}function VS(){return new je(this._exit||this._groups.map($p),this._parents)}function QS(n,a,i){var r=this.enter(),o=this,f=this.exit();return typeof n=="function"?(r=n(r),r&&(r=r.selection())):r=r.append(n+""),a!=null&&(o=a(o),o&&(o=o.selection())),i==null?f.remove():i(f),r&&o?r.merge(o).order():o}function ZS(n){for(var a=n.selection?n.selection():n,i=this._groups,r=a._groups,o=i.length,f=r.length,d=Math.min(o,f),g=new Array(o),m=0;m<d;++m)for(var h=i[m],v=r[m],y=h.length,x=g[m]=new Array(y),w,k=0;k<y;++k)(w=h[k]||v[k])&&(x[k]=w);for(;m<o;++m)g[m]=i[m];return new je(g,this._parents)}function $S(){for(var n=this._groups,a=-1,i=n.length;++a<i;)for(var r=n[a],o=r.length-1,f=r[o],d;--o>=0;)(d=r[o])&&(f&&d.compareDocumentPosition(f)^4&&f.parentNode.insertBefore(d,f),f=d);return this}function KS(n){n||(n=JS);function a(y,x){return y&&x?n(y.__data__,x.__data__):!y-!x}for(var i=this._groups,r=i.length,o=new Array(r),f=0;f<r;++f){for(var d=i[f],g=d.length,m=o[f]=new Array(g),h,v=0;v<g;++v)(h=d[v])&&(m[v]=h);m.sort(a)}return new je(o,this._parents).order()}function JS(n,a){return n<a?-1:n>a?1:n>=a?0:NaN}function FS(){var n=arguments[0];return arguments[0]=this,n.apply(null,arguments),this}function WS(){return Array.from(this)}function IS(){for(var n=this._groups,a=0,i=n.length;a<i;++a)for(var r=n[a],o=0,f=r.length;o<f;++o){var d=r[o];if(d)return d}return null}function PS(){let n=0;for(const a of this)++n;return n}function t_(){return!this.node()}function e_(n){for(var a=this._groups,i=0,r=a.length;i<r;++i)for(var o=a[i],f=0,d=o.length,g;f<d;++f)(g=o[f])&&n.call(g,g.__data__,f,o);return this}function n_(n){return function(){this.removeAttribute(n)}}function l_(n){return function(){this.removeAttributeNS(n.space,n.local)}}function a_(n,a){return function(){this.setAttribute(n,a)}}function u_(n,a){return function(){this.setAttributeNS(n.space,n.local,a)}}function i_(n,a){return function(){var i=a.apply(this,arguments);i==null?this.removeAttribute(n):this.setAttribute(n,i)}}function r_(n,a){return function(){var i=a.apply(this,arguments);i==null?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,i)}}function c_(n,a){var i=oc(n);if(arguments.length<2){var r=this.node();return i.local?r.getAttributeNS(i.space,i.local):r.getAttribute(i)}return this.each((a==null?i.local?l_:n_:typeof a=="function"?i.local?r_:i_:i.local?u_:a_)(i,a))}function Kp(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function o_(n){return function(){this.style.removeProperty(n)}}function s_(n,a,i){return function(){this.style.setProperty(n,a,i)}}function f_(n,a,i){return function(){var r=a.apply(this,arguments);r==null?this.style.removeProperty(n):this.style.setProperty(n,r,i)}}function d_(n,a,i){return arguments.length>1?this.each((a==null?o_:typeof a=="function"?f_:s_)(n,a,i??"")):Ua(this.node(),n)}function Ua(n,a){return n.style.getPropertyValue(a)||Kp(n).getComputedStyle(n,null).getPropertyValue(a)}function h_(n){return function(){delete this[n]}}function m_(n,a){return function(){this[n]=a}}function g_(n,a){return function(){var i=a.apply(this,arguments);i==null?delete this[n]:this[n]=i}}function p_(n,a){return arguments.length>1?this.each((a==null?h_:typeof a=="function"?g_:m_)(n,a)):this.node()[n]}function Jp(n){return n.trim().split(/^|\s+/)}function zf(n){return n.classList||new Fp(n)}function Fp(n){this._node=n,this._names=Jp(n.getAttribute("class")||"")}Fp.prototype={add:function(n){var a=this._names.indexOf(n);a<0&&(this._names.push(n),this._node.setAttribute("class",this._names.join(" ")))},remove:function(n){var a=this._names.indexOf(n);a>=0&&(this._names.splice(a,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};function Wp(n,a){for(var i=zf(n),r=-1,o=a.length;++r<o;)i.add(a[r])}function Ip(n,a){for(var i=zf(n),r=-1,o=a.length;++r<o;)i.remove(a[r])}function y_(n){return function(){Wp(this,n)}}function v_(n){return function(){Ip(this,n)}}function x_(n,a){return function(){(a.apply(this,arguments)?Wp:Ip)(this,n)}}function b_(n,a){var i=Jp(n+"");if(arguments.length<2){for(var r=zf(this.node()),o=-1,f=i.length;++o<f;)if(!r.contains(i[o]))return!1;return!0}return this.each((typeof a=="function"?x_:a?y_:v_)(i,a))}function S_(){this.textContent=""}function __(n){return function(){this.textContent=n}}function w_(n){return function(){var a=n.apply(this,arguments);this.textContent=a??""}}function T_(n){return arguments.length?this.each(n==null?S_:(typeof n=="function"?w_:__)(n)):this.node().textContent}function M_(){this.innerHTML=""}function E_(n){return function(){this.innerHTML=n}}function A_(n){return function(){var a=n.apply(this,arguments);this.innerHTML=a??""}}function C_(n){return arguments.length?this.each(n==null?M_:(typeof n=="function"?A_:E_)(n)):this.node().innerHTML}function z_(){this.nextSibling&&this.parentNode.appendChild(this)}function N_(){return this.each(z_)}function D_(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function R_(){return this.each(D_)}function O_(n){var a=typeof n=="function"?n:Xp(n);return this.select(function(){return this.appendChild(a.apply(this,arguments))})}function U_(){return null}function j_(n,a){var i=typeof n=="function"?n:Xp(n),r=a==null?U_:typeof a=="function"?a:Cf(a);return this.select(function(){return this.insertBefore(i.apply(this,arguments),r.apply(this,arguments)||null)})}function H_(){var n=this.parentNode;n&&n.removeChild(this)}function L_(){return this.each(H_)}function k_(){var n=this.cloneNode(!1),a=this.parentNode;return a?a.insertBefore(n,this.nextSibling):n}function Y_(){var n=this.cloneNode(!0),a=this.parentNode;return a?a.insertBefore(n,this.nextSibling):n}function B_(n){return this.select(n?Y_:k_)}function q_(n){return arguments.length?this.property("__data__",n):this.node().__data__}function G_(n){return function(a){n.call(this,a,this.__data__)}}function X_(n){return n.trim().split(/^|\s+/).map(function(a){var i="",r=a.indexOf(".");return r>=0&&(i=a.slice(r+1),a=a.slice(0,r)),{type:a,name:i}})}function V_(n){return function(){var a=this.__on;if(a){for(var i=0,r=-1,o=a.length,f;i<o;++i)f=a[i],(!n.type||f.type===n.type)&&f.name===n.name?this.removeEventListener(f.type,f.listener,f.options):a[++r]=f;++r?a.length=r:delete this.__on}}}function Q_(n,a,i){return function(){var r=this.__on,o,f=G_(a);if(r){for(var d=0,g=r.length;d<g;++d)if((o=r[d]).type===n.type&&o.name===n.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=f,o.options=i),o.value=a;return}}this.addEventListener(n.type,f,i),o={type:n.type,name:n.name,value:a,listener:f,options:i},r?r.push(o):this.__on=[o]}}function Z_(n,a,i){var r=X_(n+""),o,f=r.length,d;if(arguments.length<2){var g=this.node().__on;if(g){for(var m=0,h=g.length,v;m<h;++m)for(o=0,v=g[m];o<f;++o)if((d=r[o]).type===v.type&&d.name===v.name)return v.value}return}for(g=a?Q_:V_,o=0;o<f;++o)this.each(g(r[o],a,i));return this}function Pp(n,a,i){var r=Kp(n),o=r.CustomEvent;typeof o=="function"?o=new o(a,i):(o=r.document.createEvent("Event"),i?(o.initEvent(a,i.bubbles,i.cancelable),o.detail=i.detail):o.initEvent(a,!1,!1)),n.dispatchEvent(o)}function $_(n,a){return function(){return Pp(this,n,a)}}function K_(n,a){return function(){return Pp(this,n,a.apply(this,arguments))}}function J_(n,a){return this.each((typeof a=="function"?K_:$_)(n,a))}function*F_(){for(var n=this._groups,a=0,i=n.length;a<i;++a)for(var r=n[a],o=0,f=r.length,d;o<f;++o)(d=r[o])&&(yield d)}var ty=[null];function je(n,a){this._groups=n,this._parents=a}function ri(){return new je([[document.documentElement]],ty)}function W_(){return this}je.prototype=ri.prototype={constructor:je,select:wS,selectAll:AS,selectChild:DS,selectChildren:jS,filter:HS,data:GS,enter:LS,exit:VS,join:QS,merge:ZS,selection:W_,order:$S,sort:KS,call:FS,nodes:WS,node:IS,size:PS,empty:t_,each:e_,attr:c_,style:d_,property:p_,classed:b_,text:T_,html:C_,raise:N_,lower:R_,append:O_,insert:j_,remove:L_,clone:B_,datum:q_,on:Z_,dispatch:J_,[Symbol.iterator]:F_};function Ue(n){return typeof n=="string"?new je([[document.querySelector(n)]],[document.documentElement]):new je([[n]],ty)}function I_(n){let a;for(;a=n.sourceEvent;)n=a;return n}function Ol(n,a){if(n=I_(n),a===void 0&&(a=n.currentTarget),a){var i=a.ownerSVGElement||a;if(i.createSVGPoint){var r=i.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(a.getScreenCTM().inverse()),[r.x,r.y]}if(a.getBoundingClientRect){var o=a.getBoundingClientRect();return[n.clientX-o.left-a.clientLeft,n.clientY-o.top-a.clientTop]}}return[n.pageX,n.pageY]}const cf={capture:!0,passive:!1};function of(n){n.preventDefault(),n.stopImmediatePropagation()}function P_(n){var a=n.document.documentElement,i=Ue(n).on("dragstart.drag",of,cf);"onselectstart"in a?i.on("selectstart.drag",of,cf):(a.__noselect=a.style.MozUserSelect,a.style.MozUserSelect="none")}function tw(n,a){var i=n.document.documentElement,r=Ue(n).on("dragstart.drag",null);a&&(r.on("click.drag",of,cf),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in i?r.on("selectstart.drag",null):(i.style.MozUserSelect=i.__noselect,delete i.__noselect)}function Nf(n,a,i){n.prototype=a.prototype=i,i.constructor=n}function ey(n,a){var i=Object.create(n.prototype);for(var r in a)i[r]=a[r];return i}function ci(){}var ti=.7,$r=1/ti,Oa="\\s*([+-]?\\d+)\\s*",ei="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",rn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ew=/^#([0-9a-f]{3,8})$/,nw=new RegExp(`^rgb\\(${Oa},${Oa},${Oa}\\)$`),lw=new RegExp(`^rgb\\(${rn},${rn},${rn}\\)$`),aw=new RegExp(`^rgba\\(${Oa},${Oa},${Oa},${ei}\\)$`),uw=new RegExp(`^rgba\\(${rn},${rn},${rn},${ei}\\)$`),iw=new RegExp(`^hsl\\(${ei},${rn},${rn}\\)$`),rw=new RegExp(`^hsla\\(${ei},${rn},${rn},${ei}\\)$`),gg={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Nf(ci,kl,{copy(n){return Object.assign(new this.constructor,this,n)},displayable(){return this.rgb().displayable()},hex:pg,formatHex:pg,formatHex8:cw,formatHsl:ow,formatRgb:yg,toString:yg});function pg(){return this.rgb().formatHex()}function cw(){return this.rgb().formatHex8()}function ow(){return ny(this).formatHsl()}function yg(){return this.rgb().formatRgb()}function kl(n){var a,i;return n=(n+"").trim().toLowerCase(),(a=ew.exec(n))?(i=a[1].length,a=parseInt(a[1],16),i===6?vg(a):i===3?new we(a>>8&15|a>>4&240,a>>4&15|a&240,(a&15)<<4|a&15,1):i===8?zr(a>>24&255,a>>16&255,a>>8&255,(a&255)/255):i===4?zr(a>>12&15|a>>8&240,a>>8&15|a>>4&240,a>>4&15|a&240,((a&15)<<4|a&15)/255):null):(a=nw.exec(n))?new we(a[1],a[2],a[3],1):(a=lw.exec(n))?new we(a[1]*255/100,a[2]*255/100,a[3]*255/100,1):(a=aw.exec(n))?zr(a[1],a[2],a[3],a[4]):(a=uw.exec(n))?zr(a[1]*255/100,a[2]*255/100,a[3]*255/100,a[4]):(a=iw.exec(n))?Sg(a[1],a[2]/100,a[3]/100,1):(a=rw.exec(n))?Sg(a[1],a[2]/100,a[3]/100,a[4]):gg.hasOwnProperty(n)?vg(gg[n]):n==="transparent"?new we(NaN,NaN,NaN,0):null}function vg(n){return new we(n>>16&255,n>>8&255,n&255,1)}function zr(n,a,i,r){return r<=0&&(n=a=i=NaN),new we(n,a,i,r)}function sw(n){return n instanceof ci||(n=kl(n)),n?(n=n.rgb(),new we(n.r,n.g,n.b,n.opacity)):new we}function sf(n,a,i,r){return arguments.length===1?sw(n):new we(n,a,i,r??1)}function we(n,a,i,r){this.r=+n,this.g=+a,this.b=+i,this.opacity=+r}Nf(we,sf,ey(ci,{brighter(n){return n=n==null?$r:Math.pow($r,n),new we(this.r*n,this.g*n,this.b*n,this.opacity)},darker(n){return n=n==null?ti:Math.pow(ti,n),new we(this.r*n,this.g*n,this.b*n,this.opacity)},rgb(){return this},clamp(){return new we(Ll(this.r),Ll(this.g),Ll(this.b),Kr(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:xg,formatHex:xg,formatHex8:fw,formatRgb:bg,toString:bg}));function xg(){return`#${Hl(this.r)}${Hl(this.g)}${Hl(this.b)}`}function fw(){return`#${Hl(this.r)}${Hl(this.g)}${Hl(this.b)}${Hl((isNaN(this.opacity)?1:this.opacity)*255)}`}function bg(){const n=Kr(this.opacity);return`${n===1?"rgb(":"rgba("}${Ll(this.r)}, ${Ll(this.g)}, ${Ll(this.b)}${n===1?")":`, ${n})`}`}function Kr(n){return isNaN(n)?1:Math.max(0,Math.min(1,n))}function Ll(n){return Math.max(0,Math.min(255,Math.round(n)||0))}function Hl(n){return n=Ll(n),(n<16?"0":"")+n.toString(16)}function Sg(n,a,i,r){return r<=0?n=a=i=NaN:i<=0||i>=1?n=a=NaN:a<=0&&(n=NaN),new Ie(n,a,i,r)}function ny(n){if(n instanceof Ie)return new Ie(n.h,n.s,n.l,n.opacity);if(n instanceof ci||(n=kl(n)),!n)return new Ie;if(n instanceof Ie)return n;n=n.rgb();var a=n.r/255,i=n.g/255,r=n.b/255,o=Math.min(a,i,r),f=Math.max(a,i,r),d=NaN,g=f-o,m=(f+o)/2;return g?(a===f?d=(i-r)/g+(i<r)*6:i===f?d=(r-a)/g+2:d=(a-i)/g+4,g/=m<.5?f+o:2-f-o,d*=60):g=m>0&&m<1?0:d,new Ie(d,g,m,n.opacity)}function dw(n,a,i,r){return arguments.length===1?ny(n):new Ie(n,a,i,r??1)}function Ie(n,a,i,r){this.h=+n,this.s=+a,this.l=+i,this.opacity=+r}Nf(Ie,dw,ey(ci,{brighter(n){return n=n==null?$r:Math.pow($r,n),new Ie(this.h,this.s,this.l*n,this.opacity)},darker(n){return n=n==null?ti:Math.pow(ti,n),new Ie(this.h,this.s,this.l*n,this.opacity)},rgb(){var n=this.h%360+(this.h<0)*360,a=isNaN(n)||isNaN(this.s)?0:this.s,i=this.l,r=i+(i<.5?i:1-i)*a,o=2*i-r;return new we(Ys(n>=240?n-240:n+120,o,r),Ys(n,o,r),Ys(n<120?n+240:n-120,o,r),this.opacity)},clamp(){return new Ie(_g(this.h),Nr(this.s),Nr(this.l),Kr(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const n=Kr(this.opacity);return`${n===1?"hsl(":"hsla("}${_g(this.h)}, ${Nr(this.s)*100}%, ${Nr(this.l)*100}%${n===1?")":`, ${n})`}`}}));function _g(n){return n=(n||0)%360,n<0?n+360:n}function Nr(n){return Math.max(0,Math.min(1,n||0))}function Ys(n,a,i){return(n<60?a+(i-a)*n/60:n<180?i:n<240?a+(i-a)*(240-n)/60:a)*255}const Df=n=>()=>n;function hw(n,a){return function(i){return n+i*a}}function mw(n,a,i){return n=Math.pow(n,i),a=Math.pow(a,i)-n,i=1/i,function(r){return Math.pow(n+r*a,i)}}function gw(n){return(n=+n)==1?ly:function(a,i){return i-a?mw(a,i,n):Df(isNaN(a)?i:a)}}function ly(n,a){var i=a-n;return i?hw(n,i):Df(isNaN(n)?a:n)}const Jr=(function n(a){var i=gw(a);function r(o,f){var d=i((o=sf(o)).r,(f=sf(f)).r),g=i(o.g,f.g),m=i(o.b,f.b),h=ly(o.opacity,f.opacity);return function(v){return o.r=d(v),o.g=g(v),o.b=m(v),o.opacity=h(v),o+""}}return r.gamma=n,r})(1);function pw(n,a){a||(a=[]);var i=n?Math.min(a.length,n.length):0,r=a.slice(),o;return function(f){for(o=0;o<i;++o)r[o]=n[o]*(1-f)+a[o]*f;return r}}function yw(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function vw(n,a){var i=a?a.length:0,r=n?Math.min(i,n.length):0,o=new Array(r),f=new Array(i),d;for(d=0;d<r;++d)o[d]=Rf(n[d],a[d]);for(;d<i;++d)f[d]=a[d];return function(g){for(d=0;d<r;++d)f[d]=o[d](g);return f}}function xw(n,a){var i=new Date;return n=+n,a=+a,function(r){return i.setTime(n*(1-r)+a*r),i}}function We(n,a){return n=+n,a=+a,function(i){return n*(1-i)+a*i}}function bw(n,a){var i={},r={},o;(n===null||typeof n!="object")&&(n={}),(a===null||typeof a!="object")&&(a={});for(o in a)o in n?i[o]=Rf(n[o],a[o]):r[o]=a[o];return function(f){for(o in i)r[o]=i[o](f);return r}}var ff=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Bs=new RegExp(ff.source,"g");function Sw(n){return function(){return n}}function _w(n){return function(a){return n(a)+""}}function ay(n,a){var i=ff.lastIndex=Bs.lastIndex=0,r,o,f,d=-1,g=[],m=[];for(n=n+"",a=a+"";(r=ff.exec(n))&&(o=Bs.exec(a));)(f=o.index)>i&&(f=a.slice(i,f),g[d]?g[d]+=f:g[++d]=f),(r=r[0])===(o=o[0])?g[d]?g[d]+=o:g[++d]=o:(g[++d]=null,m.push({i:d,x:We(r,o)})),i=Bs.lastIndex;return i<a.length&&(f=a.slice(i),g[d]?g[d]+=f:g[++d]=f),g.length<2?m[0]?_w(m[0].x):Sw(a):(a=m.length,function(h){for(var v=0,y;v<a;++v)g[(y=m[v]).i]=y.x(h);return g.join("")})}function Rf(n,a){var i=typeof a,r;return a==null||i==="boolean"?Df(a):(i==="number"?We:i==="string"?(r=kl(a))?(a=r,Jr):ay:a instanceof kl?Jr:a instanceof Date?xw:yw(a)?pw:Array.isArray(a)?vw:typeof a.valueOf!="function"&&typeof a.toString!="function"||isNaN(a)?bw:We)(n,a)}function ww(n,a){return n=+n,a=+a,function(i){return Math.round(n*(1-i)+a*i)}}var wg=180/Math.PI,df={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function uy(n,a,i,r,o,f){var d,g,m;return(d=Math.sqrt(n*n+a*a))&&(n/=d,a/=d),(m=n*i+a*r)&&(i-=n*m,r-=a*m),(g=Math.sqrt(i*i+r*r))&&(i/=g,r/=g,m/=g),n*r<a*i&&(n=-n,a=-a,m=-m,d=-d),{translateX:o,translateY:f,rotate:Math.atan2(a,n)*wg,skewX:Math.atan(m)*wg,scaleX:d,scaleY:g}}var Dr;function Tw(n){const a=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(n+"");return a.isIdentity?df:uy(a.a,a.b,a.c,a.d,a.e,a.f)}function Mw(n){return n==null||(Dr||(Dr=document.createElementNS("http://www.w3.org/2000/svg","g")),Dr.setAttribute("transform",n),!(n=Dr.transform.baseVal.consolidate()))?df:(n=n.matrix,uy(n.a,n.b,n.c,n.d,n.e,n.f))}function iy(n,a,i,r){function o(h){return h.length?h.pop()+" ":""}function f(h,v,y,x,w,k){if(h!==y||v!==x){var N=w.push("translate(",null,a,null,i);k.push({i:N-4,x:We(h,y)},{i:N-2,x:We(v,x)})}else(y||x)&&w.push("translate("+y+a+x+i)}function d(h,v,y,x){h!==v?(h-v>180?v+=360:v-h>180&&(h+=360),x.push({i:y.push(o(y)+"rotate(",null,r)-2,x:We(h,v)})):v&&y.push(o(y)+"rotate("+v+r)}function g(h,v,y,x){h!==v?x.push({i:y.push(o(y)+"skewX(",null,r)-2,x:We(h,v)}):v&&y.push(o(y)+"skewX("+v+r)}function m(h,v,y,x,w,k){if(h!==y||v!==x){var N=w.push(o(w)+"scale(",null,",",null,")");k.push({i:N-4,x:We(h,y)},{i:N-2,x:We(v,x)})}else(y!==1||x!==1)&&w.push(o(w)+"scale("+y+","+x+")")}return function(h,v){var y=[],x=[];return h=n(h),v=n(v),f(h.translateX,h.translateY,v.translateX,v.translateY,y,x),d(h.rotate,v.rotate,y,x),g(h.skewX,v.skewX,y,x),m(h.scaleX,h.scaleY,v.scaleX,v.scaleY,y,x),h=v=null,function(w){for(var k=-1,N=x.length,C;++k<N;)y[(C=x[k]).i]=C.x(w);return y.join("")}}}var Ew=iy(Tw,"px, ","px)","deg)"),Aw=iy(Mw,", ",")",")"),Cw=1e-12;function Tg(n){return((n=Math.exp(n))+1/n)/2}function zw(n){return((n=Math.exp(n))-1/n)/2}function Nw(n){return((n=Math.exp(2*n))-1)/(n+1)}const Dw=(function n(a,i,r){function o(f,d){var g=f[0],m=f[1],h=f[2],v=d[0],y=d[1],x=d[2],w=v-g,k=y-m,N=w*w+k*k,C,A;if(N<Cw)A=Math.log(x/h)/a,C=function(K){return[g+K*w,m+K*k,h*Math.exp(a*K*A)]};else{var q=Math.sqrt(N),L=(x*x-h*h+r*N)/(2*h*i*q),J=(x*x-h*h-r*N)/(2*x*i*q),nt=Math.log(Math.sqrt(L*L+1)-L),V=Math.log(Math.sqrt(J*J+1)-J);A=(V-nt)/a,C=function(K){var st=K*A,dt=Tg(nt),vt=h/(i*q)*(dt*Nw(a*st+nt)-zw(nt));return[g+vt*w,m+vt*k,h*dt/Tg(a*st+nt)]}}return C.duration=A*1e3*a/Math.SQRT2,C}return o.rho=function(f){var d=Math.max(.001,+f),g=d*d,m=g*g;return n(d,g,m)},o})(Math.SQRT2,2,4);var ja=0,$u=0,qu=0,ry=1e3,Fr,Ku,Wr=0,Yl=0,sc=0,ni=typeof performance=="object"&&performance.now?performance:Date,cy=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(n){setTimeout(n,17)};function Of(){return Yl||(cy(Rw),Yl=ni.now()+sc)}function Rw(){Yl=0}function Ir(){this._call=this._time=this._next=null}Ir.prototype=oy.prototype={constructor:Ir,restart:function(n,a,i){if(typeof n!="function")throw new TypeError("callback is not a function");i=(i==null?Of():+i)+(a==null?0:+a),!this._next&&Ku!==this&&(Ku?Ku._next=this:Fr=this,Ku=this),this._call=n,this._time=i,hf()},stop:function(){this._call&&(this._call=null,this._time=1/0,hf())}};function oy(n,a,i){var r=new Ir;return r.restart(n,a,i),r}function Ow(){Of(),++ja;for(var n=Fr,a;n;)(a=Yl-n._time)>=0&&n._call.call(void 0,a),n=n._next;--ja}function Mg(){Yl=(Wr=ni.now())+sc,ja=$u=0;try{Ow()}finally{ja=0,jw(),Yl=0}}function Uw(){var n=ni.now(),a=n-Wr;a>ry&&(sc-=a,Wr=n)}function jw(){for(var n,a=Fr,i,r=1/0;a;)a._call?(r>a._time&&(r=a._time),n=a,a=a._next):(i=a._next,a._next=null,a=n?n._next=i:Fr=i);Ku=n,hf(r)}function hf(n){if(!ja){$u&&($u=clearTimeout($u));var a=n-Yl;a>24?(n<1/0&&($u=setTimeout(Mg,n-ni.now()-sc)),qu&&(qu=clearInterval(qu))):(qu||(Wr=ni.now(),qu=setInterval(Uw,ry)),ja=1,cy(Mg))}}function Eg(n,a,i){var r=new Ir;return a=a==null?0:+a,r.restart(o=>{r.stop(),n(o+a)},a,i),r}var Hw=Af("start","end","cancel","interrupt"),Lw=[],sy=0,Ag=1,mf=2,qr=3,Cg=4,gf=5,Gr=6;function fc(n,a,i,r,o,f){var d=n.__transition;if(!d)n.__transition={};else if(i in d)return;kw(n,i,{name:a,index:r,group:o,on:Hw,tween:Lw,time:f.time,delay:f.delay,duration:f.duration,ease:f.ease,timer:null,state:sy})}function Uf(n,a){var i=en(n,a);if(i.state>sy)throw new Error("too late; already scheduled");return i}function sn(n,a){var i=en(n,a);if(i.state>qr)throw new Error("too late; already running");return i}function en(n,a){var i=n.__transition;if(!i||!(i=i[a]))throw new Error("transition not found");return i}function kw(n,a,i){var r=n.__transition,o;r[a]=i,i.timer=oy(f,0,i.time);function f(h){i.state=Ag,i.timer.restart(d,i.delay,i.time),i.delay<=h&&d(h-i.delay)}function d(h){var v,y,x,w;if(i.state!==Ag)return m();for(v in r)if(w=r[v],w.name===i.name){if(w.state===qr)return Eg(d);w.state===Cg?(w.state=Gr,w.timer.stop(),w.on.call("interrupt",n,n.__data__,w.index,w.group),delete r[v]):+v<a&&(w.state=Gr,w.timer.stop(),w.on.call("cancel",n,n.__data__,w.index,w.group),delete r[v])}if(Eg(function(){i.state===qr&&(i.state=Cg,i.timer.restart(g,i.delay,i.time),g(h))}),i.state=mf,i.on.call("start",n,n.__data__,i.index,i.group),i.state===mf){for(i.state=qr,o=new Array(x=i.tween.length),v=0,y=-1;v<x;++v)(w=i.tween[v].value.call(n,n.__data__,i.index,i.group))&&(o[++y]=w);o.length=y+1}}function g(h){for(var v=h<i.duration?i.ease.call(null,h/i.duration):(i.timer.restart(m),i.state=gf,1),y=-1,x=o.length;++y<x;)o[y].call(n,v);i.state===gf&&(i.on.call("end",n,n.__data__,i.index,i.group),m())}function m(){i.state=Gr,i.timer.stop(),delete r[a];for(var h in r)return;delete n.__transition}}function Xr(n,a){var i=n.__transition,r,o,f=!0,d;if(i){a=a==null?null:a+"";for(d in i){if((r=i[d]).name!==a){f=!1;continue}o=r.state>mf&&r.state<gf,r.state=Gr,r.timer.stop(),r.on.call(o?"interrupt":"cancel",n,n.__data__,r.index,r.group),delete i[d]}f&&delete n.__transition}}function Yw(n){return this.each(function(){Xr(this,n)})}function Bw(n,a){var i,r;return function(){var o=sn(this,n),f=o.tween;if(f!==i){r=i=f;for(var d=0,g=r.length;d<g;++d)if(r[d].name===a){r=r.slice(),r.splice(d,1);break}}o.tween=r}}function qw(n,a,i){var r,o;if(typeof i!="function")throw new Error;return function(){var f=sn(this,n),d=f.tween;if(d!==r){o=(r=d).slice();for(var g={name:a,value:i},m=0,h=o.length;m<h;++m)if(o[m].name===a){o[m]=g;break}m===h&&o.push(g)}f.tween=o}}function Gw(n,a){var i=this._id;if(n+="",arguments.length<2){for(var r=en(this.node(),i).tween,o=0,f=r.length,d;o<f;++o)if((d=r[o]).name===n)return d.value;return null}return this.each((a==null?Bw:qw)(i,n,a))}function jf(n,a,i){var r=n._id;return n.each(function(){var o=sn(this,r);(o.value||(o.value={}))[a]=i.apply(this,arguments)}),function(o){return en(o,r).value[a]}}function fy(n,a){var i;return(typeof a=="number"?We:a instanceof kl?Jr:(i=kl(a))?(a=i,Jr):ay)(n,a)}function Xw(n){return function(){this.removeAttribute(n)}}function Vw(n){return function(){this.removeAttributeNS(n.space,n.local)}}function Qw(n,a,i){var r,o=i+"",f;return function(){var d=this.getAttribute(n);return d===o?null:d===r?f:f=a(r=d,i)}}function Zw(n,a,i){var r,o=i+"",f;return function(){var d=this.getAttributeNS(n.space,n.local);return d===o?null:d===r?f:f=a(r=d,i)}}function $w(n,a,i){var r,o,f;return function(){var d,g=i(this),m;return g==null?void this.removeAttribute(n):(d=this.getAttribute(n),m=g+"",d===m?null:d===r&&m===o?f:(o=m,f=a(r=d,g)))}}function Kw(n,a,i){var r,o,f;return function(){var d,g=i(this),m;return g==null?void this.removeAttributeNS(n.space,n.local):(d=this.getAttributeNS(n.space,n.local),m=g+"",d===m?null:d===r&&m===o?f:(o=m,f=a(r=d,g)))}}function Jw(n,a){var i=oc(n),r=i==="transform"?Aw:fy;return this.attrTween(n,typeof a=="function"?(i.local?Kw:$w)(i,r,jf(this,"attr."+n,a)):a==null?(i.local?Vw:Xw)(i):(i.local?Zw:Qw)(i,r,a))}function Fw(n,a){return function(i){this.setAttribute(n,a.call(this,i))}}function Ww(n,a){return function(i){this.setAttributeNS(n.space,n.local,a.call(this,i))}}function Iw(n,a){var i,r;function o(){var f=a.apply(this,arguments);return f!==r&&(i=(r=f)&&Ww(n,f)),i}return o._value=a,o}function Pw(n,a){var i,r;function o(){var f=a.apply(this,arguments);return f!==r&&(i=(r=f)&&Fw(n,f)),i}return o._value=a,o}function t3(n,a){var i="attr."+n;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(a==null)return this.tween(i,null);if(typeof a!="function")throw new Error;var r=oc(n);return this.tween(i,(r.local?Iw:Pw)(r,a))}function e3(n,a){return function(){Uf(this,n).delay=+a.apply(this,arguments)}}function n3(n,a){return a=+a,function(){Uf(this,n).delay=a}}function l3(n){var a=this._id;return arguments.length?this.each((typeof n=="function"?e3:n3)(a,n)):en(this.node(),a).delay}function a3(n,a){return function(){sn(this,n).duration=+a.apply(this,arguments)}}function u3(n,a){return a=+a,function(){sn(this,n).duration=a}}function i3(n){var a=this._id;return arguments.length?this.each((typeof n=="function"?a3:u3)(a,n)):en(this.node(),a).duration}function r3(n,a){if(typeof a!="function")throw new Error;return function(){sn(this,n).ease=a}}function c3(n){var a=this._id;return arguments.length?this.each(r3(a,n)):en(this.node(),a).ease}function o3(n,a){return function(){var i=a.apply(this,arguments);if(typeof i!="function")throw new Error;sn(this,n).ease=i}}function s3(n){if(typeof n!="function")throw new Error;return this.each(o3(this._id,n))}function f3(n){typeof n!="function"&&(n=Qp(n));for(var a=this._groups,i=a.length,r=new Array(i),o=0;o<i;++o)for(var f=a[o],d=f.length,g=r[o]=[],m,h=0;h<d;++h)(m=f[h])&&n.call(m,m.__data__,h,f)&&g.push(m);return new Ln(r,this._parents,this._name,this._id)}function d3(n){if(n._id!==this._id)throw new Error;for(var a=this._groups,i=n._groups,r=a.length,o=i.length,f=Math.min(r,o),d=new Array(r),g=0;g<f;++g)for(var m=a[g],h=i[g],v=m.length,y=d[g]=new Array(v),x,w=0;w<v;++w)(x=m[w]||h[w])&&(y[w]=x);for(;g<r;++g)d[g]=a[g];return new Ln(d,this._parents,this._name,this._id)}function h3(n){return(n+"").trim().split(/^|\s+/).every(function(a){var i=a.indexOf(".");return i>=0&&(a=a.slice(0,i)),!a||a==="start"})}function m3(n,a,i){var r,o,f=h3(a)?Uf:sn;return function(){var d=f(this,n),g=d.on;g!==r&&(o=(r=g).copy()).on(a,i),d.on=o}}function g3(n,a){var i=this._id;return arguments.length<2?en(this.node(),i).on.on(n):this.each(m3(i,n,a))}function p3(n){return function(){var a=this.parentNode;for(var i in this.__transition)if(+i!==n)return;a&&a.removeChild(this)}}function y3(){return this.on("end.remove",p3(this._id))}function v3(n){var a=this._name,i=this._id;typeof n!="function"&&(n=Cf(n));for(var r=this._groups,o=r.length,f=new Array(o),d=0;d<o;++d)for(var g=r[d],m=g.length,h=f[d]=new Array(m),v,y,x=0;x<m;++x)(v=g[x])&&(y=n.call(v,v.__data__,x,g))&&("__data__"in v&&(y.__data__=v.__data__),h[x]=y,fc(h[x],a,i,x,h,en(v,i)));return new Ln(f,this._parents,a,i)}function x3(n){var a=this._name,i=this._id;typeof n!="function"&&(n=Vp(n));for(var r=this._groups,o=r.length,f=[],d=[],g=0;g<o;++g)for(var m=r[g],h=m.length,v,y=0;y<h;++y)if(v=m[y]){for(var x=n.call(v,v.__data__,y,m),w,k=en(v,i),N=0,C=x.length;N<C;++N)(w=x[N])&&fc(w,a,i,N,x,k);f.push(x),d.push(v)}return new Ln(f,d,a,i)}var b3=ri.prototype.constructor;function S3(){return new b3(this._groups,this._parents)}function _3(n,a){var i,r,o;return function(){var f=Ua(this,n),d=(this.style.removeProperty(n),Ua(this,n));return f===d?null:f===i&&d===r?o:o=a(i=f,r=d)}}function dy(n){return function(){this.style.removeProperty(n)}}function w3(n,a,i){var r,o=i+"",f;return function(){var d=Ua(this,n);return d===o?null:d===r?f:f=a(r=d,i)}}function T3(n,a,i){var r,o,f;return function(){var d=Ua(this,n),g=i(this),m=g+"";return g==null&&(m=g=(this.style.removeProperty(n),Ua(this,n))),d===m?null:d===r&&m===o?f:(o=m,f=a(r=d,g))}}function M3(n,a){var i,r,o,f="style."+a,d="end."+f,g;return function(){var m=sn(this,n),h=m.on,v=m.value[f]==null?g||(g=dy(a)):void 0;(h!==i||o!==v)&&(r=(i=h).copy()).on(d,o=v),m.on=r}}function E3(n,a,i){var r=(n+="")=="transform"?Ew:fy;return a==null?this.styleTween(n,_3(n,r)).on("end.style."+n,dy(n)):typeof a=="function"?this.styleTween(n,T3(n,r,jf(this,"style."+n,a))).each(M3(this._id,n)):this.styleTween(n,w3(n,r,a),i).on("end.style."+n,null)}function A3(n,a,i){return function(r){this.style.setProperty(n,a.call(this,r),i)}}function C3(n,a,i){var r,o;function f(){var d=a.apply(this,arguments);return d!==o&&(r=(o=d)&&A3(n,d,i)),r}return f._value=a,f}function z3(n,a,i){var r="style."+(n+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(a==null)return this.tween(r,null);if(typeof a!="function")throw new Error;return this.tween(r,C3(n,a,i??""))}function N3(n){return function(){this.textContent=n}}function D3(n){return function(){var a=n(this);this.textContent=a??""}}function R3(n){return this.tween("text",typeof n=="function"?D3(jf(this,"text",n)):N3(n==null?"":n+""))}function O3(n){return function(a){this.textContent=n.call(this,a)}}function U3(n){var a,i;function r(){var o=n.apply(this,arguments);return o!==i&&(a=(i=o)&&O3(o)),a}return r._value=n,r}function j3(n){var a="text";if(arguments.length<1)return(a=this.tween(a))&&a._value;if(n==null)return this.tween(a,null);if(typeof n!="function")throw new Error;return this.tween(a,U3(n))}function H3(){for(var n=this._name,a=this._id,i=hy(),r=this._groups,o=r.length,f=0;f<o;++f)for(var d=r[f],g=d.length,m,h=0;h<g;++h)if(m=d[h]){var v=en(m,a);fc(m,n,i,h,d,{time:v.time+v.delay+v.duration,delay:0,duration:v.duration,ease:v.ease})}return new Ln(r,this._parents,n,i)}function L3(){var n,a,i=this,r=i._id,o=i.size();return new Promise(function(f,d){var g={value:d},m={value:function(){--o===0&&f()}};i.each(function(){var h=sn(this,r),v=h.on;v!==n&&(a=(n=v).copy(),a._.cancel.push(g),a._.interrupt.push(g),a._.end.push(m)),h.on=a}),o===0&&f()})}var k3=0;function Ln(n,a,i,r){this._groups=n,this._parents=a,this._name=i,this._id=r}function hy(){return++k3}var Dn=ri.prototype;Ln.prototype={constructor:Ln,select:v3,selectAll:x3,selectChild:Dn.selectChild,selectChildren:Dn.selectChildren,filter:f3,merge:d3,selection:S3,transition:H3,call:Dn.call,nodes:Dn.nodes,node:Dn.node,size:Dn.size,empty:Dn.empty,each:Dn.each,on:g3,attr:Jw,attrTween:t3,style:E3,styleTween:z3,text:R3,textTween:j3,remove:y3,tween:Gw,delay:l3,duration:i3,ease:c3,easeVarying:s3,end:L3,[Symbol.iterator]:Dn[Symbol.iterator]};function Y3(n){return((n*=2)<=1?n*n*n:(n-=2)*n*n+2)/2}var B3={time:null,delay:0,duration:250,ease:Y3};function q3(n,a){for(var i;!(i=n.__transition)||!(i=i[a]);)if(!(n=n.parentNode))throw new Error(`transition ${a} not found`);return i}function G3(n){var a,i;n instanceof Ln?(a=n._id,n=n._name):(a=hy(),(i=B3).time=Of(),n=n==null?null:n+"");for(var r=this._groups,o=r.length,f=0;f<o;++f)for(var d=r[f],g=d.length,m,h=0;h<g;++h)(m=d[h])&&fc(m,n,a,h,d,i||q3(m,a));return new Ln(r,this._parents,n,a)}ri.prototype.interrupt=Yw;ri.prototype.transition=G3;const pf=Math.PI,yf=2*pf,jl=1e-6,X3=yf-jl;function my(n){this._+=n[0];for(let a=1,i=n.length;a<i;++a)this._+=arguments[a]+n[a]}function V3(n){let a=Math.floor(n);if(!(a>=0))throw new Error(`invalid digits: ${n}`);if(a>15)return my;const i=10**a;return function(r){this._+=r[0];for(let o=1,f=r.length;o<f;++o)this._+=Math.round(arguments[o]*i)/i+r[o]}}class Q3{constructor(a){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=a==null?my:V3(a)}moveTo(a,i){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+i}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(a,i){this._append`L${this._x1=+a},${this._y1=+i}`}quadraticCurveTo(a,i,r,o){this._append`Q${+a},${+i},${this._x1=+r},${this._y1=+o}`}bezierCurveTo(a,i,r,o,f,d){this._append`C${+a},${+i},${+r},${+o},${this._x1=+f},${this._y1=+d}`}arcTo(a,i,r,o,f){if(a=+a,i=+i,r=+r,o=+o,f=+f,f<0)throw new Error(`negative radius: ${f}`);let d=this._x1,g=this._y1,m=r-a,h=o-i,v=d-a,y=g-i,x=v*v+y*y;if(this._x1===null)this._append`M${this._x1=a},${this._y1=i}`;else if(x>jl)if(!(Math.abs(y*m-h*v)>jl)||!f)this._append`L${this._x1=a},${this._y1=i}`;else{let w=r-d,k=o-g,N=m*m+h*h,C=w*w+k*k,A=Math.sqrt(N),q=Math.sqrt(x),L=f*Math.tan((pf-Math.acos((N+x-C)/(2*A*q)))/2),J=L/q,nt=L/A;Math.abs(J-1)>jl&&this._append`L${a+J*v},${i+J*y}`,this._append`A${f},${f},0,0,${+(y*w>v*k)},${this._x1=a+nt*m},${this._y1=i+nt*h}`}}arc(a,i,r,o,f,d){if(a=+a,i=+i,r=+r,d=!!d,r<0)throw new Error(`negative radius: ${r}`);let g=r*Math.cos(o),m=r*Math.sin(o),h=a+g,v=i+m,y=1^d,x=d?o-f:f-o;this._x1===null?this._append`M${h},${v}`:(Math.abs(this._x1-h)>jl||Math.abs(this._y1-v)>jl)&&this._append`L${h},${v}`,r&&(x<0&&(x=x%yf+yf),x>X3?this._append`A${r},${r},0,1,${y},${a-g},${i-m}A${r},${r},0,1,${y},${this._x1=h},${this._y1=v}`:x>jl&&this._append`A${r},${r},0,${+(x>=pf)},${y},${this._x1=a+r*Math.cos(f)},${this._y1=i+r*Math.sin(f)}`)}rect(a,i,r,o){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+i}h${r=+r}v${+o}h${-r}Z`}toString(){return this._}}function Z3(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function Pr(n,a){if(!isFinite(n)||n===0)return null;var i=(n=a?n.toExponential(a-1):n.toExponential()).indexOf("e"),r=n.slice(0,i);return[r.length>1?r[0]+r.slice(2):r,+n.slice(i+1)]}function Ha(n){return n=Pr(Math.abs(n)),n?n[1]:NaN}function $3(n,a){return function(i,r){for(var o=i.length,f=[],d=0,g=n[0],m=0;o>0&&g>0&&(m+g+1>r&&(g=Math.max(1,r-m)),f.push(i.substring(o-=g,o+g)),!((m+=g+1)>r));)g=n[d=(d+1)%n.length];return f.reverse().join(a)}}function K3(n){return function(a){return a.replace(/[0-9]/g,function(i){return n[+i]})}}var J3=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tc(n){if(!(a=J3.exec(n)))throw new Error("invalid format: "+n);var a;return new Hf({fill:a[1],align:a[2],sign:a[3],symbol:a[4],zero:a[5],width:a[6],comma:a[7],precision:a[8]&&a[8].slice(1),trim:a[9],type:a[10]})}tc.prototype=Hf.prototype;function Hf(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}Hf.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function F3(n){t:for(var a=n.length,i=1,r=-1,o;i<a;++i)switch(n[i]){case".":r=o=i;break;case"0":r===0&&(r=i),o=i;break;default:if(!+n[i])break t;r>0&&(r=0);break}return r>0?n.slice(0,r)+n.slice(o+1):n}var ec;function W3(n,a){var i=Pr(n,a);if(!i)return ec=void 0,n.toPrecision(a);var r=i[0],o=i[1],f=o-(ec=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,d=r.length;return f===d?r:f>d?r+new Array(f-d+1).join("0"):f>0?r.slice(0,f)+"."+r.slice(f):"0."+new Array(1-f).join("0")+Pr(n,Math.max(0,a+f-1))[0]}function zg(n,a){var i=Pr(n,a);if(!i)return n+"";var r=i[0],o=i[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}const Ng={"%":(n,a)=>(n*100).toFixed(a),b:n=>Math.round(n).toString(2),c:n=>n+"",d:Z3,e:(n,a)=>n.toExponential(a),f:(n,a)=>n.toFixed(a),g:(n,a)=>n.toPrecision(a),o:n=>Math.round(n).toString(8),p:(n,a)=>zg(n*100,a),r:zg,s:W3,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function Dg(n){return n}var Rg=Array.prototype.map,Og=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function I3(n){var a=n.grouping===void 0||n.thousands===void 0?Dg:$3(Rg.call(n.grouping,Number),n.thousands+""),i=n.currency===void 0?"":n.currency[0]+"",r=n.currency===void 0?"":n.currency[1]+"",o=n.decimal===void 0?".":n.decimal+"",f=n.numerals===void 0?Dg:K3(Rg.call(n.numerals,String)),d=n.percent===void 0?"%":n.percent+"",g=n.minus===void 0?"−":n.minus+"",m=n.nan===void 0?"NaN":n.nan+"";function h(y,x){y=tc(y);var w=y.fill,k=y.align,N=y.sign,C=y.symbol,A=y.zero,q=y.width,L=y.comma,J=y.precision,nt=y.trim,V=y.type;V==="n"?(L=!0,V="g"):Ng[V]||(J===void 0&&(J=12),nt=!0,V="g"),(A||w==="0"&&k==="=")&&(A=!0,w="0",k="=");var K=(x&&x.prefix!==void 0?x.prefix:"")+(C==="$"?i:C==="#"&&/[boxX]/.test(V)?"0"+V.toLowerCase():""),st=(C==="$"?r:/[%p]/.test(V)?d:"")+(x&&x.suffix!==void 0?x.suffix:""),dt=Ng[V],vt=/[defgprs%]/.test(V);J=J===void 0?6:/[gprs]/.test(V)?Math.max(1,Math.min(21,J)):Math.max(0,Math.min(20,J));function _t(X){var ht=K,D=st,P,M,Y;if(V==="c")D=dt(X)+D,X="";else{X=+X;var F=X<0||1/X<0;if(X=isNaN(X)?m:dt(Math.abs(X),J),nt&&(X=F3(X)),F&&+X==0&&N!=="+"&&(F=!1),ht=(F?N==="("?N:g:N==="-"||N==="("?"":N)+ht,D=(V==="s"&&!isNaN(X)&&ec!==void 0?Og[8+ec/3]:"")+D+(F&&N==="("?")":""),vt){for(P=-1,M=X.length;++P<M;)if(Y=X.charCodeAt(P),48>Y||Y>57){D=(Y===46?o+X.slice(P+1):X.slice(P))+D,X=X.slice(0,P);break}}}L&&!A&&(X=a(X,1/0));var at=ht.length+X.length+D.length,lt=at<q?new Array(q-at+1).join(w):"";switch(L&&A&&(X=a(lt+X,lt.length?q-D.length:1/0),lt=""),k){case"<":X=ht+X+D+lt;break;case"=":X=ht+lt+X+D;break;case"^":X=lt.slice(0,at=lt.length>>1)+ht+X+D+lt.slice(at);break;default:X=lt+ht+X+D;break}return f(X)}return _t.toString=function(){return y+""},_t}function v(y,x){var w=Math.max(-8,Math.min(8,Math.floor(Ha(x)/3)))*3,k=Math.pow(10,-w),N=h((y=tc(y),y.type="f",y),{suffix:Og[8+w/3]});return function(C){return N(k*C)}}return{format:h,formatPrefix:v}}var Rr,gy,py;P3({thousands:",",grouping:[3],currency:["$",""]});function P3(n){return Rr=I3(n),gy=Rr.format,py=Rr.formatPrefix,Rr}function tT(n){return Math.max(0,-Ha(Math.abs(n)))}function eT(n,a){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ha(a)/3)))*3-Ha(Math.abs(n)))}function nT(n,a){return n=Math.abs(n),a=Math.abs(a)-n,Math.max(0,Ha(a)-Ha(n))+1}function lT(n){var a=0,i=n.children,r=i&&i.length;if(!r)a=1;else for(;--r>=0;)a+=i[r].value;n.value=a}function aT(){return this.eachAfter(lT)}function uT(n,a){let i=-1;for(const r of this)n.call(a,r,++i,this);return this}function iT(n,a){for(var i=this,r=[i],o,f,d=-1;i=r.pop();)if(n.call(a,i,++d,this),o=i.children)for(f=o.length-1;f>=0;--f)r.push(o[f]);return this}function rT(n,a){for(var i=this,r=[i],o=[],f,d,g,m=-1;i=r.pop();)if(o.push(i),f=i.children)for(d=0,g=f.length;d<g;++d)r.push(f[d]);for(;i=o.pop();)n.call(a,i,++m,this);return this}function cT(n,a){let i=-1;for(const r of this)if(n.call(a,r,++i,this))return r}function oT(n){return this.eachAfter(function(a){for(var i=+n(a.data)||0,r=a.children,o=r&&r.length;--o>=0;)i+=r[o].value;a.value=i})}function sT(n){return this.eachBefore(function(a){a.children&&a.children.sort(n)})}function fT(n){for(var a=this,i=dT(a,n),r=[a];a!==i;)a=a.parent,r.push(a);for(var o=r.length;n!==i;)r.splice(o,0,n),n=n.parent;return r}function dT(n,a){if(n===a)return n;var i=n.ancestors(),r=a.ancestors(),o=null;for(n=i.pop(),a=r.pop();n===a;)o=n,n=i.pop(),a=r.pop();return o}function hT(){for(var n=this,a=[n];n=n.parent;)a.push(n);return a}function mT(){return Array.from(this)}function gT(){var n=[];return this.eachBefore(function(a){a.children||n.push(a)}),n}function pT(){var n=this,a=[];return n.each(function(i){i!==n&&a.push({source:i.parent,target:i})}),a}function*yT(){var n=this,a,i=[n],r,o,f;do for(a=i.reverse(),i=[];n=a.pop();)if(yield n,r=n.children)for(o=0,f=r.length;o<f;++o)i.push(r[o]);while(i.length)}function Lf(n,a){n instanceof Map?(n=[void 0,n],a===void 0&&(a=bT)):a===void 0&&(a=xT);for(var i=new nc(n),r,o=[i],f,d,g,m;r=o.pop();)if((d=a(r.data))&&(m=(d=Array.from(d)).length))for(r.children=d,g=m-1;g>=0;--g)o.push(f=d[g]=new nc(d[g])),f.parent=r,f.depth=r.depth+1;return i.eachBefore(_T)}function vT(){return Lf(this).eachBefore(ST)}function xT(n){return n.children}function bT(n){return Array.isArray(n)?n[1]:null}function ST(n){n.data.value!==void 0&&(n.value=n.data.value),n.data=n.data.data}function _T(n){var a=0;do n.height=a;while((n=n.parent)&&n.height<++a)}function nc(n){this.data=n,this.depth=this.height=0,this.parent=null}nc.prototype=Lf.prototype={constructor:nc,count:aT,each:uT,eachAfter:rT,eachBefore:iT,find:cT,sum:oT,sort:sT,path:fT,ancestors:hT,descendants:mT,leaves:gT,links:pT,copy:vT,[Symbol.iterator]:yT};function wT(n){return n==null?null:TT(n)}function TT(n){if(typeof n!="function")throw new Error;return n}function Ug(){return 0}function MT(n){return function(){return n}}const ET=1664525,AT=1013904223,jg=4294967296;function CT(){let n=1;return()=>(n=(ET*n+AT)%jg)/jg}function zT(n){return typeof n=="object"&&"length"in n?n:Array.from(n)}function NT(n,a){let i=n.length,r,o;for(;i;)o=a()*i--|0,r=n[i],n[i]=n[o],n[o]=r;return n}function DT(n,a){for(var i=0,r=(n=NT(Array.from(n),a)).length,o=[],f,d;i<r;)f=n[i],d&&yy(d,f)?++i:(d=OT(o=RT(o,f)),i=0);return d}function RT(n,a){var i,r;if(qs(a,n))return[a];for(i=0;i<n.length;++i)if(Or(a,n[i])&&qs(Ju(n[i],a),n))return[n[i],a];for(i=0;i<n.length-1;++i)for(r=i+1;r<n.length;++r)if(Or(Ju(n[i],n[r]),a)&&Or(Ju(n[i],a),n[r])&&Or(Ju(n[r],a),n[i])&&qs(vy(n[i],n[r],a),n))return[n[i],n[r],a];throw new Error}function Or(n,a){var i=n.r-a.r,r=a.x-n.x,o=a.y-n.y;return i<0||i*i<r*r+o*o}function yy(n,a){var i=n.r-a.r+Math.max(n.r,a.r,1)*1e-9,r=a.x-n.x,o=a.y-n.y;return i>0&&i*i>r*r+o*o}function qs(n,a){for(var i=0;i<a.length;++i)if(!yy(n,a[i]))return!1;return!0}function OT(n){switch(n.length){case 1:return UT(n[0]);case 2:return Ju(n[0],n[1]);case 3:return vy(n[0],n[1],n[2])}}function UT(n){return{x:n.x,y:n.y,r:n.r}}function Ju(n,a){var i=n.x,r=n.y,o=n.r,f=a.x,d=a.y,g=a.r,m=f-i,h=d-r,v=g-o,y=Math.sqrt(m*m+h*h);return{x:(i+f+m/y*v)/2,y:(r+d+h/y*v)/2,r:(y+o+g)/2}}function vy(n,a,i){var r=n.x,o=n.y,f=n.r,d=a.x,g=a.y,m=a.r,h=i.x,v=i.y,y=i.r,x=r-d,w=r-h,k=o-g,N=o-v,C=m-f,A=y-f,q=r*r+o*o-f*f,L=q-d*d-g*g+m*m,J=q-h*h-v*v+y*y,nt=w*k-x*N,V=(k*J-N*L)/(nt*2)-r,K=(N*C-k*A)/nt,st=(w*L-x*J)/(nt*2)-o,dt=(x*A-w*C)/nt,vt=K*K+dt*dt-1,_t=2*(f+V*K+st*dt),X=V*V+st*st-f*f,ht=-(Math.abs(vt)>1e-6?(_t+Math.sqrt(_t*_t-4*vt*X))/(2*vt):X/_t);return{x:r+V+K*ht,y:o+st+dt*ht,r:ht}}function Hg(n,a,i){var r=n.x-a.x,o,f,d=n.y-a.y,g,m,h=r*r+d*d;h?(f=a.r+i.r,f*=f,m=n.r+i.r,m*=m,f>m?(o=(h+m-f)/(2*h),g=Math.sqrt(Math.max(0,m/h-o*o)),i.x=n.x-o*r-g*d,i.y=n.y-o*d+g*r):(o=(h+f-m)/(2*h),g=Math.sqrt(Math.max(0,f/h-o*o)),i.x=a.x+o*r-g*d,i.y=a.y+o*d+g*r)):(i.x=a.x+i.r,i.y=a.y)}function Lg(n,a){var i=n.r+a.r-1e-6,r=a.x-n.x,o=a.y-n.y;return i>0&&i*i>r*r+o*o}function kg(n){var a=n._,i=n.next._,r=a.r+i.r,o=(a.x*i.r+i.x*a.r)/r,f=(a.y*i.r+i.y*a.r)/r;return o*o+f*f}function Ur(n){this._=n,this.next=null,this.previous=null}function jT(n,a){if(!(f=(n=zT(n)).length))return 0;var i,r,o,f,d,g,m,h,v,y,x;if(i=n[0],i.x=0,i.y=0,!(f>1))return i.r;if(r=n[1],i.x=-r.r,r.x=i.r,r.y=0,!(f>2))return i.r+r.r;Hg(r,i,o=n[2]),i=new Ur(i),r=new Ur(r),o=new Ur(o),i.next=o.previous=r,r.next=i.previous=o,o.next=r.previous=i;t:for(m=3;m<f;++m){Hg(i._,r._,o=n[m]),o=new Ur(o),h=r.next,v=i.previous,y=r._.r,x=i._.r;do if(y<=x){if(Lg(h._,o._)){r=h,i.next=r,r.previous=i,--m;continue t}y+=h._.r,h=h.next}else{if(Lg(v._,o._)){i=v,i.next=r,r.previous=i,--m;continue t}x+=v._.r,v=v.previous}while(h!==v.next);for(o.previous=i,o.next=r,i.next=r.previous=r=o,d=kg(i);(o=o.next)!==r;)(g=kg(o))<d&&(i=o,d=g);r=i.next}for(i=[r._],o=r;(o=o.next)!==r;)i.push(o._);for(o=DT(i,a),m=0;m<f;++m)i=n[m],i.x-=o.x,i.y-=o.y;return o.r}function HT(n){return Math.sqrt(n.value)}function LT(){var n=null,a=1,i=1,r=Ug;function o(f){const d=CT();return f.x=a/2,f.y=i/2,n?f.eachBefore(Yg(n)).eachAfter(Gs(r,.5,d)).eachBefore(Bg(1)):f.eachBefore(Yg(HT)).eachAfter(Gs(Ug,1,d)).eachAfter(Gs(r,f.r/Math.min(a,i),d)).eachBefore(Bg(Math.min(a,i)/(2*f.r))),f}return o.radius=function(f){return arguments.length?(n=wT(f),o):n},o.size=function(f){return arguments.length?(a=+f[0],i=+f[1],o):[a,i]},o.padding=function(f){return arguments.length?(r=typeof f=="function"?f:MT(+f),o):r},o}function Yg(n){return function(a){a.children||(a.r=Math.max(0,+n(a)||0))}}function Gs(n,a,i){return function(r){if(o=r.children){var o,f,d=o.length,g=n(r)*a||0,m;if(g)for(f=0;f<d;++f)o[f].r+=g;if(m=jT(o,i),g)for(f=0;f<d;++f)o[f].r-=g;r.r=m+g}}}function Bg(n){return function(a){var i=a.parent;a.r*=n,i&&(a.x=i.x+n*a.x,a.y=i.y+n*a.y)}}function dc(n,a){switch(arguments.length){case 0:break;case 1:this.range(n);break;default:this.range(a).domain(n);break}return this}const qg=Symbol("implicit");function xy(){var n=new sg,a=[],i=[],r=qg;function o(f){let d=n.get(f);if(d===void 0){if(r!==qg)return r;n.set(f,d=a.push(f)-1)}return i[d%i.length]}return o.domain=function(f){if(!arguments.length)return a.slice();a=[],n=new sg;for(const d of f)n.has(d)||n.set(d,a.push(d)-1);return o},o.range=function(f){return arguments.length?(i=Array.from(f),o):i.slice()},o.unknown=function(f){return arguments.length?(r=f,o):r},o.copy=function(){return xy(a,i).unknown(r)},dc.apply(o,arguments),o}function kf(){var n=xy().unknown(void 0),a=n.domain,i=n.range,r=0,o=1,f,d,g=!1,m=0,h=0,v=.5;delete n.unknown;function y(){var x=a().length,w=o<r,k=w?o:r,N=w?r:o;f=(N-k)/Math.max(1,x-m+h*2),g&&(f=Math.floor(f)),k+=(N-k-f*(x-m))*v,d=f*(1-m),g&&(k=Math.round(k),d=Math.round(d));var C=sS(x).map(function(A){return k+f*A});return i(w?C.reverse():C)}return n.domain=function(x){return arguments.length?(a(x),y()):a()},n.range=function(x){return arguments.length?([r,o]=x,r=+r,o=+o,y()):[r,o]},n.rangeRound=function(x){return[r,o]=x,r=+r,o=+o,g=!0,y()},n.bandwidth=function(){return d},n.step=function(){return f},n.round=function(x){return arguments.length?(g=!!x,y()):g},n.padding=function(x){return arguments.length?(m=Math.min(1,h=+x),y()):m},n.paddingInner=function(x){return arguments.length?(m=Math.min(1,x),y()):m},n.paddingOuter=function(x){return arguments.length?(h=+x,y()):h},n.align=function(x){return arguments.length?(v=Math.max(0,Math.min(1,x)),y()):v},n.copy=function(){return kf(a(),[r,o]).round(g).paddingInner(m).paddingOuter(h).align(v)},dc.apply(y(),arguments)}function kT(n){return function(){return n}}function YT(n){return+n}var Gg=[0,1];function Na(n){return n}function vf(n,a){return(a-=n=+n)?function(i){return(i-n)/a}:kT(isNaN(a)?NaN:.5)}function BT(n,a){var i;return n>a&&(i=n,n=a,a=i),function(r){return Math.max(n,Math.min(a,r))}}function qT(n,a,i){var r=n[0],o=n[1],f=a[0],d=a[1];return o<r?(r=vf(o,r),f=i(d,f)):(r=vf(r,o),f=i(f,d)),function(g){return f(r(g))}}function GT(n,a,i){var r=Math.min(n.length,a.length)-1,o=new Array(r),f=new Array(r),d=-1;for(n[r]<n[0]&&(n=n.slice().reverse(),a=a.slice().reverse());++d<r;)o[d]=vf(n[d],n[d+1]),f[d]=i(a[d],a[d+1]);return function(g){var m=tS(n,g,1,r)-1;return f[m](o[m](g))}}function by(n,a){return a.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function XT(){var n=Gg,a=Gg,i=Rf,r,o,f,d=Na,g,m,h;function v(){var x=Math.min(n.length,a.length);return d!==Na&&(d=BT(n[0],n[x-1])),g=x>2?GT:qT,m=h=null,y}function y(x){return x==null||isNaN(x=+x)?f:(m||(m=g(n.map(r),a,i)))(r(d(x)))}return y.invert=function(x){return d(o((h||(h=g(a,n.map(r),We)))(x)))},y.domain=function(x){return arguments.length?(n=Array.from(x,YT),v()):n.slice()},y.range=function(x){return arguments.length?(a=Array.from(x),v()):a.slice()},y.rangeRound=function(x){return a=Array.from(x),i=ww,v()},y.clamp=function(x){return arguments.length?(d=x?!0:Na,v()):d!==Na},y.interpolate=function(x){return arguments.length?(i=x,v()):i},y.unknown=function(x){return arguments.length?(f=x,y):f},function(x,w){return r=x,o=w,v()}}function Sy(){return XT()(Na,Na)}function VT(n,a,i,r){var o=af(n,a,i),f;switch(r=tc(r??",f"),r.type){case"s":{var d=Math.max(Math.abs(n),Math.abs(a));return r.precision==null&&!isNaN(f=eT(o,d))&&(r.precision=f),py(r,d)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(f=nT(o,Math.max(Math.abs(n),Math.abs(a))))&&(r.precision=f-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(f=tT(o))&&(r.precision=f-(r.type==="%")*2);break}}return gy(r)}function QT(n){var a=n.domain;return n.ticks=function(i){var r=a();return cS(r[0],r[r.length-1],i??10)},n.tickFormat=function(i,r){var o=a();return VT(o[0],o[o.length-1],i??10,r)},n.nice=function(i){i==null&&(i=10);var r=a(),o=0,f=r.length-1,d=r[o],g=r[f],m,h,v=10;for(g<d&&(h=d,d=g,g=h,h=o,o=f,f=h);v-- >0;){if(h=lf(d,g,i),h===m)return r[o]=d,r[f]=g,a(r);if(h>0)d=Math.floor(d/h)*h,g=Math.ceil(g/h)*h;else if(h<0)d=Math.ceil(d*h)/h,g=Math.floor(g*h)/h;else break;m=h}return n},n}function _y(){var n=Sy();return n.copy=function(){return by(n,_y())},dc.apply(n,arguments),QT(n)}function ZT(n,a){n=n.slice();var i=0,r=n.length-1,o=n[i],f=n[r],d;return f<o&&(d=i,i=r,r=d,d=o,o=f,f=d),n[i]=a.floor(o),n[r]=a.ceil(f),n}const Xs=new Date,Vs=new Date;function ne(n,a,i,r){function o(f){return n(f=arguments.length===0?new Date:new Date(+f)),f}return o.floor=f=>(n(f=new Date(+f)),f),o.ceil=f=>(n(f=new Date(f-1)),a(f,1),n(f),f),o.round=f=>{const d=o(f),g=o.ceil(f);return f-d<g-f?d:g},o.offset=(f,d)=>(a(f=new Date(+f),d==null?1:Math.floor(d)),f),o.range=(f,d,g)=>{const m=[];if(f=o.ceil(f),g=g==null?1:Math.floor(g),!(f<d)||!(g>0))return m;let h;do m.push(h=new Date(+f)),a(f,g),n(f);while(h<f&&f<d);return m},o.filter=f=>ne(d=>{if(d>=d)for(;n(d),!f(d);)d.setTime(d-1)},(d,g)=>{if(d>=d)if(g<0)for(;++g<=0;)for(;a(d,-1),!f(d););else for(;--g>=0;)for(;a(d,1),!f(d););}),i&&(o.count=(f,d)=>(Xs.setTime(+f),Vs.setTime(+d),n(Xs),n(Vs),Math.floor(i(Xs,Vs))),o.every=f=>(f=Math.floor(f),!isFinite(f)||!(f>0)?null:f>1?o.filter(r?d=>r(d)%f===0:d=>o.count(0,d)%f===0):o)),o}const lc=ne(()=>{},(n,a)=>{n.setTime(+n+a)},(n,a)=>a-n);lc.every=n=>(n=Math.floor(n),!isFinite(n)||!(n>0)?null:n>1?ne(a=>{a.setTime(Math.floor(a/n)*n)},(a,i)=>{a.setTime(+a+i*n)},(a,i)=>(i-a)/n):lc);lc.range;const Rn=1e3,Ze=Rn*60,On=Ze*60,kn=On*24,Yf=kn*7,Xg=kn*30,Qs=kn*365,Da=ne(n=>{n.setTime(n-n.getMilliseconds())},(n,a)=>{n.setTime(+n+a*Rn)},(n,a)=>(a-n)/Rn,n=>n.getUTCSeconds());Da.range;const Bf=ne(n=>{n.setTime(n-n.getMilliseconds()-n.getSeconds()*Rn)},(n,a)=>{n.setTime(+n+a*Ze)},(n,a)=>(a-n)/Ze,n=>n.getMinutes());Bf.range;const $T=ne(n=>{n.setUTCSeconds(0,0)},(n,a)=>{n.setTime(+n+a*Ze)},(n,a)=>(a-n)/Ze,n=>n.getUTCMinutes());$T.range;const qf=ne(n=>{n.setTime(n-n.getMilliseconds()-n.getSeconds()*Rn-n.getMinutes()*Ze)},(n,a)=>{n.setTime(+n+a*On)},(n,a)=>(a-n)/On,n=>n.getHours());qf.range;const KT=ne(n=>{n.setUTCMinutes(0,0,0)},(n,a)=>{n.setTime(+n+a*On)},(n,a)=>(a-n)/On,n=>n.getUTCHours());KT.range;const oi=ne(n=>n.setHours(0,0,0,0),(n,a)=>n.setDate(n.getDate()+a),(n,a)=>(a-n-(a.getTimezoneOffset()-n.getTimezoneOffset())*Ze)/kn,n=>n.getDate()-1);oi.range;const Gf=ne(n=>{n.setUTCHours(0,0,0,0)},(n,a)=>{n.setUTCDate(n.getUTCDate()+a)},(n,a)=>(a-n)/kn,n=>n.getUTCDate()-1);Gf.range;const JT=ne(n=>{n.setUTCHours(0,0,0,0)},(n,a)=>{n.setUTCDate(n.getUTCDate()+a)},(n,a)=>(a-n)/kn,n=>Math.floor(n/kn));JT.range;function Gl(n){return ne(a=>{a.setDate(a.getDate()-(a.getDay()+7-n)%7),a.setHours(0,0,0,0)},(a,i)=>{a.setDate(a.getDate()+i*7)},(a,i)=>(i-a-(i.getTimezoneOffset()-a.getTimezoneOffset())*Ze)/Yf)}const hc=Gl(0),ac=Gl(1),FT=Gl(2),WT=Gl(3),La=Gl(4),IT=Gl(5),PT=Gl(6);hc.range;ac.range;FT.range;WT.range;La.range;IT.range;PT.range;function Xl(n){return ne(a=>{a.setUTCDate(a.getUTCDate()-(a.getUTCDay()+7-n)%7),a.setUTCHours(0,0,0,0)},(a,i)=>{a.setUTCDate(a.getUTCDate()+i*7)},(a,i)=>(i-a)/Yf)}const wy=Xl(0),uc=Xl(1),tM=Xl(2),eM=Xl(3),ka=Xl(4),nM=Xl(5),lM=Xl(6);wy.range;uc.range;tM.range;eM.range;ka.range;nM.range;lM.range;const Xf=ne(n=>{n.setDate(1),n.setHours(0,0,0,0)},(n,a)=>{n.setMonth(n.getMonth()+a)},(n,a)=>a.getMonth()-n.getMonth()+(a.getFullYear()-n.getFullYear())*12,n=>n.getMonth());Xf.range;const aM=ne(n=>{n.setUTCDate(1),n.setUTCHours(0,0,0,0)},(n,a)=>{n.setUTCMonth(n.getUTCMonth()+a)},(n,a)=>a.getUTCMonth()-n.getUTCMonth()+(a.getUTCFullYear()-n.getUTCFullYear())*12,n=>n.getUTCMonth());aM.range;const Yn=ne(n=>{n.setMonth(0,1),n.setHours(0,0,0,0)},(n,a)=>{n.setFullYear(n.getFullYear()+a)},(n,a)=>a.getFullYear()-n.getFullYear(),n=>n.getFullYear());Yn.every=n=>!isFinite(n=Math.floor(n))||!(n>0)?null:ne(a=>{a.setFullYear(Math.floor(a.getFullYear()/n)*n),a.setMonth(0,1),a.setHours(0,0,0,0)},(a,i)=>{a.setFullYear(a.getFullYear()+i*n)});Yn.range;const Bl=ne(n=>{n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},(n,a)=>{n.setUTCFullYear(n.getUTCFullYear()+a)},(n,a)=>a.getUTCFullYear()-n.getUTCFullYear(),n=>n.getUTCFullYear());Bl.every=n=>!isFinite(n=Math.floor(n))||!(n>0)?null:ne(a=>{a.setUTCFullYear(Math.floor(a.getUTCFullYear()/n)*n),a.setUTCMonth(0,1),a.setUTCHours(0,0,0,0)},(a,i)=>{a.setUTCFullYear(a.getUTCFullYear()+i*n)});Bl.range;function uM(n,a,i,r,o,f){const d=[[Da,1,Rn],[Da,5,5*Rn],[Da,15,15*Rn],[Da,30,30*Rn],[f,1,Ze],[f,5,5*Ze],[f,15,15*Ze],[f,30,30*Ze],[o,1,On],[o,3,3*On],[o,6,6*On],[o,12,12*On],[r,1,kn],[r,2,2*kn],[i,1,Yf],[a,1,Xg],[a,3,3*Xg],[n,1,Qs]];function g(h,v,y){const x=v<h;x&&([h,v]=[v,h]);const w=y&&typeof y.range=="function"?y:m(h,v,y),k=w?w.range(h,+v+1):[];return x?k.reverse():k}function m(h,v,y){const x=Math.abs(v-h)/y,w=Ef(([,,C])=>C).right(d,x);if(w===d.length)return n.every(af(h/Qs,v/Qs,y));if(w===0)return lc.every(Math.max(af(h,v,y),1));const[k,N]=d[x/d[w-1][2]<d[w][2]/x?w-1:w];return k.every(N)}return[g,m]}const[iM,rM]=uM(Yn,Xf,hc,oi,qf,Bf);function Zs(n){if(0<=n.y&&n.y<100){var a=new Date(-1,n.m,n.d,n.H,n.M,n.S,n.L);return a.setFullYear(n.y),a}return new Date(n.y,n.m,n.d,n.H,n.M,n.S,n.L)}function $s(n){if(0<=n.y&&n.y<100){var a=new Date(Date.UTC(-1,n.m,n.d,n.H,n.M,n.S,n.L));return a.setUTCFullYear(n.y),a}return new Date(Date.UTC(n.y,n.m,n.d,n.H,n.M,n.S,n.L))}function Gu(n,a,i){return{y:n,m:a,d:i,H:0,M:0,S:0,L:0}}function cM(n){var a=n.dateTime,i=n.date,r=n.time,o=n.periods,f=n.days,d=n.shortDays,g=n.months,m=n.shortMonths,h=Xu(o),v=Vu(o),y=Xu(f),x=Vu(f),w=Xu(d),k=Vu(d),N=Xu(g),C=Vu(g),A=Xu(m),q=Vu(m),L={a:Y,A:F,b:at,B:lt,c:null,d:Jg,e:Jg,f:DM,g:qM,G:XM,H:CM,I:zM,j:NM,L:Ty,m:RM,M:OM,p:S,q:O,Q:Ig,s:Pg,S:UM,u:jM,U:HM,V:LM,w:kM,W:YM,x:null,X:null,y:BM,Y:GM,Z:VM,"%":Wg},J={a:Z,A:I,b:tt,B:ut,c:null,d:Fg,e:Fg,f:KM,g:a4,G:i4,H:QM,I:ZM,j:$M,L:Ey,m:JM,M:FM,p:ct,q:Ct,Q:Ig,s:Pg,S:WM,u:IM,U:PM,V:t4,w:e4,W:n4,x:null,X:null,y:l4,Y:u4,Z:r4,"%":Wg},nt={a:vt,A:_t,b:X,B:ht,c:D,d:$g,e:$g,f:TM,g:Zg,G:Qg,H:Kg,I:Kg,j:bM,L:wM,m:xM,M:SM,p:dt,q:vM,Q:EM,s:AM,S:_M,u:hM,U:mM,V:gM,w:dM,W:pM,x:P,X:M,y:Zg,Y:Qg,Z:yM,"%":MM};L.x=V(i,L),L.X=V(r,L),L.c=V(a,L),J.x=V(i,J),J.X=V(r,J),J.c=V(a,J);function V(et,gt){return function(pt){var W=[],Vt=-1,St=0,Kt=et.length,Yt,ge,fn;for(pt instanceof Date||(pt=new Date(+pt));++Vt<Kt;)et.charCodeAt(Vt)===37&&(W.push(et.slice(St,Vt)),(ge=Vg[Yt=et.charAt(++Vt)])!=null?Yt=et.charAt(++Vt):ge=Yt==="e"?" ":"0",(fn=gt[Yt])&&(Yt=fn(pt,ge)),W.push(Yt),St=Vt+1);return W.push(et.slice(St,Vt)),W.join("")}}function K(et,gt){return function(pt){var W=Gu(1900,void 0,1),Vt=st(W,et,pt+="",0),St,Kt;if(Vt!=pt.length)return null;if("Q"in W)return new Date(W.Q);if("s"in W)return new Date(W.s*1e3+("L"in W?W.L:0));if(gt&&!("Z"in W)&&(W.Z=0),"p"in W&&(W.H=W.H%12+W.p*12),W.m===void 0&&(W.m="q"in W?W.q:0),"V"in W){if(W.V<1||W.V>53)return null;"w"in W||(W.w=1),"Z"in W?(St=$s(Gu(W.y,0,1)),Kt=St.getUTCDay(),St=Kt>4||Kt===0?uc.ceil(St):uc(St),St=Gf.offset(St,(W.V-1)*7),W.y=St.getUTCFullYear(),W.m=St.getUTCMonth(),W.d=St.getUTCDate()+(W.w+6)%7):(St=Zs(Gu(W.y,0,1)),Kt=St.getDay(),St=Kt>4||Kt===0?ac.ceil(St):ac(St),St=oi.offset(St,(W.V-1)*7),W.y=St.getFullYear(),W.m=St.getMonth(),W.d=St.getDate()+(W.w+6)%7)}else("W"in W||"U"in W)&&("w"in W||(W.w="u"in W?W.u%7:"W"in W?1:0),Kt="Z"in W?$s(Gu(W.y,0,1)).getUTCDay():Zs(Gu(W.y,0,1)).getDay(),W.m=0,W.d="W"in W?(W.w+6)%7+W.W*7-(Kt+5)%7:W.w+W.U*7-(Kt+6)%7);return"Z"in W?(W.H+=W.Z/100|0,W.M+=W.Z%100,$s(W)):Zs(W)}}function st(et,gt,pt,W){for(var Vt=0,St=gt.length,Kt=pt.length,Yt,ge;Vt<St;){if(W>=Kt)return-1;if(Yt=gt.charCodeAt(Vt++),Yt===37){if(Yt=gt.charAt(Vt++),ge=nt[Yt in Vg?gt.charAt(Vt++):Yt],!ge||(W=ge(et,pt,W))<0)return-1}else if(Yt!=pt.charCodeAt(W++))return-1}return W}function dt(et,gt,pt){var W=h.exec(gt.slice(pt));return W?(et.p=v.get(W[0].toLowerCase()),pt+W[0].length):-1}function vt(et,gt,pt){var W=w.exec(gt.slice(pt));return W?(et.w=k.get(W[0].toLowerCase()),pt+W[0].length):-1}function _t(et,gt,pt){var W=y.exec(gt.slice(pt));return W?(et.w=x.get(W[0].toLowerCase()),pt+W[0].length):-1}function X(et,gt,pt){var W=A.exec(gt.slice(pt));return W?(et.m=q.get(W[0].toLowerCase()),pt+W[0].length):-1}function ht(et,gt,pt){var W=N.exec(gt.slice(pt));return W?(et.m=C.get(W[0].toLowerCase()),pt+W[0].length):-1}function D(et,gt,pt){return st(et,a,gt,pt)}function P(et,gt,pt){return st(et,i,gt,pt)}function M(et,gt,pt){return st(et,r,gt,pt)}function Y(et){return d[et.getDay()]}function F(et){return f[et.getDay()]}function at(et){return m[et.getMonth()]}function lt(et){return g[et.getMonth()]}function S(et){return o[+(et.getHours()>=12)]}function O(et){return 1+~~(et.getMonth()/3)}function Z(et){return d[et.getUTCDay()]}function I(et){return f[et.getUTCDay()]}function tt(et){return m[et.getUTCMonth()]}function ut(et){return g[et.getUTCMonth()]}function ct(et){return o[+(et.getUTCHours()>=12)]}function Ct(et){return 1+~~(et.getUTCMonth()/3)}return{format:function(et){var gt=V(et+="",L);return gt.toString=function(){return et},gt},parse:function(et){var gt=K(et+="",!1);return gt.toString=function(){return et},gt},utcFormat:function(et){var gt=V(et+="",J);return gt.toString=function(){return et},gt},utcParse:function(et){var gt=K(et+="",!0);return gt.toString=function(){return et},gt}}}var Vg={"-":"",_:" ",0:"0"},ie=/^\s*\d+/,oM=/^%/,sM=/[\\^$*+?|[\]().{}]/g;function Dt(n,a,i){var r=n<0?"-":"",o=(r?-n:n)+"",f=o.length;return r+(f<i?new Array(i-f+1).join(a)+o:o)}function fM(n){return n.replace(sM,"\\$&")}function Xu(n){return new RegExp("^(?:"+n.map(fM).join("|")+")","i")}function Vu(n){return new Map(n.map((a,i)=>[a.toLowerCase(),i]))}function dM(n,a,i){var r=ie.exec(a.slice(i,i+1));return r?(n.w=+r[0],i+r[0].length):-1}function hM(n,a,i){var r=ie.exec(a.slice(i,i+1));return r?(n.u=+r[0],i+r[0].length):-1}function mM(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.U=+r[0],i+r[0].length):-1}function gM(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.V=+r[0],i+r[0].length):-1}function pM(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.W=+r[0],i+r[0].length):-1}function Qg(n,a,i){var r=ie.exec(a.slice(i,i+4));return r?(n.y=+r[0],i+r[0].length):-1}function Zg(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.y=+r[0]+(+r[0]>68?1900:2e3),i+r[0].length):-1}function yM(n,a,i){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(a.slice(i,i+6));return r?(n.Z=r[1]?0:-(r[2]+(r[3]||"00")),i+r[0].length):-1}function vM(n,a,i){var r=ie.exec(a.slice(i,i+1));return r?(n.q=r[0]*3-3,i+r[0].length):-1}function xM(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.m=r[0]-1,i+r[0].length):-1}function $g(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.d=+r[0],i+r[0].length):-1}function bM(n,a,i){var r=ie.exec(a.slice(i,i+3));return r?(n.m=0,n.d=+r[0],i+r[0].length):-1}function Kg(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.H=+r[0],i+r[0].length):-1}function SM(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.M=+r[0],i+r[0].length):-1}function _M(n,a,i){var r=ie.exec(a.slice(i,i+2));return r?(n.S=+r[0],i+r[0].length):-1}function wM(n,a,i){var r=ie.exec(a.slice(i,i+3));return r?(n.L=+r[0],i+r[0].length):-1}function TM(n,a,i){var r=ie.exec(a.slice(i,i+6));return r?(n.L=Math.floor(r[0]/1e3),i+r[0].length):-1}function MM(n,a,i){var r=oM.exec(a.slice(i,i+1));return r?i+r[0].length:-1}function EM(n,a,i){var r=ie.exec(a.slice(i));return r?(n.Q=+r[0],i+r[0].length):-1}function AM(n,a,i){var r=ie.exec(a.slice(i));return r?(n.s=+r[0],i+r[0].length):-1}function Jg(n,a){return Dt(n.getDate(),a,2)}function CM(n,a){return Dt(n.getHours(),a,2)}function zM(n,a){return Dt(n.getHours()%12||12,a,2)}function NM(n,a){return Dt(1+oi.count(Yn(n),n),a,3)}function Ty(n,a){return Dt(n.getMilliseconds(),a,3)}function DM(n,a){return Ty(n,a)+"000"}function RM(n,a){return Dt(n.getMonth()+1,a,2)}function OM(n,a){return Dt(n.getMinutes(),a,2)}function UM(n,a){return Dt(n.getSeconds(),a,2)}function jM(n){var a=n.getDay();return a===0?7:a}function HM(n,a){return Dt(hc.count(Yn(n)-1,n),a,2)}function My(n){var a=n.getDay();return a>=4||a===0?La(n):La.ceil(n)}function LM(n,a){return n=My(n),Dt(La.count(Yn(n),n)+(Yn(n).getDay()===4),a,2)}function kM(n){return n.getDay()}function YM(n,a){return Dt(ac.count(Yn(n)-1,n),a,2)}function BM(n,a){return Dt(n.getFullYear()%100,a,2)}function qM(n,a){return n=My(n),Dt(n.getFullYear()%100,a,2)}function GM(n,a){return Dt(n.getFullYear()%1e4,a,4)}function XM(n,a){var i=n.getDay();return n=i>=4||i===0?La(n):La.ceil(n),Dt(n.getFullYear()%1e4,a,4)}function VM(n){var a=n.getTimezoneOffset();return(a>0?"-":(a*=-1,"+"))+Dt(a/60|0,"0",2)+Dt(a%60,"0",2)}function Fg(n,a){return Dt(n.getUTCDate(),a,2)}function QM(n,a){return Dt(n.getUTCHours(),a,2)}function ZM(n,a){return Dt(n.getUTCHours()%12||12,a,2)}function $M(n,a){return Dt(1+Gf.count(Bl(n),n),a,3)}function Ey(n,a){return Dt(n.getUTCMilliseconds(),a,3)}function KM(n,a){return Ey(n,a)+"000"}function JM(n,a){return Dt(n.getUTCMonth()+1,a,2)}function FM(n,a){return Dt(n.getUTCMinutes(),a,2)}function WM(n,a){return Dt(n.getUTCSeconds(),a,2)}function IM(n){var a=n.getUTCDay();return a===0?7:a}function PM(n,a){return Dt(wy.count(Bl(n)-1,n),a,2)}function Ay(n){var a=n.getUTCDay();return a>=4||a===0?ka(n):ka.ceil(n)}function t4(n,a){return n=Ay(n),Dt(ka.count(Bl(n),n)+(Bl(n).getUTCDay()===4),a,2)}function e4(n){return n.getUTCDay()}function n4(n,a){return Dt(uc.count(Bl(n)-1,n),a,2)}function l4(n,a){return Dt(n.getUTCFullYear()%100,a,2)}function a4(n,a){return n=Ay(n),Dt(n.getUTCFullYear()%100,a,2)}function u4(n,a){return Dt(n.getUTCFullYear()%1e4,a,4)}function i4(n,a){var i=n.getUTCDay();return n=i>=4||i===0?ka(n):ka.ceil(n),Dt(n.getUTCFullYear()%1e4,a,4)}function r4(){return"+0000"}function Wg(){return"%"}function Ig(n){return+n}function Pg(n){return Math.floor(+n/1e3)}var za,Vf,Cy;c4({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function c4(n){return za=cM(n),Vf=za.format,Cy=za.parse,za.utcFormat,za.utcParse,za}function o4(n){return new Date(n)}function s4(n){return n instanceof Date?+n:+new Date(+n)}function zy(n,a,i,r,o,f,d,g,m,h){var v=Sy(),y=v.invert,x=v.domain,w=h(".%L"),k=h(":%S"),N=h("%I:%M"),C=h("%I %p"),A=h("%a %d"),q=h("%b %d"),L=h("%B"),J=h("%Y");function nt(V){return(m(V)<V?w:g(V)<V?k:d(V)<V?N:f(V)<V?C:r(V)<V?o(V)<V?A:q:i(V)<V?L:J)(V)}return v.invert=function(V){return new Date(y(V))},v.domain=function(V){return arguments.length?x(Array.from(V,s4)):x().map(o4)},v.ticks=function(V){var K=x();return n(K[0],K[K.length-1],V??10)},v.tickFormat=function(V,K){return K==null?nt:h(K)},v.nice=function(V){var K=x();return(!V||typeof V.range!="function")&&(V=a(K[0],K[K.length-1],V??10)),V?x(ZT(K,V)):v},v.copy=function(){return by(v,zy(n,a,i,r,o,f,d,g,m,h))},v}function Qf(){return dc.apply(zy(iM,rM,Yn,Xf,hc,oi,qf,Bf,Da,Vf).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ue(n){return function(){return n}}function Ny(n){let a=3;return n.digits=function(i){if(!arguments.length)return a;if(i==null)a=null;else{const r=Math.floor(i);if(!(r>=0))throw new RangeError(`invalid digits: ${i}`);a=r}return n},()=>new Q3(a)}function Dy(n){return typeof n=="object"&&"length"in n?n:Array.from(n)}function Ry(n){this._context=n}Ry.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(n,a){switch(n=+n,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(n,a):this._context.moveTo(n,a);break;case 1:this._point=2;default:this._context.lineTo(n,a);break}}};function Oy(n){return new Ry(n)}function Uy(n){return n[0]}function jy(n){return n[1]}function Hy(n,a){var i=ue(!0),r=null,o=Oy,f=null,d=Ny(g);n=typeof n=="function"?n:n===void 0?Uy:ue(n),a=typeof a=="function"?a:a===void 0?jy:ue(a);function g(m){var h,v=(m=Dy(m)).length,y,x=!1,w;for(r==null&&(f=o(w=d())),h=0;h<=v;++h)!(h<v&&i(y=m[h],h,m))===x&&((x=!x)?f.lineStart():f.lineEnd()),x&&f.point(+n(y,h,m),+a(y,h,m));if(w)return f=null,w+""||null}return g.x=function(m){return arguments.length?(n=typeof m=="function"?m:ue(+m),g):n},g.y=function(m){return arguments.length?(a=typeof m=="function"?m:ue(+m),g):a},g.defined=function(m){return arguments.length?(i=typeof m=="function"?m:ue(!!m),g):i},g.curve=function(m){return arguments.length?(o=m,r!=null&&(f=o(r)),g):o},g.context=function(m){return arguments.length?(m==null?r=f=null:f=o(r=m),g):r},g}function f4(n,a,i){var r=null,o=ue(!0),f=null,d=Oy,g=null,m=Ny(h);n=typeof n=="function"?n:n===void 0?Uy:ue(+n),a=typeof a=="function"?a:ue(a===void 0?0:+a),i=typeof i=="function"?i:i===void 0?jy:ue(+i);function h(y){var x,w,k,N=(y=Dy(y)).length,C,A=!1,q,L=new Array(N),J=new Array(N);for(f==null&&(g=d(q=m())),x=0;x<=N;++x){if(!(x<N&&o(C=y[x],x,y))===A)if(A=!A)w=x,g.areaStart(),g.lineStart();else{for(g.lineEnd(),g.lineStart(),k=x-1;k>=w;--k)g.point(L[k],J[k]);g.lineEnd(),g.areaEnd()}A&&(L[x]=+n(C,x,y),J[x]=+a(C,x,y),g.point(r?+r(C,x,y):L[x],i?+i(C,x,y):J[x]))}if(q)return g=null,q+""||null}function v(){return Hy().defined(o).curve(d).context(f)}return h.x=function(y){return arguments.length?(n=typeof y=="function"?y:ue(+y),r=null,h):n},h.x0=function(y){return arguments.length?(n=typeof y=="function"?y:ue(+y),h):n},h.x1=function(y){return arguments.length?(r=y==null?null:typeof y=="function"?y:ue(+y),h):r},h.y=function(y){return arguments.length?(a=typeof y=="function"?y:ue(+y),i=null,h):a},h.y0=function(y){return arguments.length?(a=typeof y=="function"?y:ue(+y),h):a},h.y1=function(y){return arguments.length?(i=y==null?null:typeof y=="function"?y:ue(+y),h):i},h.lineX0=h.lineY0=function(){return v().x(n).y(a)},h.lineY1=function(){return v().x(n).y(i)},h.lineX1=function(){return v().x(r).y(a)},h.defined=function(y){return arguments.length?(o=typeof y=="function"?y:ue(!!y),h):o},h.curve=function(y){return arguments.length?(d=y,f!=null&&(g=d(f)),h):d},h.context=function(y){return arguments.length?(y==null?f=g=null:g=d(f=y),h):f},h}function tp(n){return n<0?-1:1}function ep(n,a,i){var r=n._x1-n._x0,o=a-n._x1,f=(n._y1-n._y0)/(r||o<0&&-0),d=(i-n._y1)/(o||r<0&&-0),g=(f*o+d*r)/(r+o);return(tp(f)+tp(d))*Math.min(Math.abs(f),Math.abs(d),.5*Math.abs(g))||0}function np(n,a){var i=n._x1-n._x0;return i?(3*(n._y1-n._y0)/i-a)/2:a}function Ks(n,a,i){var r=n._x0,o=n._y0,f=n._x1,d=n._y1,g=(f-r)/3;n._context.bezierCurveTo(r+g,o+g*a,f-g,d-g*i,f,d)}function ic(n){this._context=n}ic.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Ks(this,this._t0,np(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(n,a){var i=NaN;if(n=+n,a=+a,!(n===this._x1&&a===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(n,a):this._context.moveTo(n,a);break;case 1:this._point=2;break;case 2:this._point=3,Ks(this,np(this,i=ep(this,n,a)),i);break;default:Ks(this,this._t0,i=ep(this,n,a));break}this._x0=this._x1,this._x1=n,this._y0=this._y1,this._y1=a,this._t0=i}}};Object.create(ic.prototype).point=function(n,a){ic.prototype.point.call(this,a,n)};function lp(n){return new ic(n)}const jr=n=>()=>n;function d4(n,{sourceEvent:a,target:i,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:n,enumerable:!0,configurable:!0},sourceEvent:{value:a,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function Un(n,a,i){this.k=n,this.x=a,this.y=i}Un.prototype={constructor:Un,scale:function(n){return n===1?this:new Un(this.k*n,this.x,this.y)},translate:function(n,a){return n===0&a===0?this:new Un(this.k,this.x+this.k*n,this.y+this.k*a)},apply:function(n){return[n[0]*this.k+this.x,n[1]*this.k+this.y]},applyX:function(n){return n*this.k+this.x},applyY:function(n){return n*this.k+this.y},invert:function(n){return[(n[0]-this.x)/this.k,(n[1]-this.y)/this.k]},invertX:function(n){return(n-this.x)/this.k},invertY:function(n){return(n-this.y)/this.k},rescaleX:function(n){return n.copy().domain(n.range().map(this.invertX,this).map(n.invert,n))},rescaleY:function(n){return n.copy().domain(n.range().map(this.invertY,this).map(n.invert,n))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ly=new Un(1,0,0);Un.prototype;function Js(n){n.stopImmediatePropagation()}function Qu(n){n.preventDefault(),n.stopImmediatePropagation()}function h4(n){return(!n.ctrlKey||n.type==="wheel")&&!n.button}function m4(){var n=this;return n instanceof SVGElement?(n=n.ownerSVGElement||n,n.hasAttribute("viewBox")?(n=n.viewBox.baseVal,[[n.x,n.y],[n.x+n.width,n.y+n.height]]):[[0,0],[n.width.baseVal.value,n.height.baseVal.value]]):[[0,0],[n.clientWidth,n.clientHeight]]}function ap(){return this.__zoom||Ly}function g4(n){return-n.deltaY*(n.deltaMode===1?.05:n.deltaMode?1:.002)*(n.ctrlKey?10:1)}function p4(){return navigator.maxTouchPoints||"ontouchstart"in this}function y4(n,a,i){var r=n.invertX(a[0][0])-i[0][0],o=n.invertX(a[1][0])-i[1][0],f=n.invertY(a[0][1])-i[0][1],d=n.invertY(a[1][1])-i[1][1];return n.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),d>f?(f+d)/2:Math.min(0,f)||Math.max(0,d))}function ky(){var n=h4,a=m4,i=y4,r=g4,o=p4,f=[0,1/0],d=[[-1/0,-1/0],[1/0,1/0]],g=250,m=Dw,h=Af("start","zoom","end"),v,y,x,w=500,k=150,N=0,C=10;function A(D){D.property("__zoom",ap).on("wheel.zoom",st,{passive:!1}).on("mousedown.zoom",dt).on("dblclick.zoom",vt).filter(o).on("touchstart.zoom",_t).on("touchmove.zoom",X).on("touchend.zoom touchcancel.zoom",ht).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}A.transform=function(D,P,M,Y){var F=D.selection?D.selection():D;F.property("__zoom",ap),D!==F?nt(D,P,M,Y):F.interrupt().each(function(){V(this,arguments).event(Y).start().zoom(null,typeof P=="function"?P.apply(this,arguments):P).end()})},A.scaleBy=function(D,P,M,Y){A.scaleTo(D,function(){var F=this.__zoom.k,at=typeof P=="function"?P.apply(this,arguments):P;return F*at},M,Y)},A.scaleTo=function(D,P,M,Y){A.transform(D,function(){var F=a.apply(this,arguments),at=this.__zoom,lt=M==null?J(F):typeof M=="function"?M.apply(this,arguments):M,S=at.invert(lt),O=typeof P=="function"?P.apply(this,arguments):P;return i(L(q(at,O),lt,S),F,d)},M,Y)},A.translateBy=function(D,P,M,Y){A.transform(D,function(){return i(this.__zoom.translate(typeof P=="function"?P.apply(this,arguments):P,typeof M=="function"?M.apply(this,arguments):M),a.apply(this,arguments),d)},null,Y)},A.translateTo=function(D,P,M,Y,F){A.transform(D,function(){var at=a.apply(this,arguments),lt=this.__zoom,S=Y==null?J(at):typeof Y=="function"?Y.apply(this,arguments):Y;return i(Ly.translate(S[0],S[1]).scale(lt.k).translate(typeof P=="function"?-P.apply(this,arguments):-P,typeof M=="function"?-M.apply(this,arguments):-M),at,d)},Y,F)};function q(D,P){return P=Math.max(f[0],Math.min(f[1],P)),P===D.k?D:new Un(P,D.x,D.y)}function L(D,P,M){var Y=P[0]-M[0]*D.k,F=P[1]-M[1]*D.k;return Y===D.x&&F===D.y?D:new Un(D.k,Y,F)}function J(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function nt(D,P,M,Y){D.on("start.zoom",function(){V(this,arguments).event(Y).start()}).on("interrupt.zoom end.zoom",function(){V(this,arguments).event(Y).end()}).tween("zoom",function(){var F=this,at=arguments,lt=V(F,at).event(Y),S=a.apply(F,at),O=M==null?J(S):typeof M=="function"?M.apply(F,at):M,Z=Math.max(S[1][0]-S[0][0],S[1][1]-S[0][1]),I=F.__zoom,tt=typeof P=="function"?P.apply(F,at):P,ut=m(I.invert(O).concat(Z/I.k),tt.invert(O).concat(Z/tt.k));return function(ct){if(ct===1)ct=tt;else{var Ct=ut(ct),et=Z/Ct[2];ct=new Un(et,O[0]-Ct[0]*et,O[1]-Ct[1]*et)}lt.zoom(null,ct)}})}function V(D,P,M){return!M&&D.__zooming||new K(D,P)}function K(D,P){this.that=D,this.args=P,this.active=0,this.sourceEvent=null,this.extent=a.apply(D,P),this.taps=0}K.prototype={event:function(D){return D&&(this.sourceEvent=D),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(D,P){return this.mouse&&D!=="mouse"&&(this.mouse[1]=P.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=P.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=P.invert(this.touch1[0])),this.that.__zoom=P,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var P=Ue(this.that).datum();h.call(D,this.that,new d4(D,{sourceEvent:this.sourceEvent,target:A,transform:this.that.__zoom,dispatch:h}),P)}};function st(D,...P){if(!n.apply(this,arguments))return;var M=V(this,P).event(D),Y=this.__zoom,F=Math.max(f[0],Math.min(f[1],Y.k*Math.pow(2,r.apply(this,arguments)))),at=Ol(D);if(M.wheel)(M.mouse[0][0]!==at[0]||M.mouse[0][1]!==at[1])&&(M.mouse[1]=Y.invert(M.mouse[0]=at)),clearTimeout(M.wheel);else{if(Y.k===F)return;M.mouse=[at,Y.invert(at)],Xr(this),M.start()}Qu(D),M.wheel=setTimeout(lt,k),M.zoom("mouse",i(L(q(Y,F),M.mouse[0],M.mouse[1]),M.extent,d));function lt(){M.wheel=null,M.end()}}function dt(D,...P){if(x||!n.apply(this,arguments))return;var M=D.currentTarget,Y=V(this,P,!0).event(D),F=Ue(D.view).on("mousemove.zoom",O,!0).on("mouseup.zoom",Z,!0),at=Ol(D,M),lt=D.clientX,S=D.clientY;P_(D.view),Js(D),Y.mouse=[at,this.__zoom.invert(at)],Xr(this),Y.start();function O(I){if(Qu(I),!Y.moved){var tt=I.clientX-lt,ut=I.clientY-S;Y.moved=tt*tt+ut*ut>N}Y.event(I).zoom("mouse",i(L(Y.that.__zoom,Y.mouse[0]=Ol(I,M),Y.mouse[1]),Y.extent,d))}function Z(I){F.on("mousemove.zoom mouseup.zoom",null),tw(I.view,Y.moved),Qu(I),Y.event(I).end()}}function vt(D,...P){if(n.apply(this,arguments)){var M=this.__zoom,Y=Ol(D.changedTouches?D.changedTouches[0]:D,this),F=M.invert(Y),at=M.k*(D.shiftKey?.5:2),lt=i(L(q(M,at),Y,F),a.apply(this,P),d);Qu(D),g>0?Ue(this).transition().duration(g).call(nt,lt,Y,D):Ue(this).call(A.transform,lt,Y,D)}}function _t(D,...P){if(n.apply(this,arguments)){var M=D.touches,Y=M.length,F=V(this,P,D.changedTouches.length===Y).event(D),at,lt,S,O;for(Js(D),lt=0;lt<Y;++lt)S=M[lt],O=Ol(S,this),O=[O,this.__zoom.invert(O),S.identifier],F.touch0?!F.touch1&&F.touch0[2]!==O[2]&&(F.touch1=O,F.taps=0):(F.touch0=O,at=!0,F.taps=1+!!v);v&&(v=clearTimeout(v)),at&&(F.taps<2&&(y=O[0],v=setTimeout(function(){v=null},w)),Xr(this),F.start())}}function X(D,...P){if(this.__zooming){var M=V(this,P).event(D),Y=D.changedTouches,F=Y.length,at,lt,S,O;for(Qu(D),at=0;at<F;++at)lt=Y[at],S=Ol(lt,this),M.touch0&&M.touch0[2]===lt.identifier?M.touch0[0]=S:M.touch1&&M.touch1[2]===lt.identifier&&(M.touch1[0]=S);if(lt=M.that.__zoom,M.touch1){var Z=M.touch0[0],I=M.touch0[1],tt=M.touch1[0],ut=M.touch1[1],ct=(ct=tt[0]-Z[0])*ct+(ct=tt[1]-Z[1])*ct,Ct=(Ct=ut[0]-I[0])*Ct+(Ct=ut[1]-I[1])*Ct;lt=q(lt,Math.sqrt(ct/Ct)),S=[(Z[0]+tt[0])/2,(Z[1]+tt[1])/2],O=[(I[0]+ut[0])/2,(I[1]+ut[1])/2]}else if(M.touch0)S=M.touch0[0],O=M.touch0[1];else return;M.zoom("touch",i(L(lt,S,O),M.extent,d))}}function ht(D,...P){if(this.__zooming){var M=V(this,P).event(D),Y=D.changedTouches,F=Y.length,at,lt;for(Js(D),x&&clearTimeout(x),x=setTimeout(function(){x=null},w),at=0;at<F;++at)lt=Y[at],M.touch0&&M.touch0[2]===lt.identifier?delete M.touch0:M.touch1&&M.touch1[2]===lt.identifier&&delete M.touch1;if(M.touch1&&!M.touch0&&(M.touch0=M.touch1,delete M.touch1),M.touch0)M.touch0[1]=this.__zoom.invert(M.touch0[0]);else if(M.end(),M.taps===2&&(lt=Ol(lt,this),Math.hypot(y[0]-lt[0],y[1]-lt[1])<C)){var S=Ue(this).on("dblclick.zoom");S&&S.apply(this,arguments)}}}return A.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:jr(+D),A):r},A.filter=function(D){return arguments.length?(n=typeof D=="function"?D:jr(!!D),A):n},A.touchable=function(D){return arguments.length?(o=typeof D=="function"?D:jr(!!D),A):o},A.extent=function(D){return arguments.length?(a=typeof D=="function"?D:jr([[+D[0][0],+D[0][1]],[+D[1][0],+D[1][1]]]),A):a},A.scaleExtent=function(D){return arguments.length?(f[0]=+D[0],f[1]=+D[1],A):[f[0],f[1]]},A.translateExtent=function(D){return arguments.length?(d[0][0]=+D[0][0],d[1][0]=+D[1][0],d[0][1]=+D[0][1],d[1][1]=+D[1][1],A):[[d[0][0],d[0][1]],[d[1][0],d[1][1]]]},A.constrain=function(D){return arguments.length?(i=D,A):i},A.duration=function(D){return arguments.length?(g=+D,A):g},A.interpolate=function(D){return arguments.length?(m=D,A):m},A.on=function(){var D=h.on.apply(h,arguments);return D===h?A:D},A.clickDistance=function(D){return arguments.length?(N=(D=+D)*D,A):Math.sqrt(N)},A.tapDistance=function(D){return arguments.length?(C=+D,A):C},A}function v4({data:n}){const a=R.useRef(null);return R.useEffect(()=>{if(!a.current||n.length===0)return;const i=Ue(a.current);i.selectAll("*").remove();const r=a.current.parentElement;if(!r)return;const o=r.clientWidth,f=250,d={top:20,right:20,bottom:40,left:50},g=o-d.left-d.right,m=f-d.top-d.bottom;i.attr("width",o).attr("height",f);const h=i.append("g").attr("transform",`translate(${d.left},${d.top})`),v=Cy("%Y-%m-%d"),y=n.map(K=>({date:v(K.week),count:K.count})),[x,w]=eS(y,K=>K.date),k=x.getTime()===w.getTime()?10080*60*1e3:0,N=Qf().domain([new Date(x.getTime()-k),new Date(w.getTime()+k)]).range([0,g]),C=_y().domain([0,oS(y,K=>K.count)??0]).nice().range([m,0]),A=getComputedStyle(document.documentElement),q=A.getPropertyValue("--muted-fg").trim()||"#94a3b8",L=A.getPropertyValue("--accent-color").trim()||"#10b981",J=A.getPropertyValue("--border-color").trim()||"#334155";h.append("g").attr("transform",`translate(0,${m})`).call(Pu(N).ticks(6).tickFormat(Vf("%b %y"))).attr("color",q).selectAll("line").attr("stroke",J),h.append("g").call(Gp(C).ticks(5)).attr("color",q).selectAll("line").attr("stroke",J);const nt=f4().x(K=>N(K.date)).y0(m).y1(K=>C(K.count)).curve(lp);h.append("path").datum(y).attr("fill",L).attr("fill-opacity",.15).attr("d",nt);const V=Hy().x(K=>N(K.date)).y(K=>C(K.count)).curve(lp);h.append("path").datum(y).attr("fill","none").attr("stroke",L).attr("stroke-width",2).attr("d",V)},[n]),_.jsx("svg",{ref:a,className:"w-full"})}const up=n=>typeof n=="boolean"?`${n}`:n===0?"0":n,ip=jp,x4=(n,a)=>i=>{var r;if((a==null?void 0:a.variants)==null)return ip(n,i==null?void 0:i.class,i==null?void 0:i.className);const{variants:o,defaultVariants:f}=a,d=Object.keys(o).map(h=>{const v=i==null?void 0:i[h],y=f==null?void 0:f[h];if(v===null)return null;const x=up(v)||up(y);return o[h][x]}),g=i&&Object.entries(i).reduce((h,v)=>{let[y,x]=v;return x===void 0||(h[y]=x),h},{}),m=a==null||(r=a.compoundVariants)===null||r===void 0?void 0:r.reduce((h,v)=>{let{class:y,className:x,...w}=v;return Object.entries(w).every(k=>{let[N,C]=k;return Array.isArray(C)?C.includes({...f,...g}[N]):{...f,...g}[N]===C})?[...h,y,x]:h},[]);return ip(n,d,m,i==null?void 0:i.class,i==null?void 0:i.className)},b4=x4("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors",{variants:{variant:{default:"border-transparent bg-accent text-accent-foreground",secondary:"border-transparent bg-muted text-muted-foreground",outline:"border-border text-foreground"}},defaultVariants:{variant:"default"}});function Bn({className:n,variant:a,...i}){return _.jsx("div",{className:tn(b4({variant:a}),n),...i})}function S4(){const{data:n,loading:a}=Pe("/api/stats"),{data:i}=Pe("/api/chunks?limit=10");return a||!n?_.jsx(ii,{}):_.jsxs("div",{className:"space-y-6 animate-fade-in",children:[_.jsx("h1",{className:"text-2xl font-bold",children:"Overview"}),_.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[_.jsx(Cr,{label:"Chunks",value:n.chunks,icon:_.jsx(i2,{className:"h-5 w-5"})}),_.jsx(Cr,{label:"Edges",value:n.edges,icon:_.jsx(u2,{className:"h-5 w-5"})}),_.jsx(Cr,{label:"Clusters",value:n.clusters,icon:_.jsx(Dp,{className:"h-5 w-5"})}),_.jsx(Cr,{label:"Sessions",value:n.sessions,icon:_.jsx(Rp,{className:"h-5 w-5"})})]}),n.chunkTimeSeries.length>0&&_.jsxs(Wu,{children:[_.jsx(ef,{children:_.jsx(nf,{children:"Chunks Over Time"})}),_.jsx(Iu,{children:_.jsx(v4,{data:n.chunkTimeSeries})})]}),(i==null?void 0:i.chunks)&&i.chunks.length>0&&_.jsxs(Wu,{children:[_.jsx(ef,{children:_.jsx(nf,{children:"Recent Activity"})}),_.jsx(Iu,{children:_.jsx("div",{className:"space-y-3",children:i.chunks.map(r=>_.jsxs("div",{className:"flex items-start gap-3 rounded-md border border-border p-3",children:[_.jsxs("div",{className:"flex-1 min-w-0",children:[_.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[_.jsx(Bn,{variant:"secondary",children:r.sessionSlug}),_.jsx("span",{className:"text-xs text-muted-foreground",children:new Date(r.startTime).toLocaleDateString()})]}),_.jsx("p",{className:"text-sm text-muted-foreground truncate",children:r.preview})]}),_.jsxs("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:[r.tokenCount," tokens"]})]},r.id))})})]})]})}function _4({className:n,options:a,placeholder:i,...r}){return _.jsxs("select",{className:tn("flex h-10 w-full rounded-md border border-border bg-background px-3 py-2 text-sm","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",n),...r,children:[i&&_.jsx("option",{value:"",children:i}),a.map(o=>_.jsx("option",{value:o.value,children:o.label},o.value))]})}const Ya=["#10b981","#06b6d4","#8b5cf6","#f59e0b","#ef4444","#ec4899","#14b8a6","#f97316","#6366f1","#84cc16","#0ea5e9","#d946ef","#22c55e","#eab308","#a855f7"];function w4({chunks:n,edges:a,timeRange:i,onChunkClick:r,selectedChunkId:o,clusters:f}){const d=R.useRef(null),g=[...new Set(n.map(x=>x.clusterId).filter(Boolean))],m=new Map((f??[]).map(x=>[x.id,x])),h=g.map(x=>({id:x,info:m.get(x)})).sort((x,w)=>{var k,N;return(((k=w.info)==null?void 0:k.memberCount)??0)-(((N=x.info)==null?void 0:N.memberCount)??0)}),v=new Map(h.map((x,w)=>[x.id,w]));function y(x){if(!x)return"#64748b";const w=v.get(x);return w===void 0?"#64748b":Ya[w%Ya.length]}return R.useEffect(()=>{var _t;const x=Ue(d.current);if(x.selectAll("*").remove(),n.length===0||!i.earliest||!i.latest)return;const w=(_t=d.current)==null?void 0:_t.parentElement,k=(w==null?void 0:w.clientWidth)??800,N=(w==null?void 0:w.clientHeight)??400,C={top:30,right:30,bottom:40,left:160},A=k-C.left-C.right,q=N-C.top-C.bottom,L=[...new Set(n.map(X=>X.sessionSlug))],J=Qf().domain([new Date(i.earliest),new Date(i.latest)]).range([0,A]),nt=kf().domain(L).range([0,q]).padding(.3);x.attr("width",k).attr("height",N),x.append("defs").append("clipPath").attr("id","timeline-clip").append("rect").attr("width",A).attr("height",q);const V=x.append("g").attr("transform",`translate(${C.left},${C.top})`),K=ky().scaleExtent([.5,20]).translateExtent([[-100,0],[A+100,N]]).on("zoom",X=>{const ht=X.transform.rescaleX(J);st.call(Pu(ht).ticks(8)),vt.attr("x",D=>ht(new Date(D.startTime))).attr("width",D=>{const P=ht(new Date(D.endTime))-ht(new Date(D.startTime));return Math.max(4,P)})});x.call(K);const st=V.append("g").attr("transform",`translate(0,${q})`).call(Pu(J).ticks(8)).attr("class","timeline-axis");V.append("g").call(Gp(nt)).attr("class","timeline-axis").selectAll("text").style("font-size","11px"),V.selectAll(".timeline-axis line, .timeline-axis path").attr("stroke","var(--border-color, #334155)"),V.selectAll(".timeline-axis text").attr("fill","var(--muted-foreground, #94a3b8)");const vt=V.append("g").attr("clip-path","url(#timeline-clip)").append("g").selectAll("rect").data(n).join("rect").attr("x",X=>J(new Date(X.startTime))).attr("y",X=>nt(X.sessionSlug)??0).attr("width",X=>{const ht=J(new Date(X.endTime))-J(new Date(X.startTime));return Math.max(4,ht)}).attr("height",nt.bandwidth()).attr("rx",2).attr("fill",X=>y(X.clusterId)).attr("fill-opacity",X=>X.id===o?1:.7).attr("stroke",X=>X.id===o?"#ffffff":"none").attr("stroke-width",2).attr("cursor","pointer").on("click",(X,ht)=>r(ht.id)).on("mouseenter",function(){Ue(this).attr("fill-opacity",1)}).on("mouseleave",function(X,ht){Ue(this).attr("fill-opacity",ht.id===o?1:.7)});vt.append("title").text(X=>{const ht=X.clusterId?m.get(X.clusterId):null,D=(ht==null?void 0:ht.name)??(X.clusterId?"Unknown cluster":"Unclustered");return`${X.sessionSlug}
161
161
  ${D}
162
162
  ${X.preview.slice(0,100)}...
163
- ${new Date(X.startTime).toLocaleString()}`})},[n,i,r,o,f,h,v,m]),_.jsx("div",{className:"w-full h-full",children:_.jsx("svg",{ref:d,className:"w-full h-full"})})}const Fs=36e5,rp=20;function M4(n,a){if(n.length<=1)return{longestStreak:n.length===1?{cluster:a(n[0].clusterId),count:1,durationMs:0}:null,mostSwitches:null,focusScore:1};let i={cluster:n[0].clusterId,count:1,startIdx:0,endIdx:0},r={cluster:n[0].clusterId,count:1,startIdx:0};for(let m=1;m<n.length;m++){const h=n[m].clusterId??"__unclustered",v=r.cluster??"__unclustered";h===v?r.count++:(r.count>i.count&&(i={...r,endIdx:m-1}),r={cluster:n[m].clusterId,count:1,startIdx:m})}r.count>i.count&&(i={...r,endIdx:n.length-1});const o=new Date(n[i.endIdx].endTime).getTime()-new Date(n[i.startIdx].startTime).getTime(),f=new Map;let d=0;for(let m=1;m<n.length;m++){const h=n[m-1].clusterId??"__unclustered",v=n[m].clusterId??"__unclustered";if(h!==v){d++;const y=[h,v].sort().join("|"),x=f.get(y);x?x.count++:f.set(y,{from:h,to:v,count:1})}}let g=null;for(const m of f.values())(!g||m.count>g.count)&&(g={from:a(m.from==="__unclustered"?null:m.from),to:a(m.to==="__unclustered"?null:m.to),count:m.count});return{longestStreak:{cluster:a(i.cluster),count:i.count,durationMs:o},mostSwitches:g,focusScore:1-d/(n.length-1)}}function E4(n){if(n<6e4)return"<1m";const a=Math.round(n/6e4);if(a<60)return`${a}m`;const i=Math.floor(a/60),r=a%60;return r>0?`${i}h ${r}m`:`${i}h`}function A4({chunks:n,edges:a,timeRange:i,onChunkClick:r,selectedChunkId:o,clusters:f}){const d=R.useRef(null),g=R.useMemo(()=>new Map((f??[]).map(C=>[C.id,C])),[f]),m=R.useMemo(()=>[...n].sort((C,A)=>new Date(C.startTime).getTime()-new Date(A.startTime).getTime()),[n]),h=R.useMemo(()=>{const C=[],A=new Set;for(const q of m){const L=q.clusterId??"__unclustered";A.has(L)||(A.add(L),L!=="__unclustered"&&C.push(L))}return A.has("__unclustered")&&C.push("__unclustered"),C},[m]),v=R.useMemo(()=>{const A=[...h.filter(q=>q!=="__unclustered")].map(q=>({id:q,info:g.get(q)})).sort((q,L)=>{var J,nt;return(((J=L.info)==null?void 0:J.memberCount)??0)-(((nt=q.info)==null?void 0:nt.memberCount)??0)});return new Map(A.map((q,L)=>[q.id,L]))},[h,g]);function y(C){if(!C||C==="__unclustered")return"#64748b";const A=v.get(C);return A===void 0?"#64748b":Ya[A%Ya.length]}function x(C){if(!C||C==="__unclustered")return"Unclustered";const A=g.get(C);return(A==null?void 0:A.name)??`Topic ${(v.get(C)??0)+1}`}const w=R.useMemo(()=>M4(m,x),[m,g,v]),k=R.useMemo(()=>{const C=new Map;for(const A of m){const q=A.clusterId??"__unclustered",L=C.get(q);L?(L.count++,L.tokens+=A.approxTokens):C.set(q,{count:1,tokens:A.approxTokens})}return C},[m]),N=R.useMemo(()=>{const C=new Map;for(const q of m)C.has(q.sessionId)||C.set(q.sessionId,new Date(q.startTime).getTime());return[...C.entries()].sort((q,L)=>q[1]-L[1]).slice(1).map(([q,L])=>{const J=m.find(nt=>nt.sessionId===q);return{time:L,slug:(J==null?void 0:J.sessionSlug)??q.slice(0,8)}})},[m]);return R.useEffect(()=>{var lt;const C=Ue(d.current);if(C.selectAll("*").remove(),m.length===0||!i.earliest||!i.latest)return;const A=(lt=d.current)==null?void 0:lt.parentElement,q=(A==null?void 0:A.clientWidth)??800,L=(A==null?void 0:A.clientHeight)??400,J={top:30,right:30,bottom:40,left:220},nt=q-J.left-J.right,V=L-J.top-J.bottom,K=Qf().domain([new Date(i.earliest),new Date(i.latest)]).range([0,nt]),st=kf().domain(h).range([0,V]).padding(.25),dt=st.bandwidth();C.attr("width",q).attr("height",L);const vt=C.append("defs");vt.append("clipPath").attr("id","topicflow-clip").append("rect").attr("width",nt).attr("height",V);const _t=new Set;for(let S=0;S<m.length-1;S++){const O=m[S].clusterId??"__unclustered",Z=m[S+1].clusterId??"__unclustered";O!==Z&&_t.add(`${O}||${Z}`)}for(const S of _t){const[O,Z]=S.split("||"),I=`grad-${O}-${Z}`.replace(/[^a-zA-Z0-9-]/g,"_"),tt=vt.append("linearGradient").attr("id",I).attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");tt.append("stop").attr("offset","0%").attr("stop-color",y(O==="__unclustered"?null:O)).attr("stop-opacity",.3),tt.append("stop").attr("offset","100%").attr("stop-color",y(Z==="__unclustered"?null:Z)).attr("stop-opacity",.3)}const X=C.append("g").attr("transform",`translate(${J.left},${J.top})`),ht=X.append("g").attr("transform",`translate(0,${V})`).call(Pu(K).ticks(8)).attr("class","topicflow-axis"),D=X.append("g").attr("class","topicflow-axis");for(const S of h){const O=(st(S)??0)+dt/2,Z=x(S==="__unclustered"?null:S),I=k.get(S),tt=I?I.tokens>=1e3?`${Math.round(I.tokens/1e3)}k`:`${I.tokens}`:"0",ut=I?`${Z} (${I.count}, ${tt} tok)`:Z,ct=ut.length>30?ut.slice(0,28)+"…":ut;D.append("text").attr("x",-8).attr("y",O).attr("text-anchor","end").attr("dominant-baseline","middle").attr("fill","var(--muted-foreground, #94a3b8)").attr("font-size","11px").text(ct).append("title").text(ut)}D.append("line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",V).attr("stroke","var(--border-color, #334155)"),X.selectAll(".topicflow-axis line, .topicflow-axis path").attr("stroke","var(--border-color, #334155)"),X.selectAll(".topicflow-axis text").attr("fill","var(--muted-foreground, #94a3b8)");const P=X.append("g").attr("clip-path","url(#topicflow-clip)");function M(S){P.selectAll("*").remove();const O=P.append("g").attr("class","session-boundaries");for(const tt of N){const ut=S(new Date(tt.time));O.append("line").attr("x1",ut).attr("y1",0).attr("x2",ut).attr("y2",V).attr("stroke","#475569").attr("stroke-width",1).attr("stroke-dasharray","4,4").attr("stroke-opacity",.3),O.append("text").attr("x",ut+4).attr("y",10).attr("fill","var(--muted-foreground, #94a3b8)").attr("font-size","9px").attr("fill-opacity",.5).text(tt.slug.length>12?tt.slug.slice(0,10)+"…":tt.slug)}const Z=P.append("g").attr("class","ribbons");for(let tt=0;tt<m.length-1;tt++){const ut=m[tt],ct=m[tt+1],Ct=new Date(ut.endTime).getTime();if(new Date(ct.startTime).getTime()-Ct>Fs){const Yt=(S(new Date(ut.endTime))+S(new Date(ct.startTime)))/2,ge=V/2;Z.append("text").attr("class","gap-indicator").attr("x",Yt).attr("y",ge).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("fill","var(--muted-foreground, #94a3b8)").attr("font-size","12px").attr("fill-opacity",.5).text("⋯");continue}const pt=ut.clusterId??"__unclustered",W=ct.clusterId??"__unclustered",Vt=S(new Date(ut.endTime)),St=S(new Date(ct.startTime)),Kt=dt*.5;if(pt===W){const Yt=(st(pt)??0)+dt*.25;Z.append("rect").attr("class",`ribbon ribbon-${tt}`).attr("x",Math.min(Vt,St)).attr("y",Yt).attr("width",Math.max(1,Math.abs(St-Vt))).attr("height",Kt).attr("fill",y(ut.clusterId)).attr("fill-opacity",.15)}else{const Yt=(st(pt)??0)+dt*.25,ge=Yt+Kt,fn=(st(W)??0)+dt*.25,Vl=fn+Kt,qn=(Vt+St)/2,Xa=`grad-${pt}-${W}`.replace(/[^a-zA-Z0-9-]/g,"_");Z.append("path").attr("class",`ribbon ribbon-${tt}`).attr("d",[`M${Vt},${Yt}`,`C${qn},${Yt} ${qn},${fn} ${St},${fn}`,`L${St},${Vl}`,`C${qn},${Vl} ${qn},${ge} ${Vt},${ge}`,"Z"].join(" ")).attr("fill",`url(#${Xa})`).attr("stroke","none")}}const I=P.append("g").attr("class","chunks");I.selectAll("rect").data(m).join("rect").attr("class",(tt,ut)=>`chunk chunk-${ut}`).attr("x",tt=>S(new Date(tt.startTime))).attr("y",tt=>{const ut=tt.clusterId??"__unclustered";return(st(ut)??0)+dt*.15}).attr("width",tt=>{const ut=S(new Date(tt.endTime))-S(new Date(tt.startTime));return Math.max(4,ut)}).attr("height",dt*.7).attr("rx",2).attr("fill",tt=>y(tt.clusterId)).attr("fill-opacity",tt=>tt.id===o?1:.7).attr("stroke",tt=>tt.id===o?"#ffffff":"none").attr("stroke-width",2).attr("cursor","pointer").on("click",(tt,ut)=>r(ut.id)).on("mouseenter",function(tt,ut){const ct=m.indexOf(ut);Y(ct)}).on("mouseleave",function(){F()}),I.selectAll("rect").append("title").text((tt,ut)=>{const ct=m[ut],Ct=ct.clusterId?g.get(ct.clusterId):null;return`${(Ct==null?void 0:Ct.name)??(ct.clusterId?"Unknown cluster":"Unclustered")}
163
+ ${new Date(X.startTime).toLocaleString()}`})},[n,i,r,o,f,h,v,m]),_.jsx("div",{className:"w-full h-full",children:_.jsx("svg",{ref:d,className:"w-full h-full"})})}const Fs=36e5,rp=20;function T4(n,a){if(n.length<=1)return{longestStreak:n.length===1?{cluster:a(n[0].clusterId),count:1,durationMs:0}:null,mostSwitches:null,focusScore:1};let i={cluster:n[0].clusterId,count:1,startIdx:0,endIdx:0},r={cluster:n[0].clusterId,count:1,startIdx:0};for(let m=1;m<n.length;m++){const h=n[m].clusterId??"__unclustered",v=r.cluster??"__unclustered";h===v?r.count++:(r.count>i.count&&(i={...r,endIdx:m-1}),r={cluster:n[m].clusterId,count:1,startIdx:m})}r.count>i.count&&(i={...r,endIdx:n.length-1});const o=new Date(n[i.endIdx].endTime).getTime()-new Date(n[i.startIdx].startTime).getTime(),f=new Map;let d=0;for(let m=1;m<n.length;m++){const h=n[m-1].clusterId??"__unclustered",v=n[m].clusterId??"__unclustered";if(h!==v){d++;const y=[h,v].sort().join("|"),x=f.get(y);x?x.count++:f.set(y,{from:h,to:v,count:1})}}let g=null;for(const m of f.values())(!g||m.count>g.count)&&(g={from:a(m.from==="__unclustered"?null:m.from),to:a(m.to==="__unclustered"?null:m.to),count:m.count});return{longestStreak:{cluster:a(i.cluster),count:i.count,durationMs:o},mostSwitches:g,focusScore:1-d/(n.length-1)}}function M4(n){if(n<6e4)return"<1m";const a=Math.round(n/6e4);if(a<60)return`${a}m`;const i=Math.floor(a/60),r=a%60;return r>0?`${i}h ${r}m`:`${i}h`}function E4({chunks:n,edges:a,timeRange:i,onChunkClick:r,selectedChunkId:o,clusters:f}){const d=R.useRef(null),g=R.useMemo(()=>new Map((f??[]).map(C=>[C.id,C])),[f]),m=R.useMemo(()=>[...n].sort((C,A)=>new Date(C.startTime).getTime()-new Date(A.startTime).getTime()),[n]),h=R.useMemo(()=>{const C=[],A=new Set;for(const q of m){const L=q.clusterId??"__unclustered";A.has(L)||(A.add(L),L!=="__unclustered"&&C.push(L))}return A.has("__unclustered")&&C.push("__unclustered"),C},[m]),v=R.useMemo(()=>{const A=[...h.filter(q=>q!=="__unclustered")].map(q=>({id:q,info:g.get(q)})).sort((q,L)=>{var J,nt;return(((J=L.info)==null?void 0:J.memberCount)??0)-(((nt=q.info)==null?void 0:nt.memberCount)??0)});return new Map(A.map((q,L)=>[q.id,L]))},[h,g]);function y(C){if(!C||C==="__unclustered")return"#64748b";const A=v.get(C);return A===void 0?"#64748b":Ya[A%Ya.length]}function x(C){if(!C||C==="__unclustered")return"Unclustered";const A=g.get(C);return(A==null?void 0:A.name)??`Topic ${(v.get(C)??0)+1}`}const w=R.useMemo(()=>T4(m,x),[m,g,v]),k=R.useMemo(()=>{const C=new Map;for(const A of m){const q=A.clusterId??"__unclustered",L=C.get(q);L?(L.count++,L.tokens+=A.approxTokens):C.set(q,{count:1,tokens:A.approxTokens})}return C},[m]),N=R.useMemo(()=>{const C=new Map;for(const q of m)C.has(q.sessionId)||C.set(q.sessionId,new Date(q.startTime).getTime());return[...C.entries()].sort((q,L)=>q[1]-L[1]).slice(1).map(([q,L])=>{const J=m.find(nt=>nt.sessionId===q);return{time:L,slug:(J==null?void 0:J.sessionSlug)??q.slice(0,8)}})},[m]);return R.useEffect(()=>{var lt;const C=Ue(d.current);if(C.selectAll("*").remove(),m.length===0||!i.earliest||!i.latest)return;const A=(lt=d.current)==null?void 0:lt.parentElement,q=(A==null?void 0:A.clientWidth)??800,L=(A==null?void 0:A.clientHeight)??400,J={top:30,right:30,bottom:40,left:220},nt=q-J.left-J.right,V=L-J.top-J.bottom,K=Qf().domain([new Date(i.earliest),new Date(i.latest)]).range([0,nt]),st=kf().domain(h).range([0,V]).padding(.25),dt=st.bandwidth();C.attr("width",q).attr("height",L);const vt=C.append("defs");vt.append("clipPath").attr("id","topicflow-clip").append("rect").attr("width",nt).attr("height",V);const _t=new Set;for(let S=0;S<m.length-1;S++){const O=m[S].clusterId??"__unclustered",Z=m[S+1].clusterId??"__unclustered";O!==Z&&_t.add(`${O}||${Z}`)}for(const S of _t){const[O,Z]=S.split("||"),I=`grad-${O}-${Z}`.replace(/[^a-zA-Z0-9-]/g,"_"),tt=vt.append("linearGradient").attr("id",I).attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");tt.append("stop").attr("offset","0%").attr("stop-color",y(O==="__unclustered"?null:O)).attr("stop-opacity",.3),tt.append("stop").attr("offset","100%").attr("stop-color",y(Z==="__unclustered"?null:Z)).attr("stop-opacity",.3)}const X=C.append("g").attr("transform",`translate(${J.left},${J.top})`),ht=X.append("g").attr("transform",`translate(0,${V})`).call(Pu(K).ticks(8)).attr("class","topicflow-axis"),D=X.append("g").attr("class","topicflow-axis");for(const S of h){const O=(st(S)??0)+dt/2,Z=x(S==="__unclustered"?null:S),I=k.get(S),tt=I?I.tokens>=1e3?`${Math.round(I.tokens/1e3)}k`:`${I.tokens}`:"0",ut=I?`${Z} (${I.count}, ${tt} tok)`:Z,ct=ut.length>30?ut.slice(0,28)+"…":ut;D.append("text").attr("x",-8).attr("y",O).attr("text-anchor","end").attr("dominant-baseline","middle").attr("fill","var(--muted-foreground, #94a3b8)").attr("font-size","11px").text(ct).append("title").text(ut)}D.append("line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",V).attr("stroke","var(--border-color, #334155)"),X.selectAll(".topicflow-axis line, .topicflow-axis path").attr("stroke","var(--border-color, #334155)"),X.selectAll(".topicflow-axis text").attr("fill","var(--muted-foreground, #94a3b8)");const P=X.append("g").attr("clip-path","url(#topicflow-clip)");function M(S){P.selectAll("*").remove();const O=P.append("g").attr("class","session-boundaries");for(const tt of N){const ut=S(new Date(tt.time));O.append("line").attr("x1",ut).attr("y1",0).attr("x2",ut).attr("y2",V).attr("stroke","#475569").attr("stroke-width",1).attr("stroke-dasharray","4,4").attr("stroke-opacity",.3),O.append("text").attr("x",ut+4).attr("y",10).attr("fill","var(--muted-foreground, #94a3b8)").attr("font-size","9px").attr("fill-opacity",.5).text(tt.slug.length>12?tt.slug.slice(0,10)+"…":tt.slug)}const Z=P.append("g").attr("class","ribbons");for(let tt=0;tt<m.length-1;tt++){const ut=m[tt],ct=m[tt+1],Ct=new Date(ut.endTime).getTime();if(new Date(ct.startTime).getTime()-Ct>Fs){const Yt=(S(new Date(ut.endTime))+S(new Date(ct.startTime)))/2,ge=V/2;Z.append("text").attr("class","gap-indicator").attr("x",Yt).attr("y",ge).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("fill","var(--muted-foreground, #94a3b8)").attr("font-size","12px").attr("fill-opacity",.5).text("⋯");continue}const pt=ut.clusterId??"__unclustered",W=ct.clusterId??"__unclustered",Vt=S(new Date(ut.endTime)),St=S(new Date(ct.startTime)),Kt=dt*.5;if(pt===W){const Yt=(st(pt)??0)+dt*.25;Z.append("rect").attr("class",`ribbon ribbon-${tt}`).attr("x",Math.min(Vt,St)).attr("y",Yt).attr("width",Math.max(1,Math.abs(St-Vt))).attr("height",Kt).attr("fill",y(ut.clusterId)).attr("fill-opacity",.15)}else{const Yt=(st(pt)??0)+dt*.25,ge=Yt+Kt,fn=(st(W)??0)+dt*.25,Vl=fn+Kt,qn=(Vt+St)/2,Xa=`grad-${pt}-${W}`.replace(/[^a-zA-Z0-9-]/g,"_");Z.append("path").attr("class",`ribbon ribbon-${tt}`).attr("d",[`M${Vt},${Yt}`,`C${qn},${Yt} ${qn},${fn} ${St},${fn}`,`L${St},${Vl}`,`C${qn},${Vl} ${qn},${ge} ${Vt},${ge}`,"Z"].join(" ")).attr("fill",`url(#${Xa})`).attr("stroke","none")}}const I=P.append("g").attr("class","chunks");I.selectAll("rect").data(m).join("rect").attr("class",(tt,ut)=>`chunk chunk-${ut}`).attr("x",tt=>S(new Date(tt.startTime))).attr("y",tt=>{const ut=tt.clusterId??"__unclustered";return(st(ut)??0)+dt*.15}).attr("width",tt=>{const ut=S(new Date(tt.endTime))-S(new Date(tt.startTime));return Math.max(4,ut)}).attr("height",dt*.7).attr("rx",2).attr("fill",tt=>y(tt.clusterId)).attr("fill-opacity",tt=>tt.id===o?1:.7).attr("stroke",tt=>tt.id===o?"#ffffff":"none").attr("stroke-width",2).attr("cursor","pointer").on("click",(tt,ut)=>r(ut.id)).on("mouseenter",function(tt,ut){const ct=m.indexOf(ut);Y(ct)}).on("mouseleave",function(){F()}),I.selectAll("rect").append("title").text((tt,ut)=>{const ct=m[ut],Ct=ct.clusterId?g.get(ct.clusterId):null;return`${(Ct==null?void 0:Ct.name)??(ct.clusterId?"Unknown cluster":"Unclustered")}
164
164
  ${ct.preview.slice(0,100)}…
165
- ${new Date(ct.startTime).toLocaleString()}`})}function Y(S){const O=new Set;O.add(S);for(let Z=S-1;Z>=0&&O.size<rp&&!(new Date(m[Z+1].startTime).getTime()-new Date(m[Z].endTime).getTime()>Fs);Z--)O.add(Z);for(let Z=S+1;Z<m.length&&O.size<rp&&!(new Date(m[Z].startTime).getTime()-new Date(m[Z-1].endTime).getTime()>Fs);Z++)O.add(Z);P.selectAll(".chunk").attr("fill-opacity",.1),P.selectAll(".ribbon").attr("opacity",.1),P.selectAll(".gap-indicator").attr("fill-opacity",.1);for(const Z of O)P.select(`.chunk-${Z}`).attr("fill-opacity",1);for(const Z of O)O.has(Z+1)&&P.select(`.ribbon-${Z}`).attr("opacity",1)}function F(){P.selectAll(".chunk").attr("fill-opacity",S=>S.id===o?1:.7),P.selectAll(".ribbon").attr("opacity",1),P.selectAll(".gap-indicator").attr("fill-opacity",.5)}M(K);const at=ky().scaleExtent([.5,20]).translateExtent([[-100,0],[nt+100,L]]).on("zoom",S=>{const O=S.transform.rescaleX(K);ht.call(Pu(O).ticks(8)),M(O)});C.call(at)},[m,i,r,o,h,g,v,k,N]),_.jsxs("div",{className:"w-full h-full flex flex-col",children:[m.length>1&&_.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 text-xs text-muted-foreground border-b border-border shrink-0",children:[w.longestStreak&&_.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-muted/30 rounded",children:[_.jsx("span",{className:"font-medium text-foreground",children:"Longest streak:"}),_.jsxs("span",{className:"tabular-nums",children:[w.longestStreak.cluster," (",w.longestStreak.count," chunks, ",E4(w.longestStreak.durationMs),")"]})]}),_.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-muted/30 rounded",children:[_.jsx("span",{className:"font-medium text-foreground",children:"Most switches:"}),_.jsx("span",{className:"tabular-nums",children:w.mostSwitches?`${w.mostSwitches.from} ↔ ${w.mostSwitches.to} (${w.mostSwitches.count}×)`:"—"})]}),_.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-muted/30 rounded",children:[_.jsx("span",{className:"font-medium text-foreground",children:"Focus:"}),_.jsxs("span",{className:"tabular-nums",children:[Math.round(w.focusScore*100),"%"]})]})]}),_.jsx("div",{className:"flex-1 min-h-0",children:_.jsx("svg",{ref:d,className:"w-full h-full"})})]})}function C4({chunkId:n,onClose:a,onWalkChain:i}){var d;const{data:r}=Pe(`/api/chunks?chunkId=${n}`),{data:o}=Pe(`/api/edges?chunkId=${n}&limit=20`),f=(d=r==null?void 0:r.chunks)==null?void 0:d[0];return _.jsxs("div",{className:"flex flex-col gap-3 h-full",children:[_.jsxs("div",{className:"flex items-center justify-between",children:[_.jsx("h3",{className:"text-sm font-semibold",children:"Chunk Inspector"}),_.jsx("button",{onClick:a,className:"rounded p-1 hover:bg-muted",children:_.jsx(f2,{className:"h-4 w-4"})})]}),f?_.jsxs("div",{className:"space-y-3 text-sm overflow-y-auto flex-1",children:[_.jsxs("div",{className:"space-y-1",children:[_.jsxs("div",{children:[_.jsx("span",{className:"text-muted-foreground",children:"ID: "}),_.jsxs("code",{className:"text-xs",children:[f.id.slice(0,12),"..."]})]}),_.jsxs("div",{children:[_.jsx("span",{className:"text-muted-foreground",children:"Project: "}),_.jsx(Bn,{variant:"secondary",children:f.sessionSlug})]}),_.jsxs("div",{children:[_.jsx("span",{className:"text-muted-foreground",children:"Time: "}),new Date(f.startTime).toLocaleString()]}),_.jsxs("div",{children:[_.jsx("span",{className:"text-muted-foreground",children:"Tokens: "}),f.approxTokens]})]}),_.jsx("div",{className:"border-t border-border pt-2",children:_.jsx("p",{className:"text-xs text-muted-foreground line-clamp-6 whitespace-pre-wrap",children:f.content.slice(0,500)})}),_.jsxs("div",{className:"flex gap-2",children:[_.jsxs("button",{onClick:()=>i(n,"backward"),className:"flex flex-1 items-center justify-center gap-1 rounded-md border border-border px-3 py-2 text-xs hover:bg-muted transition-colors",children:[_.jsx(Pb,{className:"h-3 w-3"}),"Walk Backward"]}),_.jsxs("button",{onClick:()=>i(n,"forward"),className:"flex flex-1 items-center justify-center gap-1 rounded-md border border-border px-3 py-2 text-xs hover:bg-muted transition-colors",children:["Walk Forward",_.jsx(t2,{className:"h-3 w-3"})]})]}),o&&o.edges.length>0&&_.jsxs("div",{className:"space-y-1 border-t border-border pt-2",children:[_.jsxs("h4",{className:"text-xs font-medium",children:["Edges (",o.total,")"]}),_.jsx("div",{className:"space-y-1 max-h-32 overflow-y-auto",children:o.edges.map(g=>_.jsxs("div",{className:"flex items-center gap-2 text-[10px]",children:[_.jsx(Bn,{variant:g.type==="backward"?"default":"outline",className:"text-[9px]",children:g.type}),g.referenceType&&_.jsx("span",{className:"text-muted-foreground",children:g.referenceType}),_.jsx("span",{className:"ml-auto tabular-nums",children:g.weight.toFixed(2)})]},g.id))})]})]}):_.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading chunk..."})]})}function z4({chunkId:n,direction:a,onDirectionChange:i}){const{data:r,loading:o}=Pe(`/api/chain/walk?chunkId=${n}&direction=${a}`);return _.jsxs("div",{className:"flex flex-col gap-3 h-full",children:[_.jsxs("div",{className:"flex items-center justify-between",children:[_.jsx("h3",{className:"text-sm font-semibold",children:"Chain Walk"}),_.jsxs("div",{className:"flex gap-1",children:[_.jsx("button",{onClick:()=>i("backward"),className:`rounded px-2 py-1 text-xs transition-colors ${a==="backward"?"bg-accent/20 text-accent":"text-muted-foreground hover:bg-muted"}`,children:"Backward"}),_.jsx("button",{onClick:()=>i("forward"),className:`rounded px-2 py-1 text-xs transition-colors ${a==="forward"?"bg-accent/20 text-accent":"text-muted-foreground hover:bg-muted"}`,children:"Forward"})]})]}),o&&_.jsx(ii,{}),r&&r.chain.length===0&&_.jsxs("p",{className:"text-sm text-muted-foreground",children:["No chain found — this chunk has no connected edges in the ",a," direction."]}),r&&_.jsxs("div",{className:"flex-1 overflow-y-auto space-y-2",children:[_.jsx(cp,{chunk:r.seed,position:0,total:r.chain.length+1,isSeed:!0}),r.chain.map((f,d)=>_.jsx(cp,{chunk:f,position:d+1,total:r.chain.length+1},f.id)),r.chain.length>0&&_.jsxs("div",{className:"text-xs text-muted-foreground pt-1",children:["Total: ",r.totalTokens.toLocaleString()," tokens"]})]})]})}function cp({chunk:n,position:a,total:i,isSeed:r=!1}){return _.jsxs("div",{className:`rounded-md border p-3 text-sm space-y-1 ${r?"border-accent bg-accent/5":"border-border bg-card"}`,children:[_.jsxs("div",{className:"flex items-center justify-between",children:[_.jsxs("div",{className:"flex items-center gap-2",children:[r&&_.jsx(Bn,{variant:"default",className:"text-[10px]",children:"Seed"}),_.jsx(Bn,{variant:"secondary",className:"text-[10px]",children:n.sessionSlug})]}),_.jsxs("span",{className:"text-xs text-muted-foreground tabular-nums",children:[a+1,"/",i]})]}),_.jsx("p",{className:"text-xs text-muted-foreground line-clamp-3",children:n.preview}),_.jsxs("div",{className:"text-[10px] text-muted-foreground",children:[new Date(n.startTime).toLocaleString()," · ",n.approxTokens," tokens"]})]})}function N4(){const[n,a]=R.useState(""),[i,r]=R.useState(null),[o,f]=R.useState(null),[d,g]=R.useState("backward"),{data:m}=Pe("/api/projects"),{data:h}=Pe("/api/clusters"),v=`/api/timeline?limit=500${n?`&project=${n}`:""}`,{data:y,loading:x}=Pe(v),w=((m==null?void 0:m.projects)??[]).map(A=>({value:A.slug,label:`${A.slug} (${A.chunkCount})`})),k=R.useCallback(A=>{r(A)},[]),N=R.useCallback((A,q)=>{f(A),g(q)},[]),C=i||o;return _.jsxs("div",{className:"flex h-[calc(100vh-8rem)] flex-col gap-4 animate-fade-in",children:[_.jsxs("div",{className:"flex items-center justify-between",children:[_.jsx("h1",{className:"text-2xl font-bold",children:"Timeline"}),_.jsx(_4,{value:n,onChange:A=>{a(A.target.value),r(null),f(null)},options:w,placeholder:"All projects",className:"w-60"})]}),h&&y&&y.chunks.length>0&&_.jsx(w4,{clusters:h.clusters,activeClusterIds:[...new Set(y.chunks.map(A=>A.clusterId).filter(Boolean))],unclusteredCount:y.chunks.filter(A=>!A.clusterId).length}),_.jsx("div",{className:`rounded-lg border border-border bg-card overflow-hidden relative ${C?"flex-1 min-h-[200px]":"flex-1"}`,children:x?_.jsx(ii,{}):y&&y.chunks.length>0?n?_.jsx(A4,{chunks:y.chunks,edges:y.edges,timeRange:y.timeRange,onChunkClick:k,selectedChunkId:i,clusters:h==null?void 0:h.clusters}):_.jsx(T4,{chunks:y.chunks,edges:y.edges,timeRange:y.timeRange,onChunkClick:k,selectedChunkId:i,clusters:h==null?void 0:h.clusters}):_.jsx("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:"No timeline data available"})}),C&&_.jsxs("div",{className:"flex gap-4 h-72 min-h-[200px]",children:[i&&_.jsx("div",{className:"w-80 shrink-0 rounded-lg border border-border bg-card p-4 overflow-y-auto",children:_.jsx(C4,{chunkId:i,onClose:()=>r(null),onWalkChain:N})}),o&&_.jsx("div",{className:"flex-1 rounded-lg border border-border bg-card p-4 overflow-y-auto",children:_.jsx(z4,{chunkId:o,direction:d,onDirectionChange:g})})]})]})}const Hr=["#10b981","#06b6d4","#8b5cf6","#f59e0b","#ef4444","#ec4899","#14b8a6","#f97316","#6366f1","#84cc16","#0ea5e9","#d946ef","#22c55e","#eab308","#a855f7"];function D4({clusters:n}){const a=R.useRef(null);return R.useEffect(()=>{if(!a.current||n.length===0)return;const i=Ue(a.current);i.selectAll("*").remove();const r=a.current.parentElement;if(!r)return;const o=r.clientWidth,f=r.clientHeight||360;i.attr("width",o).attr("height",f);const d=LT().size([o,f]).padding(6),g=Lf({children:n}).sum(x=>"memberCount"in x?x.memberCount:0),m=d(g),v=getComputedStyle(document.documentElement).getPropertyValue("--fg").trim()||"#e2e8f0",y=i.selectAll("g").data(m.leaves()).join("g").attr("transform",x=>`translate(${x.x},${x.y})`);y.append("circle").attr("r",x=>x.r).attr("fill",(x,w)=>Hr[w%Hr.length]).attr("fill-opacity",.7).attr("stroke",(x,w)=>Hr[w%Hr.length]).attr("stroke-width",1),y.filter(x=>x.r>30).append("text").attr("text-anchor","middle").attr("dy","-0.3em").attr("fill",v).attr("font-size",x=>Math.min(14,x.r/3)).attr("font-weight",600).text(x=>{var w;return((w=x.data.name)==null?void 0:w.slice(0,20))??x.data.id.slice(0,8)}),y.filter(x=>x.r>30).append("text").attr("text-anchor","middle").attr("dy","1.1em").attr("fill",v).attr("fill-opacity",.7).attr("font-size",x=>Math.min(11,x.r/4)).text(x=>`${x.data.memberCount} chunks`),y.append("title").text(x=>{const w=x.data;return`${w.name??w.id}
165
+ ${new Date(ct.startTime).toLocaleString()}`})}function Y(S){const O=new Set;O.add(S);for(let Z=S-1;Z>=0&&O.size<rp&&!(new Date(m[Z+1].startTime).getTime()-new Date(m[Z].endTime).getTime()>Fs);Z--)O.add(Z);for(let Z=S+1;Z<m.length&&O.size<rp&&!(new Date(m[Z].startTime).getTime()-new Date(m[Z-1].endTime).getTime()>Fs);Z++)O.add(Z);P.selectAll(".chunk").attr("fill-opacity",.1),P.selectAll(".ribbon").attr("opacity",.1),P.selectAll(".gap-indicator").attr("fill-opacity",.1);for(const Z of O)P.select(`.chunk-${Z}`).attr("fill-opacity",1);for(const Z of O)O.has(Z+1)&&P.select(`.ribbon-${Z}`).attr("opacity",1)}function F(){P.selectAll(".chunk").attr("fill-opacity",S=>S.id===o?1:.7),P.selectAll(".ribbon").attr("opacity",1),P.selectAll(".gap-indicator").attr("fill-opacity",.5)}M(K);const at=ky().scaleExtent([.5,20]).translateExtent([[-100,0],[nt+100,L]]).on("zoom",S=>{const O=S.transform.rescaleX(K);ht.call(Pu(O).ticks(8)),M(O)});C.call(at)},[m,i,r,o,h,g,v,k,N]),_.jsxs("div",{className:"w-full h-full flex flex-col",children:[m.length>1&&_.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 text-xs text-muted-foreground border-b border-border shrink-0",children:[w.longestStreak&&_.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-muted/30 rounded",children:[_.jsx("span",{className:"font-medium text-foreground",children:"Longest streak:"}),_.jsxs("span",{className:"tabular-nums",children:[w.longestStreak.cluster," (",w.longestStreak.count," chunks, ",M4(w.longestStreak.durationMs),")"]})]}),_.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-muted/30 rounded",children:[_.jsx("span",{className:"font-medium text-foreground",children:"Most switches:"}),_.jsx("span",{className:"tabular-nums",children:w.mostSwitches?`${w.mostSwitches.from} ↔ ${w.mostSwitches.to} (${w.mostSwitches.count}×)`:"—"})]}),_.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-muted/30 rounded",children:[_.jsx("span",{className:"font-medium text-foreground",children:"Focus:"}),_.jsxs("span",{className:"tabular-nums",children:[Math.round(w.focusScore*100),"%"]})]})]}),_.jsx("div",{className:"flex-1 min-h-0",children:_.jsx("svg",{ref:d,className:"w-full h-full"})})]})}function A4({clusters:n,activeClusterIds:a,unclusteredCount:i}){var k;const r=R.useRef(null),[o,f]=R.useState({visible:!1,cluster:null,anchorRect:null}),d=new Map(n.map(N=>[N.id,N])),m=[...a.map(N=>({id:N,info:d.get(N)})).sort((N,C)=>{var A,q;return(((A=C.info)==null?void 0:A.memberCount)??0)-(((q=N.info)==null?void 0:q.memberCount)??0)}).map((N,C)=>{var A,q;return{key:N.id,color:Ya[C%Ya.length],name:((A=N.info)==null?void 0:A.name)??`Topic ${C+1}`,count:((q=N.info)==null?void 0:q.memberCount)??0,info:N.info??null}}),...i>0?[{key:"_unclustered",color:"#64748b",name:"Unclustered",count:i,info:null}]:[]],h=(N,C)=>{const A=N.currentTarget.getBoundingClientRect();f({visible:!0,cluster:C,anchorRect:A})},v=()=>{f({visible:!1,cluster:null,anchorRect:null})},y=(k=r.current)==null?void 0:k.getBoundingClientRect(),x=o.anchorRect&&y?Math.min(o.anchorRect.left-y.left,y.width-296):0,w=o.anchorRect&&y?o.anchorRect.bottom-y.top+6:0;return _.jsxs("div",{ref:r,className:"relative rounded-lg border border-border bg-card px-4 py-2.5",children:[_.jsx("div",{className:"text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:"Topic Clusters"}),_.jsx("div",{className:"grid gap-x-6 gap-y-1",style:{gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))"},children:m.map(N=>_.jsxs("div",{className:"flex items-center gap-2 text-xs cursor-default hover:bg-muted/50 rounded px-1.5 py-0.5 transition-colors min-w-0",onMouseEnter:N.info?C=>h(C,N.info):void 0,onMouseLeave:v,children:[_.jsx("span",{className:"inline-block w-2.5 h-2.5 rounded-full shrink-0",style:{backgroundColor:N.color}}),_.jsx("span",{className:"text-foreground truncate",children:N.name}),_.jsx("span",{className:"text-muted-foreground tabular-nums ml-auto shrink-0",children:N.count})]},N.key))}),o.visible&&o.cluster&&_.jsxs("div",{className:"absolute z-50 rounded-md border border-border/80 bg-card/50 backdrop-blur-md px-3 py-2.5 text-xs shadow-lg w-72 pointer-events-none",style:{left:Math.max(0,x),top:w},children:[_.jsx("div",{className:"font-semibold text-foreground mb-1",children:o.cluster.name??"Unnamed"}),o.cluster.description&&_.jsx("p",{className:"text-muted-foreground mb-2 leading-relaxed",children:o.cluster.description}),_.jsx("div",{className:"flex gap-4 text-muted-foreground",children:_.jsxs("div",{children:["Members: ",_.jsx("span",{className:"text-foreground tabular-nums",children:o.cluster.memberCount})]})})]})]})}function C4({chunkId:n,onClose:a,onWalkChain:i}){var d;const{data:r}=Pe(`/api/chunks?chunkId=${n}`),{data:o}=Pe(`/api/edges?chunkId=${n}&limit=20`),f=(d=r==null?void 0:r.chunks)==null?void 0:d[0];return _.jsxs("div",{className:"flex flex-col gap-3 h-full",children:[_.jsxs("div",{className:"flex items-center justify-between",children:[_.jsx("h3",{className:"text-sm font-semibold",children:"Chunk Inspector"}),_.jsx("button",{onClick:a,className:"rounded p-1 hover:bg-muted",children:_.jsx(f2,{className:"h-4 w-4"})})]}),f?_.jsxs("div",{className:"space-y-3 text-sm overflow-y-auto flex-1",children:[_.jsxs("div",{className:"space-y-1",children:[_.jsxs("div",{children:[_.jsx("span",{className:"text-muted-foreground",children:"ID: "}),_.jsxs("code",{className:"text-xs",children:[f.id.slice(0,12),"..."]})]}),_.jsxs("div",{children:[_.jsx("span",{className:"text-muted-foreground",children:"Project: "}),_.jsx(Bn,{variant:"secondary",children:f.sessionSlug})]}),_.jsxs("div",{children:[_.jsx("span",{className:"text-muted-foreground",children:"Time: "}),new Date(f.startTime).toLocaleString()]}),_.jsxs("div",{children:[_.jsx("span",{className:"text-muted-foreground",children:"Tokens: "}),f.approxTokens]})]}),_.jsx("div",{className:"border-t border-border pt-2",children:_.jsx("p",{className:"text-xs text-muted-foreground line-clamp-6 whitespace-pre-wrap",children:f.content.slice(0,500)})}),_.jsxs("div",{className:"flex gap-2",children:[_.jsxs("button",{onClick:()=>i(n,"backward"),className:"flex flex-1 items-center justify-center gap-1 rounded-md border border-border px-3 py-2 text-xs hover:bg-muted transition-colors",children:[_.jsx(Pb,{className:"h-3 w-3"}),"Walk Backward"]}),_.jsxs("button",{onClick:()=>i(n,"forward"),className:"flex flex-1 items-center justify-center gap-1 rounded-md border border-border px-3 py-2 text-xs hover:bg-muted transition-colors",children:["Walk Forward",_.jsx(t2,{className:"h-3 w-3"})]})]}),o&&o.edges.length>0&&_.jsxs("div",{className:"space-y-1 border-t border-border pt-2",children:[_.jsxs("h4",{className:"text-xs font-medium",children:["Edges (",o.total,")"]}),_.jsx("div",{className:"space-y-1 max-h-32 overflow-y-auto",children:o.edges.map(g=>_.jsxs("div",{className:"flex items-center gap-2 text-[10px]",children:[_.jsx(Bn,{variant:g.type==="backward"?"default":"outline",className:"text-[9px]",children:g.type}),g.referenceType&&_.jsx("span",{className:"text-muted-foreground",children:g.referenceType}),_.jsx("span",{className:"ml-auto tabular-nums",children:g.weight.toFixed(2)})]},g.id))})]})]}):_.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading chunk..."})]})}function z4({chunkId:n,direction:a,onDirectionChange:i}){const{data:r,loading:o}=Pe(`/api/chain/walk?chunkId=${n}&direction=${a}`);return _.jsxs("div",{className:"flex flex-col gap-3 h-full",children:[_.jsxs("div",{className:"flex items-center justify-between",children:[_.jsx("h3",{className:"text-sm font-semibold",children:"Chain Walk"}),_.jsxs("div",{className:"flex gap-1",children:[_.jsx("button",{onClick:()=>i("backward"),className:`rounded px-2 py-1 text-xs transition-colors ${a==="backward"?"bg-accent/20 text-accent":"text-muted-foreground hover:bg-muted"}`,children:"Backward"}),_.jsx("button",{onClick:()=>i("forward"),className:`rounded px-2 py-1 text-xs transition-colors ${a==="forward"?"bg-accent/20 text-accent":"text-muted-foreground hover:bg-muted"}`,children:"Forward"})]})]}),o&&_.jsx(ii,{}),r&&r.chain.length===0&&_.jsxs("p",{className:"text-sm text-muted-foreground",children:["No chain found — this chunk has no connected edges in the ",a," direction."]}),r&&_.jsxs("div",{className:"flex-1 overflow-y-auto space-y-2",children:[_.jsx(cp,{chunk:r.seed,position:0,total:r.chain.length+1,isSeed:!0}),r.chain.map((f,d)=>_.jsx(cp,{chunk:f,position:d+1,total:r.chain.length+1},f.id)),r.chain.length>0&&_.jsxs("div",{className:"text-xs text-muted-foreground pt-1",children:["Total: ",r.totalTokens.toLocaleString()," tokens"]})]})]})}function cp({chunk:n,position:a,total:i,isSeed:r=!1}){return _.jsxs("div",{className:`rounded-md border p-3 text-sm space-y-1 ${r?"border-accent bg-accent/5":"border-border bg-card"}`,children:[_.jsxs("div",{className:"flex items-center justify-between",children:[_.jsxs("div",{className:"flex items-center gap-2",children:[r&&_.jsx(Bn,{variant:"default",className:"text-[10px]",children:"Seed"}),_.jsx(Bn,{variant:"secondary",className:"text-[10px]",children:n.sessionSlug})]}),_.jsxs("span",{className:"text-xs text-muted-foreground tabular-nums",children:[a+1,"/",i]})]}),_.jsx("p",{className:"text-xs text-muted-foreground line-clamp-3",children:n.preview}),_.jsxs("div",{className:"text-[10px] text-muted-foreground",children:[new Date(n.startTime).toLocaleString()," · ",n.approxTokens," tokens"]})]})}function N4(){const[n,a]=R.useState(""),[i,r]=R.useState(null),[o,f]=R.useState(null),[d,g]=R.useState("backward"),{data:m}=Pe("/api/projects"),{data:h}=Pe("/api/clusters"),v=`/api/timeline?limit=500${n?`&project=${n}`:""}`,{data:y,loading:x}=Pe(v),w=((m==null?void 0:m.projects)??[]).map(A=>({value:A.slug,label:`${A.slug} (${A.chunkCount})`})),k=R.useCallback(A=>{r(A)},[]),N=R.useCallback((A,q)=>{f(A),g(q)},[]),C=i||o;return _.jsxs("div",{className:"flex h-[calc(100vh-8rem)] flex-col gap-4 animate-fade-in",children:[_.jsxs("div",{className:"flex items-center justify-between",children:[_.jsx("h1",{className:"text-2xl font-bold",children:"Timeline"}),_.jsx(_4,{value:n,onChange:A=>{a(A.target.value),r(null),f(null)},options:w,placeholder:"All projects",className:"w-60"})]}),h&&y&&y.chunks.length>0&&_.jsx(A4,{clusters:h.clusters,activeClusterIds:[...new Set(y.chunks.map(A=>A.clusterId).filter(Boolean))],unclusteredCount:y.chunks.filter(A=>!A.clusterId).length}),_.jsx("div",{className:`rounded-lg border border-border bg-card overflow-hidden relative ${C?"flex-1 min-h-[200px]":"flex-1"}`,children:x?_.jsx(ii,{}):y&&y.chunks.length>0?n?_.jsx(E4,{chunks:y.chunks,edges:y.edges,timeRange:y.timeRange,onChunkClick:k,selectedChunkId:i,clusters:h==null?void 0:h.clusters}):_.jsx(w4,{chunks:y.chunks,edges:y.edges,timeRange:y.timeRange,onChunkClick:k,selectedChunkId:i,clusters:h==null?void 0:h.clusters}):_.jsx("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:"No timeline data available"})}),C&&_.jsxs("div",{className:"flex gap-4 h-72 min-h-[200px]",children:[i&&_.jsx("div",{className:"w-80 shrink-0 rounded-lg border border-border bg-card p-4 overflow-y-auto",children:_.jsx(C4,{chunkId:i,onClose:()=>r(null),onWalkChain:N})}),o&&_.jsx("div",{className:"flex-1 rounded-lg border border-border bg-card p-4 overflow-y-auto",children:_.jsx(z4,{chunkId:o,direction:d,onDirectionChange:g})})]})]})}const Hr=["#10b981","#06b6d4","#8b5cf6","#f59e0b","#ef4444","#ec4899","#14b8a6","#f97316","#6366f1","#84cc16","#0ea5e9","#d946ef","#22c55e","#eab308","#a855f7"];function D4({clusters:n}){const a=R.useRef(null);return R.useEffect(()=>{if(!a.current||n.length===0)return;const i=Ue(a.current);i.selectAll("*").remove();const r=a.current.parentElement;if(!r)return;const o=r.clientWidth,f=r.clientHeight||360;i.attr("width",o).attr("height",f);const d=LT().size([o,f]).padding(6),g=Lf({children:n}).sum(x=>"memberCount"in x?x.memberCount:0),m=d(g),v=getComputedStyle(document.documentElement).getPropertyValue("--fg").trim()||"#e2e8f0",y=i.selectAll("g").data(m.leaves()).join("g").attr("transform",x=>`translate(${x.x},${x.y})`);y.append("circle").attr("r",x=>x.r).attr("fill",(x,w)=>Hr[w%Hr.length]).attr("fill-opacity",.7).attr("stroke",(x,w)=>Hr[w%Hr.length]).attr("stroke-width",1),y.filter(x=>x.r>30).append("text").attr("text-anchor","middle").attr("dy","-0.3em").attr("fill",v).attr("font-size",x=>Math.min(14,x.r/3)).attr("font-weight",600).text(x=>{var w;return((w=x.data.name)==null?void 0:w.slice(0,20))??x.data.id.slice(0,8)}),y.filter(x=>x.r>30).append("text").attr("text-anchor","middle").attr("dy","1.1em").attr("fill",v).attr("fill-opacity",.7).attr("font-size",x=>Math.min(11,x.r/4)).text(x=>`${x.data.memberCount} chunks`),y.append("title").text(x=>{const w=x.data;return`${w.name??w.id}
166
166
  ${w.memberCount} chunks`})},[n]),_.jsx("svg",{ref:a,className:"w-full h-full"})}function R4({cluster:n}){const[a,i]=R.useState(!1);return _.jsxs(Wu,{children:[_.jsxs(ef,{className:"cursor-pointer",onClick:()=>i(!a),children:[_.jsxs("div",{className:"flex items-center justify-between",children:[_.jsx(nf,{className:"text-base",children:n.name??n.id.slice(0,12)}),_.jsxs("div",{className:"flex items-center gap-2",children:[_.jsxs(Bn,{variant:"secondary",children:[n.memberCount," chunks"]}),a?_.jsx(l2,{className:"h-4 w-4"}):_.jsx(n2,{className:"h-4 w-4"})]})]}),n.description&&_.jsx(J2,{className:"line-clamp-2",children:n.description})]}),a&&_.jsxs(Iu,{children:[_.jsx("div",{className:"mb-3 h-2 rounded-full bg-muted overflow-hidden",children:_.jsx("div",{className:"h-full rounded-full bg-accent transition-all",style:{width:`${Math.min(100,n.memberCount*2)}%`}})}),n.exemplarPreviews.length>0&&_.jsxs("div",{className:"space-y-2",children:[_.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"Exemplar Chunks"}),n.exemplarPreviews.map(r=>_.jsxs("div",{className:"rounded border border-border p-2 text-xs text-muted-foreground",children:[_.jsx("code",{className:"text-[10px]",children:r.id.slice(0,8)}),_.jsx("p",{className:"mt-1 line-clamp-2",children:r.preview})]},r.id))]})]})]})}function O4(){const{data:n,loading:a}=Pe("/api/clusters");if(a||!n)return _.jsx(ii,{});const i=n.clusters;return _.jsxs("div",{className:"space-y-6 animate-fade-in",children:[_.jsx("h1",{className:"text-2xl font-bold",children:"Clusters"}),i.length===0?_.jsx("div",{className:"text-muted-foreground",children:"No clusters found. Run clustering first."}):_.jsxs(_.Fragment,{children:[_.jsx("div",{className:"rounded-lg border border-border bg-card p-4",style:{height:400},children:_.jsx(D4,{clusters:i})}),_.jsx("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:i.map(r=>_.jsx(R4,{cluster:r},r.id))})]})]})}function U4({className:n,...a}){return _.jsx("input",{className:tn("flex h-10 w-full rounded-md border border-border bg-background px-3 py-2 text-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50",n),...a})}function j4({onSearch:n,debounceMs:a=400}){const[i,r]=R.useState(""),o=R.useRef(null);return R.useEffect(()=>(o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{n(i)},a),()=>{o.current&&clearTimeout(o.current)}),[i,a,n]),_.jsxs("div",{className:"relative max-w-xl",children:[_.jsx(Op,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),_.jsx(U4,{value:i,onChange:f=>r(f.target.value),placeholder:"Search memory...",className:"pl-10"})]})}function Ws({title:n,results:a,color:i,allIds:r}){const o=f=>{let d=0;return r.has(`v:${f}`)&&d++,r.has(`k:${f}`)&&d++,d};return _.jsxs("div",{className:"flex-1 min-w-0",children:[_.jsxs("h3",{className:"mb-3 text-sm font-semibold",style:{color:i},children:[n,_.jsxs("span",{className:"ml-2 text-muted-foreground font-normal",children:["(",a.length,")"]})]}),_.jsxs("div",{className:"space-y-2",children:[a.map((f,d)=>{const g=o(f.id);return _.jsxs("div",{className:"rounded-md border border-border p-3 space-y-1",children:[_.jsxs("div",{className:"flex items-center gap-2",children:[_.jsxs("span",{className:"text-xs font-medium text-muted-foreground",children:["#",d+1]}),_.jsx("span",{className:"text-xs tabular-nums font-mono",style:{color:i},children:f.score.toFixed(4)}),g>1&&_.jsx(Bn,{variant:"default",className:"text-[10px] px-1.5 py-0",children:"boosted"}),_.jsx(Bn,{variant:"secondary",className:"text-[10px] ml-auto",children:f.sessionSlug})]}),_.jsx("p",{className:"text-xs text-muted-foreground line-clamp-3",children:f.preview})]},f.id)}),a.length===0&&_.jsx("div",{className:"text-sm text-muted-foreground italic",children:"No results"})]})]})}function H4({data:n}){const a=new Set;return n.vector.forEach(i=>a.add(`v:${i.id}`)),n.keyword.forEach(i=>a.add(`k:${i.id}`)),_.jsxs("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-3",children:[_.jsx(Ws,{title:"Vector",results:n.vector,color:"#8b5cf6",allIds:a}),_.jsx(Ws,{title:"Keyword (BM25)",results:n.keyword,color:"#06b6d4",allIds:a}),_.jsx(Ws,{title:"Fused (RRF)",results:n.fused,color:"#10b981",allIds:a})]})}function L4(){const[n,a]=R.useState(""),[i,r]=R.useState(null),{data:o,loading:f}=Pe(i),d=R.useCallback(g=>{a(g),g.trim()?r(`/api/search/compare?q=${encodeURIComponent(g.trim())}`):r(null)},[]);return _.jsxs("div",{className:"space-y-6 animate-fade-in",children:[_.jsx("h1",{className:"text-2xl font-bold",children:"Hybrid Search Pipeline"}),_.jsx("p",{className:"text-muted-foreground",children:"Compare vector, keyword (BM25), and fused (RRF) search results side by side."}),_.jsx(j4,{onSearch:d}),f&&_.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[_.jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-muted border-t-accent"}),"Searching..."]}),o&&_.jsx(H4,{data:o}),!o&&!f&&n&&_.jsx("div",{className:"text-muted-foreground",children:"No results found."})]})}function k4(){const{data:n,loading:a}=Pe("/api/projects");return a||!n?_.jsx(ii,{}):_.jsxs("div",{className:"space-y-6 animate-fade-in",children:[_.jsx("h1",{className:"text-2xl font-bold",children:"Projects"}),n.projects.length===0?_.jsx("div",{className:"text-muted-foreground",children:"No projects found."}):_.jsx(Wu,{children:_.jsx(Iu,{className:"p-0",children:_.jsx("div",{className:"overflow-x-auto",children:_.jsxs("table",{className:"w-full text-sm",children:[_.jsx("thead",{children:_.jsxs("tr",{className:"border-b border-border",children:[_.jsx("th",{className:"px-4 py-3 text-left font-medium text-muted-foreground",children:"Project"}),_.jsx("th",{className:"px-4 py-3 text-right font-medium text-muted-foreground",children:"Chunks"}),_.jsx("th",{className:"px-4 py-3 text-left font-medium text-muted-foreground",children:"First Seen"}),_.jsx("th",{className:"px-4 py-3 text-left font-medium text-muted-foreground",children:"Last Seen"})]})}),_.jsx("tbody",{children:n.projects.map(i=>_.jsxs("tr",{className:"border-b border-border last:border-0 hover:bg-muted/50 transition-colors",children:[_.jsx("td",{className:"px-4 py-3",children:_.jsxs("div",{className:"flex items-center gap-2",children:[_.jsx("span",{className:"font-medium",children:i.slug}),i.path&&_.jsx("span",{className:"text-xs text-muted-foreground truncate max-w-[200px]",children:i.path})]})}),_.jsx("td",{className:"px-4 py-3 text-right",children:_.jsx(Bn,{variant:"secondary",children:i.chunkCount})}),_.jsx("td",{className:"px-4 py-3 text-muted-foreground",children:new Date(i.firstSeen).toLocaleDateString()}),_.jsx("td",{className:"px-4 py-3 text-muted-foreground",children:new Date(i.lastSeen).toLocaleDateString()})]},i.slug))})]})})})})]})}function Y4(){return _.jsx(qb,{children:_.jsx(yb,{children:_.jsxs(Ul,{element:_.jsx($2,{}),children:[_.jsx(Ul,{path:"/",element:_.jsx(S4,{})}),_.jsx(Ul,{path:"/timeline",element:_.jsx(N4,{})}),_.jsx(Ul,{path:"/clusters",element:_.jsx(O4,{})}),_.jsx(Ul,{path:"/search",element:_.jsx(L4,{})}),_.jsx(Ul,{path:"/projects",element:_.jsx(k4,{})})]})})})}px.createRoot(document.getElementById("root")).render(_.jsx(R.StrictMode,{children:_.jsx(Y4,{})}));