1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/dagre-VKFMJZFB.js","assets/chunks/chunk-RYQCIY6F.js","assets/chunks/graph.js","assets/chunks/map.js","assets/chunks/layout.js","assets/chunks/framework.js","assets/chunks/swimlanes-5IMT3BWC.js","assets/chunks/cose-bilkent-JH36ORCC.js","assets/chunks/cytoscape.esm.js","assets/chunks/c4Diagram-LMCZKHZV.js","assets/chunks/chunk-32BRIVSS.js","assets/chunks/flowDiagram-23GEKE2U.js","assets/chunks/chunk-5VM5RSS4.js","assets/chunks/chunk-XXDRQBXY.js","assets/chunks/chunk-VR4S4FIN.js","assets/chunks/swimlanesDiagram-G3AALYLV.js","assets/chunks/erDiagram-Q63AITRT.js","assets/chunks/gitGraphDiagram-IHSO6WYX.js","assets/chunks/chunk-2Q5K7J3B.js","assets/chunks/chunk-JWPE2WC7.js","assets/chunks/cynefin-VYW2F7L2.js","assets/chunks/ganttDiagram-NO4QXBWP.js","assets/chunks/infoDiagram-FWYZ7A6U.js","assets/chunks/pieDiagram-ENE6RG2P.js","assets/chunks/quadrantDiagram-ABIIQ3AL.js","assets/chunks/xychartDiagram-FW5EYKEG.js","assets/chunks/requirementDiagram-TGXJPOKE.js","assets/chunks/sequenceDiagram-DBY2YBRQ.js","assets/chunks/classDiagram-OUVF2IWQ.js","assets/chunks/chunk-V7JOEXUC.js","assets/chunks/classDiagram-v2-EOCWNBFH.js","assets/chunks/stateDiagram-2N3HPSRC.js","assets/chunks/chunk-EX3LRPZG.js","assets/chunks/stateDiagram-v2-6OUMAXLB.js","assets/chunks/journeyDiagram-5HDEW3XC.js","assets/chunks/timeline-definition-FHXFAJF6.js","assets/chunks/mindmap-definition-LN4V7U3C.js","assets/chunks/kanban-definition-HUTT4EX6.js","assets/chunks/sankeyDiagram-HTMAVEWB.js","assets/chunks/diagram-NH7WQ7WH.js","assets/chunks/diagram-WEI45ONY.js","assets/chunks/blockDiagram-677ZJIJ3.js","assets/chunks/diagram-OA4YK3LP.js","assets/chunks/architectureDiagram-ZJ3FMSHR.js","assets/chunks/diagram-FQU43EPY.js","assets/chunks/ishikawaDiagram-FXEZZL3T.js","assets/chunks/vennDiagram-L72KCM5P.js","assets/chunks/diagram-G47NLZAW.js","assets/chunks/wardleyDiagram-EHGQE667.js","assets/chunks/cynefinDiagram-TSTJHNR4.js","assets/chunks/railroadDiagram-RFXS5EU6.js","assets/chunks/chunk-MOJQB5TN.js","assets/chunks/ebnfDiagram-CCIWWBDH.js","assets/chunks/abnfDiagram-VRR7QNED.js","assets/chunks/pegDiagram-2B236MQR.js","assets/chunks/VPLocalSearchBox.js"])))=>i.map(i=>d[i]); 2var D1=Object.defineProperty;var I1=(e,t,r)=>t in e?D1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Gt=(e,t,r)=>I1(e,typeof t!="symbol"?t+"":t,r);import{_ as Pt,u as Rr,t as $1,o as br,a as uo,c as Y,n as qt,r as Rt,b as M,d as gt,e as Q,f as pr,g as xt,h as wt,w as tt,T as jc,i as ct,j as St,k as z1,l as R1,m as Cs,p as ut,q as W,s as H,v as mi,x as zl,y as mr,z as go,A as Xc,B as N1,C as H1,F as Wt,D as ie,E as _i,G as fo,H as Ct,I as Ug,J as ur,K as Vg,L as ws,M as Pr,N as po,O as W1,P as Yg,Q as Rl,R as Gg,S as jg,U as mo,V as q1,W as U1,X as Xg,Y as Qg,Z as V1,$ as Y1,a0 as G1,a1 as j1,a2 as X1,a3 as Q1,a4 as Du,a5 as Iu,a6 as Fa}from"./framework.js";var Kg=Object.defineProperty,y=(e,t)=>Kg(e,"name",{value:t,configurable:!0}),K1=(e,t)=>{for(var r in t)Kg(e,r,{get:t[r],enumerable:!0})},Z1=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function J1(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Zg={exports:{}};(function(e,t){(function(r,i){e.exports=i()})(Z1,function(){var r=1e3,i=6e4,a=36e5,s="millisecond",n="second",o="minute",l="hour",c="day",h="week",u="month",g="quarter",d="year",f="date",p="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,b=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,k={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(L){var F=["th","st","nd","rd"],A=L%100;return"["+L+(F[(A-20)%10]||F[A]||F[0])+"]"}},x=function(L,F,A){var $=String(L);return!$||$.length>=F?L:""+Array(F+1-$.length).join(A)+L},C={s:x,z:function(L){var F=-L.utcOffset(),A=Math.abs(F),$=Math.floor(A/60),E=A%60;return(F<=0?"+":"-")+x($,2,"0")+":"+x(E,2,"0")},m:function L(F,A){if(F.date()<A.date())return-L(A,F);
vendor: 4,922 bytes, line 2
2var $=12*(A.year()-F.year())+(A.month()-F.month()),E=F.clone().add($,u),V=A-E<0,X=F.clone().add($+(V?-1:1),u);return+(-($+(A-E)/(V?E-X:X-E))||0)},a:function(L){return L<0?Math.ceil(L)||0:Math.floor(L)},p:function(L){return{M:u,y:d,w:h,d:c,D:f,h:l,m:o,s:n,ms:s,Q:g}[L]||String(L||"").toLowerCase().replace(/s$/,"")},u:function(L){return L===void 0}},T="en",w={};w[T]=k;var _="$isDayjsObject",B=function(L){return L instanceof R||!(!L||!L[_])},G=function L(F,A,$){var E;if(!F)return T;if(typeof F=="string"){var V=F.toLowerCase();w[V]&&(E=V),A&&(w[V]=A,E=V);var X=F.split("-");if(!E&&X.length>1)return L(X[0])}else{var et=F.name;w[et]=F,E=et}return!$&&E&&(T=E),E||!$&&T},z=function(L,F){if(B(L))return L.clone();var A=typeof F=="object"?F:{};return A.date=L,A.args=arguments,new R(A)},P=C;P.l=G,P.i=B,P.w=function(L,F){return z(L,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var R=function(){function L(A){this.$L=G(A.locale,null,!0),this.parse(A),this.$x=this.$x||A.x||{},this[_]=!0}var F=L.prototype;return F.parse=function(A){this.$d=function($){var E=$.date,V=$.utc;if(E===null)return new Date(NaN);if(P.u(E))return new Date;if(E instanceof Date)return new Date(E);if(typeof E=="string"&&!/Z$/i.test(E)){var X=E.match(m);if(X){var et=X[2]-1||0,ot=(X[7]||"0").substring(0,3);return V?new Date(Date.UTC(X[1],et,X[3]||1,X[4]||0,X[5]||0,X[6]||0,ot)):new Date(X[1],et,X[3]||1,X[4]||0,X[5]||0,X[6]||0,ot)}}return new Date(E)}(A),this.init()},F.init=function(){var A=this.$d;this.$y=A.getFullYear(),this.$M=A.getMonth(),this.$D=A.getDate(),this.$W=A.getDay(),this.$H=A.getHours(),this.$m=A.getMinutes(),this.$s=A.getSeconds(),this.$ms=A.getMilliseconds()},F.$utils=function(){return P},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(A,$){var E=z(A);return this.startOf($)<=E&&E<=this.endOf($)},F.isAfter=function(A,$){return z(A)<this.startOf($)},F.isBefore=function(A,$){return this.endOf($)<z(A)},F.$g=function(A,$,E){return P.u(A)?this[$]:this.set(E,A)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(A,$){var E=this,V=!!P.u($)||$,X=P.p(A),et=function(rt,Z){var K=P.w(E.$u?Date.UTC(E.$y,Z,rt):new Date(E.$y,Z,rt),E);return V?K:K.endOf(c)},ot=function(rt,Z){return P.w(E.toDate()[rt].apply(E.toDate("s"),(V?[0,0,0,0]:[23,59,59,999]).slice(Z)),E)},bt=this.$W,pt=this.$M,mt=this.$D,Ft="set"+(this.$u?"UTC":"");switch(X){case d:return V?et(1,0):et(31,11);case u:return V?et(1,pt):et(0,pt+1);case h:var Mt=this.$locale().weekStart||0,It=(bt<Mt?bt+7:bt)-Mt;return et(V?mt-It:mt+(6-It),pt);case c:case f:return ot(Ft+"Hours",0);case l:return ot(Ft+"Minutes",1);case o:return ot(Ft+"Seconds",2);case n:return ot(Ft+"Milliseconds",3);default:return this.clone()}},F.endOf=function(A){return this.startOf(A,!1)},F.$set=function(A,$){var E,V=P.p(A),X="set"+(this.$u?"UTC":""),et=(E={},E[c]=X+"Date",E[f]=X+"Date",E[u]=X+"Month",E[d]=X+"FullYear",E[l]=X+"Hours",E[o]=X+"Minutes",E[n]=X+"Seconds",E[s]=X+"Milliseconds",E)[V],ot=V===c?this.$D+($-this.$W):$;if(V===u||V===d){var bt=this.clone().set(f,1);bt.$d[et](ot),bt.init(),this.$d=bt.set(f,Math.min(this.$D,bt.daysInMonth())).$d}else et&&this.$d[et](ot);return this.init(),this},F.set=function(A,$){return this.clone().$set(A,$)},F.get=function(A){return this[P.p(A)]()},F.add=function(A,$){var E,V=this;A=Number(A);var X=P.p($),et=function(pt){var mt=z(V);return P.w(mt.date(mt.date()+Math.round(pt*A)),V)};if(X===u)return this.set(u,this.$M+A);if(X===d)return this.set(d,this.$y+A);if(X===c)return et(1);if(X===h)return et(7);var ot=(E={},E[o]=i,E[l]=a,E[n]=r,E)[X]||1,bt=this.$d.getTime()+A*ot;return P.w(bt,this)},F.subtract=function(A,$){return this.add(-1*A,$)},F.format=function(A){var $=this,E=this.$locale();if(!this.isValid())return E.invalidDate||p;var V=A||"YYYY-MM-DDTHH:mm:ssZ",X=P.z(this),et=this.$H,ot=this.$m,bt=this.$M,pt=E.weekdays,mt=E.months,Ft=E.meridiem,Mt=function(Z,K,j,nt){return Z&&(Z[K]||Z($,V))||j[K].slice(0,nt)},It=function(Z){return P.s(et%12||12,Z,"0")},rt=Ft||function(Z,K,j){var nt=Z<12?"AM":"PM";return j?nt.toLowerCase():nt};return V.replace(b,function(Z,K){return K||function(j){switch(j){case"YY":return String($.$y).slice(-2);case"YYYY":return P.s($.$y,4,"0");case"M":return bt+1;case"MM":return P.s(bt+1,2,"0");case"MMM":return Mt(E.monthsShort,bt,mt,3);case"MMMM":return Mt(mt,bt);case"D":return $.$D;case"DD":return P.s($.$D,2,"0");case"d":return String($.$W);case"dd":return Mt(E.weekdaysMin,$.$W,pt,2);case"ddd":return Mt(E.weekdaysShort,$.$W,pt,3);case"dddd":return pt[$.$W];case"H":return String(et);case"HH":return P.s(et,2,"0");case"h":return It(1);case"hh":return It(2);case"a":return rt(et,ot,!0);case"A":return rt(et,ot,!1);case"m":return String(ot);case"mm":return P.s(ot,2,"0");case"s":return String($.$s);case"ss":return P.s($.$s,2,"0");case"SSS":return P.s($.$ms,3,"0");case"Z":return X}return null}(Z)||X.replace(":","")})}
vendor: 5,276 bytes, line 2
2,F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(A,$,E){var V,X=this,et=P.p($),ot=z(A),bt=(ot.utcOffset()-this.utcOffset())*i,pt=this-ot,mt=function(){return P.m(X,ot)};switch(et){case d:V=mt()/12;break;case u:V=mt();break;case g:V=mt()/3;break;case h:V=(pt-bt)/6048e5;break;case c:V=(pt-bt)/864e5;break;case l:V=pt/a;break;case o:V=pt/i;break;case n:V=pt/r;break;default:V=pt}return E?V:P.a(V)},F.daysInMonth=function(){return this.endOf(u).$D},F.$locale=function(){return w[this.$L]},F.locale=function(A,$){if(!A)return this.$L;var E=this.clone(),V=G(A,$,!0);return V&&(E.$L=V),E},F.clone=function(){return P.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},L}(),D=R.prototype;return z.prototype=D,[["$ms",s],["$s",n],["$m",o],["$H",l],["$W",c],["$M",u],["$y",d],["$D",f]].forEach(function(L){D[L[1]]=function(F){return this.$g(F,L[0],L[1])}}),z.extend=function(L,F){return L.$i||(L(F,R,z),L.$i=!0),z},z.locale=G,z.isDayjs=B,z.unix=function(L){return z(1e3*L)},z.en=w[T],z.Ls=w,z.p={},z})})(Zg);var tv=Zg.exports;const ev=J1(tv);var Sr={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},J={trace:y((...e)=>{},"trace"),debug:y((...e)=>{},"debug"),info:y((...e)=>{},"info"),warn:y((...e)=>{},"warn"),error:y((...e)=>{},"error"),fatal:y((...e)=>{},"fatal")},Qc=y(function(e="fatal"){let t=Sr.fatal;typeof e=="string"?e.toLowerCase()in Sr&&(t=Sr[e]):typeof e=="number"&&(t=e),J.trace=()=>{},J.debug=()=>{},J.info=()=>{},J.warn=()=>{},J.error=()=>{},J.fatal=()=>{},t<=Sr.fatal&&(J.fatal=console.error?console.error.bind(console,Ne("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Ne("FATAL"))),t<=Sr.error&&(J.error=console.error?console.error.bind(console,Ne("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Ne("ERROR"))),t<=Sr.warn&&(J.warn=console.warn?console.warn.bind(console,Ne("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Ne("WARN"))),t<=Sr.info&&(J.info=console.info?console.info.bind(console,Ne("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Ne("INFO"))),t<=Sr.debug&&(J.debug=console.debug?console.debug.bind(console,Ne("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Ne("DEBUG"))),t<=Sr.trace&&(J.trace=console.debug?console.debug.bind(console,Ne("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Ne("TRACE")))},"setLogLevel"),Ne=y(e=>`%c${ev().format("ss.SSS")} : ${e} : `,"format");const sn={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:e=>e>=255?255:e<0?0:e,g:e=>e>=255?255:e<0?0:e,b:e=>e>=255?255:e<0?0:e,h:e=>e%360,s:e=>e>=100?100:e<0?0:e,l:e=>e>=100?100:e<0?0:e,a:e=>e>=1?1:e<0?0:e},toLinear:e=>{const t=e/255;return e>.03928?Math.pow((t+.055)/1.055,2.4):t/12.92},hue2rgb:(e,t,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e),hsl2rgb:({h:e,s:t,l:r},i)=>{if(!t)return r*2.55;e/=360,t/=100,r/=100;const a=r<.5?r*(1+t):r+t-r*t,s=2*r-a;switch(i){case"r":return sn.hue2rgb(s,a,e+1/3)*255;case"g":return sn.hue2rgb(s,a,e)*255;case"b":return sn.hue2rgb(s,a,e-1/3)*255}},rgb2hsl:({r:e,g:t,b:r},i)=>{e/=255,t/=255,r/=255;const a=Math.max(e,t,r),s=Math.min(e,t,r),n=(a+s)/2;if(i==="l")return n*100;if(a===s)return 0;const o=a-s,l=n>.5?o/(2-a-s):o/(a+s);if(i==="s")return l*100;switch(a){case e:return((t-r)/o+(t<r?6:0))*60;case t:return((r-e)/o+2)*60;case r:return((e-t)/o+4)*60;default:return-1}}},rv={clamp:(e,t,r)=>t>r?Math.min(t,Math.max(r,e)):Math.min(r,Math.max(t,e)),round:e=>Math.round(e*1e10)/1e10},iv={dec2hex:e=>{const t=Math.round(e).toString(16);return t.length>1?t:`0${t}`}},At={channel:sn,lang:rv,unit:iv},Vr={};for(let e=0;e<=255;e++)Vr[e]=At.unit.dec2hex(e);const ve={ALL:0,RGB:1,HSL:2};class av{constructor(){this.type=ve.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=ve.ALL}is(t){return this.type===t}}class sv{constructor(t,r){this.color=r,this.changed=!1,this.data=t,this.type=new av}set(t,r){return this.color=r,this.changed=!1,this.data=t,this.type.type=ve.ALL,this}_ensureHSL(){const t=this.data,{h:r,s:i,l:a}=t;r===void 0&&(t.h=At.channel.rgb2hsl(t,"h")),i===void 0&&(t.s=At.channel.rgb2hsl(t,"s")),a===void 0&&(t.l=At.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r,g:i,b:a}=t;r===void 0&&(t.r=At.channel.hsl2rgb(t,"r")),i===void 0&&(t.g=At.channel.hsl2rgb(t,"g")),a===void 0&&(t.b=At.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,r=t.r;return!this.type.is(ve.HSL)&&r!==void 0?r:(this._ensureHSL(),At.channel.hsl2rgb(t,"r"))}get g(){const t=this.data,r=t.g;return!this.type.is(ve.HSL)&&r!==void 0?r:(this._ensureHSL(),At.channel.hsl2rgb(t,"g"))}get b(){const t=this.data,r=t.b;return!this.type.is(ve.HSL)&&r!==void 0?r:(this._ensureHSL(),At.channel.hsl2rgb(t,"b"))}get h(){const t=this.data,r=t.h;return!this.type.is(ve.RGB)&&r!==void 0?r:(this._ensureRGB(),At.channel.rgb2hsl(t,"h"))}get s(){const t=this.data,r=t.s;return!this.type.is(ve.RGB)&&r!==void 0?r:(this._ensureRGB(),At.channel.rgb2hsl(t,"s"))}
vendor: 7,111 bytes, line 2
2get l(){const t=this.data,r=t.l;return!this.type.is(ve.RGB)&&r!==void 0?r:(this._ensureRGB(),At.channel.rgb2hsl(t,"l"))}get a(){return this.data.a}set r(t){this.type.set(ve.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(ve.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(ve.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(ve.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(ve.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(ve.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}const yo=new sv({r:0,g:0,b:0,a:0},"transparent"),Qi={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:e=>{if(e.charCodeAt(0)!==35)return;const t=e.match(Qi.re);if(!t)return;const r=t[1],i=parseInt(r,16),a=r.length,s=a%4===0,n=a>4,o=n?1:17,l=n?8:4,c=s?0:-1,h=n?255:15;return yo.set({r:(i>>l*(c+3)&h)*o,g:(i>>l*(c+2)&h)*o,b:(i>>l*(c+1)&h)*o,a:s?(i&h)*o/255:1},e)},stringify:e=>{const{r:t,g:r,b:i,a}=e;return a<1?`#${Vr[Math.round(t)]}${Vr[Math.round(r)]}${Vr[Math.round(i)]}${Vr[Math.round(a*255)]}`:`#${Vr[Math.round(t)]}${Vr[Math.round(r)]}${Vr[Math.round(i)]}`}},hi={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:e=>{const t=e.match(hi.hueRe);if(t){const[,r,i]=t;switch(i){case"grad":return At.channel.clamp.h(parseFloat(r)*.9);case"rad":return At.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return At.channel.clamp.h(parseFloat(r)*360)}}return At.channel.clamp.h(parseFloat(e))},parse:e=>{const t=e.charCodeAt(0);if(t!==104&&t!==72)return;const r=e.match(hi.re);if(!r)return;const[,i,a,s,n,o]=r;return yo.set({h:hi._hue2deg(i),s:At.channel.clamp.s(parseFloat(a)),l:At.channel.clamp.l(parseFloat(s)),a:n?At.channel.clamp.a(o?parseFloat(n)/100:parseFloat(n)):1},e)},stringify:e=>{const{h:t,s:r,l:i,a}=e;return a<1?`hsla(${At.lang.round(t)}, ${At.lang.round(r)}%, ${At.lang.round(i)}%, ${a})`:`hsl(${At.lang.round(t)}, ${At.lang.round(r)}%, ${At.lang.round(i)}%)`}},rs={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:e=>{e=e.toLowerCase();const t=rs.colors[e];if(t)return Qi.parse(t)},stringify:e=>{const t=Qi.stringify(e);for(const r in rs.colors)if(rs.colors[r]===t)return r}},Ga={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:e=>{const t=e.charCodeAt(0);if(t!==114&&t!==82)return;const r=e.match(Ga.re);if(!r)return;const[,i,a,s,n,o,l,c,h]=r;return yo.set({r:At.channel.clamp.r(a?parseFloat(i)*2.55:parseFloat(i)),g:At.channel.clamp.g(n?parseFloat(s)*2.55:parseFloat(s)),b:At.channel.clamp.b(l?parseFloat(o)*2.55:parseFloat(o)),a:c?At.channel.clamp.a(h?parseFloat(c)/100:parseFloat(c)):1},e)},stringify:e=>{const{r:t,g:r,b:i,a}=e;return a<1?`rgba(${At.lang.round(t)}, ${At.lang.round(r)}, ${At.lang.round(i)}, ${At.lang.round(a)})`:`rgb(${At.lang.round(t)}, ${At.lang.round(r)}, ${At.lang.round(i)})`}},Je={format:{keyword:rs,hex:Qi,rgb:Ga,rgba:Ga,hsl:hi,hsla:hi},parse:e=>{if(typeof e!="string")return e;const t=Qi.parse(e)||Ga.parse(e)||hi.parse(e)||rs.parse(e);if(t)return t;throw new Error(`Unsupported color format: "${e}"`)},stringify:e=>!e.changed&&e.color?e.color:e.type.is(ve.HSL)||e.data.r===void 0?hi.stringify(e):e.a<1||!Number.isInteger(e.r)||!Number.isInteger(e.g)||!Number.isInteger(e.b)?Ga.stringify(e):Qi.stringify(e)},Jg=(e,t)=>{const r=Je.parse(e);for(const i in t)r[i]=At.channel.clamp[i](t[i]);return Je.stringify(r)},Xr=(e,t,r=0,i=1)=>{if(typeof e!="number")return Jg(e,{a:t});const a=yo.set({r:At.channel.clamp.r(e),g:At.channel.clamp.g(t),b:At.channel.clamp.b(r),a:At.channel.clamp.a(i)});return Je.stringify(a)},X6=(e,t)=>At.lang.round(Je.parse(e)[t]),nv=e=>{const{r:t,g:r,b:i}=Je.parse(e),a=.2126*At.channel.toLinear(t)+.7152*At.channel.toLinear(r)+.0722*At.channel.toLinear(i);return At.lang.round(a)},ov=e=>nv(e)>
2=.5,er=e=>!ov(e),Kc=(e,t,r)=>{const i=Je.parse(e),a=i[t],s=At.channel.clamp[t](a+r);return a!==s&&(i[t]=s),Je.stringify(i)},q=(e,t)=>Kc(e,"l",t),U=(e,t)=>Kc(e,"l",-t),Q6=(e,t)=>Kc(e,"a",-t),v=(e,t)=>{const r=Je.parse(e),i={};for(const a in t)t[a]&&(i[a]=r[a]+t[a]);return Jg(e,i)},lv=(e,t,r=50)=>{const{r:i,g:a,b:s,a:n}=Je.parse(e),{r:o,g:l,b:c,a:h}=Je.parse(t),u=r/100,g=u*2-1,d=n-h,p=((g*d===-1?g:(g+d)/(1+g*d))+1)/2,m=1-p,b=i*p+o*m,k=a*p+l*m,x=s*p+c*m,C=n*u+h*(1-u);return Xr(b,k,x,C)},O=(e,t=100)=>{const r=Je.parse(e);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,lv(r,e,t)};/*! @license DOMPurify 3.4.11 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.11/LICENSE */function $u(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function cv(e){if(Array.isArray(e))return e}function hv(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i,a,s,n,o=[],l=!0,c=!1;try{if(s=(r=r.call(e)).next,t!==0)for(;!(l=(i=s.call(r)).done)&&(o.push(i.value),o.length!==t);l=!0);}catch(h){c=!0,a=h}finally{try{if(!l&&r.return!=null&&(n=r.return(),Object(n)!==n))return}finally{if(c)throw a}}return o}}function uv(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 3In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function dv(e,t){return cv(e)||hv(e,t)||gv(e,t)||uv()}function gv(e,t){if(e){if(typeof e=="string")return $u(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?$u(e,t):void 0}}const tf=Object.entries,zu=Object.setPrototypeOf,fv=Object.isFrozen,pv=Object.getPrototypeOf,mv=Object.getOwnPropertyDescriptor;let ye=Object.freeze,be=Object.seal,Hi=Object.create,ef=typeof Reflect<"u"&&Reflect,Nl=ef.apply,Hl=ef.construct;ye||(ye=function(t){return t});be||(be=function(t){return t});Nl||(Nl=function(t,r){for(var i=arguments.length,a=new Array(i>2?i-2:0),s=2;s<i;s++)a[s-2]=arguments[s];return t.apply(r,a)});Hl||(Hl=function(t){for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];return new t(...i)});const Pa=ae(Array.prototype.forEach),yv=ae(Array.prototype.lastIndexOf),Ru=ae(Array.prototype.pop),$i=ae(Array.prototype.push),bv=ae(Array.prototype.splice),Yr=Array.isArray,ja=ae(String.prototype.toLowerCase),sl=ae(String.prototype.toString),Nu=ae(String.prototype.match),Ea=ae(String.prototype.replace),Hu=ae(String.prototype.indexOf),kv=ae(String.prototype.trim),vv=ae(Number.prototype.toString),xv=ae(Boolean.prototype.toString),Wu=typeof BigInt>"u"?null:ae(BigInt.prototype.toString),qu=typeof Symbol>"u"?null:ae(Symbol.prototype.toString),ce=ae(Object.prototype.hasOwnProperty),Oa=ae(Object.prototype.toString),fe=ae(RegExp.prototype.test),ai=Cv(TypeError);function ae(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];return Nl(e,t,i)}}function Cv(e){return function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return Hl(e,r)}}function zt(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ja;if(zu&&zu(e,null),!Yr(t))return e;let i=t.length;for(;i--;){let a=t[i];if(typeof a=="string"){const s=r(a);s!==a&&(fv(t)||(t[i]=s),a=s)}e[a]=!0}return e}function wv(e){for(let t=0;t<e.length;t++)ce(e,t)||(e[t]=null);return e}function Ae(e){const t=Hi(null);for(const i of tf(e)){var r=dv(i,2);const a=r[0],s=r[1];ce(e,a)&&(Yr(s)?t[a]=wv(s):s&&typeof s=="object"&&s.constructor===Object?t[a]=Ae(s):t[a]=s)}return t}function Tv(e){switch(typeof e){case"string":return e;case"number":return vv(e);case"boolean":return xv(e);case"bigint":return Wu?Wu(e):"0";case"symbol":return qu?qu(e):"Symbol()";case"undefined":return Oa(e);case"function":case"object":{if(e===null)return Oa(e);const t=e,r=or(t,"toString");if(typeof r=="function"){const i=r(t);return typeof i=="string"?i:Oa(i)}return Oa(e)}default:return Oa(e)}}function or(e,t){for(;e!==null;
vendor: 6,597 bytes, line 3
3){const i=mv(e,t);if(i){if(i.get)return ae(i.get);if(typeof i.value=="function")return ae(i.value)}e=pv(e)}function r(){return null}return r}function Sv(e){try{return fe(e,""),!0}catch{return!1}}const Uu=ye(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),nl=ye(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),ol=ye(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),_v=ye(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),ll=ye(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Bv=ye(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Vu=ye(["#text"]),Yu=ye(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),cl=ye(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Gu=ye(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","
3subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),qs=ye(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Lv=be(/{{[\w\W]*|^[\w\W]*}}/g),Av=be(/<%[\w\W]*|^[\w\W]*%>/g),Mv=be(/\${[\w\W]*/g),Fv=be(/^data-[\-\w.\u00B7-\uFFFF]+$/),Pv=be(/^aria-[\-\w]+$/),ju=be(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Ev=be(/^(?:\w+script|data):/i),Ov=be(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Dv=be(/^html$/i),Iv=be(/^[a-z][.\w]*(-[.\w]+)+$/i),Xu=be(/<[/\w!]/g),$v=be(/<[/\w]/g),zv=be(/<\/no(script|embed|frames)/i),Rv=be(/\/>/i),sr={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Nv=function(){return typeof window>"u"?null:window},Hv=function(t,r){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null;const a="data-tt-policy-suffix";r&&r.hasAttribute(a)&&(i=r.getAttribute(a));const s="dompurify"+(i?"#"+i:"");try{return t.createPolicy(s,{createHTML(n){return n},createScriptURL(n){return n}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}},Qu=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Ur=function(t,r,i,a){return ce(t,r)&&Yr(t[r])?zt(a.base?Ae(a.base):{},t[r],a.transform):i};function rf(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Nv();const t=st=>rf(st);if(t.version="3.4.11",t.removed=[],!e||!e.document||e.document.nodeType!==sr.document||!e.Element)return t.isSupported=!1,t;let r=e.document;const i=r,a=i.currentScript;e.DocumentFragment;const s=e.HTMLTemplateElement,n=e.Node,o=e.Element,l=e.NodeFilter,c=e.NamedNodeMap;c===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;const h=e.DOMParser,u=e.trustedTypes,g=o.prototype,d=or(g,"cloneNode"),f=or(g,"remove"),p=or(g,"nextSibling"),m=or(g,"childNodes"),b=or(g,"parentNode"),k=or(g,"shadowRoot"),x=or(g,"attributes"),C=n&&n.prototype?or(n.prototype,"nodeType"):null,T=n&&n.prototype?or(n.prototype,"nodeName"):null;if(typeof s=="function"){const st=r.createElement("template");st.content&&st.content.ownerDocument&&(r=st.content.ownerDocument)}let w,_="",B,G=!1,z=0;const P=function(){if(z>0)throw ai('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},R=function(S){P(),z++;try{return w.createHTML(S)}finally{z--}},D=function(S){P(),z++;try{return w.createScriptURL(S)}finally{z--}},L=function(){return G||(B=Hv(u,a),G=!0),B},F=r,A=F.implementation,$=F.createNodeIterator,E=F.createDocumentFragment,V=F.getElementsByTagName,X=i.importNode;let et=Qu();t.isSupported=typeof tf=="function"&&typeof b=="function"&&A&&A.createHTMLDocument!==void 0;const ot=Lv,bt=Av,pt=Mv,mt=Fv,Ft=Pv,Mt=Ev,It=Ov,rt=Iv;let Z=ju,K=null;const j=zt({},[...Uu,...nl,...ol,...ll,...Vu]);let nt=null;const I=zt({},[...Yu,...cl,...Gu,...qs]);let it=Object.seal(Hi(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Qt=null,qe=null;const Be=Object.seal(Hi(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let fu=!0,Wo=!0,pu=!1,mu=!0,Wr=!1,La=!0,ri=!1,qo=!1,Uo=null,Vo=null,Yo=!1,Pi=!1,Is=!1,$s=!1,yu=!0,bu=!1;const ku="user-content-";let Go=!0,jo=!1,Ei={},ir=null;const Xo=zt({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let vu=null;const xu=zt({},["audio","video","img","source","image","track"]);let Qo=null;const Cu=zt({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),zs="http://www.w3.org/1998/Math/MathML",Rs="http://www.w3.org/2000/svg",ar="http://www.w3.org/1999/xhtml";let Oi=ar,Ko=!1,Zo=null;
vendor: 1,909 bytes, line 3
3const k1=zt({},[zs,Rs,ar],sl),wu=ye(["mi","mo","mn","ms","mtext"]);let Jo=zt({},wu);const Tu=ye(["annotation-xml"]);let tl=zt({},Tu);const v1=zt({},["title","style","font","a","script"]);let Aa=null;const x1=["application/xhtml+xml","text/html"],C1="text/html";let Kt=null,Di=null;const w1=r.createElement("form"),Su=function(S){return S instanceof RegExp||S instanceof Function},el=function(){let S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Di&&Di===S)return;(!S||typeof S!="object")&&(S={}),S=Ae(S),Aa=x1.indexOf(S.PARSER_MEDIA_TYPE)===-1?C1:S.PARSER_MEDIA_TYPE,Kt=Aa==="application/xhtml+xml"?sl:ja,K=Ur(S,"ALLOWED_TAGS",j,{transform:Kt}),nt=Ur(S,"ALLOWED_ATTR",I,{transform:Kt}),Zo=Ur(S,"ALLOWED_NAMESPACES",k1,{transform:sl}),Qo=Ur(S,"ADD_URI_SAFE_ATTR",Cu,{transform:Kt,base:Cu}),vu=Ur(S,"ADD_DATA_URI_TAGS",xu,{transform:Kt,base:xu}),ir=Ur(S,"FORBID_CONTENTS",Xo,{transform:Kt}),Qt=Ur(S,"FORBID_TAGS",Ae({}),{transform:Kt}),qe=Ur(S,"FORBID_ATTR",Ae({}),{transform:Kt}),Ei=ce(S,"USE_PROFILES")?S.USE_PROFILES&&typeof S.USE_PROFILES=="object"?Ae(S.USE_PROFILES):S.USE_PROFILES:!1,fu=S.ALLOW_ARIA_ATTR!==!1,Wo=S.ALLOW_DATA_ATTR!==!1,pu=S.ALLOW_UNKNOWN_PROTOCOLS||!1,mu=S.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Wr=S.SAFE_FOR_TEMPLATES||!1,La=S.SAFE_FOR_XML!==!1,ri=S.WHOLE_DOCUMENT||!1,Pi=S.RETURN_DOM||!1,Is=S.RETURN_DOM_FRAGMENT||!1,$s=S.RETURN_TRUSTED_TYPE||!1,Yo=S.FORCE_BODY||!1,yu=S.SANITIZE_DOM!==!1,bu=S.SANITIZE_NAMED_PROPS||!1,Go=S.KEEP_CONTENT!==!1,jo=S.IN_PLACE||!1,Z=Sv(S.ALLOWED_URI_REGEXP)?S.ALLOWED_URI_REGEXP:ju,Oi=typeof S.NAMESPACE=="string"?S.NAMESPACE:ar,Jo=ce(S,"MATHML_TEXT_INTEGRATION_POINTS")&&S.MATHML_TEXT_INTEGRATION_POINTS&&typeof S.MATHML_TEXT_INTEGRATION_POINTS=="object"?Ae(S.MATHML_TEXT_INTEGRATION_POINTS):zt({},wu),tl=ce(S,"HTML_INTEGRATION_POINTS")&&S.HTML_INTEGRATION_POINTS&&typeof S.HTML_INTEGRATION_POINTS=="object"?Ae(S.HTML_INTEGRATION_POINTS):zt({},Tu);
3const N=ce(S,"CUSTOM_ELEMENT_HANDLING")&&S.CUSTOM_ELEMENT_HANDLING&&typeof S.CUSTOM_ELEMENT_HANDLING=="object"?Ae(S.CUSTOM_ELEMENT_HANDLING):Hi(null);if(it=Hi(null),ce(N,"tagNameCheck")&&Su(N.tagNameCheck)&&(it.tagNameCheck=N.tagNameCheck),ce(N,"attributeNameCheck")&&Su(N.attributeNameCheck)&&(it.attributeNameCheck=N.attributeNameCheck),ce(N,"allowCustomizedBuiltInElements")&&typeof N.allowCustomizedBuiltInElements=="boolean"&&(it.allowCustomizedBuiltInElements=N.allowCustomizedBuiltInElements),be(it),Wr&&(Wo=!1),Is&&(Pi=!0),Ei&&(K=zt({},Vu),nt=Hi(null),Ei.html===!0&&(zt(K,Uu),zt(nt,Yu)),Ei.svg===!0&&(zt(K,nl),zt(nt,cl),zt(nt,qs)),Ei.svgFilters===!0&&(zt(K,ol),zt(nt,cl),zt(nt,qs)),Ei.mathMl===!0&&(zt(K,ll),zt(nt,Gu),zt(nt,qs))),Be.tagCheck=null,Be.attributeCheck=null,ce(S,"ADD_TAGS")&&(typeof S.ADD_TAGS=="function"?Be.tagCheck=S.ADD_TAGS:Yr(S.ADD_TAGS)&&(K===j&&(K=Ae(K)),zt(K,S.ADD_TAGS,Kt))),ce(S,"ADD_ATTR")&&(typeof S.ADD_ATTR=="function"?Be.attributeCheck=S.ADD_ATTR:Yr(S.ADD_ATTR)&&(nt===I&&(nt=Ae(nt)),zt(nt,S.ADD_ATTR,Kt))),ce(S,"ADD_URI_SAFE_ATTR")&&Yr(S.ADD_URI_SAFE_ATTR)&&zt(Qo,S.ADD_URI_SAFE_ATTR,Kt),ce(S,"FORBID_CONTENTS")&&Yr(S.FORBID_CONTENTS)&&(ir===Xo&&(ir=Ae(ir)),zt(ir,S.FORBID_CONTENTS,Kt)),ce(S,"ADD_FORBID_CONTENTS")&&Yr(S.ADD_FORBID_CONTENTS)&&(ir===Xo&&(ir=Ae(ir)),zt(ir,S.ADD_FORBID_CONTENTS,Kt)),Go&&(K["#text"]=!0),ri&&zt(K,["html","head","body"]),K.table&&(zt(K,["tbody"]),delete Qt.tbody),S.TRUSTED_TYPES_POLICY){if(typeof S.TRUSTED_TYPES_POLICY.createHTML!="function")throw ai('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof S.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw ai('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const at=w;w=S.TRUSTED_TYPES_POLICY;try{_=R("")}catch(kt){throw w=at,kt}}else S.TRUSTED_TYPES_POLICY===null?(w=void 0,_=""):(w===void 0&&(w=L()),w&&typeof _=="string"&&(_=R("")));ye&&ye(S),Di=S},_u=zt({},[...nl,...ol,..._v]),Bu=zt({},[...ll,...Bv]),T1=function(S,N,at){return N.namespaceURI===ar?S==="svg":N.namespaceURI===zs?S==="svg"&&(at==="annotation-xml"||Jo[at]):!!_u[S]},S1=function(S,N,at){return N.namespaceURI===ar?S==="math":N.namespaceURI===Rs?S==="math"&&tl[at]:!!Bu[S]},_1=function(S,N,at){return N.namespaceURI===Rs&&!tl[at]||N.namespaceURI===zs&&!Jo[at]?!1:!Bu[S]&&(v1[S]||!_u[S])},B1=function(S){let N=b(S);(!N||!N.tagName)&&(N={namespaceURI:Oi,tagName:"template"});const at=ja(S.tagName),kt=ja(N.tagName);return Zo[S.namespaceURI]?S.namespaceURI===Rs?T1(at,N,kt):S.namespaceURI===zs?S1(at,N,kt):S.namespaceURI===ar?_1(at,N,kt):!!(Aa==="application/xhtml+xml"&&Zo[S.namespaceURI]):!1},qr=function(S){$i(t.removed,{element:S});try{b(S).removeChild(S)}catch{if(f(S),!b(S))throw ai("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Lu=function(S){const N=m(S);if(N){const kt=[];Pa(N,Ot=>{$i(kt,Ot)}),Pa(kt,Ot=>{try{f(Ot)}catch{}})}const at=x(S);if(at)for(let kt=at.length-1;kt>=0;--kt){const Ot=at[kt],Nt=Ot&&Ot.name;if(typeof Nt=="string")try{S.removeAttribute(Nt)}catch{}}},ii=function(S,N){try{$i(t.removed,{attribute:N.getAttributeNode(S),from:N})}catch{$i(t.removed,{attribute:null,from:N})}if(N.removeAttribute(S),S==="is")if(Pi||Is)try{qr(N)}catch{}else try{N.setAttribute(S,"")}catch{}},L1=function(S){const N=x(S);if(N)for(let at=N.length-1;at>=0;--at){const kt=N[at],Ot=kt&&kt.name;if(!(typeof Ot!="string"||nt[Kt(Ot)]))try{S.removeAttribute(Ot)}catch{}}},A1=function(S){const N=[S];for(;N.length>0;){const at=N.pop();(C?C(at):at.nodeType)===sr.element&&L1(at);const Ot=m(at);if(Ot)for(let Nt=Ot.length-1;Nt>=0;--Nt)N.push(Ot[Nt])}},Au=function(S){let N=null,at=null;if(Yo)S="<remove></remove>"+S;else{const Nt=Nu(S,/^[\r\n\t ]+/);at=Nt&&Nt[0]}Aa==="application/xhtml+xml"&&Oi===ar&&(S='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+S+"</body></html>");const kt=w?R(S):S;if(Oi===ar)try{N=new h().parseFromString(kt,Aa)}catch{}if(!N||!N.documentElement){N=A.createDocument(Oi,"template",null);try{N.documentElement.innerHTML=Ko?_:kt}catch{}}const Ot=N.body||N.documentElement;return S&&at&&Ot.insertBefore(r.createTextNode(at),Ot.childNodes[0]||null),Oi===ar?V.call(N,ri?"html":"body")[0]:ri?N.documentElement:Ot},Mu=function(S){return $.call(S.ownerDocument||S,S,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Ns=function(S){return S=Ea(S,ot," "),S=Ea(S,bt," "),S=Ea(S,pt," "),S},rl=function(S){var N;S.normalize();const at=$.call(S.ownerDocument||S,S,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null);let kt=at.nextNode();for(;kt;)kt.data=Ns(kt.data),kt=at.nextNode();const Ot=(N=S.querySelectorAll)===null||N===void 0?void 0:N.call(S,"template");Ot&&Pa(Ot,Nt=>{Ii(Nt.content)&&rl(Nt.content)})},Hs=function(S){const N=T?T(S):null;
3return typeof N!="string"||Kt(N)!=="form"?!1:typeof S.nodeName!="string"||typeof S.textContent!="string"||typeof S.removeChild!="function"||S.attributes!==x(S)||typeof S.removeAttribute!="function"||typeof S.setAttribute!="function"||typeof S.namespaceURI!="string"||typeof S.insertBefore!="function"||typeof S.hasChildNodes!="function"||S.nodeType!==C(S)||S.childNodes!==m(S)},Ii=function(S){if(!C||typeof S!="object"||S===null)return!1;try{return C(S)===sr.documentFragment}catch{return!1}},Ma=function(S){if(!C||typeof S!="object"||S===null)return!1;try{return typeof C(S)=="number"}catch{return!1}};function Tr(st,S,N){st.length!==0&&Pa(st,at=>{at.call(t,S,N,Di)})}const M1=function(S,N){return!!(La&&S.hasChildNodes()&&!Ma(S.firstElementChild)&&fe(Xu,S.textContent)&&fe(Xu,S.innerHTML)||La&&S.namespaceURI===ar&&N==="style"&&Ma(S.firstElementChild)||S.nodeType===sr.processingInstruction||La&&S.nodeType===sr.comment&&fe($v,S.data))},F1=function(S,N){if(!Qt[N]&&Eu(N)&&(it.tagNameCheck instanceof RegExp&&fe(it.tagNameCheck,N)||it.tagNameCheck instanceof Function&&it.tagNameCheck(N)))return!1;if(Go&&!ir[N]){const at=b(S),kt=m(S);if(kt&&at){const Ot=kt.length;for(let Nt=Ot-1;Nt>=0;--Nt){const le=jo?kt[Nt]:d(kt[Nt],!0);at.insertBefore(le,p(S))}}}return qr(S),!0},Fu=function(S){if(Tr(et.beforeSanitizeElements,S,null),Hs(S))return qr(S),!0;const N=Kt(T?T(S):S.nodeName);if(Tr(et.uponSanitizeElement,S,{tagName:N,allowedTags:K}),M1(S,N))return qr(S),!0;if(Qt[N]||!(Be.tagCheck instanceof Function&&Be.tagCheck(N))&&!K[N])return F1(S,N);if((C?C(S):S.nodeType)===sr.element&&!B1(S)||(N==="noscript"||N==="noembed"||N==="noframes")&&fe(zv,S.innerHTML))return qr(S),!0;if(Wr&&S.nodeType===sr.text){const kt=Ns(S.textContent);S.textContent!==kt&&($i(t.removed,{element:S.cloneNode()}),S.textContent=kt)}return Tr(et.afterSanitizeElements,S,null),!1},Pu=function(S,N,at){if(qe[N]||yu&&(N==="id"||N==="name")&&(at in r||at in w1))return!1;const kt=nt[N]||Be.attributeCheck instanceof Function&&Be.attributeCheck(N,S);if(!(Wo&&fe(mt,N))){if(!(fu&&fe(Ft,N))){if(kt){if(!Qo[N]){if(!fe(Z,Ea(at,It,""))){if(!((N==="src"||N==="xlink:href"||N==="href")&&S!=="script"&&Hu(at,"data:")===0&&vu[S])){if(!(pu&&!fe(Mt,Ea(at,It,"")))){if(at)return!1}}}}}else if(!(Eu(S)&&(it.tagNameCheck instanceof RegExp&&fe(it.tagNameCheck,S)||it.tagNameCheck instanceof Function&&it.tagNameCheck(S))&&(it.attributeNameCheck instanceof RegExp&&fe(it.attributeNameCheck,N)||it.attributeNameCheck instanceof Function&&it.attributeNameCheck(N,S))||N==="is"&&it.allowCustomizedBuiltInElements&&(it.tagNameCheck instanceof RegExp&&fe(it.tagNameCheck,at)||it.tagNameCheck instanceof Function&&it.tagNameCheck(at))))return!1}}return!0},P1=zt({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Eu=function(S){return!P1[ja(S)]&&fe(rt,S)},E1=function(S,N,at,kt){if(w&&typeof u=="object"&&typeof u.getAttributeType=="function"&&!at)switch(u.getAttributeType(S,N)){case"TrustedHTML":return R(kt);case"TrustedScriptURL":return D(kt)}return kt},O1=function(S,N,at,kt){try{at?S.setAttributeNS(at,N,kt):S.setAttribute(N,kt),Hs(S)?qr(S):Ru(t.removed)}catch{ii(N,S)}},Ou=function(S){Tr(et.beforeSanitizeAttributes,S,null);const N=S.attributes;if(!N||Hs(S))return;const at={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:nt,forceKeepAttr:void 0};let kt=N.length;const Ot=Kt(S.nodeName);for(;kt--;){const Nt=N[kt],le=Nt.name,ee=Nt.namespaceURI,Re=Nt.value,Ue=Kt(le),al=Re;let Le=le==="value"?al:kv(al);if(at.attrName=Ue,at.attrValue=Le,at.keepAttr=!0,at.forceKeepAttr=void 0,Tr(et.uponSanitizeAttribute,S,at),Le=at.attrValue,bu&&(Ue==="id"||Ue==="name")&&Hu(Le,ku)!==0&&(ii(le,S),Le=ku+Le),La&&fe(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Le)){ii(le,S);continue}if(Ue==="attributename"&&Nu(Le,"href")){ii(le,S);continue}if(!at.forceKeepAttr){if(!at.keepAttr){ii(le,S);continue}if(!mu&&fe(Rv,Le)){ii(le,S);continue}if(Wr&&(Le=Ns(Le)),!Pu(Ot,Ue,Le)){ii(le,S);continue}Le=E1(Ot,Ue,ee,Le),Le!==al&&O1(S,le,ee,Le)}}Tr(et.afterSanitizeAttributes,S,null)},Ws=function(S){let N=null;const at=Mu(S);for(Tr(et.beforeSanitizeShadowDOM,S,null);N=at.nextNode();)if(Tr(et.uponSanitizeShadowNode,N,null),Fu(N),Ou(N),Ii(N.content)&&Ws(N.content),(C?C(N):N.nodeType)===sr.element){const Ot=k(N);Ii(Ot)&&(il(Ot),Ws(Ot))}Tr(et.afterSanitizeShadowDOM,S,null)},il=function(S){const N=[{node:S,shadow:null}];for(;N.length>0;){const at=N.pop();if(at.shadow){Ws(at.shadow);continue}const kt=at.node,Nt=(C?C(kt):kt.nodeType)===sr.element,le=m(kt);if(le)for(let ee=le.length-1;ee>=0;--ee)N.push({node:le[ee],shadow:null});if(Nt){const ee=T?T(kt):null;if(typeof ee=="string"&&Kt(ee)==="template"){const Re=kt.content;Ii(Re)&&N.push({node:Re,shadow:null})}}if(Nt){const ee=k(kt);Ii(ee)&&N.push({node:null,shadow:ee},{node:ee,shadow:null})}}};return t.sanitize=function(st){let S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},N=null,at=null,kt=null,Ot=null;if(Ko=!st,Ko&&(st="<!-->"),typeof st!="string"&&!Ma(st)&&(st=Tv(st),typeof st!="string"))throw ai("dirty is not a string, aborting");if(!t.isSupported)return st;qo?(K=Uo,nt=Vo):el(S),(et.uponSanitizeElement.length>0||et.uponSanitizeAttribute.length>0)&&(K=Ae(K)),et.uponSanitizeAttribute.length>0&&(nt=Ae(nt)),t.removed=[];const Nt=jo&&typeof st!="string"&&Ma(st);if(Nt){const Re=T?T(st):st.nodeName;if(typeof Re=="string"){const Ue=Kt(Re);
3if(!K[Ue]||Qt[Ue])throw ai("root node is forbidden and cannot be sanitized in-place")}if(Hs(st))throw ai("root node is clobbered and cannot be sanitized in-place");try{il(st)}catch(Ue){throw Lu(st),Ue}}else if(Ma(st))N=Au("<!---->"),at=N.ownerDocument.importNode(st,!0),at.nodeType===sr.element&&at.nodeName==="BODY"||at.nodeName==="HTML"?N=at:N.appendChild(at),il(at);else{if(!Pi&&!Wr&&!ri&&st.indexOf("<")===-1)return w&&$s?R(st):st;if(N=Au(st),!N)return Pi?null:$s?_:""}N&&Yo&&qr(N.firstChild);const le=Mu(Nt?st:N);try{for(;kt=le.nextNode();)Fu(kt),Ou(kt),Ii(kt.content)&&Ws(kt.content)}catch(Re){throw Nt&&Lu(st),Re}if(Nt)return Pa(t.removed,Re=>{Re.element&&A1(Re.element)}),Wr&&rl(st),st;if(Pi){if(Wr&&rl(N),Is)for(Ot=E.call(N.ownerDocument);N.firstChild;)Ot.appendChild(N.firstChild);else Ot=N;return(nt.shadowroot||nt.shadowrootmode)&&(Ot=X.call(i,Ot,!0)),Ot}let ee=ri?N.outerHTML:N.innerHTML;return ri&&K["!doctype"]&&N.ownerDocument&&N.ownerDocument.doctype&&N.ownerDocument.doctype.name&&fe(Dv,N.ownerDocument.doctype.name)&&(ee="<!DOCTYPE "+N.ownerDocument.doctype.name+`> 4`+ee),Wr&&(ee=Ns(ee)),w&&$s?R(ee):ee},t.setConfig=function(){let st=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};el(st),qo=!0,Uo=K,Vo=nt},t.clearConfig=function(){Di=null,qo=!1,Uo=null,Vo=null,w=B,_=""},t.isValidAttribute=function(st,S,N){Di||el({});const at=Kt(st),kt=Kt(S);return Pu(at,kt,N)},t.addHook=function(st,S){typeof S=="function"&&ce(et,st)&&$i(et[st],S)},t.removeHook=function(st,S){if(ce(et,st)){if(S!==void 0){const N=yv(et[st],S);return N===-1?void 0:bv(et[st],N,1)[0]}return Ru(et[st])}},t.removeHooks=function(st){ce(et,st)&&(et[st]=[])},t.removeAllHooks=function(){et=Qu()},t}var fa=rf(),Wl=y((e,t,{depth:r=2,clobber:i=!1}={})=>{const a={depth:r,clobber:i};return Array.isArray(t)&&!Array.isArray(e)?(t.forEach(s=>Wl(e,s,a)),e):Array.isArray(t)&&Array.isArray(e)?(t.forEach(s=>{e.includes(s)||e.push(s)}),e):e===void 0||r<=0?e!=null&&typeof e=="object"&&typeof t=="object"?Object.assign(e,t):t:(t!==void 0&&typeof e=="object"&&typeof t=="object"&&Object.keys(t).forEach(s=>{typeof t[s]=="object"&&t[s]!==null&&(e[s]===void 0||typeof e[s]=="object")?(e[s]===void 0&&(e[s]=Array.isArray(t[s])?[]:{}),e[s]=Wl(e[s],t[s],{depth:r-1,clobber:i})):(i||typeof e[s]!="object"&&typeof t[s]!="object")&&(e[s]=t[s])}),e)},"assignWithDepth"),se=Wl,kr="#ffffff",vr="#f2f2f2",Lt=y((e,t)=>t?v(e,{s:-40,l:10}):v(e,{s:-40,l:-10}),"mkBorder"),ta,Wv=(ta=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.radius=5,this.strokeWidth=1,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.useGradient=!0,this.dropShadow="drop-shadow( 1px 2px 2px rgba(185,185,185,1))"}updateColors(){var r,i,a,s,n,o,l,c,h,u,g,d,f,p,m,b,k,x,C,T,w,_,B,G,z,P,R,D,L,F,A,$,E,V,X,et,ot,bt,pt,mt,Ft,Mt,It,rt,Z,K,j,nt,I;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||v(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||v(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Lt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Lt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Lt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||O(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||O(this.tertiaryColor),this.lineColor=this.lineColor||O(this.background),this.arrowheadColor=this.arrowheadColor||O(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackgroun
vendor: 4,234 bytes, line 4
4d=this.edgeLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||U(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||O(this.lineColor),this.rectBkgColor=this.rectBkgColor||this.tertiaryColor,this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||q(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.vertLineColor=this.vertLineColor||"navy",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.noteFontWeight=this.noteFontWeight||"normal",this.fontWeight=this.fontWeight||"normal",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.darkMode?(this.rowOdd=this.rowOdd||U(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||U(this.mainBkg,10)):(this.rowOdd=this.rowOdd||q(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||q(this.mainBkg,5)),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||v(this.primaryColor,{h:30}),this.cScale4=this.cScale4||v(this.primaryColor,{h:60}),this.cScale5=this.cScale5||v(this.primaryColor,{h:90}),this.cScale6=this.cScale6||v(this.primaryColor,{h:120}),this.cScale7=this.cScale7||v(this.primaryColor,{h:150}),this.cScale8=this.cScale8||v(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||v(this.primaryColor,{h:270}),this.cScale10=this.cScale10||v(this.primaryColor,{h:300}),this.cScale11=this.cScale11||v(this.primaryColor,{h:330}),this.darkMode)for(let it=0;
vendor: 21,815 bytes, line 4
4it<this.THEME_COLOR_LIMIT;it++)this["cScale"+it]=U(this["cScale"+it],75);else for(let it=0;it<this.THEME_COLOR_LIMIT;it++)this["cScale"+it]=U(this["cScale"+it],25);for(let it=0;it<this.THEME_COLOR_LIMIT;it++)this["cScaleInv"+it]=this["cScaleInv"+it]||O(this["cScale"+it]);for(let it=0;it<this.THEME_COLOR_LIMIT;it++)this.darkMode?this["cScalePeer"+it]=this["cScalePeer"+it]||q(this["cScale"+it],10):this["cScalePeer"+it]=this["cScalePeer"+it]||U(this["cScale"+it],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let it=0;it<this.THEME_COLOR_LIMIT;it++)this["cScaleLabel"+it]=this["cScaleLabel"+it]||this.scaleLabelColor;const t=this.darkMode?-4:-1;for(let it=0;it<5;it++)this["surface"+it]=this["surface"+it]||v(this.mainBkg,{h:180,s:-15,l:t*(5+it*3)}),this["surfacePeer"+it]=this["surfacePeer"+it]||v(this.mainBkg,{h:180,s:-15,l:t*(8+it*3)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||v(this.primaryColor,{h:64}),this.fillType3=this.fillType3||v(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||v(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||v(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||v(this.primaryColor,{h:128}),this.fillType7=this.fillType7||v(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||v(this.primaryColor,{l:-10}),this.pie5=this.pie5||v(this.secondaryColor,{l:-10}),this.pie6=this.pie6||v(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||v(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||v(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||v(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||v(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||v(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||v(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.venn1=this.venn1??v(this.primaryColor,{l:-30}),this.venn2=this.venn2??v(this.secondaryColor,{l:-30}),this.venn3=this.venn3??v(this.tertiaryColor,{l:-30}),this.venn4=this.venn4??v(this.primaryColor,{h:60,l:-30}),this.venn5=this.venn5??v(this.primaryColor,{h:-60,l:-30}),this.venn6=this.venn6??v(this.secondaryColor,{h:60,l:-30}),this.venn7=this.venn7??v(this.primaryColor,{h:120,l:-30}),this.venn8=this.venn8??v(this.secondaryColor,{h:120,l:-30}),this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.cynefin={domainFontSize:((r=this.cynefin)==null?void 0:r.domainFontSize)||16,itemFontSize:((i=this.cynefin)==null?void 0:i.itemFontSize)||12,boundaryColor:((a=this.cynefin)==null?void 0:a.boundaryColor)||this.lineColor,boundaryWidth:((s=this.cynefin)==null?void 0:s.boundaryWidth)||2,cliffColor:((n=this.cynefin)==null?void 0:n.cliffColor)||"#8B0000",cliffWidth:((o=this.cynefin)==null?void 0:o.cliffWidth)||4,arrowColor:((l=this.cynefin)==null?void 0:l.arrowColor)||this.lineColor,arrowWidth:((c=this.cynefin)==null?void 0:c.arrowWidth)||2,complexBg:((h=this.cynefin)==null?void 0:h.complexBg)||"#E8F5E9",complicatedBg:((u=this.cynefin)==null?void 0:u.complicatedBg)||"#E3F2FD",chaoticBg:((g=this.cynefin)==null?void 0:g.chaoticBg)||"#FBE9E7",clearBg:((d=this.cynefin)==null?void 0:d.clearBg)||"#FFF8E1",confusionBg:((f=this.cynefin)==null?void 0:f.confusionBg)||"#F3E5F5",textColor:((p=this.cynefin)==null?void 0:p.textColor)||this.textColor,labelColor:((m=this.cynefin)==null?void 0:m.labelColor)||this.primaryTextColor},this.radar={axisColor:((b=this.radar)==null?void 0:b.axisColor)||this.lineColor,axisStrokeWidth:((k=this.radar)==null?void 0:k.axisStrokeWidth)||2,axisLabelFontSize:((x=this.radar)==null?void 0:x.axisLabelFontSize)||12,curveOpacity:((C=this.radar)==null?void 0:C.curveOpacity)||.5,curveStrokeWidth:((T=this.radar)==null?void 0:T.curveStrokeWidth)||2,graticuleColor:((w=this.radar)==null?void 0:w.graticuleColor)||"#DEDEDE",graticuleStrokeWidth:((_=this.radar)==null?void 0:_.graticuleStrokeWidth)||1,graticuleOpacity:((B=this.radar)==null?void 0:B.graticuleOpacity)||.3,legendBoxSize:((G=this.radar)==null?void 0:G.legendBoxSize)||12,legendFontSize:((z=this.radar)==null?void 0:z.legendFontSize)||12},this.wardleyEvolutionColor=this.wardleyEvolutionColor||"#dc3545",this.wardley={backgroundColor:((P=this.wardley)==null?void 0:P.backgroundColor)||this.background,axisColor:((R=this.wardley)==null?void 0:R.axisColor)||this.lineColor,axisTextColor:((D=this.wardley)==null?void 0:D.axisTextColor)||this.primaryTextColor,gridColor:((L=this.wardley)==null?void 0:L.gridColor)||this.gridColor,componentFill:((F=this.wardley)==null?void 0:F.componentFill)||this.background,componentStroke:((A=this.wardley)==null?void 0:A.componentStroke)||this.lineColor,componentLabelColor:(($=this.wardley)==null?void 0:$.componentLabelColor)||this.primaryTextColor,linkStroke:((E=this.wardley)==null?void 0:E.linkStroke)||this.lineColor,evolutionStroke:((V=this.wardley)==null?void 0:V.evolutionStroke)||this.wardleyEvolutionColor,annotationStroke:((X=this.wardley)==null?void 0:X.annotationStroke)||this.lineColor,annotationTextColor:((et=this.wardley)==null?void 0:et.annotationTextColor)||this.primaryTextColor,annotationFill:((ot=this.wardley)==null?void 0:ot.annotationFill)||this.background},this.archEdgeColor=this.archEdgeColor||"#777",this.archEdgeArrowColor=this.archEdgeArrowColor||"#777",this.archEdgeWidth=this.archEdgeWidth||"3",this.archGroupBorderColor=this.archGroupBorderColor||"#000",this.archGroupBorderWidth=this.archGroupBorderWidth||"2px",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||v(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:((bt=this.xyChart)==null?void 0:bt.backgroundColor)||this.background,titleColor:((pt=this.xyChart)==null?void 0:pt.titleColor)||this.primaryTextColor,dataLabelColor:((mt=this.xyChart)==null?void 0:mt.dataLabelColor)||this.primaryTextColor,xAxisTitleColor:((Ft=this.xyChart)==null?void 0:Ft.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((Mt=this.xyChart)==null?void 0:Mt.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((It=this.xyChart)==null?void 0:It.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((rt=this.xyChart)==null?void 0:rt.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((Z=this.xyChart)==null?void 0:Z.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((K=this.xyChart)==null?void 0:K.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((j=this.xyChart)==null?void 0:j.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((nt=this.xyChart)==null?void 0:nt.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((I=this.xyChart)==null?void 0:I.plotColorPalette)||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||v(this.primaryColor,{h:-30}),this.git4=this.git4||v(this.primaryColor,{h:-60}),this.git5=this.git5||v(this.primaryColor,{h:-90}),this.git6=this.git6||v(this.primaryColor,{h:60}),this.git7=this.git7||v(this.primaryColor,{h:120}),this.darkMode?(this.git0=q(this.git0,25),this.git1=q(this.git1,25),this.git2=q(this.git2,25),this.git3=q(this.git3,25),this.git4=q(this.git4,25),this.git5=q(this.git5,25),this.git6=q(this.git6,25),this.git7=q(this.git7,25)):(this.git0=U(this.git0,25),this.git1=U(this.git1,25),this.git2=U(this.git2,25),this.git3=U(this.git3,25),this.git4=U(this.git4,25),this.git5=U(this.git5,25),this.git6=U(this.git6,25),this.git7=U(this.git7,25)),this.gitInv0=this.gitInv0||O(this.git0),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.emUiFill=this.emUiFill||"white",this.emUiStroke=this.emUiStroke||"#dbdada",this.emProcessorFill=this.emProcessorFill||"#edb3f6",this.emProcessorStroke=this.emProcessorStroke||"#b88cbf",this.emReadModelFill=this.emReadModelFill||"#d3f1a2",this.emReadModelStroke=this.emReadModelStroke||"#a3b732",this.emCommandFill=this.emCommandFill||"#bcd6fe",this.emCommandStroke=this.emCommandStroke||"#679ac3",this.emEventFill=this.emEventFill||"#ffb778",this.emEventStroke=this.emEventStroke||"#c19a0f",this.emSwimlaneBackgroundOdd=this.emSwimlaneBackgroundOdd||"rgb(250,250,250)",this.emSwimlaneBackgroundStroke=this.emSwimlaneBackgroundStroke||"rgb(240,240,240)",this.emArrowhead=this.emArrowhead||this.lineColor,this.emRelationStroke=this.emRelationStroke||this.lineColor,this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||kr,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||vr,this.gradientStart=this.primaryBorderColor,this.gradientStop=this.secondaryBorderColor}calculate(t){if(typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},y(ta,"Theme"),ta),qv=y(e=>{const t=new Wv;return t.calculate(e),t},"getThemeVariables"),ea,Uv=(ea=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=q(this.primaryColor,16),this.tertiaryColor=v(this.primaryColor,{h:-160}),this.primaryBorderColor=O(this.background),this.secondaryBorderColor=Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lt(this.tertiaryColor,this.darkMode),this.primaryTextColor=O(this.primaryColor),this.secondaryTextColor=O(this.secondaryColor),this.tertiaryTextColor=O(this.tertiaryColor),this.lineColor=O(this.background),this.textColor=O(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=q(O("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=Xr(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.radius=5,this.strokeWidth=1,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.clusterBkg="#302F3D",this.sectionBkgColor=U("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=U(this.sectionBkgColor,10),this.taskBorderColor=Xr(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=Xr(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||q(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||U(this.mainBkg,10),this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd",this.useGradient=!0,this.gradientStart=this.primaryBorderColor,this.gradientStop=this.secondaryBorderColor,this.dropShadow="drop-shadow( 1px 2px 2px rgba(185,185,185,1))",this.noteFontWeight=this.noteFontWeight||"normal",this.fontWeight=this.fontWeight||"normal"}updateColors(){var t,r,i,a,s,n,o,l,c,h,u,g,d,f,p,m,b,k,x,C,T,w,_,B,G,z,P,R,D,L,F,A,$,E,V,X,et,ot,bt,pt,mt,Ft,Mt,It,rt,Z,K,j,nt;this.secondBkg=q(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=q(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.rectBkgColor=this.rectBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.background,this.taskBkgColor=q(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=O(this.doneTaskBkgColor),this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=v(this.primaryColor,{h:64}),this.fillType3=v(this.secondaryColor,{h:64}),this.fillType4=v(this.primaryColor,{h:-64}),this.fillType5=v(this.secondaryColor,{h:-64}),this.fillType6=v(this.primaryColor,{h:128}),this.fillType7=v(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||v(this.primaryColor,{h:30}),this.cScale4=this.cScale4||v(this.primaryColor,{h:60}),this.cScale5=this.cScale5||v(this.primaryColor,{h:90}),this.cScale6=this.cScale6||v(this.primaryColor,{h:120}),this.cScale7=this.cScale7||v(this.primaryColor,{h:150}),this.cScale8=this.cScale8||v(this.primaryColor,{h:210}),this.cScale9=this.cScale9||v(this.primaryColor,{h:270}),this.cScale10=this.cScale10||v(this.primaryColor,{h:300}),this.cScale11=this.cScale11||v(this.primaryColor,{h:330});for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScaleInv"+I]=this["cScaleInv"+I]||O(this["cScale"+I]);for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScalePeer"+I]=this["cScalePeer"+I]||q(this["cScale"+I],10);for(let I=0;I<5;I++)this["surface"+I]=this["surface"+I]||v(this.mainBkg,{h:30,s:-30,l:-(-10+I*4)}),this["surfacePeer"+I]=this["surfacePeer"+I]||v(this.mainBkg,{h:30,s:-30,l:-(-7+I*4)});this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor);for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScaleLabel"+I]=this["cScaleLabel"+I]||this.scaleLabelColor;for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["pie"+I]=this["cScale"+I];this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.mainContrastColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.mainContrastColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7";for(let I=0;I<8;I++)this["venn"+(I+1)]=this["venn"+(I+1)]??q(this["cScale"+I],30);this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.cynefin={domainFontSize:((t=this.cynefin)==null?void 0:t.domainFontSize)||16,itemFontSize:((r=this.cynefin)==null?void 0:r.itemFontSize)||12,boundaryColor:((i=this.cynefin)==null?void 0:i.boundaryColor)||this.lineColor,boundaryWidth:((a=this.cynefin)==null?void 0:a.boundaryWidth)||2,cliffColor:((s=this.cynefin)==null?void 0:s.cliffColor)||"#FF6B6B",cliffWidth:((n=this.cynefin)==null?void 0:n.cliffWidth)||4,arrowColor:((o=this.cynefin)==null?void 0:o.arrowColor)||this.lineColor,arrowWidth:((l=this.cynefin)==null?void 0:l.arrowWidth)||2,complexBg:((c=this.cynefin)==null?void 0:c.complexBg)||"#1B5E20",complicatedBg:((h=this.cynefin)==null?void 0:h.complicatedBg)||"#0D47A1",chaoticBg:((u=this.cynefin)==null?void 0:u.chaoticBg)||"#BF360C",clearBg:((g=this.cynefin)==null?void 0:g.clearBg)||"#F57F17",confusionBg:((d=this.cynefin)==null?void 0:d.confusionBg)||"#4A148
4C",textColor:((f=this.cynefin)==null?void 0:f.textColor)||this.textColor,labelColor:((p=this.cynefin)==null?void 0:p.labelColor)||this.primaryTextColor},this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||v(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:((m=this.xyChart)==null?void 0:m.backgroundColor)||this.background,titleColor:((b=this.xyChart)==null?void 0:b.titleColor)||this.primaryTextColor,dataLabelColor:((k=this.xyChart)==null?void 0:k.dataLabelColor)||this.primaryTextColor,xAxisTitleColor:((x=this.xyChart)==null?void 0:x.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((C=this.xyChart)==null?void 0:C.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((T=this.xyChart)==null?void 0:T.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((w=this.xyChart)==null?void 0:w.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((_=this.xyChart)==null?void 0:_.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((B=this.xyChart)==null?void 0:B.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((G=this.xyChart)==null?void 0:G.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((z=this.xyChart)==null?void 0:z.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((P=this.xyChart)==null?void 0:P.plotColorPalette)||"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22"},this.packet={startByteColor:this.primaryTextColor,endByteColor:this.primaryTextColor,labelColor:this.primaryTextColor,titleColor:this.primaryTextColor,blockStrokeColor:this.primaryTextColor,blockFillColor:this.background},this.radar={axisColor:((R=this.radar)==null?void 0:R.axisColor)||this.lineColor,axisStrokeWidth:((D=this.radar)==null?void 0:D.axisStrokeWidth)||2,axisLabelFontSize:((L=this.radar)==null?void 0:L.axisLabelFontSize)||12,curveOpacity:((F=this.radar)==null?void 0:F.curveOpacity)||.5,curveStrokeWidth:((A=this.radar)==null?void 0:A.curveStrokeWidth)||2,graticuleColor:(($=this.radar)==null?void 0:$.graticuleColor)||"#DEDEDE",graticuleStrokeWidth:((E=this.radar)==null?void 0:E.graticuleStrokeWidth)||1,graticuleOpacity:((V=this.radar)==null?void 0:V.graticuleOpacity)||.3,legendBoxSize:((X=this.radar)==null?void 0:X.legendBoxSize)||12,legendFontSize:((et=this.radar)==null?void 0:et.legendFontSize)||12},this.wardleyEvolutionColor=this.wardleyEvolutionColor||"#ff6b6b",this.wardley={backgroundColor:((ot=this.wardley)==null?void 0:ot.backgroundColor)||this.background,axisColor:((bt=this.wardley)==null?void 0:bt.axisColor)||this.lineColor,axisTextColor:((pt=this.wardley)==null?void 0:pt.axisTextColor)||this.primaryTextColor,gridColor:((mt=this.wardley)==null?void 0:mt.gridColor)||this.gridColor,componentFill:((Ft=this.wardley)==null?void 0:Ft.componentFill)||this.mainBkg,componentStroke:((Mt=this.wardley)==null?void 0:Mt.componentStroke)||this.lineColor,componentLabelColor:((It=this.wardley)==null?void 0:It.componentLabelColor)||this.primaryTextColor,linkStroke:((rt=this.wardley)==null?void 0:rt.linkStroke)||this.lineColor,evolutionStroke:((Z=this.wardley)==null?void 0:Z.evolutionStroke)||this.wardleyEvolutionColor,annotationStroke:((K=this.wardley)==null?void 0:K.annotationStroke)||this.lineColor,annotationTextColor:((j=this.wardley)==null?void 0:j.annotationTextColor)||this.primaryTextColor,annotationFill:((nt=this.wardley)==null?void 0:nt.annotationFill)||this.mainBkg}
vendor: 4,159 bytes, line 4
4,this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=q(this.secondaryColor,20),this.git1=q(this.pie2||this.secondaryColor,20),this.git2=q(this.pie3||this.tertiaryColor,20),this.git3=q(this.pie4||v(this.primaryColor,{h:-30}),20),this.git4=q(this.pie5||v(this.primaryColor,{h:-60}),20),this.git5=q(this.pie6||v(this.primaryColor,{h:-90}),10),this.git6=q(this.pie7||v(this.primaryColor,{h:60}),10),this.git7=q(this.pie8||v(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||O(this.git0),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||O(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||O(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.emUiFill=this.emUiFill||"#2d2d2d",this.emUiStroke=this.emUiStroke||"#555",this.emProcessorFill=this.emProcessorFill||q("#5a3d5c",10),this.emProcessorStroke=this.emProcessorStroke||"#8a6d8c",this.emReadModelFill=this.emReadModelFill||q("#3d5a2d",10),this.emReadModelStroke=this.emReadModelStroke||"#6d8c5c",this.emCommandFill=this.emCommandFill||q("#2d3d5a",10),this.emCommandStroke=this.emCommandStroke||"#5c6d8c",this.emEventFill=this.emEventFill||q("#5a452d",10),this.emEventStroke=this.emEventStroke||"#8c755c",this.emSwimlaneBackgroundOdd=this.emSwimlaneBackgroundOdd||q(this.background,5),this.emSwimlaneBackgroundStroke=this.emSwimlaneBackgroundStroke||q(this.background,12),this.emArrowhead=this.emArrowhead||this.lineColor,this.emRelationStroke=this.emRelationStroke||this.lineColor,this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||q(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||q(this.background,2),this.nodeBorder=this.nodeBorder||"#999"}calculate(t){if(typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},y(ea,"Theme"),ea),Vv=y(e=>{const t=new Uv;return t.calculate(e),t},"getThemeVariables"),ra,Yv=(ra=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=v(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=v(this.primaryColor,{h:-160}),this.primaryBorderColor=Lt(this.primaryColor,this.darkMode),this.secondaryBorderColor=Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lt(this.tertiaryColor,this.darkMode),this.primaryTextColor=O(this.primaryColor),this.secondaryTextColor=O(this.secondaryColor),this.tertiaryTextColor=O(this.tertiaryColor),this.lineColor=O(this.background),this.textColor=O(this.background),this.background="white",this.mainBkg="#
4ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.primaryBorderColor=Lt(this.primaryColor,this.darkMode),this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.radius=5,this.strokeWidth=1,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.clusterBkg="#FBFBFF",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.vertLineColor="calculated",this.sectionBkgColor=Xr(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.vertLineColor="navy",this.noteFontWeight=this.noteFontWeight||"normal",this.fontWeight=this.fontWeight||"normal",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd="calculated",this.rowEven="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.useGradient=!1,this.gradientStart=this.primaryBorderColor,this.gradientStop=this.secondaryBorderColor,this.dropShadow="drop-shadow(1px 2px 2px rgba(185, 185, 185, 1))",this.updateColors()}updateColors(){var t,r,i,a,s,n,o,l,c,h,u,g,d,f,p,m,b,k,x,C,T,w,_,B,G,z,P,R,D,L,F,A,$,E,V,X,et,ot,bt,pt,mt,Ft,Mt,It,rt,Z,K,j,nt;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||v(this.primaryColor,{h:30}),this.cScale4=this.cScale4||v(this.primaryColor,{h:60}),this.cScale5=this.cScale5||v(this.primaryColor,{h:90}),this.cScale6=this.cScale6||v(this.primaryColor,{h:120}),this.cScale7=this.cScale7||v(this.primaryColor,{h:150}),this.cScale8=this.cScale8||v(this.primaryColor,{h:210}),this.cScale9=this.cScale9||v(this.primaryColor,{h:270}),this.cScale10=this.cScale10||v(this.primaryColor,{h:300}),this.cScale11=this.cScale11||v(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||U(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||U(this.tertiaryColor,40);for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScale"+I]=U(this["cScale"+I],10),this["cScalePeer"+I]=this["cScalePeer"+I]||U(this["cScale"+I],25);for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScaleInv"+I]=this["cScaleInv"+I]||v(this["cScale"+I],{h:180});for(let I=0;I<5;I++)this["surface"+I]=this["surface"+I]||v(this.mainBkg,{h:30,l:-(5+I
vendor: 40,682 bytes, line 4
4*5)}),this["surfacePeer"+I]=this["surfacePeer"+I]||v(this.mainBkg,{h:30,l:-(7+I*5)});if(this.scaleLabelColor=this.scaleLabelColor!=="calculated"&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,this.labelTextColor!=="calculated"){this.cScaleLabel0=this.cScaleLabel0||O(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||O(this.labelTextColor);for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScaleLabel"+I]=this["cScaleLabel"+I]||this.labelTextColor}this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.textColor,this.edgeLabelBackground=this.labelBackground,this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.signalColor=this.textColor,this.signalTextColor=this.textColor,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.rectBkgColor=this.rectBkgColor||this.tertiaryColor,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.rowOdd=this.rowOdd||q(this.primaryColor,75)||"#ffffff",this.rowEven=this.rowEven||q(this.primaryColor,1),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=v(this.primaryColor,{h:64}),this.fillType3=v(this.secondaryColor,{h:64}),this.fillType4=v(this.primaryColor,{h:-64}),this.fillType5=v(this.secondaryColor,{h:-64}),this.fillType6=v(this.primaryColor,{h:128}),this.fillType7=v(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||v(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||v(this.primaryColor,{l:-10}),this.pie5=this.pie5||v(this.secondaryColor,{l:-30}),this.pie6=this.pie6||v(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||v(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||v(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||v(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||v(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||v(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||v(this.primaryColor,{h:120,l:-30}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.venn1=this.venn1??v(this.primaryColor,{l:-30}),this.venn2=this.venn2??v(this.secondaryColor,{l:-30}),this.venn3=this.venn3??v(this.tertiaryColor,{l:-40}),this.venn4=this.venn4??v(this.primaryColor,{h:60,l:-30}),this.venn5=this.venn5??v(this.primaryColor,{h:-60,l:-30}),this.venn6=this.venn6??v(this.secondaryColor,{h:60,l:-30}),this.venn7=this.venn7??v(this.primaryColor,{h:120,l:-30}),this.venn8=this.venn8??v(this.secondaryColor,{h:120,l:-30}),this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.cynefin={domainFontSize:((t=this.cynefin)==null?void 0:t.domainFontSize)||16,itemFontSize:((r=this.cynefin)==null?void 0:r.itemFontSize)||12,boundaryColor:((i=this.cynefin)==null?void 0:i.boundaryColor)||this.lineColor,boundaryWidth:((a=this.cynefin)==null?void 0:a.boundaryWidth)||2,cliffColor:((s=this.cynefin)==null?void 0:s.cliffColor)||"#8B0000",cliffWidth:((n=this.cynefin)==null?void 0:n.cliffWidth)||4,arrowColor:((o=this.cynefin)==null?void 0:o.arrowColor)||this.lineColor,arrowWidth:((l=this.cynefin)==null?void 0:l.arrowWidth)||2,complexBg:((c=this.cynefin)==null?void 0:c.complexBg)||"#E8F5E9",complicatedBg:((h=this.cynefin)==null?void 0:h.complicatedBg)||"#E3F2FD",chaoticBg:((u=this.cynefin)==null?void 0:u.chaoticBg)||"#FBE9E7",clearBg:((g=this.cynefin)==null?void 0:g.clearBg)||"#FFF8E1",confusionBg:((d=this.cynefin)==null?void 0:d.confusionBg)||"#F3E5F5",textColor:((f=this.cynefin)==null?void 0:f.textColor)||this.textColor,labelColor:((p=this.cynefin)==null?void 0:p.labelColor)||this.primaryTextColor},this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||v(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.radar={axisColor:((m=this.radar)==null?void 0:m.axisColor)||this.lineColor,axisStrokeWidth:((b=this.radar)==null?void 0:b.axisStrokeWidth)||2,axisLabelFontSize:((k=this.radar)==null?void 0:k.axisLabelFontSize)||12,curveOpacity:((x=this.radar)==null?void 0:x.curveOpacity)||.5,curveStrokeWidth:((C=this.radar)==null?void 0:C.curveStrokeWidth)||2,graticuleColor:((T=this.radar)==null?void 0:T.graticuleColor)||"#DEDEDE",graticuleStrokeWidth:((w=this.radar)==null?void 0:w.graticuleStrokeWidth)||1,graticuleOpacity:((_=this.radar)==null?void 0:_.graticuleOpacity)||.3,legendBoxSize:((B=this.radar)==null?void 0:B.legendBoxSize)||12,legendFontSize:((G=this.radar)==null?void 0:G.legendFontSize)||12},this.wardleyEvolutionColor=this.wardleyEvolutionColor||"#dc3545",this.wardley={backgroundColor:((z=this.wardley)==null?void 0:z.backgroundColor)||this.background,axisColor:((P=this.wardley)==null?void 0:P.axisColor)||this.lineColor,axisTextColor:((R=this.wardley)==null?void 0:R.axisTextColor)||this.primaryTextColor,gridColor:((D=this.wardley)==null?void 0:D.gridColor)||this.gridColor,componentFill:((L=this.wardley)==null?void 0:L.componentFill)||this.background,componentStroke:((F=this.wardley)==null?void 0:F.componentStroke)||this.lineColor,componentLabelColor:((A=this.wardley)==null?void 0:A.componentLabelColor)||this.primaryTextColor,linkStroke:(($=this.wardley)==null?void 0:$.linkStroke)||this.lineColor,evolutionStroke:((E=this.wardley)==null?void 0:E.evolutionStroke)||this.wardleyEvolutionColor,annotationStroke:((V=this.wardley)==null?void 0:V.annotationStroke)||this.lineColor,annotationTextColor:((X=this.wardley)==null?void 0:X.annotationTextColor)||this.primaryTextColor,annotationFill:((et=this.wardley)==null?void 0:et.annotationFill)||this.background},this.xyChart={backgroundColor:((ot=this.xyChart)==null?void 0:ot.backgroundColor)||this.background,titleColor:((bt=this.xyChart)==null?void 0:bt.titleColor)||this.primaryTextColor,dataLabelColor:((pt=this.xyChart)==null?void 0:pt.dataLabelColor)||this.primaryTextColor,xAxisTitleColor:((mt=this.xyChart)==null?void 0:mt.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((Ft=this.xyChart)==null?void 0:Ft.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((Mt=this.xyChart)==null?void 0:Mt.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((It=this.xyChart)==null?void 0:It.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((rt=this.xyChart)==null?void 0:rt.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((Z=this.xyChart)==null?void 0:Z.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((K=this.xyChart)==null?void 0:K.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((j=this.xyChart)==null?void 0:j.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((nt=this.xyChart)==null?void 0:nt.plotColorPalette)||"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.labelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||v(this.primaryColor,{h:-30}),this.git4=this.git4||v(this.primaryColor,{h:-60}),this.git5=this.git5||v(this.primaryColor,{h:-90}),this.git6=this.git6||v(this.primaryColor,{h:60}),this.git7=this.git7||v(this.primaryColor,{h:120}),this.darkMode?(this.git0=q(this.git0,25),this.git1=q(this.git1,25),this.git2=q(this.git2,25),this.git3=q(this.git3,25),this.git4=q(this.git4,25),this.git5=q(this.git5,25),this.git6=q(this.git6,25),this.git7=q(this.git7,25)):(this.git0=U(this.git0,25),this.git1=U(this.git1,25),this.git2=U(this.git2,25),this.git3=U(this.git3,25),this.git4=U(this.git4,25),this.git5=U(this.git5,25),this.git6=U(this.git6,25),this.git7=U(this.git7,25)),this.gitInv0=this.gitInv0||U(O(this.git0),25),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||O(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||O(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.emUiFill=this.emUiFill||"white",this.emUiStroke=this.emUiStroke||"#dbdada",this.emProcessorFill=this.emProcessorFill||"#edb3f6",this.emProcessorStroke=this.emProcessorStroke||"#b88cbf",this.emReadModelFill=this.emReadModelFill||"#d3f1a2",this.emReadModelStroke=this.emReadModelStroke||"#a3b732",this.emCommandFill=this.emCommandFill||"#bcd6fe",this.emCommandStroke=this.emCommandStroke||"#679ac3",this.emEventFill=this.emEventFill||"#ffb778",this.emEventStroke=this.emEventStroke||"#c19a0f",this.emSwimlaneBackgroundOdd=this.emSwimlaneBackgroundOdd||"rgb(250,250,250)",this.emSwimlaneBackgroundStroke=this.emSwimlaneBackgroundStroke||"rgb(240,240,240)",this.emArrowhead=this.emArrowhead||this.lineColor,this.emRelationStroke=this.emRelationStroke||this.lineColor,this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||kr,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||vr}calculate(t){if(Object.keys(this).forEach(i=>{this[i]==="calculated"&&(this[i]=void 0)}),typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},y(ra,"Theme"),ra),Gv=y(e=>{const t=new Yv;return t.calculate(e),t},"getThemeVariables"),ia,jv=(ia=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=q("#cde498",10),this.primaryBorderColor=Lt(this.primaryColor,this.darkMode),this.secondaryBorderColor=Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lt(this.tertiaryColor,this.darkMode),this.primaryTextColor=O(this.primaryColor),this.secondaryTextColor=O(this.secondaryColor),this.tertiaryTextColor=O(this.primaryColor),this.lineColor=O(this.background),this.textColor=O(this.background),this.THEME_COLOR_LIMIT=12,this.radius=5,this.strokeWidth=1,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.noteFontWeight="normal",this.fontWeight="normal",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.useGradient=!0,this.gradientStart=this.primaryBorderColor,this.gradientStop=this.secondaryBorderColor,this.dropShadow="drop-shadow( 1px 2px 2px rgba(185,185,185,0.5))"}updateColors(){var t,r,i,a,s,n,o,l,c,h,u,g,d,f,p,m,b,k,x,C,T,w,_,B,G,z,P,R,D,L,F,A,$,E,V,X,et,ot,bt,pt,mt,Ft,Mt,It,rt,Z,K,j,nt;this.actorBorder=U(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.rectBkgColor=this.rectBkgColor||this.tertiaryColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||v(this.primaryColor,{h:30}),this.cScale4=this.cScale4||v(this.primaryColor,{h:60}),this.cScale5=this.cScale5||v(this.primaryColor,{h:90}),this.cScale6=this.cScale6||v(this.primaryColor,{h:120}),this.cScale7=this.cScale7||v(this.primaryColor,{h:150}),this.cScale8=this.cScale8||v(this.primaryColor,{h:210}),this.cScale9=this.cScale9||v(this.primaryColor,{h:270}),this.cScale10=this.cScale10||v(this.primaryColor,{h:300}),this.cScale11=this.cScale11||v(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||U(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||U(this.tertiaryColor,40);for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScale"+I]=U(this["cScale"+I],10),this["cScalePeer"+I]=this["cScalePeer"+I]||U(this["cScale"+I],25);for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScaleInv"+I]=this["cScaleInv"+I]||v(this["cScale"+I],{h:180});this.scaleLabelColor=this.scaleLabelColor!=="calculated"&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScaleLabel"+I]=this["cScaleLabel"+I]||this.scaleLabelColor;for(let I=0;I<5;I++)this["surface"+I]=this["surface"+I]||v(this.mainBkg,{h:30,s:-30,l:-(5+I*5)}),this["surfacePeer"+I]=this["surfacePeer"+I]||v(this.mainBkg,{h:30,s:-30,l:-(8+I*5)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.taskBorderColor=this.border1,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.rowOdd=this.rowOdd||q(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||q(this.mainBkg,20),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=v(this.primaryColor,{h:64}),this.fillType3=v(this.secondaryColor,{h:64}),this.fillType4=v(this.primaryColor,{h:-64}),this.fillType5=v(this.secondaryColor,{h:-64}),this.fillType6=v(this.primaryColor,{h:128}),this.fillType7=v(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||v(this.primaryColor,{l:-30}),this.pie5=this.pie5||v(this.secondaryColor,{l:-30}),this.pie6=this.pie6||v(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||v(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||v(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||v(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||v(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||v(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||v(this.primaryColor,{h:120,l:-50}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.venn1=this.venn1??v(this.primaryColor,{l:-30}),this.venn2=this.venn2??v(this.secondaryColor,{l:-30}),this.venn3=this.venn3??v(this.tertiaryColor,{l:-30}),this.venn4=this.venn4??v(this.primaryColor,{h:60,l:-30}),this.venn5=this.venn5??v(this.primaryColor,{h:-60,l:-30}),this.venn6=this.venn6??v(this.secondaryColor,{h:60,l:-30}),this.venn7=this.venn7??v(this.primaryColor,{h:120,l:-30}),this.venn8=this.venn8??v(this.secondaryColor,{h:120,l:-30}),this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.cynefin={domainFontSize:((t=this.cynefin)==null?void 0:t.domainFontSize)||16,itemFontSize:((r=this.cynefin)==null?void 0:r.itemFontSize)||12,boundaryColor:((i=this.cynefin)==null?void 0:i.boundaryColor)||this.lineColor,boundaryWidth:((a=this.cynefin)==null?void 0:a.boundaryWidth)||2,cliffColor:((s=this.cynefin)==null?void 0:s.cliffColor)||"#8B4513",cliffWidth:((n=this.cynefin)==null?void 0:n.cliffWidth)||4,arrowColor:((o=this.cynefin)==null?void 0:o.arrowColor)||this.lineColor,arrowWidth:((l=this.cynefin)==null?void 0:l.arrowWidth)||2,complexBg:((c=this.cynefin)==null?void 0:c.complexBg)||"#C8E6C9",complicatedBg:((h=this.cynefin)==null?void 0:h.complicatedBg)||"#DCEDC8",chaoticBg:((u=this.cynefin)==null?void 0:u.chaoticBg)||"#FFE0B2",clearBg:((g=this.cynefin)==null?void 0:g.clearBg)||"#FFF9C4",confusionBg:((d=this.cynefin)==null?void 0:d.confusionBg)||"#D7CCC8",textColor:((f=this.cynefin)==null?void 0:f.textColor)||this.textColor,labelColor:((p=this.cynefin)==null?void 0:p.labelColor)||this.primaryTextColor},this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||v(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.packet={startByteColor:this.primaryTextColor,endByteColor:this.primaryTextColor,labelColor:this.primaryTextColor,titleColor:this.primaryTextColor,blockStrokeColor:this.primaryTextColor,blockFillColor:this.mainBkg},this.radar={axisColor:((m=this.radar)==null?void 0:m.axisColor)||this.lineColor,axisStrokeWidth:((b=this.radar)==null?void 0:b.axisStrokeWidth)||2,axisLabelFontSize:((k=this.radar)==null?void 0:k.axisLabelFontSize)||12,curveOpacity:((x=this.radar)==null?void 0:x.curveOpacity)||.5,curveStrokeWidth:((C=this.radar)==null?void 0:C.curveStrokeWidth)||2,graticuleColor:((T=this.radar)==null?void 0:T.graticuleColor)||"#DEDEDE",graticuleStrokeWidth:((w=this.radar)==null?void 0:w.graticuleStrokeWidth)||1,graticuleOpacity:((_=this.radar)==null?void 0:_.graticuleOpacity)||.3,legendBoxSize:((B=this.radar)==null?void 0:B.legendBoxSize)||12,legendFontSize:((G=this.radar)==null?void 0:G.legendFontSize)||12},this.wardleyEvolutionColor=this.wardleyEvolutionColor||"#dc3545",this.wardley={backgroundColor:((z=this.wardley)==null?void 0:z.backgroundColor)||this.background,axisColor:((P=this.wardley)==null?void 0:P.axisColor)||this.lineColor,axisTextColor:((R=this.wardley)==null?void 0:R.axisTextColor)||this.primaryTextColor,gridColor:((D=this.wardley)==null?void 0:D.gridColor)||this.gridColor,componentFill:((L=this.wardley)==null?void 0:L.componentFill)||this.background,componentStroke:((F=this.wardley)==null?void 0:F.componentStroke)||this.lineColor,componentLabelColor:((A=this.wardley)==null?void 0:A.componentLabelColor)||this.primaryTextColor,linkStroke:(($=this.wardley)==null?void 0:$.linkStroke)||this.lineColor,evolutionStroke:((E=this.wardley)==null?void 0:E.evolutionStroke)||this.wardleyEvolutionColor,annotationStroke:((V=this.wardley)==null?void 0:V.annotationStroke)||this.lineColor,annotationTextColor:((X=this.wardley)==null?void 0:X.annotationTextColor)||this.primaryTextColor,annotationFill:((et=this.wardley)==null?void 0:et.annotationFill)||this.background},this.xyChart={backgroundColor:((ot=this.xyChart)==null?void 0:ot.backgroundColor)||this.background,titleColor:((bt=this.xyChart)==null?void 0:bt.titleColor)||this.primaryTextColor,dataLabelColor:((pt=this.xyChart)==null?void 0:pt.dataLabelColor)||this.primaryTextColor,xAxisTitleColor:((mt=this.xyChart)==null?void 0:mt.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((Ft=this.xyChart)==null?void 0:Ft.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((Mt=this.xyChart)==null?void 0:Mt.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((It=this.xyChart)==null?void 0:It.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((rt=this.xyChart)==null?void 0:rt.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((Z=this.xyChart)==null?void 0:Z.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((K=this.xyChart)==null?void 0:K.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((j=this.xyChart)==null?void 0:j.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((nt=this.xyChart)==null?void 0:nt.plotColorPalette)||"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||v(this.primaryColor,{h:-30}),this.git4=this.git4||v(this.primaryColor,{h:-60}),this.git5=this.git5||v(this.primaryColor,{h:-90}),this.git6=this.git6||v(this.primaryColor,{h:60}),this.git7=this.git7||v(this.primaryColor,{h:120}),this.darkMode?(this.git0=q(this.git0,25),this.git1=q(this.git1,25),this.git2=q(this.git2,25),this.git3=q(this.git3,25),this.git4=q(this.git4,25),this.git5=q(this.git5,25),this.git6=q(this.git6,25),this.git7=q(this.git7,25)):(this.git0=U(this.git0,25),this.git1=U(this.git1,25),this.git2=U(this.git2,25),this.git3=U(this.git3,25),this.git4=U(this.git4,25),this.git5=U(this.git5,25),this.git6=U(this.git6,25),this.git7=U(this.git7,25)),this.gitInv0=this.gitInv0||O(this.git0),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||O(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||O(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.emUiFill=this.emUiFill||"white",this.emUiStroke=this.emUiStroke||"#dbdada",this.emProcessorFill=this.emProcessorFill||"#edb3f6",this.emProcessorStroke=this.emProcessorStroke||"#b88cbf",this.emReadModelFill=this.emReadModelFill||"#d3f1a2",this.emReadModelStroke=this.emReadModelStroke||"#a3b732",this.emCommandFill=this.emCommandFill||"#bcd6fe",this.emCommandStroke=this.emCommandStroke||"#679ac3",this.emEventFill=this.emEventFill||"#ffb778",this.emEventStroke=this.emEventStroke||"#c19a0f",this.emSwimlaneBackgroundOdd=this.emSwimlaneBackgroundOdd||"rgb(250,250,250)",this.emSwimlaneBackgroundStroke=this.emSwimlaneBackgroundStroke||"rgb(240,240,240)",this.emArrowhead=this.emArrowhead||this.lineColor,this.emRelationStroke=this.emRelationStroke||this.lineColor,this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||kr,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||vr}calculate(t){if(typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},y(ia,"Theme"),ia),Xv=y(e=>{const t=new jv;return t.calculate(e),t},"getThemeVariables"),aa,Qv=(aa=class{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=q(this.contrast,55),this.background="#ffffff",this.tertiaryColor=v(this.primaryColor,{h:-160}),this.primaryBorderColor=Lt(this.primaryColor,this.darkMode),this.secondaryBorderColor=Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lt(this.tertiaryColor,this.darkMode),this.primaryTextColor=O(this.primaryColor),this.secondaryTextColor=O(this.secondaryColor),this.tertiaryTextColor=O(this.tertiaryColor),this.lineColor=O(this.background),this.textColor=O(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.radius=5,this.strokeWidth=1,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.vertLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.noteFontWeight="normal",this.fontWeight="normal",this.rowOdd=this.rowOdd||q(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||"#f4f4f4",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.useGradient=!0,this.gradientStart=this.primaryBorderColor,this.gradientStop=this.secondaryBorderColor,this.dropShadow="drop-shadow( 1px 2px 2px rgba(185,185,185,1))"}updateColors(){var t,r,i,a,s,n,o,l,c,h,u,g,d,f,p,m,b,k,x,C,T,w,_,B,G,z,P,R,D,L,F,A,$,E,V,X,et,ot,bt,pt,mt,Ft,Mt,It,rt,Z,K,j,nt;this.secondBkg=q(this.contrast,55),this.border2=this.contrast,this.actorBorder=q(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.rectBkgColor=this.rectBkgColor||this.tertiaryColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScaleInv"+I]=this["cScaleInv"+I]||O(this["cScale"+I]);for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this.darkMode?this["cScalePeer"+I]=this["cScalePeer"+I]||q(this["cScale"+I],10):this["cScalePeer"+I]=this["cScalePeer"+I]||U(this["cScale"+I],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["cScaleLabel"+I]=this["cScaleLabel"+I]||this.scaleLabelColor;for(let I=0;I<5;I++)this["surface"+I]=this["surface"+I]||v(this.mainBkg,{l:-(5+I*5)}),this["surfacePeer"+I]=this["surfacePeer"+I]||v(this.mainBkg,{l:-(8+I*5)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.text,this.sectionBkgColor=q(this.contrast,30),this.sectionBkgColor2=q(this.contrast,30),this.taskBorderColor=U(this.contrast,10),this.taskBkgColor=this.contrast,this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor=this.text,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.gridColor=q(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=U(this.critBkgColor,10),this.todayLineColor=this.critBkgColor,this.vertLineColor=this.critBkgColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||"#000",this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f4f4f4",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.stateBorder=this.stateBorder||"#000",this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#222",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=v(this.primaryColor,{h:64}),this.fillType3=v(this.secondaryColor,{h:64}),this.fillType4=v(this.primaryColor,{h:-64}),this.fillType5=v(this.secondaryColor,{h:-64}),this.fillType6=v(this.primaryColor,{h:128}),this.fillType7=v(this.secondaryColor,{h:128});for(let I=0;I<this.THEME_COLOR_LIMIT;I++)this["pie"+I]=this["cScale"+I];this.pie12=this.pie0,this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7";for(let I=0;I<8;I++)this["venn"+(I+1)]=this["venn"+(I+1)]??this["cScale"+I];this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.cynefin={domainFontSize:((t=this.cynefin)==null?void 0:t.domainFontSize)||16,itemFontSize:((r=this.cynefin)==null?void 0:r.itemFontSize)||12,boundaryColor:((i=this.cynefin)==null?void 0:i.boundaryColor)||this.lineColor,boundaryWidth:((a=this.cynefin)==null?void 0:a.boundaryWidth)||2,cliffColor:((s=this.cynefin)==null?void 0:s.cliffColor)||"#8B0000",cliffWidth:((n=this.cynefin)==null?void 0:n.cliffWidth)||4,arrowColor:((o=this.cynefin)==null?void 0:o.arrowColor)||this.lineColor,arrowWidth:((l=this.cynefin)==null?void 0:l.arrowWidth)||2,complexBg:((c=this.cynefin)==null?void 0:c.complexBg)||"#E8F5E9",complicatedBg:((h=this.cynefin)==null?void 0:h.complicatedBg)||"#E3F2FD",chaoticBg:((u=this.cynefin)==null?void 0:u.chaoticBg)||"#FBE9E7",clearBg:((g=this.cynefin)==null?void 0:g.clearBg)||"#FFF8E1",confusionBg:((d=this.cynefin)==null?void 0:d.confusionBg)||"#F3E5F5",textColor:((f=this.cynefin)==null?void 0:f.textColor)||this.textColor,labelColor:((p=this.cynefin)==null?void 0:p.labelColor)||this.primaryTextColor},this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||v(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExter
4nalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:((m=this.xyChart)==null?void 0:m.backgroundColor)||this.background,titleColor:((b=this.xyChart)==null?void 0:b.titleColor)||this.primaryTextColor,dataLabelColor:((k=this.xyChart)==null?void 0:k.dataLabelColor)||this.primaryTextColor,xAxisTitleColor:((x=this.xyChart)==null?void 0:x.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((C=this.xyChart)==null?void 0:C.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((T=this.xyChart)==null?void 0:T.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((w=this.xyChart)==null?void 0:w.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((_=this.xyChart)==null?void 0:_.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((B=this.xyChart)==null?void 0:B.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((G=this.xyChart)==null?void 0:G.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((z=this.xyChart)==null?void 0:z.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((P=this.xyChart)==null?void 0:P.plotColorPalette)||"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0"},this.radar={axisColor:((R=this.radar)==null?void 0:R.axisColor)||this.lineColor,axisStrokeWidth:((D=this.radar)==null?void 0:D.axisStrokeWidth)||2,axisLabelFontSize:((L=this.radar)==null?void 0:L.axisLabelFontSize)||12,curveOpacity:((F=this.radar)==null?void 0:F.curveOpacity)||.5,curveStrokeWidth:((A=this.radar)==null?void 0:A.curveStrokeWidth)||2,graticuleColor:(($=this.radar)==null?void 0:$.graticuleColor)||"#DEDEDE",graticuleStrokeWidth:((E=this.radar)==null?void 0:E.graticuleStrokeWidth)||1,graticuleOpacity:((V=this.radar)==null?void 0:V.graticuleOpacity)||.3,legendBoxSize:((X=this.radar)==null?void 0:X.legendBoxSize)||12,legendFontSize:((et=this.radar)==null?void 0:et.legendFontSize)||12},this.wardleyEvolutionColor=this.wardleyEvolutionColor||"#dc3545",this.wardley={backgroundColor:((ot=this.wardley)==null?void 0:ot.backgroundColor)||this.background,axisColor:((bt=this.wardley)==null?void 0:bt.axisColor)||this.lineColor,axisTextColor:((pt=this.wardley)==null?void 0:pt.axisTextColor)||this.primaryTextColor,gridColor:((mt=this.wardley)==null?void 0:mt.gridColor)||this.gridColor,componentFill:((Ft=this.wardley)==null?void 0:Ft.componentFill)||this.background,componentStroke:((Mt=this.wardley)==null?void 0:Mt.componentStroke)||this.lineColor,componentLabelColor:((It=this.wardley)==null?void 0:It.componentLabelColor)||this.primaryTextColor,linkStroke:((rt=this.wardley)==null?void 0:rt.linkStroke)||this.lineColor,evolutionStroke:((Z=this.wardley)==null?void 0:Z.evolutionStroke)||this.wardleyEvolutionColor,annotationStroke:((K=this.wardley)==null?void 0:K.annotationStroke)||this.lineColor,annotationTextColor:((j=this.wardley)==null?void 0:j.annotationTextColor)||this.primaryTextColor,annotationFill:((nt=this.wardley)==null?void 0:nt.annotationFill)||this.background},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=U(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||v(this.primaryColor,{h:-30}),this.git4=this.pie5||v(this.primaryColor,{h:-60}),this.git5=this.pie6||v(this.primaryColor,{h:-90}),this.git6=this.pie7||v(this.primaryColor,{h:60}),this.git7=this.pie8||v(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||O(this.git0),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.branchLabelColor=this.branchLabelColor||this.labelTextColor,this.gitBranchLabel0=this.branchLabelColor,this.gitBranchLabel1="white",this.gitBranchLabel2=this.branchLabelColor,this.gitBranchLabel3="white",this.gitBranchLabel4=this.branchLabelColor,this.gitBranchLabel5=this.branchLabelColor,this.gitBranchLabel6=this.branchLabelColor,this.gitBranchLabel7=this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackgroun
vendor: 4,768 bytes, line 4
4d=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.emUiFill=this.emUiFill||"white",this.emUiStroke=this.emUiStroke||"#dbdada",this.emProcessorFill=this.emProcessorFill||"#edb3f6",this.emProcessorStroke=this.emProcessorStroke||"#b88cbf",this.emReadModelFill=this.emReadModelFill||"#d3f1a2",this.emReadModelStroke=this.emReadModelStroke||"#a3b732",this.emCommandFill=this.emCommandFill||"#bcd6fe",this.emCommandStroke=this.emCommandStroke||"#679ac3",this.emEventFill=this.emEventFill||"#ffb778",this.emEventStroke=this.emEventStroke||"#c19a0f",this.emSwimlaneBackgroundOdd=this.emSwimlaneBackgroundOdd||"rgb(250,250,250)",this.emSwimlaneBackgroundStroke=this.emSwimlaneBackgroundStroke||"rgb(240,240,240)",this.emArrowhead=this.emArrowhead||this.lineColor,this.emRelationStroke=this.emRelationStroke||this.lineColor,this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||kr,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||vr}calculate(t){if(typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},y(aa,"Theme"),aa),Kv=y(e=>{const t=new Qv;return t.calculate(e),t},"getThemeVariables"),sa,Zv=(sa=class{constructor(){this.background="#ffffff",this.primaryColor="#cccccc",this.mainBkg="#ffffff",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.radius=3,this.strokeWidth=2,this.primaryBorderColor=Lt(this.primaryColor,this.darkMode),this.fontFamily="arial, sans-serif",this.fontSize="14px",this.nodeBorder="#000000",this.stateBorder="#000000",this.useGradient=!0,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="drop-shadow( 0px 1px 2px rgba(0, 0, 0, 0.25));",this.tertiaryColor="#ffffff",this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.noteFontWeight="normal",this.fontWeight="normal"}updateColors(){var s,n,o,l,c,h,u,g,d,f,p;this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||v(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||v(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Lt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Lt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Lt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||O(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||O(this.tertiaryColor),this.lineColor=this.lineColor||O(this.background),this.arrowheadColor=this.arrowheadColor||O(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||U(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||O(this.lineColor),this.rectBkgColor=this.rectBkgColor||this.tertiaryColor;
vendor: 6,147 bytes, line 4
4const t="#ECECFE",r="#E9E9F1",i=v(t,{h:180,l:5});if(this.sectionBkgColor=this.sectionBkgColor||i,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||r,this.sectionBkgColor2=this.sectionBkgColor2||t,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||t,this.activeTaskBorderColor=this.activeTaskBorderColor||t,this.activeTaskBkgColor=this.activeTaskBkgColor||q(t,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||t,this.cScale1=this.cScale1||r,this.cScale2=this.cScale2||i,this.cScale3=this.cScale3||v(t,{h:30}),this.cScale4=this.cScale4||v(t,{h:60}),this.cScale5=this.cScale5||v(t,{h:90}),this.cScale6=this.cScale6||v(t,{h:120}),this.cScale7=this.cScale7||v(t,{h:150}),this.cScale8=this.cScale8||v(t,{h:210,l:150}),this.cScale9=this.cScale9||v(t,{h:270}),this.cScale10=this.cScale10||v(t,{h:300}),this.cScale11=this.cScale11||v(t,{h:330}),this.darkMode)for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScale"+m]=U(this["cScale"+m],75);else for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScale"+m]=U(this["cScale"+m],25);for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScaleInv"+m]=this["cScaleInv"+m]||O(this["cScale"+m]);for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this.darkMode?this["cScalePeer"+m]=this["cScalePeer"+m]||q(this["cScale"+m],10):this["cScalePeer"+m]=this["cScalePeer"+m]||U(this["cScale"+m],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScaleLabel"+m]=this["cScaleLabel"+m]||this.scaleLabelColor;const a=this.darkMode?-4:-1;for(let m=0;m<5;m++)this["surface"+m]=this["surface"+m]||v(this.mainBkg,{h:180,s:-15,l:a*(5+m*3)}),this["surfacePeer"+m]=this["surfacePeer"+m]||v(this.mainBkg,{h:180,s:-15,l:a*(8+m*3)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||t,this.fillType1=this.fillType1||r,this.fillType2=this.fillType2||v(t,{h:64}),this.fillType3=this.fillType3||v(r,{h:64}),this.fillType4=this.fillType4||v(t,{h:-64}),this.fillType5=this.fillType5||v(r,{h:-64}),this.fillType6=this.fillType6||v(t,{h:128}),this.fillType7=this.fillType7||v(r,{h:128}),this.pie1=this.pie1||t,this.pie2=this.pie2||r,this.pie3=this.pie3||i,this.pie4=this.pie4||v(t,{l:-10}),this.pie5=this.pie5||v(r,{l:-10}),this.pie6=this.pie6||v(i,{l:-10}),this.pie7=this.pie7||v(t,{h:60,l:-10}),this.pie8=this.pie8||v(t,{h:-60,l:-10}),this.pie9=this.pie9||v(t,{h:120,l:0}),this.pie10=this.pie10||v(t,{h:60,l:-20}),this.pie11=this.pie11||v(t,{h:-60,l:-20}),this.pie12=this.pie12||v(t,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.quadrant1Fill=this.quadrant1Fill||t,this.quadrant2Fill=this.quadrant2Fill||v(t,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(t,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(t,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExter
vendor: 21,275 bytes, line 4
4nalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:((s=this.xyChart)==null?void 0:s.backgroundColor)||this.background,titleColor:((n=this.xyChart)==null?void 0:n.titleColor)||this.primaryTextColor,xAxisTitleColor:((o=this.xyChart)==null?void 0:o.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((l=this.xyChart)==null?void 0:l.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((c=this.xyChart)==null?void 0:c.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((h=this.xyChart)==null?void 0:h.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((u=this.xyChart)==null?void 0:u.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((g=this.xyChart)==null?void 0:g.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((d=this.xyChart)==null?void 0:d.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((f=this.xyChart)==null?void 0:f.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((p=this.xyChart)==null?void 0:p.plotColorPalette)||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||t,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||t,this.git1=this.git1||r,this.git2=this.git2||i,this.git3=this.git3||v(t,{h:-30}),this.git4=this.git4||v(t,{h:-60}),this.git5=this.git5||v(t,{h:-90}),this.git6=this.git6||v(t,{h:60}),this.git7=this.git7||v(t,{h:120}),this.darkMode?(this.git0=q(this.git0,25),this.git1=q(this.git1,25),this.git2=q(this.git2,25),this.git3=q(this.git3,25),this.git4=q(this.git4,25),this.git5=q(this.git5,25),this.git6=q(this.git6,25),this.git7=q(this.git7,25)):(this.git0=U(this.git0,25),this.git1=U(this.git1,25),this.git2=U(this.git2,25),this.git3=U(this.git3,25),this.git4=U(this.git4,25),this.git5=U(this.git5,25),this.git6=U(this.git6,25),this.git7=U(this.git7,25)),this.gitInv0=this.gitInv0||O(this.git0),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||kr,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||vr}calculate(t){if(typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},y(sa,"Theme"),sa),Jv=y(e=>{const t=new Zv;return t.calculate(e),t},"getThemeVariables"),na,tx=(na=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=q(this.primaryColor,16),this.tertiaryColor=v(this.primaryColor,{h:-160}),this.primaryBorderColor=O(this.background),this.secondaryBorderColor=Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lt(this.tertiaryColor,this.darkMode),this.primaryTextColor=O(this.primaryColor),this.secondaryTextColor=O(this.secondaryColor),this.tertiaryTextColor=O(this.tertiaryColor),this.mainBkg="#2a2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=q(O("#323D47"),10),this.border1="#ccc",this.border2=Xr(255,255,255,.25),this.arrowheadColor=O(this.background),this.fontFamily="arial, sans-serif",this.fontSize="14px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.radius=3,this.strokeWidth=1,this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily="arial, sans-serif",this.fontSize="14px",this.useGradient=!0,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="drop-shadow( 1px 2px 2px rgba(185,185,185,0.2))",this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.noteFontWeight="normal",this.fontWeight="normal"}updateColors(){var r,i,a,s,n,o,l,c,h,u,g;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||v(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||v(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Lt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Lt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Lt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||O(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||O(this.tertiaryColor),this.lineColor=this.lineColor||O(this.background),this.arrowheadColor=this.arrowheadColor||O(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.border1,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||U(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||O(this.lineColor),this.rectBkgColor=this.rectBkgColor||this.tertiaryColor,this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||q(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||v(this.primaryColor,{h:30}),this.cScale4=this.cScale4||v(this.primaryColor,{h:60}),this.cScale5=this.cScale5||v(this.primaryColor,{h:90}),this.cScale6=this.cScale6||v(this.primaryColor,{h:120}),this.cScale7=this.cScale7||v(this.primaryColor,{h:150}),this.cScale8=this.cScale8||v(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||v(this.primaryColor,{h:270}),this.cScale10=this.cScale10||v(this.primaryColor,{h:300}),this.cScale11=this.cScale11||v(this.primaryColor,{h:330}),this.darkMode)for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScale"+d]=U(this["cScale"+d],75);else for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScale"+d]=U(this["cScale"+d],25);for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScaleInv"+d]=this["cScaleInv"+d]||O(this["cScale"+d]);for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this.darkMode?this["cScalePeer"+d]=this["cScalePeer"+d]||q(this["cScale"+d],10):this["cScalePeer"+d]=this["cScalePeer"+d]||U(this["cScale"+d],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScaleLabel"+d]=this["cScaleLabel"+d]||this.scaleLabelColor;const t=this.darkMode?-4:-1;for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||v(this.mainBkg,{h:180,s:-15,l:t*(5+d*3)}),this["surfacePeer"+d]=this["surfacePeer"+d]||v(this.mainBkg,{h:180,s:-15,l:t*(8+d*3)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||v(this.primaryColor,{h:64}),this.fillType3=this.fillType3||v(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||v(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||v(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||v(this.primaryColor,{h:128}),this.fillType7=this.fillType7||v(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||v(this.primaryColor,{l:-10}),this.pie5=this.pie5||v(this.secondaryColor,{l:-10}),this.pie6=this.pie6||v(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||v(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||v(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||v(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||v(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||v(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||v(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||v(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:((r=this.xyChart)==null?void 0:r.backgroundColor)||this.background,titleColor:((i=this.xyChart)==null?void 0:i.titleColor)||this.primaryTextColor,xAxisTitleColor:((a=this.xyChart)==null?void 0:a.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((s=this.xyChart)==null?void 0:s.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((n=this.xyChart)==null?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((o=this.xyChart)==null?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((l=this.xyChart)==null?void 0:l.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((c=this.xyChart)==null?void 0:c.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((h=this.xyChart)==null?void 0:h.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((u=this.xyChart)==null?void 0:u.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((g=this.xyChart)==null?void 0:g.plotColorPalette)||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||"#0b0000",this.git1=this.git1||"#4d1037",this.git2=this.git2||"#3f5258",this.git3=this.git3||"#4f2f1b",this.git4=this.git4||"#6e0a0a",this.git5=this.git5||"#3b0048",this.git6=this.git6||"#995a01",this.git7=this.git7||"#154706",this.gitDarkMode=!0,this.gitDarkMode?(this.git0=q(this.git0,25),this.git1=q(this.git1,25),this.git2=q(this.git2,25),this.git3=q(this.git3,25),this.git4=q(this.git4,25),this.git5=q(this.git5,25),this.git6=q(this.git6,25),this.git7=q(this.git7,25)):(this.git0=U(this.git0,25),this.git1=U(this.git1,25),this.git2=U(this.git2,25),this.git3=U(this.git3,25),this.git4=U(this.git4,25),this.git5=U(this.git5,25),this.git6=U(this.git6,25),this.git7=U(this.git7,25)),this.gitInv0=this.gitInv0||O(this.git0),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||kr,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||vr}calculate(t){if(typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},y(na,"Theme"),na),ex=y(e=>{const t=new tx;return t.calculate(e),t},"getThemeVariables"),oa,rx=(oa=class{constructor(){this.background="#ffffff",this.primaryColor="#cccccc",this.mainBkg="#ffffff",this.noteBkgColor="#fff5ad",this.noteTextColor="#28253D",this.THEME_COLOR_LIMIT=12,this.radius=12,this.strokeWidth=2,this.primaryBorderColor=Lt("#28253D",this.darkMode),this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.nodeBorder="#28253D",this.stateBorder="#28253D",this.useGradient=!1,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="url(#drop-shadow)",this.nodeShadow=!0,this.tertiaryColor="#ffffff",this.clusterBkg="#F9F9FB",this.clusterBorder="#BDBCCC",this.noteBorderColor="#FACC15",this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.actorBorder="#28253D",this.filterColor="#000000"}updateColors(){var s,n,o,l,c,h,u,g,d,f,p;this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#28253D"),this.secondaryColor=this.secondaryColor||v(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||v(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Lt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Lt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Lt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#FEF9C3",this.noteTextColor=this.noteTextColor||"#28253D",this.secondaryTextColor=this.secondaryTextColor||O(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||O(this.tertiaryColor),this.lineColor=this.lineColor||O(this.background),this.arrowheadColor=this.arrowheadColor||O(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackgroun
vendor: 6,920 bytes, line 4
4d=this.edgeLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.noteFontWeight=600,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||U(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||O(this.lineColor),this.rectBkgColor=this.rectBkgColor||this.tertiaryColor;const t="#ECECFE",r="#E9E9F1",i=v(t,{h:180,l:5});this.sectionBkgColor=this.sectionBkgColor||i,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||r,this.sectionBkgColor2=this.sectionBkgColor2||t,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||t,this.activeTaskBorderColor=this.activeTaskBorderColor||t,this.activeTaskBkgColor=this.activeTaskBkgColor||q(t,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.compositeTitleBackground="#F9F9FB",this.altBackground="#F9F9FB",this.stateEdgeLabelBackground="#FFFFFF",this.fontWeight=600,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor;for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScale"+m]=this.mainBkg;if(this.darkMode)for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScale"+m]=U(this["cScale"+m],75);else for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScale"+m]=U(this["cScale"+m],25);for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScaleInv"+m]=this["cScaleInv"+m]||O(this["cScale"+m]);for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this.darkMode?this["cScalePeer"+m]=this["cScalePeer"+m]||q(this["cScale"+m],10):this["cScalePeer"+m]=this["cScalePeer"+m]||U(this["cScale"+m],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScaleLabel"+m]=this["cScaleLabel"+m]||this.scaleLabelColor;const a=this.darkMode?-4:-1;for(let m=0;m<5;m++)this["surface"+m]=this["surface"+m]||v(this.mainBkg,{h:180,s:-15,l:a*(5+m*3)}),this["surfacePeer"+m]=this["surfacePeer"+m]||v(this.mainBkg,{h:180,s:-15,l:a*(8+m*3)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||t,this.fillType1=this.fillType1||r,this.fillType2=this.fillType2||v(t,{h:64}),this.fillType3=this.fillType3||v(r,{h:64}),this.fillType4=this.fillType4||v(t,{h:-64}),this.fillType5=this.fillType5||v(r,{h:-64}),this.fillType6=this.fillType6||v(t,{h:128}),this.fillType7=this.fillType7||v(r,{h:128}),this.pie1=this.pie1||t,this.pie2=this.pie2||r,this.pie3=this.pie3||i,this.pie4=this.pie4||v(t,{l:-10}),this.pie5=this.pie5||v(r,{l:-10}),this.pie6=this.pie6||v(i,{l:-10}),this.pie7=this.pie7||v(t,{h:60,l:-10}),this.pie8=this.pie8||v(t,{h:-60,l:-10}),this.pie9=this.pie9||v(t,{h:120,l:0}),this.pie10=this.pie10||v(t,{h:60,l:-20}),this.pie11=this.pie11||v(t,{h:-60,l:-20}),this.pie12=this.pie12||v(t,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.quadrant1Fill=this.quadrant1Fill||t,this.quadrant2Fill=this.quadrant2Fill||v(t,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(t,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(t,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExter
4nalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:((s=this.xyChart)==null?void 0:s.backgroundColor)||this.background,titleColor:((n=this.xyChart)==null?void 0:n.titleColor)||this.primaryTextColor,xAxisTitleColor:((o=this.xyChart)==null?void 0:o.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((l=this.xyChart)==null?void 0:l.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((c=this.xyChart)==null?void 0:c.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((h=this.xyChart)==null?void 0:h.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((u=this.xyChart)==null?void 0:u.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((g=this.xyChart)==null?void 0:g.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((d=this.xyChart)==null?void 0:d.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((f=this.xyChart)==null?void 0:f.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((p=this.xyChart)==null?void 0:p.plotColorPalette)||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||t,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.requirementEdgeLabelBackground="#FFFFFF",this.git0=this.git0||t,this.git1=this.git1||r,this.git2=this.git2||i,this.git3=this.git3||v(t,{h:-30}),this.git4=this.git4||v(t,{h:-60}),this.git5=this.git5||v(t,{h:-90}),this.git6=this.git6||v(t,{h:60}),this.git7=this.git7||v(t,{h:120}),this.darkMode?(this.git0=q(this.git0,25),this.git1=q(this.git1,25),this.git2=q(this.git2,25),this.git3=q(this.git3,25),this.git4=q(this.git4,25),this.git5=q(this.git5,25),this.git6=q(this.git6,25),this.git7=q(this.git7,25)):(this.git0=U(this.git0,25),this.git1=U(this.git1,25),this.git2=U(this.git2,25),this.git3=U(this.git3,25),this.git4=U(this.git4,25),this.git5=U(this.git5,25),this.git6=U(this.git6,25),this.git7=U(this.git7,25)),this.gitInv0=this.gitInv0||O(this.git0),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.commitLineColor=this.commitLineColor??"#BDBCCC",this.erEdgeLabelBackground="#FFFFFF",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||kr,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||vr}calculate(t){if(typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>
vendor: 15,351 bytes, line 4
4{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},y(oa,"Theme"),oa),ix=y(e=>{const t=new rx;return t.calculate(e),t},"getThemeVariables"),la,ax=(la=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=q(this.primaryColor,16),this.tertiaryColor=v(this.primaryColor,{h:-160}),this.primaryBorderColor=O(this.background),this.secondaryBorderColor=Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lt(this.tertiaryColor,this.darkMode),this.primaryTextColor=O(this.primaryColor),this.secondaryTextColor=O(this.secondaryColor),this.tertiaryTextColor=O(this.tertiaryColor),this.mainBkg="#111113",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=q(O("#323D47"),10),this.border1="#ccc",this.border2=Xr(255,255,255,.25),this.arrowheadColor=O(this.background),this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.labelBackground="#111113",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.radius=12,this.strokeWidth=2,this.noteBkgColor=this.noteBkgColor??"#FEF9C3",this.noteTextColor=this.noteTextColor??"#28253D",this.THEME_COLOR_LIMIT=12,this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.nodeBorder="#FFFFFF",this.stateBorder="#FFFFFF",this.useGradient=!1,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="url(#drop-shadow)",this.nodeShadow=!0,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.clusterBkg="#1E1A2E",this.clusterBorder="#BDBCCC",this.noteBorderColor="#FACC15",this.noteFontWeight=600,this.filterColor="#FFFFFF"}updateColors(){var r,i,a,s,n,o,l,c,h,u,g;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#FFFFFF"),this.secondaryColor=this.secondaryColor||v(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||v(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Lt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Lt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Lt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#FFFFFF",this.secondaryTextColor=this.secondaryTextColor||O(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||O(this.tertiaryColor),this.lineColor=this.lineColor||O(this.background),this.arrowheadColor=this.arrowheadColor||O(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.border1,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder="#FFFFFF",this.signalColor="#FFFFFF",this.labelBoxBorderColor="#BDBCCC",this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||U(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||O(this.lineColor),this.rectBkgColor=this.rectBkgColor||this.tertiaryColor,this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||q(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.compositeBackground="#16141F",this.altBackground="#16141F",this.compositeTitleBackground="#16141F",this.stateEdgeLabelBackground="#16141F",this.fontWeight=600,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||v(this.primaryColor,{h:30}),this.cScale4=this.cScale4||v(this.primaryColor,{h:60}),this.cScale5=this.cScale5||v(this.primaryColor,{h:90}),this.cScale6=this.cScale6||v(this.primaryColor,{h:120}),this.cScale7=this.cScale7||v(this.primaryColor,{h:150}),this.cScale8=this.cScale8||v(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||v(this.primaryColor,{h:270}),this.cScale10=this.cScale10||v(this.primaryColor,{h:300}),this.cScale11=this.cScale11||v(this.primaryColor,{h:330}),this.darkMode)for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScale"+d]=U(this["cScale"+d],75);else for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScale"+d]=U(this["cScale"+d],25);for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScaleInv"+d]=this["cScaleInv"+d]||O(this["cScale"+d]);for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this.darkMode?this["cScalePeer"+d]=this["cScalePeer"+d]||q(this["cScale"+d],10):this["cScalePeer"+d]=this["cScalePeer"+d]||U(this["cScale"+d],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScaleLabel"+d]=this["cScaleLabel"+d]||this.scaleLabelColor;const t=this.darkMode?-4:-1;for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||v(this.mainBkg,{h:180,s:-15,l:t*(5+d*3)}),this["surfacePeer"+d]=this["surfacePeer"+d]||v(this.mainBkg,{h:180,s:-15,l:t*(8+d*3)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||v(this.primaryColor,{h:64}),this.fillType3=this.fillType3||v(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||v(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||v(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||v(this.primaryColor,{h:128}),this.fillType7=this.fillType7||v(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||v(this.primaryColor,{l:-10}),this.pie5=this.pie5||v(this.secondaryColor,{l:-10}),this.pie6=this.pie6||v(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||v(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||v(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||v(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||v(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||v(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||v(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||v(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:((r=this.xyChart)==null?void 0:r.backgroundColor)||this.background,titleColor:((i=this.xyChart)==null?void 0:i.titleColor)||this.primaryTextColor,xAxisTitleColor:((a=this.xyChart)==null?void 0:a.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((s=this.xyChart)==null?void 0:s.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((n=this.xyChart)==null?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((o=this.xyChart)==null?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((l=this.xyChart)==null?void 0:l.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((c=this.xyChart)==null?void 0:c.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((h=this.xyChart)==null?void 0:h.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((u=this.xyChart)==null?void 0:u.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((g=this.xyChart)==null?void 0:g.plotColorPalette)||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.requirementEdgeLabelBackground="#16141F",this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||v(this.primaryColor,{h:-30}),this.git4=this.git4||v(this.primaryColor,{h:-60}),this.git5=this.git5||v(this.primaryColor,{h:-90}),this.git6=this.git6||v(this.primaryColor,{h:60}),this.git7=this.git7||v(this.primaryColor,{h:120}),this.darkMode?(this.git0=q(this.git0,25),this.git1=q(this.git1,25),this.git2=q(this.git2,25),this.git3=q(this.git3,25),this.git4=q(this.git4,25),this.git5=q(this.git5,25),this.git6=q(this.git6,25),this.git7=q(this.git7,25)):(this.git0=U(this.git0,25),this.git1=U(this.git1,25),this.git2=U(this.git2,25),this.git3=U(this.git3,25),this.git4=U(this.git4,25),this.git5=U(this.git5,25),this.git6=U(this.git6,25),this.git7=U(this.git7,25)),this.gitInv0=this.gitInv0||O(this.git0),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.commitLineColor=this.commitLineColor??"#BDBCCC",this.erEdgeLabelBackground="#16141F",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||kr,this.attributeBackgroun
4dColorEven=this.attributeBackgroundColorEven||vr}calculate(t){if(typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},y(la,"Theme"),la),sx=y(e=>{const t=new ax;return t.calculate(e),t},"getThemeVariables"),ca,nx=(ca=class{constructor(){this.background="#ffffff",this.primaryColor="#cccccc",this.mainBkg="#ffffff",this.noteBkgColor="#fff5ad",this.noteTextColor="#28253D",this.THEME_COLOR_LIMIT=12,this.radius=12,this.strokeWidth=2,this.primaryBorderColor=Lt(this.primaryColor,this.darkMode),this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.nodeBorder="#28253D",this.stateBorder="#28253D",this.useGradient=!1,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="url(#drop-shadow)",this.nodeShadow=!0,this.tertiaryColor="#ffffff",this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.actorBorder="#28253D",this.noteBorderColor="#FACC15",this.noteFontWeight=600,this.borderColorArray=["#E879F9","#2DD4BF","#FB923C","#22D3EE","#4ADE80","#A78BFA","#F87171","#FACC15","#818CF8","#A3E635 ","#38BDF8","#FB7185"],this.bkgColorArray=["#FDF4FF","#F0FDFA","#FFF7ED","#ECFEFF","#F0FDF4","#F5F3FF","#FEF2F2","#FEFCE8","#EEF2FF","#F7FEE7","#F0F9FF","#FFF1F2"],this.filterColor="#000000"}updateColors(){var s,n,o,l,c,h,u,g,d,f,p;this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#28253D"),this.secondaryColor=this.secondaryColor||v(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||v(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Lt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Lt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Lt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#28253D",this.secondaryTextColor=this.secondaryTextColor||O(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||O(this.tertiaryColor),this.lineColor=this.lineColor||O(this.background),this.arrowheadColor=this.arrowheadColor||O(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||U(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||O(this.lineColor),this.rectBkgColor=this.rectBkgColor||this.tertiaryColor;const t="#ECECFE",r="#E9E9F1",i=v(t,{h:180,l:5});this.sectionBkgColor=this.sectionBkgColor||i,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||r,this.sectionBkgColor2=this.sectionBkgColor2||t,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||t,this.activeTaskBorderColor=this.activeTaskBorderColor||t,this.activeTaskBkgColor=this.activeTaskBkgColor||q(t,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroun
vendor: 4,256 bytes, line 4
4dColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||"#f4a8ff",this.cScale1=this.cScale1||"#46ecd5",this.cScale2=this.cScale2||"#ffb86a",this.cScale3=this.cScale3||"#dab2ff",this.cScale4=this.cScale4||"#7bf1a8",this.cScale5=this.cScale5||"#c4b4ff",this.cScale6=this.cScale6||"#ffa2a2",this.cScale7=this.cScale7||"#ffdf20",this.cScale8=this.cScale8||"#a3b3ff",this.cScale9=this.cScale9||"#bbf451",this.cScale10=this.cScale10||"#74d4ff",this.cScale11=this.cScale11||"#ffa1ad";for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScaleInv"+m]=this["cScaleInv"+m]||O(this["cScale"+m]);for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this.darkMode?this["cScalePeer"+m]=this["cScalePeer"+m]||q(this["cScale"+m],10):this["cScalePeer"+m]=this["cScalePeer"+m]||U(this["cScale"+m],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let m=0;m<this.THEME_COLOR_LIMIT;m++)this["cScaleLabel"+m]=this["cScaleLabel"+m]||this.scaleLabelColor;const a=this.darkMode?-4:-1;for(let m=0;m<5;m++)this["surface"+m]=this["surface"+m]||v(this.mainBkg,{h:180,s:-15,l:a*(5+m*3)}),this["surfacePeer"+m]=this["surfacePeer"+m]||v(this.mainBkg,{h:180,s:-15,l:a*(8+m*3)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||t,this.fillType1=this.fillType1||r,this.fillType2=this.fillType2||v(t,{h:64}),this.fillType3=this.fillType3||v(r,{h:64}),this.fillType4=this.fillType4||v(t,{h:-64}),this.fillType5=this.fillType5||v(r,{h:-64}),this.fillType6=this.fillType6||v(t,{h:128}),this.fillType7=this.fillType7||v(r,{h:128}),this.pie1=this.pie1||t,this.pie2=this.pie2||r,this.pie3=this.pie3||i,this.pie4=this.pie4||v(t,{l:-10}),this.pie5=this.pie5||v(r,{l:-10}),this.pie6=this.pie6||v(i,{l:-10}),this.pie7=this.pie7||v(t,{h:60,l:-10}),this.pie8=this.pie8||v(t,{h:-60,l:-10}),this.pie9=this.pie9||v(t,{h:120,l:0}),this.pie10=this.pie10||v(t,{h:60,l:-20}),this.pie11=this.pie11||v(t,{h:-60,l:-20}),this.pie12=this.pie12||v(t,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.quadrant1Fill=this.quadrant1Fill||t,this.quadrant2Fill=this.quadrant2Fill||v(t,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(t,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(t,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExter
4nalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:((s=this.xyChart)==null?void 0:s.backgroundColor)||this.background,titleColor:((n=this.xyChart)==null?void 0:n.titleColor)||this.primaryTextColor,xAxisTitleColor:((o=this.xyChart)==null?void 0:o.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((l=this.xyChart)==null?void 0:l.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((c=this.xyChart)==null?void 0:c.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((h=this.xyChart)==null?void 0:h.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((u=this.xyChart)==null?void 0:u.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((g=this.xyChart)==null?void 0:g.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((d=this.xyChart)==null?void 0:d.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((f=this.xyChart)==null?void 0:f.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((p=this.xyChart)==null?void 0:p.plotColorPalette)||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||t,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||t,this.git1=this.git1||r,this.git2=this.git2||i,this.git3=this.git3||v(t,{h:-30}),this.git4=this.git4||v(t,{h:-60}),this.git5=this.git5||v(t,{h:-90}),this.git6=this.git6||v(t,{h:60}),this.git7=this.git7||v(t,{h:120}),this.darkMode?(this.git0=q(this.git0,25),this.git1=q(this.git1,25),this.git2=q(this.git2,25),this.git3=q(this.git3,25),this.git4=q(this.git4,25),this.git5=q(this.git5,25),this.git6=q(this.git6,25),this.git7=q(this.git7,25)):(this.git0=U(this.git0,25),this.git1=U(this.git1,25),this.git2=U(this.git2,25),this.git3=U(this.git3,25),this.git4=U(this.git4,25),this.git5=U(this.git5,25),this.git6=U(this.git6,25),this.git7=U(this.git7,25)),this.gitInv0=this.gitInv0||O(this.git0),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLineColor=this.commitLineColor??"#BDBCCC",this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.fontWeight=600,this.erEdgeLabelBackground="#FFFFFF",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||kr,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||vr}calculate(t){if(typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>
4{this[i]=t[i]})}},y(ca,"Theme"),ca),ox=y(e=>{const t=new nx;return t.calculate(e),t},"getThemeVariables"),ha,lx=(ha=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=q(this.primaryColor,16),this.tertiaryColor=v(this.primaryColor,{h:-160}),this.primaryBorderColor=O(this.background),this.secondaryBorderColor=Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lt(this.tertiaryColor,this.darkMode),this.primaryTextColor=O(this.primaryColor),this.secondaryTextColor=O(this.secondaryColor),this.tertiaryTextColor=O(this.tertiaryColor),this.mainBkg="#111113",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=q(O("#323D47"),10),this.border1="#ccc",this.border2=Xr(255,255,255,.25),this.arrowheadColor=O(this.background),this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.labelBackground="#111113",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.radius=12,this.strokeWidth=2,this.noteBkgColor=this.noteBkgColor??"#FEF9C3",this.noteTextColor=this.noteTextColor??"#28253D",this.THEME_COLOR_LIMIT=12,this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.nodeBorder="#FFFFFF",this.stateBorder="#FFFFFF",this.useGradient=!1,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="url(#drop-shadow)",this.nodeShadow=!0,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.clusterBkg="#1E1A2E",this.clusterBorder="#BDBCCC",this.noteBorderColor="#FACC15",this.noteFontWeight=600,this.borderColorArray=["#E879F9","#2DD4BF","#FB923C","#22D3EE","#4ADE80","#A78BFA","#F87171","#FACC15","#818CF8","#A3E635 ","#38BDF8","#FB7185"],this.bkgColorArray=[],this.filterColor="#FFFFFF"}updateColors(){var r,i,a,s,n,o,l,c,h,u,g;this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#FFFFFF"),this.secondaryColor=this.secondaryColor||v(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||v(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Lt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Lt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Lt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Lt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#FFFFFF",this.secondaryTextColor=this.secondaryTextColor||O(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||O(this.tertiaryColor),this.lineColor=this.lineColor||O(this.background),this.arrowheadColor=this.arrowheadColor||O(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.border1,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder="#FFFFFF",this.signalColor="#FFFFFF",this.labelBoxBorderColor="#BDBCCC",this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||U(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||O(this.lineColor),this.rectBkgColor=this.rectBkgColor||this.tertiaryColor,this.rootLabelColor="#FFFFFF",this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||q(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroun
vendor: 4,633 bytes, line 4
4dColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||"#f4a8ff",this.cScale1=this.cScale1||"#46ecd5",this.cScale2=this.cScale2||"#ffb86a",this.cScale3=this.cScale3||"#dab2ff",this.cScale4=this.cScale4||"#7bf1a8",this.cScale5=this.cScale5||"#c4b4ff",this.cScale6=this.cScale6||"#ffa2a2",this.cScale7=this.cScale7||"#ffdf20",this.cScale8=this.cScale8||"#a3b3ff",this.cScale9=this.cScale9||"#bbf451",this.cScale10=this.cScale10||"#74d4ff",this.cScale11=this.cScale11||"#ffa1ad";for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScaleInv"+d]=this["cScaleInv"+d]||O(this["cScale"+d]);for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this.darkMode?this["cScalePeer"+d]=this["cScalePeer"+d]||q(this["cScale"+d],10):this["cScalePeer"+d]=this["cScalePeer"+d]||U(this["cScale"+d],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScaleLabel"+d]=U(this["cScale"+d],75);const t=this.darkMode?-4:-1;for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||v(this.mainBkg,{h:180,s:-15,l:t*(5+d*3)}),this["surfacePeer"+d]=this["surfacePeer"+d]||v(this.mainBkg,{h:180,s:-15,l:t*(8+d*3)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||v(this.primaryColor,{h:64}),this.fillType3=this.fillType3||v(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||v(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||v(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||v(this.primaryColor,{h:128}),this.fillType7=this.fillType7||v(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||v(this.primaryColor,{l:-10}),this.pie5=this.pie5||v(this.secondaryColor,{l:-10}),this.pie6=this.pie6||v(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||v(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||v(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||v(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||v(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||v(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||v(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.vennTitleTextColor=this.vennTitleTextColor??this.titleColor,this.vennSetTextColor=this.vennSetTextColor??this.textColor,this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||v(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||v(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||v(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||v(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||v(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||v(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||er(this.quadrant1Fill)?q(this.quadrant1Fill):U(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExter
vendor: 4,127 bytes, line 4
4nalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:((r=this.xyChart)==null?void 0:r.backgroundColor)||this.background,titleColor:((i=this.xyChart)==null?void 0:i.titleColor)||this.primaryTextColor,xAxisTitleColor:((a=this.xyChart)==null?void 0:a.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:((s=this.xyChart)==null?void 0:s.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:((n=this.xyChart)==null?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:((o=this.xyChart)==null?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:((l=this.xyChart)==null?void 0:l.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:((c=this.xyChart)==null?void 0:c.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:((h=this.xyChart)==null?void 0:h.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:((u=this.xyChart)==null?void 0:u.yAxisLineColor)||this.primaryTextColor,plotColorPalette:((g=this.xyChart)==null?void 0:g.plotColorPalette)||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?U(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||v(this.primaryColor,{h:-30}),this.git4=this.git4||v(this.primaryColor,{h:-60}),this.git5=this.git5||v(this.primaryColor,{h:-90}),this.git6=this.git6||v(this.primaryColor,{h:60}),this.git7=this.git7||v(this.primaryColor,{h:120}),this.darkMode?(this.git0=q(this.git0,25),this.git1=q(this.git1,25),this.git2=q(this.git2,25),this.git3=q(this.git3,25),this.git4=q(this.git4,25),this.git5=q(this.git5,25),this.git6=q(this.git6,25),this.git7=q(this.git7,25)):(this.git0=U(this.git0,25),this.git1=U(this.git1,25),this.git2=U(this.git2,25),this.git3=U(this.git3,25),this.git4=U(this.git4,25),this.git5=U(this.git5,25),this.git6=U(this.git6,25),this.git7=U(this.git7,25)),this.gitInv0=this.gitInv0||O(this.git0),this.gitInv1=this.gitInv1||O(this.git1),this.gitInv2=this.gitInv2||O(this.git2),this.gitInv3=this.gitInv3||O(this.git3),this.gitInv4=this.gitInv4||O(this.git4),this.gitInv5=this.gitInv5||O(this.git5),this.gitInv6=this.gitInv6||O(this.git6),this.gitInv7=this.gitInv7||O(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.commitLineColor=this.commitLineColor??"#BDBCCC",this.fontWeight=600,this.erEdgeLabelBackground="#16141F",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||kr,this.attributeBackgroundColorEven=this.attributeBackgroun
4dColorEven||vr}calculate(t){if(typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},y(ha,"Theme"),ha),cx=y(e=>{const t=new lx;return t.calculate(e),t},"getThemeVariables"),Er={base:{getThemeVariables:qv},dark:{getThemeVariables:Vv},default:{getThemeVariables:Gv},forest:{getThemeVariables:Xv},neutral:{getThemeVariables:Kv},neo:{getThemeVariables:Jv},"neo-dark":{getThemeVariables:ex},redux:{getThemeVariables:ix},"redux-dark":{getThemeVariables:sx},"redux-color":{getThemeVariables:ox},"redux-dark-color":{getThemeVariables:cx}},ge
vendor: 10,468 bytes, line 4
4={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:null,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200,inheritDir:!1},swimlane:{useMaxWidth:!0,lineHops:"arc",ignoreCrossLaneEdges:!0,optimizeRanksByCrossings:!0,automaticLaneOrdering:!1},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,maxLabelWidth:360,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],titleColor:"",titleFontFamily:'"trebuchet ms", verdana, arial, sans-serif',titleFontSize:"4ex"},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1,hierarchicalNamespaces:!0},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,nodeSpacing:140,rankSpacing:80,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75,donutHole:0,legendPosition:"right",highlightSlice:""},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showDataLabel:!1,showDataLabelOutsideBar:!1,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2,labelRotation:0},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2,labelRotation:0},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200,layoutAlgorithm:"cose-bilkent"},ishikawa:{useMaxWidth:!0,diagramPadding:20},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:"",nodeWidth:10,nodePadding:12,labelStyle:"legacy"},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},treeView:{useMaxWidth:!0,rowIndent:10,paddingX:5,paddingY:5,lineThickness:1,showIcons:!1,defaultIconPack:"",filenameIcons:{},extensionIcons:{}},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16,randomize:!1,nodeSeparation:75,idealEdgeLengthMultiplier:1.5,edgeElasticity:.45,numIter:2500,seed:1},eventmodeling:{useMaxWidth:!0,padding:30,rowHeight:32},radar:{useMaxWidth:!0,width:600,height:600,marginTop:50,marginRight:50,marginBottom:50,marginLeft:50,axisScaleFactor:1,axisLabelFactor:1.05,curveTension:.17},venn:{useMaxWidth:!0,width:800,height:450,padding:8,useDebugLayout:!1},cynefin:{useMaxWidth:!0,width:800,height:600,padding:40,showDomainDescriptions:!0,boundaryAmplitude:8,seed:0},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1}
vendor: 4,912 bytes, line 4
4,af={...ge,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF",forceNodeModelOrder:!1,considerModelOrder:"NODES_AND_EDGES"},themeCSS:void 0,themeVariables:Er.default.getThemeVariables(),sequence:{...ge.sequence,messageFont:y(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:y(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:y(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1,hierarchicalNamespaces:!0},gantt:{...ge.gantt,tickInterval:void 0,useWidth:void 0},c4:{...ge.c4,useWidth:void 0,personFont:y(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),flowchart:{...ge.flowchart,inheritDir:!1},external_personFont:y(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:y(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:y(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:y(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:y(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:y(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:y(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:y(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:y(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:y(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:y(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:y(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:y(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:y(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:y(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:y(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:y(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:y(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:y(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:y(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:y(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...ge.pie,useWidth:984}
4,xyChart:{...ge.xyChart,useWidth:void 0},requirement:{...ge.requirement,useWidth:void 0},packet:{...ge.packet},eventmodeling:{...ge.eventmodeling},treeView:{...ge.treeView,useWidth:void 0},radar:{...ge.radar},railroad:{...ge.railroad,fontSize:void 0,fontFamily:void 0,terminalFill:void 0,terminalStroke:void 0,terminalTextColor:void 0,nonTerminalFill:void 0,nonTerminalStroke:void 0,nonTerminalTextColor:void 0,lineColor:void 0,markerFill:void 0,commentFill:void 0,commentStroke:void 0,commentTextColor:void 0,specialFill:void 0,specialStroke:void 0,ruleNameColor:void 0},ishikawa:{...ge.ishikawa},sankey:{...ge.sankey,nodeColors:void 0},treemap:{useMaxWidth:!0,padding:10,diagramPadding:8,showValues:!0,nodeWidth:100,nodeHeight:40,borderWidth:1,valueFontSize:12,labelFontSize:14,valueFormat:","},venn:{...ge.venn},cynefin:{...ge.cynefin}},sf=y((e,t="")=>Object.keys(e).reduce((r,i)=>Array.isArray(e[i])?r:typeof e[i]=="object"&&e[i]!==null?[...r,t+i,...sf(e[i],"")]:[...r,t+i],[]),"keyify"),hx=new Set(sf(af,"")),nf=af,ux={nodeColors:/^#[\da-f]{3,8}$|^rgb\([\d\s%,.]+\)$|^hsl\([\d\s%,.]+\)$|^[a-z]+$/i,filenameIcons:/^[\w-]+(?::[\w-]+)?$/,extensionIcons:/^[\w-]+(?::[\w-]+)?$/},dx=y((e,t)=>{for(const r of Object.keys(e)){const i=e[r];(r.startsWith("__")||r.includes("proto")||r.includes("constr")||typeof i!="string"||!t.test(i))&&(J.debug("sanitize deleting dictionary entry:",r,i),delete e[r])}},"sanitizeDictionaryConfig"),xn=y(e=>{if(J.debug("sanitizeDirective called with",e),!(typeof e!="object"||e==null)){if(Array.isArray(e)){e.forEach(t=>xn(t));return}for(const t of Object.keys(e)){if(J.debug("Checking key",t),t.startsWith("__")||t.includes("proto")||t.includes("constr")||!hx.has(t)||e[t]==null){J.debug("sanitize deleting key: ",t),delete e[t];continue}if(typeof e[t]=="object"){const i=ux[t];i?dx(e[t],i):(J.debug("sanitizing object",t),xn(e[t]));continue}const r=["themeCSS","fontFamily","altFontFamily"];for(const i of r)t.includes(i)&&(J.debug("sanitizing css option",t),e[t]=of(e[t]))}if(e.themeVariables)for(const t of Object.keys(e.themeVariables)){const r=e.themeVariables[t];r!=null&&r.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(e.themeVariables[t]="")}J.debug("After sanitization",e)}},"sanitizeDirective"),of=y(e=>{let t=0,r=0;for(const i of e){if(t<r)return"{ /* ERROR: Unbalanced CSS */ }";i==="{"?t++:i==="}"&&r++}return t!==r?"{ /* ERROR: Unbalanced CSS */ }":e},"sanitizeCss"),pa=Object.freeze(nf),xr=y(e=>!(e===!1||["false","null","0"].includes(String(e).trim().toLowerCase())),"evaluate"),Oe=se({},pa),Cn,yi=[],is=se({},pa),bo=y((e,t)=>{let r=se({},e),i={};for(const a of t)hf(a),i=se(i,a);if(r=se(r,i),i.theme&&i.theme in Er){const a=se({},Cn),s=se(a.themeVariables||{},i.themeVariables);r.theme&&r.theme in Er&&(r.themeVariables=Er[r.theme].getThemeVariables(s))}return is=r,df(is),is},"updateCurrentConfig"),gx=y(e=>(Oe=se({},pa),Oe=se(Oe,e),e.theme&&Er[e.theme]&&(Oe.themeVariables=Er[e.theme].getThemeVariables(e.themeVariables)),bo(Oe,yi),Oe),"setSiteConfig"),fx=y(e=>{Cn=se({},e)},"saveConfigFromInitialize"),px=y(e=>(Oe=se(Oe,e),bo(Oe,yi),Oe),"updateSiteConfig"),lf=y(()=>se({},Oe),"getSiteConfig"),cf=y(e=>(df(e),se(is,e),Xt()),"setConfig"),Xt=y(()=>se({},is),"getConfig"),hf=y(e=>{e&&(["secure",...Oe.secure??[]].forEach(t=>{Object.hasOwn(e,t)&&(J.debug(`Denied attempt to modify a secure key ${t}`,e[t]),delete e[t])}),Object.keys(e).forEach(t=>{t.startsWith("__")&&delete e[t]}),Object.keys(e).forEach(t=>{typeof e[t]=="string"&&(e[t].includes("<")||e[t].includes(">")||e[t].includes("url(data:"))&&delete e[t],typeof e[t]=="object"&&hf(e[t])}))},"sanitize"),mx=y(e=>{var t;xn(e),e.fontFamily&&!((t=e.themeVariables)!=null&&t.fontFamily)&&(e.themeVariables={...e.themeVariables,fontFamily:e.fontFamily}),yi.push(e),bo(Oe,yi)},"addDirective"),wn=y((e=Oe)=>{yi=[],bo(e,yi)},"reset"),yx={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",FLOWCHART_HTML_LABELS_DEPRECATED:"flowchart.htmlLabels is deprecated. Please use global htmlLabels instead."},Ku={},uf=y(e=>{Ku[e]||(J.warn(yx[e]),Ku[e]=!0)},"issueWarning"),df=y(e=>{e&&(e.lazyLoadedDiagrams||e.loadExternalDiagramsAtStartup)&&uf("LAZY_LOAD_DEPRECATED")},"checkConfig"),K6=y(()=>{let e={};Cn&&(e=se(e,Cn));for(const t of yi)e=se(e,t);return e},"getUserDefinedConfig"),Pe=y(e=>{var t,r;return((t=e.flowchart)==null?void 0:t.htmlLabels)!=null&&uf("FLOWCHART_HTML_LABELS_DEPRECATED"),xr(e.htmlLabels??((r=e.flowchart)==null?void 0:r.htmlLabels)??!0)},"getEffectiveHtmlLabels"),gf=/^([^\S\n\r]*)-{3}\s*[\n\r](.*?)[\n\r]\1-{3}\s*[\n\r]+/s,as=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2}
vendor: 6,594 bytes, lines 4-79
4)?/gi,bx=/\s*%%.*\n/gm,ua,ff=(ua=class extends Error{constructor(t){super(t),this.name="UnknownDiagramError"}},y(ua,"UnknownDiagramError"),ua),bi={},Zc=y(function(e,t){e=e.replace(gf,"").replace(as,"").replace(bx,` 5`);for(const[r,{detector:i}]of Object.entries(bi))if(i(e,t))return r;throw new ff(`No diagram type detected matching given configuration for text: ${e}`)},"detectType"),ql=y((...e)=>{for(const{id:t,detector:r,loader:i}of e)pf(t,r,i)},"registerLazyLoadedDiagrams"),pf=y((e,t,r)=>{bi[e]&&J.warn(`Detector with key ${e} already exists. Overwriting.`),bi[e]={detector:t,loader:r},J.debug(`Detector with key ${e} added${r?" with loader":""}`)},"addDetector"),kx=y(e=>bi[e].loader,"getDiagramLoader"),Ts=/<br\s*\/?>/gi,vx=y(e=>e?bf(e).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),xx=(()=>{let e=!1;return()=>{e||(mf(),e=!0)}})();function mf(){const e="data-temp-href-target";fa.addHook("beforeSanitizeAttributes",t=>{t.tagName==="A"&&t.hasAttribute("target")&&t.setAttribute(e,t.getAttribute("target")??"")}),fa.addHook("afterSanitizeAttributes",t=>{t.tagName==="A"&&t.hasAttribute(e)&&(t.setAttribute("target",t.getAttribute(e)??""),t.removeAttribute(e),t.getAttribute("target")==="_blank"&&t.setAttribute("rel","noopener"))})}y(mf,"setupDompurifyHooks");var yf=y(e=>(xx(),fa.sanitize(e)),"removeScript"),Zu=y((e,t)=>{if(Pe(t)){const r=t.securityLevel;r==="antiscript"||r==="strict"||r==="sandbox"?e=yf(e):r!=="loose"&&(e=bf(e),e=e.replace(/</g,"<").replace(/>/g,">"),e=e.replace(/=/g,"="),e=Sx(e))}return e},"sanitizeMore"),tr=y((e,t)=>e&&(t.dompurifyConfig?e=fa.sanitize(Zu(e,t),t.dompurifyConfig).toString():e=fa.sanitize(Zu(e,t),{FORBID_TAGS:["style"]}).toString(),e),"sanitizeText"),Cx=y((e,t)=>typeof e=="string"?tr(e,t):e.flat().map(r=>tr(r,t)),"sanitizeTextOrArray"),wx=y(e=>Ts.test(e),"hasBreaks"),Tx=y(e=>e.split(Ts),"splitBreaks"),Sx=y(e=>e.replace(/#br#/g,"<br/>"),"placeholderToBreak"),bf=y(e=>e.replace(Ts,"#br#"),"breakToPlaceholder"),_x=y(e=>{let t="";return e&&(t=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,t=CSS.escape(t)),t},"getUrl"),Bx=y(function(...e){const t=e.filter(r=>!isNaN(r));return Math.max(...t)},"getMax"),Lx=y(function(...e){const t=e.filter(r=>!isNaN(r));return Math.min(...t)},"getMin"),Ju=y(function(e){const t=e.split(/(,)/),r=[];for(let i=0;i<t.length;i++){let a=t[i];if(a===","&&i>0&&i+1<t.length){const s=t[i-1],n=t[i+1];Ax(s,n)&&(a=s+","+n,i++,r.pop())}r.push(Mx(a))}return r.join("")},"parseGenericTypes"),Ul=y((e,t)=>Math.max(0,e.split(t).length-1),"countOccurrence"),Ax=y((e,t)=>{const r=Ul(e,"~"),i=Ul(t,"~");return r===1&&i===1},"shouldCombineSets"),Mx=y(e=>{const t=Ul(e,"~");let r=!1;if(t<=1)return e;t%2!==0&&e.startsWith("~")&&(e=e.substring(1),r=!0);const i=[...e];let a=i.indexOf("~"),s=i.lastIndexOf("~");for(;a!==-1&&s!==-1&&a!==s;)i[a]="<",i[s]=">",a=i.indexOf("~"),s=i.lastIndexOf("~");return r&&i.unshift("~"),i.join("")},"processSet"),td=y(()=>window.MathMLElement!==void 0,"isMathMLSupported"),Vl=/\$\$(.*?)\$\$/g,hs=y(e=>{var t;return(((t=e.match(Vl))==null?void 0:t.length)??0)>0},"hasKatex"),Z6=y(async(e,t)=>{const r=document.createElement("div");r.innerHTML=await kf(e,t),r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0";const i=document.querySelector("body");i==null||i.insertAdjacentElement("beforeend",r);const a={width:r.clientWidth,height:r.clientHeight};return r.remove(),a},"calculateMathMLDimensions"),Fx=y(async(e,t)=>{if(!hs(e))return e;if(!(td()||t.legacyMathML||t.forceLegacyMathML))return e.replace(Vl,"MathML is unsupported in this environment.");{const{default:r}=await Pt(async()=>{const{default:a}=await import("./katex.js");return{default:a}},[]),i=t.forceLegacyMathML||!td()&&t.legacyMathML?"htmlAndMathml":"mathml";return e.split(Ts).map(a=>hs(a)?`<div style="display: flex; align-items: center; justify-content: center; white-space: nowrap;">${a}</div>`:`<div>${a}</div>`).join("").replace(Vl,(a,s)=>r.renderToString(s,{throwOnError:!0,displayMode:!0,output:i}).replace(/\n/g," ").replace(/<annotation.*<\/annotation>/g,""))}},"renderKatexUnsanitized"),kf=y(async(e,t)=>tr(await Fx(e,t),t),"renderKatexSanitized"),Ss={getRows:vx,sanitizeText:tr,sanitizeTextOrArray:Cx,hasBreaks:wx,splitBreaks:Tx,lineBreakRegex:Ts,removeScript:yf,getUrl:_x,evaluate:xr,getMax:Bx,getMin:Lx},Px=y(function(e,t){for(let r of t)e.attr(r[0],r[1])},"d3Attrs"),Ex=y(function(e,t,r){let i=new Map;return r?(i.set("width","100%"),i.set("style",`max-width: ${t}px;`)):(i.set("height",e),i.set("width",t)),i},"calculateSvgSizeAttrs"),vf=y(function(e,t,r,i){const a=Ex(t,r,i);Px(e,a)},"configureSvgSize"),Ox=y(function(e,t,r,i){const a=t.node().getBBox(),s=a.width,n=a.height;J.info(`SVG bounds: ${s}x${n}`,a);let o=0,l=0;J.info(`Graph bounds: ${o}x${l}`,e),o=s+r*2,l=n+r*2,J.info(`Calculated bounds: ${o}x${l}`),vf(t,l,o,i);const c=`${a.x-r} ${a.y-r} ${a.width+2*r} ${a.height+2*r}`;t.attr("viewBox",c)},"setupGraphViewbox"),nn={};function Yl(e){return[...e.cssRules].map(t=>t.cssText).join(` 6`)}y(Yl,"cssStyleSheetToString");var Dx=y((e,t,r,i)=>{let a="";return e in nn&&nn[e]?a=nn[e]({...r,svgId:i}):J.warn(`No theme found for ${e}`),` & { 7 font-family: ${r.fontFamily}; 8 font-size: ${r.fontSize}; 9 fill: ${r.textColor} 10 } 11 @keyframes edge-animation-frame { 12 from { 13 stroke-dashoffset: 0; 14 } 15 } 16 @keyframes dash { 17 to { 18 stroke-dashoffset: 0; 19 } 20 } 21 & .edge-animation-slow { 22 stroke-dasharray: 9,5 !important; 23 stroke-dashoffset: 900; 24 animation: dash 50s linear infinite; 25 stroke-linecap: round; 26 } 27 & .edge-animation-fast { 28 stroke-dasharray: 9,5 !important; 29 stroke-dashoffset: 900; 30 animation: dash 20s linear infinite; 31 stroke-linecap: round; 32 } 33 /* Classes common for multiple diagrams */ 34 35 & .error-icon { 36 fill: ${r.errorBkgColor}; 37 } 38 & .error-text { 39 fill: ${r.errorTextColor}; 40 stroke: ${r.errorTextColor}; 41 } 42 43 & .edge-thickness-normal { 44 stroke-width: ${r.strokeWidth??1}px; 45 } 46 & .edge-thickness-thick { 47 stroke-width: 3.5px 48 } 49 & .edge-pattern-solid { 50 stroke-dasharray: 0; 51 } 52 & .edge-thickness-invisible { 53 stroke-width: 0; 54 fill: none; 55 } 56 & .edge-pattern-dashed{ 57 stroke-dasharray: 3; 58 } 59 .edge-pattern-dotted { 60 stroke-dasharray: 2; 61 } 62 63 & .marker { 64 fill: ${r.lineColor}; 65 stroke: ${r.lineColor}; 66 } 67 & .marker.cross { 68 stroke: ${r.lineColor}; 69 } 70 71 & svg { 72 font-family: ${r.fontFamily}; 73 font-size: ${r.fontSize}; 74 } 75 & p { 76 margin: 0 77 } 78 79 ${a}
80 .node .neo-node { 81 stroke: ${r.nodeBorder}; 82 } 83 84 [data-look="neo"].node rect, [data-look="neo"].cluster rect, [data-look="neo"].node polygon { 85 stroke: ${r.useGradient?"url("+i+"-gradient)":r.nodeBorder}; 86 filter: ${r.dropShadow?r.dropShadow.replace("url(#drop-shadow)",`url(${i}-drop-shadow)`):"none"}; 87 } 88 [data-look="neo"].swimlane.cluster rect { 89 filter: none; 90 } 91 92 93 [data-look="neo"].node path { 94 stroke: ${r.useGradient?"url("+i+"-gradient)":r.nodeBorder}; 95 stroke-width: ${r.strokeWidth??1}px; 96 } 97 98 [data-look="neo"].node .outer-path { 99 filter: ${r.dropShadow?r.dropShadow.replace("url(#drop-shadow)",`url(${i}-drop-shadow)`):"none"}; 100 } 101 102 [data-look="neo"].node .neo-line path { 103 stroke: ${r.nodeBorder}; 104 filter: none; 105 } 106 107 [data-look="neo"].node circle{ 108 stroke: ${r.useGradient?"url("+i+"-gradient)":r.nodeBorder}; 109 filter: ${r.dropShadow?r.dropShadow.replace("url(#drop-shadow)",`url(${i}-drop-shadow)`):"none"}; 110 } 111 112 [data-look="neo"].node circle .state-start{ 113 fill: #000000; 114 } 115 116 [data-look="neo"].icon-shape .icon { 117 fill: ${r.useGradient?"url("+i+"-gradient)":r.nodeBorder}; 118 filter: ${r.dropShadow?r.dropShadow.replace("url(#drop-shadow)",`url(${i}-drop-shadow)`):"none"}; 119 } 120 121 [data-look="neo"].icon-shape .icon-neo path { 122 stroke: ${r.useGradient?"url("+i+"-gradient)":r.nodeBorder}; 123 filter: ${r.dropShadow?r.dropShadow.replace("url(#drop-shadow)",`url(${i}-drop-shadow)`):"none"}; 124 } 125 126 ${t} 127`},"getStyles"),Ix=y((e,t)=>{t!==void 0&&(nn[e]=t)},"addStylesForDiagram"),$x=Dx,xf={};K1(xf,{clear:()=>zx,getAccDescription:()=>Wx,getAccTitle:()=>Nx,getDiagramTitle:()=>Ux,setAccDescription:()=>Hx,setAccTitle:()=>Rx,setDiagramTitle:()=>qx});var Jc="",th="",eh="",rh=y(e=>tr(e,Xt()),"sanitizeText"),zx=y(()=>{Jc="",eh="",th=""},"clear"),Rx=y(e=>{Jc=rh(e).replace(/^\s+/g,"")},"setAccTitle"),Nx=y(()=>Jc,"getAccTitle"),Hx=y(e=>{eh=rh(e).replace(/\n\s+/g,` 128`)},"setAccDescription"),Wx=y(()=>eh,"getAccDescription"),qx=y(e=>{th=rh(e)},"setDiagramTitle"),Ux=y(()=>th,"getDiagramTitle"),ed=J,Vx=Qc,Ht=Xt,J6=cf,t8=pa,ih=y(e=>tr(e,Ht()),"sanitizeText"),Yx=Ox,Gx=y(()=>xf,"getCommonDb"),Tn={},Sn=y((e,t,r)=>{var i;Tn[e]&&ed.warn(`Diagram with id ${e} already registered. Overwriting.`),Tn[e]=t,r&&pf(e,r),Ix(e,t.styles),(i=t.injectUtils)==null||i.call(t,ed,Vx,Ht,ih,Yx,Gx(),()=>{})},"registerDiagram"),Gl=y(e=>{if(e in Tn)return Tn[e];throw new jx(e)},"getDiagram"),da,jx=(da=class extends Error{constructor(t){super(`Diagram ${t} not found.`)}},y(da,"DiagramNotFoundError"),da);function on(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Xx(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ah(e){let t,r,i;e.length!==2?(t=on,r=(o,l)=>on(e(o),l),i=(o,l)=>e(o)-l):(t=e===on||e===Xx?e:Qx,r=e,i=e);function a(o,l,c=0,h=o.length){if(c<h){if(t(l,l)!==0)return h;do{const u=c+h>>>1;r(o[u],l)<0?c=u+1:h=u}while(c<h)}return c}function s(o,l,c=0,h=o.length){if(c<h){if(t(l,l)!==0)return h;do{const u=c+h>>>1;r(o[u],l)<=0?c=u+1:h=u}while(c<h)}return c}function n(o,l,c=0,h=o.length){const u=a(o,l,c,h-1);return u>c&&i(o[u-1],l)>-i(o[u],l)?u-1:u}return{left:a,center:n,right:s}}function Qx(){return 0}function Kx(e){return e===null?NaN:+e}const Zx=ah(on),Jx=Zx.right;ah(Kx).center;class rd extends Map{constructor(t,r=rC){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[i,a]of t)this.set(i,a)}get(t){return super.get(id(this,t))}has(t){return super.has(id(this,t))}set(t,r){return super.set(tC(this,t),r)}delete(t){return super.delete(eC(this,t))}}function id({_intern:e,_key:t},r){const i=t(r);return e.has(i)?e.get(i):r}function tC({_intern:e,_key:t},r){const i=t(r);return e.has(i)?e.get(i):(e.set(i,r),r)}function eC({_intern:e,_key:t},r){const i=t(r);return e.has(i)&&(r=e.get(i),e.delete(i)),r}function rC(e){return e!==null&&typeof e=="object"?e.valueOf():e}const iC=Math.sqrt(50),aC=Math.sqrt(10),sC=Math.sqrt(2);function _n(e,t,r){const i=(t-e)/Math.max(0,r),a=Math.floor(Math.log10(i)),s=i/Math.pow(10,a),n=s>=iC?10:s>=aC?5:s>=sC?2:1;let o,l,c;return a<0?(c=Math.pow(10,-a)/n,o=Math.round(e*c),l=Math.round(t*c),o/c<e&&++o,l/c>t&&--l,c=-c):(c=Math.pow(10,a)*n,o=Math.round(e/c),l=Math.round(t/c),o*c<e&&++o,l*c>
vendor: 6,583 bytes, line 128
128t&&--l),l<o&&.5<=r&&r<2?_n(e,t,r*2):[o,l,c]}function nC(e,t,r){if(t=+t,e=+e,r=+r,!(r>0))return[];if(e===t)return[e];const i=t<e,[a,s,n]=i?_n(t,e,r):_n(e,t,r);if(!(s>=a))return[];const o=s-a+1,l=new Array(o);if(i)if(n<0)for(let c=0;c<o;++c)l[c]=(s-c)/-n;else for(let c=0;c<o;++c)l[c]=(s-c)*n;else if(n<0)for(let c=0;c<o;++c)l[c]=(a+c)/-n;else for(let c=0;c<o;++c)l[c]=(a+c)*n;return l}function jl(e,t,r){return t=+t,e=+e,r=+r,_n(e,t,r)[2]}function Xl(e,t,r){t=+t,e=+e,r=+r;const i=t<e,a=i?jl(t,e,r):jl(e,t,r);return(i?-1:1)*(a<0?1/-a:a)}function e8(e,t){let r;if(t===void 0)for(const i of e)i!=null&&(r<i||r===void 0&&i>=i)&&(r=i);else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(r<a||r===void 0&&a>=a)&&(r=a)}return r}function r8(e,t){let r;if(t===void 0)for(const i of e)i!=null&&(r>i||r===void 0&&i>=i)&&(r=i);else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(r>a||r===void 0&&a>=a)&&(r=a)}return r}function oC(e,t,r){e=+e,t=+t,r=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+r;for(var i=-1,a=Math.max(0,Math.ceil((t-e)/r))|0,s=new Array(a);++i<a;)s[i]=e+i*r;return s}function lC(e){return e}var ln=1,hl=2,Ql=3,Us=4,ad=1e-6;function cC(e){return"translate("+e+",0)"}function hC(e){return"translate(0,"+e+")"}function uC(e){return t=>+e(t)}function dC(e,t){return t=Math.max(0,e.bandwidth()-t*2)/2,e.round()&&(t=Math.round(t)),r=>+e(r)+t}function gC(){return!this.__axis}function Cf(e,t){var r=[],i=null,a=null,s=6,n=6,o=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,c=e===ln||e===Us?-1:1,h=e===Us||e===hl?"x":"y",u=e===ln||e===Ql?cC:hC;function g(d){var f=i??(t.ticks?t.ticks.apply(t,r):t.domain()),p=a??(t.tickFormat?t.tickFormat.apply(t,r):lC),m=Math.max(s,0)+o,b=t.range(),k=+b[0]+l,x=+b[b.length-1]+l,C=(t.bandwidth?dC:uC)(t.copy(),l),T=d.selection?d.selection():d,w=T.selectAll(".domain").data([null]),_=T.selectAll(".tick").data(f,t).order(),B=_.exit(),G=_.enter().append("g").attr("class","tick"),z=_.select("line"),P=_.select("text");w=w.merge(w.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),_=_.merge(G),z=z.merge(G.append("line").attr("stroke","currentColor").attr(h+"2",c*s)),P=P.merge(G.append("text").attr("fill","currentColor").attr(h,c*m).attr("dy",e===ln?"0em":e===Ql?"0.71em":"0.32em")),d!==T&&(w=w.transition(d),_=_.transition(d),z=z.transition(d),P=P.transition(d),B=B.transition(d).attr("opacity",ad).attr("transform",function(R){return isFinite(R=C(R))?u(R+l):this.getAttribute("transform")}),G.attr("opacity",ad).attr("transform",function(R){var D=this.parentNode.__axis;return u((D&&isFinite(D=D(R))?D:C(R))+l)})),B.remove(),w.attr("d",e===Us||e===hl?n?"M"+c*n+","+k+"H"+l+"V"+x+"H"+c*n:"M"+l+","+k+"V"+x:n?"M"+k+","+c*n+"V"+l+"H"+x+"V"+c*n:"M"+k+","+l+"H"+x),_.attr("opacity",1).attr("transform",function(R){return u(C(R)+l)}),z.attr(h+"2",c*s),P.attr(h,c*m).text(p),T.filter(gC).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",e===hl?"start":e===Us?"end":"middle"),T.each(function(){this.__axis=C})}return g.scale=function(d){return arguments.length?(t=d,g):t},g.ticks=function(){return r=Array.from(arguments),g},g.tickArguments=function(d){return arguments.length?(r=d==null?[]:Array.from(d),g):r.slice()},g.tickValues=function(d){return arguments.length?(i=d==null?null:Array.from(d),g):i&&i.slice()},g.tickFormat=function(d){return arguments.length?(a=d,g):a},g.tickSize=function(d){return arguments.length?(s=n=+d,g):s},g.tickSizeInner=function(d){return arguments.length?(s=+d,g):s},g.tickSizeOuter=function(d){return arguments.length?(n=+d,g):n},g.tickPadding=function(d){return arguments.length?(o=+d,g):o},g.offset=function(d){return arguments.length?(l=+d,g):l},g}function i8(e){return Cf(ln,e)}function a8(e){return Cf(Ql,e)}var fC={value:()=>{}};function wf(){for(var e=0,t=arguments.length,r={},i;e<t;++e){if(!(i=arguments[e]+"")||i in r||/[\s.]/.test(i))throw new Error("illegal type: "+i);r[i]=[]}return new cn(r)}function cn(e){this._=e}function pC(e,t){return e.trim().split(/^|\s+/).map(function(r){var i="",a=r.indexOf(".");if(a>=0&&(i=r.slice(a+1),r=r.slice(0,a)),r&&!t.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:i}})}cn.prototype=wf.prototype={constructor:cn,on:function(e,t){var r=this._,i=pC(e+"",r),a,s=-1,n=i.length;if(arguments.length<2){for(;++s<n;)if((a=(e=i[s]).type)&&(a=mC(r[a],e.name)))return a;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++s<n;)if(a=(e=i[s]).type)r[a]=sd(r[a],e.name,t);else if(t==null)for(a in r)r[a]=sd(r[a],e.name,null);return this},copy:function(){var e={},t=this._;for(var r in t)e[r]=t[r].slice();return new cn(e)},call:function(e,t){if((a=arguments.length-2)>0)for(var r=new Array(a),i=0,a,s;i<a;++i)r[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(s=this._[e],i=0,a=s.length;i<a;++i)s[i].value.apply(t,r)},apply:function(e,t,r){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var i=this._[e],a=0,s=i.length;a<s;++a)i[a].value.apply(t,r)}};function mC(e,t){for(var r=0,i=e.length,a;r<i;++r)if((a=e[r]).name===t)return a.value}function sd(e,t,r){for(var i=0,a=e.length;i<a;++i)if(e[i].name===t){e[i]=fC,e=e.slice(0,i).concat(e.slice(i+1));break}return r!=null&&e.push({name:t,value:r}),e}var Kl="http://www.w3.org/1999/xhtml";const nd={svg:"http://www.w3.org/2000/svg",xhtml:Kl,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ko(e){var t=e+="",r=t.indexOf(":");return r>=0&&(t=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),nd.hasOwnProperty(t)?{space:nd[t],local:e}:e}function yC(e){return function(){var t=this.ownerDocument,r=this.namespaceURI;return r===Kl&&t.documentElement.namespaceURI===Kl?t.createElement(e):t.createElementNS(r,e)}}function bC(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Tf(e){var t=ko(e);return(t.local?bC:yC)(t)}function kC(){}function sh(e){return e==null?kC:function(){return this.querySelector(e)}}function vC(e){typeof e!="function"&&(e=sh(e));for(var t=this._groups,r=t.length,i=new Array(r),a=0;a<r;++a)for(var s=t[a],n=s.length,o=i[a]=new Array(n),l,c,h=0;h<n;++h)(l=s[h])&&(c=e.call(l,l.__data__,h,s))&&("__data__"in l&&(c.__data__=l.__data__),o[h]=c);return new ze(i,this._parents)}function xC(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function CC(){return[]}function Sf(e){return e==null?CC:function(){return this.querySelectorAll(e)}}function wC(e){return function(){return xC(e.apply(this,arguments))}}
vendor: 3,403 bytes, line 128
128function TC(e){typeof e=="function"?e=wC(e):e=Sf(e);for(var t=this._groups,r=t.length,i=[],a=[],s=0;s<r;++s)for(var n=t[s],o=n.length,l,c=0;c<o;++c)(l=n[c])&&(i.push(e.call(l,l.__data__,c,n)),a.push(l));return new ze(i,a)}function _f(e){return function(){return this.matches(e)}}function Bf(e){return function(t){return t.matches(e)}}var SC=Array.prototype.find;function _C(e){return function(){return SC.call(this.children,e)}}function BC(){return this.firstElementChild}function LC(e){return this.select(e==null?BC:_C(typeof e=="function"?e:Bf(e)))}var AC=Array.prototype.filter;function MC(){return Array.from(this.children)}function FC(e){return function(){return AC.call(this.children,e)}}function PC(e){return this.selectAll(e==null?MC:FC(typeof e=="function"?e:Bf(e)))}function EC(e){typeof e!="function"&&(e=_f(e));for(var t=this._groups,r=t.length,i=new Array(r),a=0;a<r;++a)for(var s=t[a],n=s.length,o=i[a]=[],l,c=0;c<n;++c)(l=s[c])&&e.call(l,l.__data__,c,s)&&o.push(l);return new ze(i,this._parents)}function Lf(e){return new Array(e.length)}function OC(){return new ze(this._enter||this._groups.map(Lf),this._parents)}function Bn(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Bn.prototype={constructor:Bn,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function DC(e){return function(){return e}}function IC(e,t,r,i,a,s){for(var n=0,o,l=t.length,c=s.length;n<c;++n)(o=t[n])?(o.__data__=s[n],i[n]=o):r[n]=new Bn(e,s[n]);for(;n<l;++n)(o=t[n])&&(a[n]=o)}function $C(e,t,r,i,a,s,n){var o,l,c=new Map,h=t.length,u=s.length,g=new Array(h),d;for(o=0;o<h;++o)(l=t[o])&&(g[o]=d=n.call(l,l.__data__,o,t)+"",c.has(d)?a[o]=l:c.set(d,l));for(o=0;o<u;++o)d=n.call(e,s[o],o,s)+"",(l=c.get(d))?(i[o]=l,l.__data__=s[o],c.delete(d)):r[o]=new Bn(e,s[o]);for(o=0;o<h;++o)(l=t[o])&&c.get(g[o])===l&&(a[o]=l)}function zC(e){return e.__data__}function RC(e,t){if(!arguments.length)return Array.from(this,zC);var r=t?$C:IC,i=this._parents,a=this._groups;typeof e!="function"&&(e=DC(e));for(var s=a.length,n=new Array(s),o=new Array(s),l=new Array(s),c=0;c<s;++c){var h=i[c],u=a[c],g=u.length,d=NC(e.call(h,h&&h.__data__,c,i)),f=d.length,p=o[c]=new Array(f),m=n[c]=new Array(f),b=l[c]=new Array(g);r(h,u,p,m,b,d,t);for(var k=0,x=0,C,T;k<f;++k)if(C=p[k]){for(k>=x&&(x=k+1);!(T=m[x])&&++x<f;);C._next=T||null}}return n=new ze(n,i),n._enter=o,n._exit=l,n}function NC(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function HC(){return new ze(this._exit||this._groups.map(Lf),this._parents)}function WC(e,t,r){var i=this.enter(),a=this,s=this.exit();return typeof e=="function"?(i=e(i),i&&(i=i.selection())):i=i.append(e+""),t!=null&&(a=t(a),a&&(a=a.selection())),r==null?s.remove():r(s),i&&a?i.merge(a).order():a}function qC(e){for(var t=e.selection?e.selection():e,r=this._groups,i=t._groups,a=r.length,s=i.length,n=Math.min(a,s),o=new Array(a),l=0;l<n;++l)for(var c=r[l],h=i[l],u=c.length,g=o[l]=new Array(u),d,f=0;f<u;++f)(d=c[f]||h[f])&&(g[f]=d);for(;l<a;++l)o[l]=r[l];return new ze(o,this._parents)}function UC(){for(var e=this._groups,t=-1,r=e.length;++t<r;)for(var i=e[t],a=i.length-1,s=i[a],n;--a>=0;
vendor: 7,900 bytes, line 128
128)(n=i[a])&&(s&&n.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(n,s),s=n);return this}function VC(e){e||(e=YC);function t(u,g){return u&&g?e(u.__data__,g.__data__):!u-!g}for(var r=this._groups,i=r.length,a=new Array(i),s=0;s<i;++s){for(var n=r[s],o=n.length,l=a[s]=new Array(o),c,h=0;h<o;++h)(c=n[h])&&(l[h]=c);l.sort(t)}return new ze(a,this._parents).order()}function YC(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function GC(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function jC(){return Array.from(this)}function XC(){for(var e=this._groups,t=0,r=e.length;t<r;++t)for(var i=e[t],a=0,s=i.length;a<s;++a){var n=i[a];if(n)return n}return null}function QC(){let e=0;for(const t of this)++e;return e}function KC(){return!this.node()}function ZC(e){for(var t=this._groups,r=0,i=t.length;r<i;++r)for(var a=t[r],s=0,n=a.length,o;s<n;++s)(o=a[s])&&e.call(o,o.__data__,s,a);return this}function JC(e){return function(){this.removeAttribute(e)}}function t2(e){return function(){this.removeAttributeNS(e.space,e.local)}}function e2(e,t){return function(){this.setAttribute(e,t)}}function r2(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function i2(e,t){return function(){var r=t.apply(this,arguments);r==null?this.removeAttribute(e):this.setAttribute(e,r)}}function a2(e,t){return function(){var r=t.apply(this,arguments);r==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,r)}}function s2(e,t){var r=ko(e);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((t==null?r.local?t2:JC:typeof t=="function"?r.local?a2:i2:r.local?r2:e2)(r,t))}function Af(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function n2(e){return function(){this.style.removeProperty(e)}}function o2(e,t,r){return function(){this.style.setProperty(e,t,r)}}function l2(e,t,r){return function(){var i=t.apply(this,arguments);i==null?this.style.removeProperty(e):this.style.setProperty(e,i,r)}}function c2(e,t,r){return arguments.length>1?this.each((t==null?n2:typeof t=="function"?l2:o2)(e,t,r??"")):ma(this.node(),e)}function ma(e,t){return e.style.getPropertyValue(t)||Af(e).getComputedStyle(e,null).getPropertyValue(t)}function h2(e){return function(){delete this[e]}}function u2(e,t){return function(){this[e]=t}}function d2(e,t){return function(){var r=t.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function g2(e,t){return arguments.length>1?this.each((t==null?h2:typeof t=="function"?d2:u2)(e,t)):this.node()[e]}function Mf(e){return e.trim().split(/^|\s+/)}function nh(e){return e.classList||new Ff(e)}function Ff(e){this._node=e,this._names=Mf(e.getAttribute("class")||"")}Ff.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Pf(e,t){for(var r=nh(e),i=-1,a=t.length;++i<a;)r.add(t[i])}function Ef(e,t){for(var r=nh(e),i=-1,a=t.length;++i<a;)r.remove(t[i])}function f2(e){return function(){Pf(this,e)}}function p2(e){return function(){Ef(this,e)}}function m2(e,t){return function(){(t.apply(this,arguments)?Pf:Ef)(this,e)}}function y2(e,t){var r=Mf(e+"");if(arguments.length<2){for(var i=nh(this.node()),a=-1,s=r.length;++a<s;)if(!i.contains(r[a]))return!1;return!0}return this.each((typeof t=="function"?m2:t?f2:p2)(r,t))}function b2(){this.textContent=""}function k2(e){return function(){this.textContent=e}}function v2(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function x2(e){return arguments.length?this.each(e==null?b2:(typeof e=="function"?v2:k2)(e)):this.node().textContent}function C2(){this.innerHTML=""}function w2(e){return function(){this.innerHTML=e}}function T2(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function S2(e){return arguments.length?this.each(e==null?C2:(typeof e=="function"?T2:w2)(e)):this.node().innerHTML}function _2(){this.nextSibling&&this.parentNode.appendChild(this)}function B2(){return this.each(_2)}function L2(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function A2(){return this.each(L2)}function M2(e){var t=typeof e=="function"?e:Tf(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function F2(){return null}function P2(e,t){var r=typeof e=="function"?e:Tf(e),i=t==null?F2:typeof t=="function"?t:sh(t);return this.select(function(){return this.insertBefore(r.apply(this,arguments),i.apply(this,arguments)||null)})}function E2(){var e=this.parentNode;e&&e.removeChild(this)}function O2(){return this.each(E2)}function D2(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function I2(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function $2(e){return this.select(e?I2:D2)}function z2(e){return arguments.length?this.property("__data__",e):this.node().__data__}function R2(e){return function(t){e.call(this,t,this.__data__)}}function N2(e){return e.trim().split(/^|\s+/).map(function(t){var r="",i=t.indexOf(".");return i>=0&&(r=t.slice(i+1),t=t.slice(0,i)),{type:t,name:r}})}function H2(e){return function(){var t=this.__on;if(t){for(var r=0,i=-1,a=t.length,s;r<a;++r)s=t[r],(!e.type||s.type===e.type)&&s.name===e.name?this.removeEventListener(s.type,s.listener,s.options):t[++i]=s;++i?t.length=i:delete this.__on}}}function W2(e,t,r){return function(){var i=this.__on,a,s=R2(t);if(i){for(var n=0,o=i.length;n<o;++n)if((a=i[n]).type===e.type&&a.name===e.name){this.removeEventListener(a.type,a.listener,a.options),this.addEventListener(a.type,a.listener=s,a.options=r),a.value=t;return}}this.addEventListener(e.type,s,r),a={type:e.type,name:e.name,value:t,listener:s,options:r},i?i.push(a):this.__on=[a]}}function q2(e,t,r){var i=N2(e+""),a,s=i.length,n;if(arguments.length<2){var o=this.node().__on;if(o){for(var l=0,c=o.length,h;l<c;++l)for(a=0,h=o[l];a<s;++a)if((n=i[a]).type===h.type&&n.name===h.name)return h.value}return}for(o=t?W2:H2,a=0;a<s;++a)this.each(o(i[a],t,r));return this}function Of(e,t,r){var i=Af(e),a=i.CustomEvent;typeof a=="function"?a=new a(t,r):(a=i.document.createEvent("Event"),r?(a.initEvent(t,r.bubbles,r.cancelable),a.detail=r.detail):a.initEvent(t,!1,!1)),e.dispatchEvent(a)}function U2(e,t){return function(){return Of(this,e,t)}}function V2(e,t){return function(){return Of(this,e,t.apply(this,arguments))}}function Y2(e,t){return this.each((typeof t=="function"?V2:U2)(e,t))}function*G2(){for(var e=this._groups,t=0,r=e.length;t<r;++t)for(var i=e[t],a=0,s=i.length,n;a<s;++a)(n=i[a])&&(yield n)}var Df=[null];function ze(e,t){this._groups=e,this._parents=t}function _s(){return new ze([[document.documentElement]],Df)}function j2(){return this}ze.prototype=_s.prototype={constructor:ze,select:vC,selectAll:TC,selectChild:LC,selectChildren:PC,filter:EC,data:RC,enter:OC,exit:HC,join:WC,merge:qC,selection:j2,order:UC,sort:VC,call:GC,nodes:jC,node:XC,size:QC,empty:KC,each:ZC,attr:s2,style:c2,property:g2,classed:y2,text:x2,html:S2,raise:B2,lower:A2,append:M2,insert:P2,remove:O2,clone:$2,datum:z2,on:q2,dispatch:Y2,[Symbol.iterator]:G2};function Et(e){return typeof e=="string"?new ze([[document.querySelector(e)]],[document.documentElement]):new ze([[e]],Df)}function Bs(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function vo(e,t){var r=Object.create(e.prototype);for(var i in t)r[i]=t[i];return r}function Bi(){}var us=.7,Ln=1/us,Ki="\\s*([+-]?\\d+)\\s*",ds="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",dr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",X2=/^#([0-9a-f]{3,8})$/,Q2=new RegExp(`^rgb\\(${Ki},${Ki},${Ki}
128\\)$`),K2=new RegExp(`^rgb\\(${dr},${dr},${dr}\\)$`),Z2=new RegExp(`^rgba\\(${Ki},${Ki},${Ki},${ds}\\)$`),J2=new RegExp(`^rgba\\(${dr},${dr},${dr},${ds}\\)$`),tw=new RegExp(`^hsl\\(${ds},${dr},${dr}\\)$`),ew=new RegExp(`^hsla\\(${ds},${dr},${dr},${ds}\\)$`),od={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};Bs(Bi,ki,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:ld,formatHex:ld,formatHex8:rw,formatHsl:iw,formatRgb:cd,toString:cd});function ld(){return this.rgb().formatHex()}function rw(){return this.rgb().formatHex8()}function iw(){return $f(this).formatHsl()}function cd(){return this.rgb().formatRgb()}function ki(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=X2.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?hd(t):r===3?new Te(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Vs(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Vs(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Q2.exec(e))?new Te(t[1],t[2],t[3],1):(t=K2.exec(e))?new Te(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Z2.exec(e))?Vs(t[1],t[2],t[3],t[4]):(t=J2.exec(e))?Vs(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=tw.exec(e))?gd(t[1],t[2]/100,t[3]/100,1):(t=ew.exec(e))?gd(t[1],t[2]/100,t[3]/100,t[4]):od.hasOwnProperty(e)?hd(od[e]):e==="transparent"?new Te(NaN,NaN,NaN,0):null}function hd(e){return new Te(e>>16&255,e>>8&255,e&255,1)}
vendor: 4,383 bytes, line 128
128function Vs(e,t,r,i){return i<=0&&(e=t=r=NaN),new Te(e,t,r,i)}function If(e){return e instanceof Bi||(e=ki(e)),e?(e=e.rgb(),new Te(e.r,e.g,e.b,e.opacity)):new Te}function Zl(e,t,r,i){return arguments.length===1?If(e):new Te(e,t,r,i??1)}function Te(e,t,r,i){this.r=+e,this.g=+t,this.b=+r,this.opacity=+i}Bs(Te,Zl,vo(Bi,{brighter(e){return e=e==null?Ln:Math.pow(Ln,e),new Te(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?us:Math.pow(us,e),new Te(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Te(fi(this.r),fi(this.g),fi(this.b),An(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:ud,formatHex:ud,formatHex8:aw,formatRgb:dd,toString:dd}));function ud(){return`#${ui(this.r)}${ui(this.g)}${ui(this.b)}`}function aw(){return`#${ui(this.r)}${ui(this.g)}${ui(this.b)}${ui((isNaN(this.opacity)?1:this.opacity)*255)}`}function dd(){const e=An(this.opacity);return`${e===1?"rgb(":"rgba("}${fi(this.r)}, ${fi(this.g)}, ${fi(this.b)}${e===1?")":`, ${e})`}`}function An(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function fi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ui(e){return e=fi(e),(e<16?"0":"")+e.toString(16)}function gd(e,t,r,i){return i<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Xe(e,t,r,i)}function $f(e){if(e instanceof Xe)return new Xe(e.h,e.s,e.l,e.opacity);if(e instanceof Bi||(e=ki(e)),!e)return new Xe;if(e instanceof Xe)return e;e=e.rgb();var t=e.r/255,r=e.g/255,i=e.b/255,a=Math.min(t,r,i),s=Math.max(t,r,i),n=NaN,o=s-a,l=(s+a)/2;return o?(t===s?n=(r-i)/o+(r<i)*6:r===s?n=(i-t)/o+2:n=(t-r)/o+4,o/=l<.5?s+a:2-s-a,n*=60):o=l>0&&l<1?0:n,new Xe(n,o,l,e.opacity)}function sw(e,t,r,i){return arguments.length===1?$f(e):new Xe(e,t,r,i??1)}function Xe(e,t,r,i){this.h=+e,this.s=+t,this.l=+r,this.opacity=+i}Bs(Xe,sw,vo(Bi,{brighter(e){return e=e==null?Ln:Math.pow(Ln,e),new Xe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?us:Math.pow(us,e),new Xe(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,i=r+(r<.5?r:1-r)*t,a=2*r-i;return new Te(ul(e>=240?e-240:e+120,a,i),ul(e,a,i),ul(e<120?e+240:e-120,a,i),this.opacity)},clamp(){return new Xe(fd(this.h),Ys(this.s),Ys(this.l),An(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 e=An(this.opacity);return`${e===1?"hsl(":"hsla("}${fd(this.h)}, ${Ys(this.s)*100}%, ${Ys(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fd(e){return e=(e||0)%360,e<0?e+360:e}function Ys(e){return Math.max(0,Math.min(1,e||0))}function ul(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const nw=Math.PI/180,ow=180/Math.PI,Mn=18,zf=.96422,Rf=1,Nf=.82521,Hf=4/29,Zi=6/29,Wf=3*Zi*Zi,lw=Zi*Zi*Zi;function qf(e){if(e instanceof gr)return new gr(e.l,e.a,e.b,e.opacity);if(e instanceof Ar)return Uf(e);e instanceof Te||(e=If(e));var t=pl(e.r),r=pl(e.g),i=pl(e.b),a=dl((.2225045*t+.7168786*r+.0606169*i)/Rf),s,n;return t===r&&r===i?s=n=a:(s=dl((.4360747*t+.3850649*r+.1430804*i)/zf),n=dl((.0139322*t+.0971045*r+.7141733*i)/Nf)),new gr(116*a-16,500*(s-a),200*(a-n),e.opacity)}function cw(e,t,r,i){return arguments.length===1?qf(e):new gr(e,t,r,i??1)}function gr(e,t,r,i){this.l=+e,this.a=+t,this.b=+r,this.opacity=+i}Bs(gr,cw,vo(Bi,{brighter(e){return new gr(this.l+Mn*(e??1),this.a,this.b,this.opacity)},darker(e){return new gr(this.l-Mn*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,r=isNaN(this.b)?e:e-this.b/200;return t=zf*gl(t),e=Rf*gl(e),r=Nf*gl(r),new Te(fl(3.1338561*t-1.6168667*e-.4906146*r),fl(-.9787684*t+1.9161415*e+.033454*r),fl(.0719453*t-.2289914*e+1.4052427*r),this.opacity)}}));function dl(e){return e>lw?Math.pow(e,1/3):e/Wf+Hf}function gl(e){return e>Zi?e*e*e:Wf*(e-Hf)}function fl(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function pl(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function hw(e){if(e instanceof Ar)return new Ar(e.h,e.c,e.l,e.opacity);if(e instanceof gr||(e=qf(e)),e.a===0&&e.b===0)return new Ar(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*ow;return new Ar(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}
vendor: 12,221 bytes, line 128
128function Jl(e,t,r,i){return arguments.length===1?hw(e):new Ar(e,t,r,i??1)}function Ar(e,t,r,i){this.h=+e,this.c=+t,this.l=+r,this.opacity=+i}function Uf(e){if(isNaN(e.h))return new gr(e.l,0,0,e.opacity);var t=e.h*nw;return new gr(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}Bs(Ar,Jl,vo(Bi,{brighter(e){return new Ar(this.h,this.c,this.l+Mn*(e??1),this.opacity)},darker(e){return new Ar(this.h,this.c,this.l-Mn*(e??1),this.opacity)},rgb(){return Uf(this).rgb()}}));const xo=e=>()=>e;function Vf(e,t){return function(r){return e+r*t}}function uw(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(i){return Math.pow(e+i*t,r)}}function dw(e,t){var r=t-e;return r?Vf(e,r>180||r<-180?r-360*Math.round(r/360):r):xo(isNaN(e)?t:e)}function gw(e){return(e=+e)==1?ss:function(t,r){return r-t?uw(t,r,e):xo(isNaN(t)?r:t)}}function ss(e,t){var r=t-e;return r?Vf(e,r):xo(isNaN(e)?t:e)}const Fn=function e(t){var r=gw(t);function i(a,s){var n=r((a=Zl(a)).r,(s=Zl(s)).r),o=r(a.g,s.g),l=r(a.b,s.b),c=ss(a.opacity,s.opacity);return function(h){return a.r=n(h),a.g=o(h),a.b=l(h),a.opacity=c(h),a+""}}return i.gamma=e,i}(1);function fw(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,i=t.slice(),a;return function(s){for(a=0;a<r;++a)i[a]=e[a]*(1-s)+t[a]*s;return i}}function pw(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function mw(e,t){var r=t?t.length:0,i=e?Math.min(r,e.length):0,a=new Array(i),s=new Array(r),n;for(n=0;n<i;++n)a[n]=oh(e[n],t[n]);for(;n<r;++n)s[n]=t[n];return function(o){for(n=0;n<i;++n)s[n]=a[n](o);return s}}function yw(e,t){var r=new Date;return e=+e,t=+t,function(i){return r.setTime(e*(1-i)+t*i),r}}function Ye(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}function bw(e,t){var r={},i={},a;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(a in t)a in e?r[a]=oh(e[a],t[a]):i[a]=t[a];return function(s){for(a in r)i[a]=r[a](s);return i}}var tc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ml=new RegExp(tc.source,"g");function kw(e){return function(){return e}}function vw(e){return function(t){return e(t)+""}}function Yf(e,t){var r=tc.lastIndex=ml.lastIndex=0,i,a,s,n=-1,o=[],l=[];for(e=e+"",t=t+"";(i=tc.exec(e))&&(a=ml.exec(t));)(s=a.index)>r&&(s=t.slice(r,s),o[n]?o[n]+=s:o[++n]=s),(i=i[0])===(a=a[0])?o[n]?o[n]+=a:o[++n]=a:(o[++n]=null,l.push({i:n,x:Ye(i,a)})),r=ml.lastIndex;return r<t.length&&(s=t.slice(r),o[n]?o[n]+=s:o[++n]=s),o.length<2?l[0]?vw(l[0].x):kw(t):(t=l.length,function(c){for(var h=0,u;h<t;++h)o[(u=l[h]).i]=u.x(c);return o.join("")})}function oh(e,t){var r=typeof t,i;return t==null||r==="boolean"?xo(t):(r==="number"?Ye:r==="string"?(i=ki(t))?(t=i,Fn):Yf:t instanceof ki?Fn:t instanceof Date?yw:pw(t)?fw:Array.isArray(t)?mw:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?bw:Ye)(e,t)}function xw(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}var pd=180/Math.PI,ec={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Gf(e,t,r,i,a,s){var n,o,l;return(n=Math.sqrt(e*e+t*t))&&(e/=n,t/=n),(l=e*r+t*i)&&(r-=e*l,i-=t*l),(o=Math.sqrt(r*r+i*i))&&(r/=o,i/=o,l/=o),e*i<t*r&&(e=-e,t=-t,l=-l,n=-n),{translateX:a,translateY:s,rotate:Math.atan2(t,e)*pd,skewX:Math.atan(l)*pd,scaleX:n,scaleY:o}}var Gs;function Cw(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?ec:Gf(t.a,t.b,t.c,t.d,t.e,t.f)}function ww(e){return e==null||(Gs||(Gs=document.createElementNS("http://www.w3.org/2000/svg","g")),Gs.setAttribute("transform",e),!(e=Gs.transform.baseVal.consolidate()))?ec:(e=e.matrix,Gf(e.a,e.b,e.c,e.d,e.e,e.f))}function jf(e,t,r,i){function a(c){return c.length?c.pop()+" ":""}function s(c,h,u,g,d,f){if(c!==u||h!==g){var p=d.push("translate(",null,t,null,r);f.push({i:p-4,x:Ye(c,u)},{i:p-2,x:Ye(h,g)})}else(u||g)&&d.push("translate("+u+t+g+r)}function n(c,h,u,g){c!==h?(c-h>180?h+=360:h-c>180&&(c+=360),g.push({i:u.push(a(u)+"rotate(",null,i)-2,x:Ye(c,h)})):h&&u.push(a(u)+"rotate("+h+i)}function o(c,h,u,g){c!==h?g.push({i:u.push(a(u)+"skewX(",null,i)-2,x:Ye(c,h)}):h&&u.push(a(u)+"skewX("+h+i)}function l(c,h,u,g,d,f){if(c!==u||h!==g){var p=d.push(a(d)+"scale(",null,",",null,")");f.push({i:p-4,x:Ye(c,u)},{i:p-2,x:Ye(h,g)})}else(u!==1||g!==1)&&d.push(a(d)+"scale("+u+","+g+")")}return function(c,h){var u=[],g=[];return c=e(c),h=e(h),s(c.translateX,c.translateY,h.translateX,h.translateY,u,g),n(c.rotate,h.rotate,u,g),o(c.skewX,h.skewX,u,g),l(c.scaleX,c.scaleY,h.scaleX,h.scaleY,u,g),c=h=null,function(d){for(var f=-1,p=g.length,m;++f<p;)u[(m=g[f]).i]=m.x(d);return u.join("")}}}var Tw=jf(Cw,"px, ","px)","deg)"),Sw=jf(ww,", ",")",")");function _w(e){return function(t,r){var i=e((t=Jl(t)).h,(r=Jl(r)).h),a=ss(t.c,r.c),s=ss(t.l,r.l),n=ss(t.opacity,r.opacity);return function(o){return t.h=i(o),t.c=a(o),t.l=s(o),t.opacity=n(o),t+""}}}const s8=_w(dw);var ya=0,Xa=0,Da=0,Xf=1e3,Pn,Qa,En=0,vi=0,Co=0,gs=typeof performance=="object"&&performance.now?performance:Date,Qf=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function lh(){return vi||(Qf(Bw),vi=gs.now()+Co)}function Bw(){vi=0}function On(){this._call=this._time=this._next=null}On.prototype=Kf.prototype={constructor:On,restart:function(e,t,r){if(typeof e!="function")throw new TypeError("callback is not a function");r=(r==null?lh():+r)+(t==null?0:+t),!this._next&&Qa!==this&&(Qa?Qa._next=this:Pn=this,Qa=this),this._call=e,this._time=r,rc()},stop:function(){this._call&&(this._call=null,this._time=1/0,rc())}};function Kf(e,t,r){var i=new On;return i.restart(e,t,r),i}function Lw(){lh(),++ya;for(var e=Pn,t;e;)(t=vi-e._time)>=0&&e._call.call(void 0,t),e=e._next;--ya}function md(){vi=(En=gs.now())+Co,ya=Xa=0;try{Lw()}finally{ya=0,Mw(),vi=0}}function Aw(){var e=gs.now(),t=e-En;t>Xf&&(Co-=t,En=e)}function Mw(){for(var e,t=Pn,r,i=1/0;t;)t._call?(i>t._time&&(i=t._time),e=t,t=t._next):(r=t._next,t._next=null,t=e?e._next=r:Pn=r);Qa=e,rc(i)}function rc(e){if(!ya){Xa&&(Xa=clearTimeout(Xa));var t=e-vi;t>24?(e<1/0&&(Xa=setTimeout(md,e-gs.now()-Co)),Da&&(Da=clearInterval(Da))):(Da||(En=gs.now(),Da=setInterval(Aw,Xf)),ya=1,Qf(md))}}function yd(e,t,r){var i=new On;return t=t==null?0:+t,i.restart(a=>{i.stop(),e(a+t)},t,r),i}var Fw=wf("start","end","cancel","interrupt"),Pw=[],Zf=0,bd=1,ic=2,hn=3,kd=4,ac=5,un=6;function wo(e,t,r,i,a,s){var n=e.__transition;if(!n)e.__transition={};else if(r in n)return;Ew(e,r,{name:t,index:i,group:a,on:Fw,tween:Pw,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Zf})}function ch(e,t){var r=rr(e,t);if(r.state>Zf)throw new Error("too late; already scheduled");return r}function Cr(e,t){var r=rr(e,t);if(r.state>hn)throw new Error("too late; already running");return r}function rr(e,t){var r=e.__transition;if(!r||!(r=r[t]))throw new Error("transition not found");return r}function Ew(e,t,r){var i=e.__transition,a;i[t]=r,r.timer=Kf(s,0,r.time);function s(c){r.state=bd,r.timer.restart(n,r.delay,r.time),r.delay<=c&&n(c-r.delay)}function n(c){var h,u,g,d;if(r.state!==bd)return l();for(h in i)if(d=i[h],d.name===r.name){if(d.state===hn)return yd(n);d.state===kd?(d.state=un,d.timer.stop(),d.on.call("interrupt",e,e.__data__,d.index,d.group),delete i[h]):+h<t&&(d.state=un,d.timer.stop(),d.on.call("cancel",e,e.__data__,d.index,d.group),delete i[h])}if(yd(function(){r.state===hn&&(r.state=kd,r.timer.restart(o,r.delay,r.time),o(c))}),r.state=ic,r.on.call("start",e,e.__data__,r.index,r.group),r.state===ic){for(r.state=hn,a=new Array(g=r.tween.length),h=0,u=-1;h<g;++h)(d=r.tween[h].value.call(e,e.__data__,r.index,r.group))&&(a[++u]=d);a.length=u+1}}function o(c){for(var h=c<r.duration?r.ease.call(null,c/r.duration):(r.timer.restart(l),r.state=ac,1),u=-1,g=a.length;++u<g;)a[u].call(e,h);r.state===ac&&(r.on.call("end",e,e.__data__,r.index,r.group),l())}function l(){r.state=un,r.timer.stop(),delete i[t];for(var c in i)return;delete e.__transition}}function Ow(e,t){var r=e.__transition,i,a,s=!0,n;if(r){t=t==null?null:t+"";for(n in r){if((i=r[n]).name!==t){s=!1;continue}a=i.state>ic&&i.state<ac,i.state=un,i.timer.stop(),i.on.call(a?"interrupt":"cancel",e,e.__data__,i.index,i.group),delete r[n]}s&&delete e.__transition}}function Dw(e){return this.each(function(){Ow(this,e)})}function Iw(e,t){var r,i;return function(){var a=Cr(this,e),s=a.tween;if(s!==r){i=r=s;for(var n=0,o=i.length;n<o;++n)if(i[n].name===t){i=i.slice(),i.splice(n,1);break}}a.tween=i}}function $w(e,t,r){var i,a;if(typeof r!="function")throw new Error;return function(){var s=Cr(this,e),n=s.tween;if(n!==i){a=(i=n).slice();for(var o={name:t,value:r},l=0,c=a.length;l<c;++l)if(a[l].name===t){a[l]=o;break}l===c&&a.push(o)}s.tween=a}}function zw(e,t){var r=this._id;if(e+="",arguments.length<2){for(var i=rr(this.node(),r).tween,a=0,s=i.length,n;a<s;++a)if((n=i[a]).name===e)return n.value;return null}return this.each((t==null?Iw:$w)(r,e,t))}function hh(e,t,r){var i=e._id;return e.each(function(){var a=Cr(this,i);(a.value||(a.value={}))[t]=r.apply(this,arguments)}),function(a){return rr(a,i).value[t]}}function Jf(e,t){var r;return(typeof t=="number"?Ye:t instanceof ki?Fn:(r=ki(t))?(t=r,Fn):Yf)(e,t)}function Rw(e){return function(){this.removeAttribute(e)}}function Nw(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Hw(e,t,r){var i,a=r+"",s;return function(){var n=this.getAttribute(e);return n===a?null:n===i?s:s=t(i=n,r)}}function Ww(e,t,r){var i,a=r+"",s;return function(){var n=this.getAttributeNS(e.space,e.local);return n===a?null:n===i?s:s=t(i=n,r)}}function qw(e,t,r){var i,a,s;return function(){var n,o=r(this),l;return o==null?void this.removeAttribute(e):(n=this.getAttribute(e),l=o+"",n===l?null:n===i&&l===a?s:(a=l,s=t(i=n,o)))}}function Uw(e,t,r){var i,a,s;return function(){var n,o=r(this),l;return o==null?void this.removeAttributeNS(e.space,e.local):(n=this.getAttributeNS(e.space,e.local),l=o+"",n===l?null:n===i&&l===a?s:(a=l,s=t(i=n,o)))}}function Vw(e,t){var r=ko(e),i=r==="transform"?Sw:Jf;return this.attrTween(e,typeof t=="function"?(r.local?Uw:qw)(r,i,hh(this,"attr."+e,t)):t==null?(r.local?Nw:Rw)(r):(r.local?Ww:Hw)(r,i,t))}function Yw(e,t){return function(r){this.setAttribute(e,t.call(this,r))}}function Gw(e,t){return function(r){this.setAttributeNS(e.space,e.local,t.call(this,r))}}function jw(e,t){var r,i;function a(){var s=t.apply(this,arguments);return s!==i&&(r=(i=s)&&Gw(e,s)),r}return a._value=t,a}function Xw(e,t){var r,i;function a(){var s=t.apply(this,arguments);return s!==i&&(r=(i=s)&&Yw(e,s)),r}return a._value=t,a}function Qw(e,t){var r="attr."+e;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;var i=ko(e);return this.tween(r,(i.local?jw:Xw)(i,t))}function Kw(e,t){return function(){ch(this,e).delay=+t.apply(this,arguments)}}function Zw(e,t){return t=+t,function(){ch(this,e).delay=t}}function Jw(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Kw:Zw)(t,e)):rr(this.node(),t).delay}function tT(e,t){return function(){Cr(this,e).duration=+t.apply(this,arguments)}}function eT(e,t){return t=+t,function(){Cr(this,e).duration=t}}function rT(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?tT:eT)(t,e)):rr(this.node(),t).duration}function iT(e,t){if(typeof t!="function")throw new Error;return function(){Cr(this,e).ease=t}}function aT(e){var t=this._id;return arguments.length?this.each(iT(t,e)):rr(this.node(),t).ease}function sT(e,t){return function(){var r=t.apply(this,arguments);if(typeof r!="function")throw new Error;Cr(this,e).ease=r}}function nT(e){if(typeof e!="function")throw new Error;return this.each(sT(this._id,e))}function oT(e){typeof e!="function"&&(e=_f(e));for(var t=this._groups,r=t.length,i=new Array(r),a=0;a<r;++a)for(var s=t[a],n=s.length,o=i[a]=[],l,c=0;c<n;++c)(l=s[c])&&e.call(l,l.__data__,c,s)&&o.push(l);return new Dr(i,this._parents,this._name,this._id)}function lT(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,r=e._groups,i=t.length,a=r.length,s=Math.min(i,a),n=new Array(i),o=0;o<s;++o)for(var l=t[o],c=r[o],h=l.length,u=n[o]=new Array(h),g,d=0;d<h;++d)(g=l[d]||c[d])&&(u[d]=g);for(;o<i;
vendor: 3,352 bytes, line 128
128++o)n[o]=t[o];return new Dr(n,this._parents,this._name,this._id)}function cT(e){return(e+"").trim().split(/^|\s+/).every(function(t){var r=t.indexOf(".");return r>=0&&(t=t.slice(0,r)),!t||t==="start"})}function hT(e,t,r){var i,a,s=cT(t)?ch:Cr;return function(){var n=s(this,e),o=n.on;o!==i&&(a=(i=o).copy()).on(t,r),n.on=a}}function uT(e,t){var r=this._id;return arguments.length<2?rr(this.node(),r).on.on(e):this.each(hT(r,e,t))}function dT(e){return function(){var t=this.parentNode;for(var r in this.__transition)if(+r!==e)return;t&&t.removeChild(this)}}function gT(){return this.on("end.remove",dT(this._id))}function fT(e){var t=this._name,r=this._id;typeof e!="function"&&(e=sh(e));for(var i=this._groups,a=i.length,s=new Array(a),n=0;n<a;++n)for(var o=i[n],l=o.length,c=s[n]=new Array(l),h,u,g=0;g<l;++g)(h=o[g])&&(u=e.call(h,h.__data__,g,o))&&("__data__"in h&&(u.__data__=h.__data__),c[g]=u,wo(c[g],t,r,g,c,rr(h,r)));return new Dr(s,this._parents,t,r)}function pT(e){var t=this._name,r=this._id;typeof e!="function"&&(e=Sf(e));for(var i=this._groups,a=i.length,s=[],n=[],o=0;o<a;++o)for(var l=i[o],c=l.length,h,u=0;u<c;++u)if(h=l[u]){for(var g=e.call(h,h.__data__,u,l),d,f=rr(h,r),p=0,m=g.length;p<m;++p)(d=g[p])&&wo(d,t,r,p,g,f);s.push(g),n.push(h)}return new Dr(s,n,t,r)}var mT=_s.prototype.constructor;function yT(){return new mT(this._groups,this._parents)}function bT(e,t){var r,i,a;return function(){var s=ma(this,e),n=(this.style.removeProperty(e),ma(this,e));return s===n?null:s===r&&n===i?a:a=t(r=s,i=n)}}function tp(e){return function(){this.style.removeProperty(e)}}function kT(e,t,r){var i,a=r+"",s;return function(){var n=ma(this,e);return n===a?null:n===i?s:s=t(i=n,r)}}function vT(e,t,r){var i,a,s;return function(){var n=ma(this,e),o=r(this),l=o+"";return o==null&&(l=o=(this.style.removeProperty(e),ma(this,e))),n===l?null:n===i&&l===a?s:(a=l,s=t(i=n,o))}}function xT(e,t){var r,i,a,s="style."+t,n="end."+s,o;return function(){var l=Cr(this,e),c=l.on,h=l.value[s]==null?o||(o=tp(t)):void 0;(c!==r||a!==h)&&(i=(r=c).copy()).on(n,a=h),l.on=i}}function CT(e,t,r){var i=(e+="")=="transform"?Tw:Jf;return t==null?this.styleTween(e,bT(e,i)).on("end.style."+e,tp(e)):typeof t=="function"?this.styleTween(e,vT(e,i,hh(this,"style."+e,t))).each(xT(this._id,e)):this.styleTween(e,kT(e,i,t),r).on("end.style."+e,null)}function wT(e,t,r){return function(i){this.style.setProperty(e,t.call(this,i),r)}}function TT(e,t,r){var i,a;function s(){var n=t.apply(this,arguments);return n!==a&&(i=(a=n)&&wT(e,n,r)),i}return s._value=t,s}function ST(e,t,r){var i="style."+(e+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(t==null)return this.tween(i,null);if(typeof t!="function")throw new Error;return this.tween(i,TT(e,t,r??""))}function _T(e){return function(){this.textContent=e}}function BT(e){return function(){var t=e(this);this.textContent=t??""}}function LT(e){return this.tween("text",typeof e=="function"?BT(hh(this,"text",e)):_T(e==null?"":e+""))}function AT(e){return function(t){this.textContent=e.call(this,t)}}function MT(e){var t,r;function i(){var a=e.apply(this,arguments);return a!==r&&(t=(r=a)&&AT(a)),t}return i._value=e,i}function FT(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,MT(e))}
vendor: 3,944 bytes, line 128
128function PT(){for(var e=this._name,t=this._id,r=ep(),i=this._groups,a=i.length,s=0;s<a;++s)for(var n=i[s],o=n.length,l,c=0;c<o;++c)if(l=n[c]){var h=rr(l,t);wo(l,e,r,c,n,{time:h.time+h.delay+h.duration,delay:0,duration:h.duration,ease:h.ease})}return new Dr(i,this._parents,e,r)}function ET(){var e,t,r=this,i=r._id,a=r.size();return new Promise(function(s,n){var o={value:n},l={value:function(){--a===0&&s()}};r.each(function(){var c=Cr(this,i),h=c.on;h!==e&&(t=(e=h).copy(),t._.cancel.push(o),t._.interrupt.push(o),t._.end.push(l)),c.on=t}),a===0&&s()})}var OT=0;function Dr(e,t,r,i){this._groups=e,this._parents=t,this._name=r,this._id=i}function ep(){return++OT}var _r=_s.prototype;Dr.prototype={constructor:Dr,select:fT,selectAll:pT,selectChild:_r.selectChild,selectChildren:_r.selectChildren,filter:oT,merge:lT,selection:yT,transition:PT,call:_r.call,nodes:_r.nodes,node:_r.node,size:_r.size,empty:_r.empty,each:_r.each,on:uT,attr:Vw,attrTween:Qw,style:CT,styleTween:ST,text:LT,textTween:FT,remove:gT,tween:zw,delay:Jw,duration:rT,ease:aT,easeVarying:nT,end:ET,[Symbol.iterator]:_r[Symbol.iterator]};function DT(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var IT={time:null,delay:0,duration:250,ease:DT};function $T(e,t){for(var r;!(r=e.__transition)||!(r=r[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return r}function zT(e){var t,r;e instanceof Dr?(t=e._id,e=e._name):(t=ep(),(r=IT).time=lh(),e=e==null?null:e+"");for(var i=this._groups,a=i.length,s=0;s<a;++s)for(var n=i[s],o=n.length,l,c=0;c<o;++c)(l=n[c])&&wo(l,e,t,c,n,r||$T(l,t));return new Dr(i,this._parents,e,t)}_s.prototype.interrupt=Dw;_s.prototype.transition=zT;const sc=Math.PI,nc=2*sc,li=1e-6,RT=nc-li;function rp(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=arguments[t]+e[t]}function NT(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return rp;const r=10**t;return function(i){this._+=i[0];for(let a=1,s=i.length;a<s;++a)this._+=Math.round(arguments[a]*r)/r+i[a]}}class HT{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?rp:NT(t)}moveTo(t,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,r){this._append`L${this._x1=+t},${this._y1=+r}`}quadraticCurveTo(t,r,i,a){this._append`Q${+t},${+r},${this._x1=+i},${this._y1=+a}`}bezierCurveTo(t,r,i,a,s,n){this._append`C${+t},${+r},${+i},${+a},${this._x1=+s},${this._y1=+n}`}arcTo(t,r,i,a,s){if(t=+t,r=+r,i=+i,a=+a,s=+s,s<0)throw new Error(`negative radius: ${s}`);let n=this._x1,o=this._y1,l=i-t,c=a-r,h=n-t,u=o-r,g=h*h+u*u;if(this._x1===null)this._append`M${this._x1=t},${this._y1=r}`;else if(g>li)if(!(Math.abs(u*l-c*h)>li)||!s)this._append`L${this._x1=t},${this._y1=r}`;else{let d=i-n,f=a-o,p=l*l+c*c,m=d*d+f*f,b=Math.sqrt(p),k=Math.sqrt(g),x=s*Math.tan((sc-Math.acos((p+g-m)/(2*b*k)))/2),C=x/k,T=x/b;Math.abs(C-1)>li&&this._append`L${t+C*h},${r+C*u}`,this._append`A${s},${s},0,0,${+(u*d>h*f)},${this._x1=t+T*l},${this._y1=r+T*c}`}}arc(t,r,i,a,s,n){if(t=+t,r=+r,i=+i,n=!!n,i<0)throw new Error(`negative radius: ${i}`);let o=i*Math.cos(a),l=i*Math.sin(a),c=t+o,h=r+l,u=1^n,g=n?a-s:s-a;this._x1===null?this._append`M${c},${h}`:(Math.abs(this._x1-c)>li||Math.abs(this._y1-h)>li)&&this._append`L${c},${h}`,i&&(g<0&&(g=g%nc+nc),g>RT?this._append`A${i},${i},0,1,${u},${t-o},${r-l}A${i},${i},0,1,${u},${this._x1=c},${this._y1=h}`:g>li&&this._append`A${i},${i},0,${+(g>=sc)},${u},${this._x1=t+i*Math.cos(s)},${this._y1=r+i*Math.sin(s)}`)}rect(t,r,i,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${i=+i}v${+a}h${-i}Z`}toString(){return this._}}function WT(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Dn(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),i=e.slice(0,r);return[i.length>
vendor: 4,328 bytes, line 128
1281?i[0]+i.slice(2):i,+e.slice(r+1)]}function ba(e){return e=Dn(Math.abs(e)),e?e[1]:NaN}function qT(e,t){return function(r,i){for(var a=r.length,s=[],n=0,o=e[0],l=0;a>0&&o>0&&(l+o+1>i&&(o=Math.max(1,i-l)),s.push(r.substring(a-=o,a+o)),!((l+=o+1)>i));)o=e[n=(n+1)%e.length];return s.reverse().join(t)}}function UT(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var VT=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function In(e){if(!(t=VT.exec(e)))throw new Error("invalid format: "+e);var t;return new uh({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}In.prototype=uh.prototype;function uh(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}uh.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 YT(e){t:for(var t=e.length,r=1,i=-1,a;r<t;++r)switch(e[r]){case".":i=a=r;break;case"0":i===0&&(i=r),a=r;break;default:if(!+e[r])break t;i>0&&(i=0);break}return i>0?e.slice(0,i)+e.slice(a+1):e}var $n;function GT(e,t){var r=Dn(e,t);if(!r)return $n=void 0,e.toPrecision(t);var i=r[0],a=r[1],s=a-($n=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,n=i.length;return s===n?i:s>n?i+new Array(s-n+1).join("0"):s>0?i.slice(0,s)+"."+i.slice(s):"0."+new Array(1-s).join("0")+Dn(e,Math.max(0,t+s-1))[0]}function vd(e,t){var r=Dn(e,t);if(!r)return e+"";var i=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")}const xd={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:WT,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>vd(e*100,t),r:vd,s:GT,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Cd(e){return e}var wd=Array.prototype.map,Td=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function jT(e){var t=e.grouping===void 0||e.thousands===void 0?Cd:qT(wd.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",i=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",s=e.numerals===void 0?Cd:UT(wd.call(e.numerals,String)),n=e.percent===void 0?"%":e.percent+"",o=e.minus===void 0?"â":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(u,g){u=In(u);var d=u.fill,f=u.align,p=u.sign,m=u.symbol,b=u.zero,k=u.width,x=u.comma,C=u.precision,T=u.trim,w=u.type;w==="n"?(x=!0,w="g"):xd[w]||(C===void 0&&(C=12),T=!0,w="g"),(b||d==="0"&&f==="=")&&(b=!0,d="0",f="=");var _=(g&&g.prefix!==void 0?g.prefix:"")+(m==="$"?r:m==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():""),B=(m==="$"?i:/[%p]/.test(w)?n:"")+(g&&g.suffix!==void 0?g.suffix:""),G=xd[w],z=/[defgprs%]/.test(w);C=C===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C));function P(R){var D=_,L=B,F,A,$;if(w==="c")L=G(R)+L,R="";else{R=+R;var E=R<0||1/R<0;if(R=isNaN(R)?l:G(Math.abs(R),C),T&&(R=YT(R)),E&&+R==0&&p!=="+"&&(E=!1),D=(E?p==="("?p:o:p==="-"||p==="("?"":p)+D,L=(w==="s"&&!isNaN(R)&&$n!==void 0?Td[8+$n/3]:"")+L+(E&&p==="("?")":""),z){for(F=-1,A=R.length;++F<A;)if($=R.charCodeAt(F),48>$||$>57){L=($===46?a+R.slice(F+1):R.slice(F))+L,R=R.slice(0,F);break}}}x&&!b&&(R=t(R,1/0));var V=D.length+R.length+L.length,X=V<k?new Array(k-V+1).join(d):"";switch(x&&b&&(R=t(X+R,X.length?k-L.length:1/0),X=""),f){case"<":R=D+R+L+X;break;case"=":R=D+X+R+L;break;case"^":R=X.slice(0,V=X.length>>1)+D+R+L+X.slice(V);break;default:R=X+D+R+L;break}return s(R)}return P.toString=function(){return u+""},P}function h(u,g){var d=Math.max(-8,Math.min(8,Math.floor(ba(g)/3)))*3,f=Math.pow(10,-d),p=c((u=In(u),u.type="f",u),{suffix:Td[8+d/3]});return function(m){return p(f*m)}}return{format:c,formatPrefix:h}}var js,ip,ap;
vendor: 5,269 bytes, line 128
128XT({thousands:",",grouping:[3],currency:["$",""]});function XT(e){return js=jT(e),ip=js.format,ap=js.formatPrefix,js}function QT(e){return Math.max(0,-ba(Math.abs(e)))}function KT(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ba(t)/3)))*3-ba(Math.abs(e)))}function ZT(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,ba(t)-ba(e))+1}function JT(e){var t=0,r=e.children,i=r&&r.length;if(!i)t=1;else for(;--i>=0;)t+=r[i].value;e.value=t}function tS(){return this.eachAfter(JT)}function eS(e,t){let r=-1;for(const i of this)e.call(t,i,++r,this);return this}function rS(e,t){for(var r=this,i=[r],a,s,n=-1;r=i.pop();)if(e.call(t,r,++n,this),a=r.children)for(s=a.length-1;s>=0;--s)i.push(a[s]);return this}function iS(e,t){for(var r=this,i=[r],a=[],s,n,o,l=-1;r=i.pop();)if(a.push(r),s=r.children)for(n=0,o=s.length;n<o;++n)i.push(s[n]);for(;r=a.pop();)e.call(t,r,++l,this);return this}function aS(e,t){let r=-1;for(const i of this)if(e.call(t,i,++r,this))return i}function sS(e){return this.eachAfter(function(t){for(var r=+e(t.data)||0,i=t.children,a=i&&i.length;--a>=0;)r+=i[a].value;t.value=r})}function nS(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function oS(e){for(var t=this,r=lS(t,e),i=[t];t!==r;)t=t.parent,i.push(t);for(var a=i.length;e!==r;)i.splice(a,0,e),e=e.parent;return i}function lS(e,t){if(e===t)return e;var r=e.ancestors(),i=t.ancestors(),a=null;for(e=r.pop(),t=i.pop();e===t;)a=e,e=r.pop(),t=i.pop();return a}function cS(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function hS(){return Array.from(this)}function uS(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function dS(){var e=this,t=[];return e.each(function(r){r!==e&&t.push({source:r.parent,target:r})}),t}function*gS(){var e=this,t,r=[e],i,a,s;do for(t=r.reverse(),r=[];e=t.pop();)if(yield e,i=e.children)for(a=0,s=i.length;a<s;++a)r.push(i[a]);while(r.length)}function sp(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=mS)):t===void 0&&(t=pS);for(var r=new zn(e),i,a=[r],s,n,o,l;i=a.pop();)if((n=t(i.data))&&(l=(n=Array.from(n)).length))for(i.children=n,o=l-1;o>=0;--o)a.push(s=n[o]=new zn(n[o])),s.parent=i,s.depth=i.depth+1;return r.eachBefore(bS)}function fS(){return sp(this).eachBefore(yS)}function pS(e){return e.children}function mS(e){return Array.isArray(e)?e[1]:null}function yS(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function bS(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function zn(e){this.data=e,this.depth=this.height=0,this.parent=null}zn.prototype=sp.prototype={constructor:zn,count:tS,each:eS,eachAfter:iS,eachBefore:rS,find:aS,sum:sS,sort:nS,path:oS,ancestors:cS,descendants:hS,leaves:uS,links:dS,copy:fS,[Symbol.iterator]:gS};function kS(e){if(typeof e!="function")throw new Error;return e}function Ia(){return 0}function $a(e){return function(){return e}}function vS(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function xS(e,t,r,i,a){for(var s=e.children,n,o=-1,l=s.length,c=e.value&&(i-t)/e.value;++o<l;)n=s[o],n.y0=r,n.y1=a,n.x0=t,n.x1=t+=n.value*c}function CS(e,t,r,i,a){for(var s=e.children,n,o=-1,l=s.length,c=e.value&&(a-r)/e.value;++o<l;)n=s[o],n.x0=t,n.x1=i,n.y0=r,n.y1=r+=n.value*c}var wS=(1+Math.sqrt(5))/2;function TS(e,t,r,i,a,s){for(var n=[],o=t.children,l,c,h=0,u=0,g=o.length,d,f,p=t.value,m,b,k,x,C,T,w;h<g;){d=a-r,f=s-i;do m=o[u++].value;while(!m&&u<g);for(b=k=m,T=Math.max(f/d,d/f)/(p*e),w=m*m*T,C=Math.max(k/w,w/b);u<g;++u){if(m+=c=o[u].value,c<b&&(b=c),c>k&&(k=c),w=m*m*T,x=Math.max(k/w,w/b),x>C){m-=c;break}C=x}n.push(l={value:m,dice:d<f,children:o.slice(h,u)}),l.dice?xS(l,r,i,a,p?i+=f*m/p:s):CS(l,r,i,p?r+=d*m/p:a,s),p-=m,h=u}return n}const SS=function e(t){function r(i,a,s,n,o){TS(t,i,a,s,n,o)}return r.ratio=function(i){return e((i=+i)>1?i:1)},r}(wS);function n8(){var e=SS,t=!1,r=1,i=1,a=[0],s=Ia,n=Ia,o=Ia,l=Ia,c=Ia;function h(g){return g.x0=g.y0=0,g.x1=r,g.y1=i,g.eachBefore(u),a=[0],t&&g.eachBefore(vS),g}function u(g){var d=a[g.depth],f=g.x0+d,p=g.y0+d,m=g.x1-d,b=g.y1-d;m<f&&(f=m=(f+m)/2),b<p&&(p=b=(p+b)/2),g.x0=f,g.y0=p,g.x1=m,g.y1=b,g.children&&(d=a[g.depth+1]=s(g)/2,f+=c(g)-d,p+=n(g)-d,m-=o(g)-d,b-=l(g)-d,m<f&&(f=m=(f+m)/2),b<p&&(p=b=(p+b)/2),e(g,f,p,m,b))}return h.round=function(g){return arguments.length?(t=!!g,h):t},h.size=function(g){return arguments.length?(r=+g[0],i=+g[1],h):[r,i]},h.tile=function(g){return arguments.length?(e=kS(g),h):e},h.padding=function(g){return arguments.length?h.paddingInner(g).paddingOuter(g):h.paddingInner()},h.paddingInner=function(g){return arguments.length?(s=typeof g=="function"?g:$a(+g),h):s},h.paddingOuter=function(g){return arguments.length?h.paddingTop(g).paddingRight(g).paddingBottom(g).paddingLeft(g):h.paddingTop()},h.paddingTop=function(g){return arguments.length?(n=typeof g=="function"?g:$a(+g),h):n},h.paddingRight=function(g){return arguments.length?(o=typeof g=="function"?g:$a(+g),h):o},h.paddingBottom=function(g){return arguments.length?(l=typeof g=="function"?g:$a(+g),h):l},h.paddingLeft=function(g){return arguments.length?(c=typeof g=="function"?g:$a(+g),h):c},h}function To(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}
vendor: 4,351 bytes, line 128
128const Sd=Symbol("implicit");function np(){var e=new rd,t=[],r=[],i=Sd;function a(s){let n=e.get(s);if(n===void 0){if(i!==Sd)return i;e.set(s,n=t.push(s)-1)}return r[n%r.length]}return a.domain=function(s){if(!arguments.length)return t.slice();t=[],e=new rd;for(const n of s)e.has(n)||e.set(n,t.push(n)-1);return a},a.range=function(s){return arguments.length?(r=Array.from(s),a):r.slice()},a.unknown=function(s){return arguments.length?(i=s,a):i},a.copy=function(){return np(t,r).unknown(i)},To.apply(a,arguments),a}function _S(){var e=np().unknown(void 0),t=e.domain,r=e.range,i=0,a=1,s,n,o=!1,l=0,c=0,h=.5;delete e.unknown;function u(){var g=t().length,d=a<i,f=d?a:i,p=d?i:a;s=(p-f)/Math.max(1,g-l+c*2),o&&(s=Math.floor(s)),f+=(p-f-s*(g-l))*h,n=s*(1-l),o&&(f=Math.round(f),n=Math.round(n));var m=oC(g).map(function(b){return f+s*b});return r(d?m.reverse():m)}return e.domain=function(g){return arguments.length?(t(g),u()):t()},e.range=function(g){return arguments.length?([i,a]=g,i=+i,a=+a,u()):[i,a]},e.rangeRound=function(g){return[i,a]=g,i=+i,a=+a,o=!0,u()},e.bandwidth=function(){return n},e.step=function(){return s},e.round=function(g){return arguments.length?(o=!!g,u()):o},e.padding=function(g){return arguments.length?(l=Math.min(1,c=+g),u()):l},e.paddingInner=function(g){return arguments.length?(l=Math.min(1,g),u()):l},e.paddingOuter=function(g){return arguments.length?(c=+g,u()):c},e.align=function(g){return arguments.length?(h=Math.max(0,Math.min(1,g)),u()):h},e.copy=function(){return _S(t(),[i,a]).round(o).paddingInner(l).paddingOuter(c).align(h)},To.apply(u(),arguments)}function BS(e){return function(){return e}}function LS(e){return+e}var _d=[0,1];function Vi(e){return e}function oc(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:BS(isNaN(t)?NaN:.5)}function AS(e,t){var r;return e>t&&(r=e,e=t,t=r),function(i){return Math.max(e,Math.min(t,i))}}function MS(e,t,r){var i=e[0],a=e[1],s=t[0],n=t[1];return a<i?(i=oc(a,i),s=r(n,s)):(i=oc(i,a),s=r(s,n)),function(o){return s(i(o))}}function FS(e,t,r){var i=Math.min(e.length,t.length)-1,a=new Array(i),s=new Array(i),n=-1;for(e[i]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++n<i;)a[n]=oc(e[n],e[n+1]),s[n]=r(t[n],t[n+1]);return function(o){var l=Jx(e,o,1,i)-1;return s[l](a[l](o))}}function op(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function PS(){var e=_d,t=_d,r=oh,i,a,s,n=Vi,o,l,c;function h(){var g=Math.min(e.length,t.length);return n!==Vi&&(n=AS(e[0],e[g-1])),o=g>2?FS:MS,l=c=null,u}function u(g){return g==null||isNaN(g=+g)?s:(l||(l=o(e.map(i),t,r)))(i(n(g)))}return u.invert=function(g){return n(a((c||(c=o(t,e.map(i),Ye)))(g)))},u.domain=function(g){return arguments.length?(e=Array.from(g,LS),h()):e.slice()},u.range=function(g){return arguments.length?(t=Array.from(g),h()):t.slice()},u.rangeRound=function(g){return t=Array.from(g),r=xw,h()},u.clamp=function(g){return arguments.length?(n=g?!0:Vi,h()):n!==Vi},u.interpolate=function(g){return arguments.length?(r=g,h()):r},u.unknown=function(g){return arguments.length?(s=g,u):s},function(g,d){return i=g,a=d,h()}}function lp(){return PS()(Vi,Vi)}function ES(e,t,r,i){var a=Xl(e,t,r),s;switch(i=In(i??",f"),i.type){case"s":{var n=Math.max(Math.abs(e),Math.abs(t));return i.precision==null&&!isNaN(s=KT(a,n))&&(i.precision=s),ap(i,n)}case"":case"e":case"g":case"p":case"r":{i.precision==null&&!isNaN(s=ZT(a,Math.max(Math.abs(e),Math.abs(t))))&&(i.precision=s-(i.type==="e"));break}case"f":case"%":{i.precision==null&&!isNaN(s=QT(a))&&(i.precision=s-(i.type==="%")*2);break}}return ip(i)}function OS(e){var t=e.domain;return e.ticks=function(r){var i=t();return nC(i[0],i[i.length-1],r??10)},e.tickFormat=function(r,i){var a=t();return ES(a[0],a[a.length-1],r??10,i)},e.nice=function(r){r==null&&(r=10);var i=t(),a=0,s=i.length-1,n=i[a],o=i[s],l,c,h=10;for(o<n&&(c=n,n=o,o=c,c=a,a=s,s=c);h-- >0;){if(c=jl(n,o,r),c===l)return i[a]=n,i[s]=o,t(i);if(c>0)n=Math.floor(n/c)*c,o=Math.ceil(o/c)*c;else if(c<0)n=Math.ceil(n*c)/c,o=Math.floor(o*c)/c;else break;l=c}return e},e}function DS(){var e=lp();return e.copy=function(){return op(e,DS())},To.apply(e,arguments),OS(e)}function IS(e,t){e=e.slice();var r=0,i=e.length-1,a=e[r],s=e[i],n;return s<a&&(n=r,r=i,i=n,n=a,a=s,s=n),e[r]=t.floor(a),e[i]=t.ceil(s),e}const yl=new Date,bl=new Date;
vendor: 5,281 bytes, line 128
128function oe(e,t,r,i){function a(s){return e(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(e(s=new Date(+s)),s),a.ceil=s=>(e(s=new Date(s-1)),t(s,1),e(s),s),a.round=s=>{const n=a(s),o=a.ceil(s);return s-n<o-s?n:o},a.offset=(s,n)=>(t(s=new Date(+s),n==null?1:Math.floor(n)),s),a.range=(s,n,o)=>{const l=[];if(s=a.ceil(s),o=o==null?1:Math.floor(o),!(s<n)||!(o>0))return l;let c;do l.push(c=new Date(+s)),t(s,o),e(s);while(c<s&&s<n);return l},a.filter=s=>oe(n=>{if(n>=n)for(;e(n),!s(n);)n.setTime(n-1)},(n,o)=>{if(n>=n)if(o<0)for(;++o<=0;)for(;t(n,-1),!s(n););else for(;--o>=0;)for(;t(n,1),!s(n););}),r&&(a.count=(s,n)=>(yl.setTime(+s),bl.setTime(+n),e(yl),e(bl),Math.floor(r(yl,bl))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(i?n=>i(n)%s===0:n=>a.count(0,n)%s===0):a)),a}const Rn=oe(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Rn.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?oe(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Rn);Rn.range;const Mr=1e3,He=Mr*60,Fr=He*60,Ir=Fr*24,dh=Ir*7,Bd=Ir*30,kl=Ir*365,Yi=oe(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Mr)},(e,t)=>(t-e)/Mr,e=>e.getUTCSeconds());Yi.range;const gh=oe(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Mr)},(e,t)=>{e.setTime(+e+t*He)},(e,t)=>(t-e)/He,e=>e.getMinutes());gh.range;const $S=oe(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*He)},(e,t)=>(t-e)/He,e=>e.getUTCMinutes());$S.range;const fh=oe(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Mr-e.getMinutes()*He)},(e,t)=>{e.setTime(+e+t*Fr)},(e,t)=>(t-e)/Fr,e=>e.getHours());fh.range;const zS=oe(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Fr)},(e,t)=>(t-e)/Fr,e=>e.getUTCHours());zS.range;const Ls=oe(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*He)/Ir,e=>e.getDate()-1);Ls.range;const ph=oe(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Ir,e=>e.getUTCDate()-1);ph.range;const RS=oe(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Ir,e=>Math.floor(e/Ir));RS.range;function Li(e){return oe(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*He)/dh)}const So=Li(0),Nn=Li(1),NS=Li(2),HS=Li(3),ka=Li(4),WS=Li(5),qS=Li(6);So.range;Nn.range;NS.range;HS.range;ka.range;WS.range;qS.range;function Ai(e){return oe(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/dh)}const cp=Ai(0),Hn=Ai(1),US=Ai(2),VS=Ai(3),va=Ai(4),YS=Ai(5),GS=Ai(6);cp.range;Hn.range;US.range;VS.range;va.range;YS.range;GS.range;const mh=oe(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());mh.range;const jS=oe(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());jS.range;const $r=oe(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());$r.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:oe(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});$r.range;const xi=oe(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());xi.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:oe(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});xi.range;function XS(e,t,r,i,a,s){const n=[[Yi,1,Mr],[Yi,5,5*Mr],[Yi,15,15*Mr],[Yi,30,30*Mr],[s,1,He],[s,5,5*He],[s,15,15*He],[s,30,30*He],[a,1,Fr],[a,3,3*Fr],[a,6,6*Fr],[a,12,12*Fr],[i,1,Ir],[i,2,2*Ir],[r,1,dh],[t,1,Bd],[t,3,3*Bd],[e,1,kl]];function o(c,h,u){const g=h<c;g&&([c,h]=[h,c]);const d=u&&typeof u.range=="function"?u:l(c,h,u),f=d?d.range(c,+h+1):[];return g?f.reverse():f}function l(c,h,u){const g=Math.abs(h-c)/u,d=ah(([,,m])=>m).right(n,g);if(d===n.length)return e.every(Xl(c/kl,h/kl,u));if(d===0)return Rn.every(Math.max(Xl(c,h,u),1));const[f,p]=n[g/n[d-1][2]<n[d][2]/g?d-1:d];return f.every(p)}return[o,l]}const[QS,KS]=XS($r,mh,So,Ls,fh,gh);function vl(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function xl(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function za(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function ZS(e){var t=e.dateTime,r=e.date,i=e.time,a=e.periods,s=e.days,n=e.shortDays,o=e.months,l=e.shortMonths,c=Ra(a),h=Na(a),u=Ra(s),g=Na(s),d=Ra(n),f=Na(n),p=Ra(o),m=Na(o),b=Ra(l),k=Na(l),x={a:$,A:E,b:V,B:X,c:null,d:Ed,e:Ed,f:x_,g:F_,G:E_,H:b_,I:k_,j:v_,L:hp,m:C_,M:w_,p:et,q:ot,Q:Id,s:$d,S:T_,u:S_,U:__,V:B_,w:L_,W:A_,x:null,X:null,y:M_,Y:P_,Z:O_,"%":Dd}
vendor: 6,826 bytes, line 128
128,C={a:bt,A:pt,b:mt,B:Ft,c:null,d:Od,e:Od,f:z_,g:j_,G:Q_,H:D_,I:I_,j:$_,L:dp,m:R_,M:N_,p:Mt,q:It,Q:Id,s:$d,S:H_,u:W_,U:q_,V:U_,w:V_,W:Y_,x:null,X:null,y:G_,Y:X_,Z:K_,"%":Dd},T={a:z,A:P,b:R,B:D,c:L,d:Fd,e:Fd,f:f_,g:Md,G:Ad,H:Pd,I:Pd,j:h_,L:g_,m:c_,M:u_,p:G,q:l_,Q:m_,s:y_,S:d_,u:i_,U:a_,V:s_,w:r_,W:n_,x:F,X:A,y:Md,Y:Ad,Z:o_,"%":p_};x.x=w(r,x),x.X=w(i,x),x.c=w(t,x),C.x=w(r,C),C.X=w(i,C),C.c=w(t,C);function w(rt,Z){return function(K){var j=[],nt=-1,I=0,it=rt.length,Qt,qe,Be;for(K instanceof Date||(K=new Date(+K));++nt<it;)rt.charCodeAt(nt)===37&&(j.push(rt.slice(I,nt)),(qe=Ld[Qt=rt.charAt(++nt)])!=null?Qt=rt.charAt(++nt):qe=Qt==="e"?" ":"0",(Be=Z[Qt])&&(Qt=Be(K,qe)),j.push(Qt),I=nt+1);return j.push(rt.slice(I,nt)),j.join("")}}function _(rt,Z){return function(K){var j=za(1900,void 0,1),nt=B(j,rt,K+="",0),I,it;if(nt!=K.length)return null;if("Q"in j)return new Date(j.Q);if("s"in j)return new Date(j.s*1e3+("L"in j?j.L:0));if(Z&&!("Z"in j)&&(j.Z=0),"p"in j&&(j.H=j.H%12+j.p*12),j.m===void 0&&(j.m="q"in j?j.q:0),"V"in j){if(j.V<1||j.V>53)return null;"w"in j||(j.w=1),"Z"in j?(I=xl(za(j.y,0,1)),it=I.getUTCDay(),I=it>4||it===0?Hn.ceil(I):Hn(I),I=ph.offset(I,(j.V-1)*7),j.y=I.getUTCFullYear(),j.m=I.getUTCMonth(),j.d=I.getUTCDate()+(j.w+6)%7):(I=vl(za(j.y,0,1)),it=I.getDay(),I=it>4||it===0?Nn.ceil(I):Nn(I),I=Ls.offset(I,(j.V-1)*7),j.y=I.getFullYear(),j.m=I.getMonth(),j.d=I.getDate()+(j.w+6)%7)}else("W"in j||"U"in j)&&("w"in j||(j.w="u"in j?j.u%7:"W"in j?1:0),it="Z"in j?xl(za(j.y,0,1)).getUTCDay():vl(za(j.y,0,1)).getDay(),j.m=0,j.d="W"in j?(j.w+6)%7+j.W*7-(it+5)%7:j.w+j.U*7-(it+6)%7);return"Z"in j?(j.H+=j.Z/100|0,j.M+=j.Z%100,xl(j)):vl(j)}}function B(rt,Z,K,j){for(var nt=0,I=Z.length,it=K.length,Qt,qe;nt<I;){if(j>=it)return-1;if(Qt=Z.charCodeAt(nt++),Qt===37){if(Qt=Z.charAt(nt++),qe=T[Qt in Ld?Z.charAt(nt++):Qt],!qe||(j=qe(rt,K,j))<0)return-1}else if(Qt!=K.charCodeAt(j++))return-1}return j}function G(rt,Z,K){var j=c.exec(Z.slice(K));return j?(rt.p=h.get(j[0].toLowerCase()),K+j[0].length):-1}function z(rt,Z,K){var j=d.exec(Z.slice(K));return j?(rt.w=f.get(j[0].toLowerCase()),K+j[0].length):-1}function P(rt,Z,K){var j=u.exec(Z.slice(K));return j?(rt.w=g.get(j[0].toLowerCase()),K+j[0].length):-1}function R(rt,Z,K){var j=b.exec(Z.slice(K));return j?(rt.m=k.get(j[0].toLowerCase()),K+j[0].length):-1}function D(rt,Z,K){var j=p.exec(Z.slice(K));return j?(rt.m=m.get(j[0].toLowerCase()),K+j[0].length):-1}function L(rt,Z,K){return B(rt,t,Z,K)}function F(rt,Z,K){return B(rt,r,Z,K)}function A(rt,Z,K){return B(rt,i,Z,K)}function $(rt){return n[rt.getDay()]}function E(rt){return s[rt.getDay()]}function V(rt){return l[rt.getMonth()]}function X(rt){return o[rt.getMonth()]}function et(rt){return a[+(rt.getHours()>=12)]}function ot(rt){return 1+~~(rt.getMonth()/3)}function bt(rt){return n[rt.getUTCDay()]}function pt(rt){return s[rt.getUTCDay()]}function mt(rt){return l[rt.getUTCMonth()]}function Ft(rt){return o[rt.getUTCMonth()]}function Mt(rt){return a[+(rt.getUTCHours()>=12)]}function It(rt){return 1+~~(rt.getUTCMonth()/3)}return{format:function(rt){var Z=w(rt+="",x);return Z.toString=function(){return rt},Z},parse:function(rt){var Z=_(rt+="",!1);return Z.toString=function(){return rt},Z},utcFormat:function(rt){var Z=w(rt+="",C);return Z.toString=function(){return rt},Z},utcParse:function(rt){var Z=_(rt+="",!0);return Z.toString=function(){return rt},Z}}}var Ld={"-":"",_:" ",0:"0"},de=/^\s*\d+/,JS=/^%/,t_=/[\\^$*+?|[\]().{}]/g;function Ut(e,t,r){var i=e<0?"-":"",a=(i?-e:e)+"",s=a.length;return i+(s<r?new Array(r-s+1).join(t)+a:a)}function e_(e){return e.replace(t_,"\\$&")}function Ra(e){return new RegExp("^(?:"+e.map(e_).join("|")+")","i")}function Na(e){return new Map(e.map((t,r)=>[t.toLowerCase(),r]))}function r_(e,t,r){var i=de.exec(t.slice(r,r+1));return i?(e.w=+i[0],r+i[0].length):-1}function i_(e,t,r){var i=de.exec(t.slice(r,r+1));return i?(e.u=+i[0],r+i[0].length):-1}function a_(e,t,r){var i=de.exec(t.slice(r,r+2));return i?(e.U=+i[0],r+i[0].length):-1}function s_(e,t,r){var i=de.exec(t.slice(r,r+2));return i?(e.V=+i[0],r+i[0].length):-1}function n_(e,t,r){var i=de.exec(t.slice(r,r+2));return i?(e.W=+i[0],r+i[0].length):-1}function Ad(e,t,r){var i=de.exec(t.slice(r,r+4));return i?(e.y=+i[0],r+i[0].length):-1}function Md(e,t,r){var i=de.exec(t.slice(r,r+2));return i?(e.y=+i[0]+(+i[0]>68?1900:2e3),r+i[0].length):-1}function o_(e,t,r){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return i?(e.Z=i[1]?0:-(i[2]+(i[3]||"00")),r+i[0].length):-1}function l_(e,t,r){var i=de.exec(t.slice(r,r+1));return i?(e.q=i[0]*3-3,r+i[0].length):-1}function c_(e,t,r){var i=de.exec(t.slice(r,r+2));return i?(e.m=i[0]-1,r+i[0].length):-1}function Fd(e,t,r){var i=de.exec(t.slice(r,r+2));return i?(e.d=+i[0],r+i[0].length):-1}function h_(e,t,r){var i=de.exec(t.slice(r,r+3));return i?(e.m=0,e.d=+i[0],r+i[0].length):-1}function Pd(e,t,r){var i=de.exec(t.slice(r,r+2));return i?(e.H=+i[0],r+i[0].length):-1}function u_(e,t,r){var i=de.exec(t.slice(r,r+2));return i?(e.M=+i[0],r+i[0].length):-1}function d_(e,t,r){var i=de.exec(t.slice(r,r+2));return i?(e.S=+i[0],r+i[0].length):-1}function g_(e,t,r){var i=de.exec(t.slice(r,r+3));return i?(e.L=+i[0],r+i[0].length):-1}function f_(e,t,r){var i=de.exec(t.slice(r,r+6));return i?(e.L=Math.floor(i[0]/1e3),r+i[0].length):-1}function p_(e,t,r){var i=JS.exec(t.slice(r,r+1));return i?r+i[0].length:-1}function m_(e,t,r){var i=de.exec(t.slice(r));return i?(e.Q=+i[0],r+i[0].length):-1}function y_(e,t,r){var i=de.exec(t.slice(r));return i?(e.s=+i[0],r+i[0].length):-1}function Ed(e,t){return Ut(e.getDate(),t,2)}function b_(e,t){return Ut(e.getHours(),t,2)}function k_(e,t){return Ut(e.getHours()%12||12,t,2)}function v_(e,t){return Ut(1+Ls.count($r(e),e),t,3)}function hp(e,t){return Ut(e.getMilliseconds(),t,3)}function x_(e,t){return hp(e,t)+"000"}function C_(e,t){return Ut(e.getMonth()+1,t,2)}function w_(e,t){return Ut(e.getMinutes(),t,2)}function T_(e,t){return Ut(e.getSeconds(),t,2)}function S_(e){var t=e.getDay();return t===0?7:t}function __(e,t){return Ut(So.count($r(e)-1,e),t,2)}function up(e){var t=e.getDay();return t>=4||t===0?ka(e):ka.ceil(e)}function B_(e,t){return e=up(e),Ut(ka.count($r(e),e)+($r(e).getDay()===4),t,2)}function L_(e){return e.getDay()}function A_(e,t){return Ut(Nn.count($r(e)-1,e),t,2)}function M_(e,t){return Ut(e.getFullYear()%100,t,2)}function F_(e,t){return e=up(e),Ut(e.getFullYear()%100,t,2)}function P_(e,t){return Ut(e.getFullYear()%1e4,t,4)}function E_(e,t){var r=e.getDay();return e=r>=4||r===0?ka(e):ka.ceil(e),Ut(e.getFullYear()%1e4,t,4)}function O_(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Ut(t/60|0,"0",2)+Ut(t%60,"0",2)}function Od(e,t){return Ut(e.getUTCDate(),t,2)}function D_(e,t){return Ut(e.getUTCHours(),t,2)}function I_(e,t){return Ut(e.getUTCHours()%12||12,t,2)}
vendor: 5,199 bytes, line 128
128function $_(e,t){return Ut(1+ph.count(xi(e),e),t,3)}function dp(e,t){return Ut(e.getUTCMilliseconds(),t,3)}function z_(e,t){return dp(e,t)+"000"}function R_(e,t){return Ut(e.getUTCMonth()+1,t,2)}function N_(e,t){return Ut(e.getUTCMinutes(),t,2)}function H_(e,t){return Ut(e.getUTCSeconds(),t,2)}function W_(e){var t=e.getUTCDay();return t===0?7:t}function q_(e,t){return Ut(cp.count(xi(e)-1,e),t,2)}function gp(e){var t=e.getUTCDay();return t>=4||t===0?va(e):va.ceil(e)}function U_(e,t){return e=gp(e),Ut(va.count(xi(e),e)+(xi(e).getUTCDay()===4),t,2)}function V_(e){return e.getUTCDay()}function Y_(e,t){return Ut(Hn.count(xi(e)-1,e),t,2)}function G_(e,t){return Ut(e.getUTCFullYear()%100,t,2)}function j_(e,t){return e=gp(e),Ut(e.getUTCFullYear()%100,t,2)}function X_(e,t){return Ut(e.getUTCFullYear()%1e4,t,4)}function Q_(e,t){var r=e.getUTCDay();return e=r>=4||r===0?va(e):va.ceil(e),Ut(e.getUTCFullYear()%1e4,t,4)}function K_(){return"+0000"}function Dd(){return"%"}function Id(e){return+e}function $d(e){return Math.floor(+e/1e3)}var zi,fp;Z_({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 Z_(e){return zi=ZS(e),fp=zi.format,zi.parse,zi.utcFormat,zi.utcParse,zi}function J_(e){return new Date(e)}function tB(e){return e instanceof Date?+e:+new Date(+e)}function pp(e,t,r,i,a,s,n,o,l,c){var h=lp(),u=h.invert,g=h.domain,d=c(".%L"),f=c(":%S"),p=c("%I:%M"),m=c("%I %p"),b=c("%a %d"),k=c("%b %d"),x=c("%B"),C=c("%Y");function T(w){return(l(w)<w?d:o(w)<w?f:n(w)<w?p:s(w)<w?m:i(w)<w?a(w)<w?b:k:r(w)<w?x:C)(w)}return h.invert=function(w){return new Date(u(w))},h.domain=function(w){return arguments.length?g(Array.from(w,tB)):g().map(J_)},h.ticks=function(w){var _=g();return e(_[0],_[_.length-1],w??10)},h.tickFormat=function(w,_){return _==null?T:c(_)},h.nice=function(w){var _=g();return(!w||typeof w.range!="function")&&(w=t(_[0],_[_.length-1],w??10)),w?g(IS(_,w)):h},h.copy=function(){return op(h,pp(e,t,r,i,a,s,n,o,l,c))},h}function o8(){return To.apply(pp(QS,KS,$r,mh,So,Ls,fh,gh,Yi,fp).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function eB(e){for(var t=e.length/6|0,r=new Array(t),i=0;i<t;)r[i]="#"+e.slice(i*6,++i*6);return r}const l8=eB("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");function Jt(e){return function(){return e}}const zd=Math.abs,ke=Math.atan2,si=Math.cos,rB=Math.max,Cl=Math.min,nr=Math.sin,Gi=Math.sqrt,xe=1e-12,fs=Math.PI,Wn=fs/2,dn=2*fs;function iB(e){return e>1?0:e<-1?fs:Math.acos(e)}function Rd(e){return e>=1?Wn:e<=-1?-Wn:Math.asin(e)}function mp(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const i=Math.floor(r);if(!(i>=0))throw new RangeError(`invalid digits: ${r}`);t=i}return e},()=>new HT(t)}function aB(e){return e.innerRadius}function sB(e){return e.outerRadius}function nB(e){return e.startAngle}function oB(e){return e.endAngle}function lB(e){return e&&e.padAngle}function cB(e,t,r,i,a,s,n,o){var l=r-e,c=i-t,h=n-a,u=o-s,g=u*l-h*c;if(!(g*g<xe))return g=(h*(t-s)-u*(e-a))/g,[e+g*l,t+g*c]}function Xs(e,t,r,i,a,s,n){var o=e-r,l=t-i,c=(n?s:-s)/Gi(o*o+l*l),h=c*l,u=-c*o,g=e+h,d=t+u,f=r+h,p=i+u,m=(g+f)/2,b=(d+p)/2,k=f-g,x=p-d,C=k*k+x*x,T=a-s,w=g*p-f*d,_=(x<0?-1:1)*Gi(rB(0,T*T*C-w*w)),B=(w*x-k*_)/C,G=(-w*k-x*_)/C,z=(w*x+k*_)/C,P=(-w*k+x*_)/C,R=B-m,D=G-b,L=z-m,F=P-b;return R*R+D*D>L*L+F*F&&(B=z,G=P),{cx:B,cy:G,x01:-h,y01:-u,x11:B*(a/T-1),y11:G*(a/T-1)}}function c8(){var e=aB,t=sB,r=Jt(0),i=null,a=nB,s=oB,n=lB,o=null,l=mp(c);function c(){var h,u,g=+e.apply(this,arguments),d=+t.apply(this,arguments),f=a.apply(this,arguments)-Wn,p=s.apply(this,arguments)-Wn,m=zd(p-f),b=p>f;if(o||(o=h=l()),d<g&&(u=d,d=g,g=u),!(d>xe))o.moveTo(0,0);else if(m>dn-xe)o.moveTo(d*si(f),d*nr(f)),o.arc(0,0,d,f,p,!b),g>xe&&(o.moveTo(g*si(p),g*nr(p)),o.arc(0,0,g,p,f,b));else{var k=f,x=p,C=f,T=p,w=m,_=m,B=n.apply(this,arguments)/2,G=B>xe&&(i?+i.apply(this,arguments):Gi(g*g+d*d)),z=Cl(zd(d-g)/2,+r.apply(this,arguments)),P=z,R=z,D,L;if(G>xe){var F=Rd(G/g*nr(B)),A=Rd(G/d*nr(B));(w-=F*2)>xe?(F*=b?1:-1,C+=F,T-=F):(w=0,C=T=(f+p)/2),(_-=A*2)>xe?(A*=b?1:-1,k+=A,x-=A):(_=0,k=x=(f+p)/2)}var $=d*si(k),E=d*nr(k),V=g*si(T),X=g*nr(T);if(z>xe){var et=d*si(x),ot=d*nr(x),bt=g*si(C),pt=g*nr(C),mt;if(m<fs)if(mt=cB($,E,bt,pt,et,ot,V,X)){var Ft=$-mt[0],Mt=E-mt[1],It=et-mt[0],rt=ot-mt[1],Z=1/nr(iB((Ft*It+Mt*rt)/(Gi(Ft*Ft+Mt*Mt)*Gi(It*It+rt*rt)))/2),K=Gi(mt[0]*mt[0]+mt[1]*mt[1]);P=Cl(z,(g-K)/(Z-1)),R=Cl(z,(d-K)/(Z+1))}else P=R=0}_>xe?R>xe?(D=Xs(bt,pt,$,E,d,R,b),L=Xs(et,ot,V,X,d,R,b),o.moveTo(D.cx+D.x01,D.cy+D.y01),R<z?o.arc(D.cx,D.cy,R,ke(D.y01,D.x01),ke(L.y01,L.x01),!b):(o.arc(D.cx,D.cy,R,ke(D.y01,D.x01),ke(D.y11,D.x11),!b),o.arc(0,0,d,ke(D.cy+D.y11,D.cx+D.x11),ke(L.cy+L.y11,L.cx+L.x11),!b),o.arc(L.cx,L.cy,R,ke(L.y11,L.x11),ke(L.y01,L.x01),!b))):(o.moveTo($,E),o.arc(0,0,d,k,x,!b)):o.moveTo($,E),!(g>xe)||!(w>xe)?o.lineTo(V,X):P>
vendor: 16,384 bytes, line 128
128xe?(D=Xs(V,X,et,ot,g,-P,b),L=Xs($,E,bt,pt,g,-P,b),o.lineTo(D.cx+D.x01,D.cy+D.y01),P<z?o.arc(D.cx,D.cy,P,ke(D.y01,D.x01),ke(L.y01,L.x01),!b):(o.arc(D.cx,D.cy,P,ke(D.y01,D.x01),ke(D.y11,D.x11),!b),o.arc(0,0,g,ke(D.cy+D.y11,D.cx+D.x11),ke(L.cy+L.y11,L.cx+L.x11),b),o.arc(L.cx,L.cy,P,ke(L.y11,L.x11),ke(L.y01,L.x01),!b))):o.arc(0,0,g,T,C,b)}if(o.closePath(),h)return o=null,h+""||null}return c.centroid=function(){var h=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,u=(+a.apply(this,arguments)+ +s.apply(this,arguments))/2-fs/2;return[si(u)*h,nr(u)*h]},c.innerRadius=function(h){return arguments.length?(e=typeof h=="function"?h:Jt(+h),c):e},c.outerRadius=function(h){return arguments.length?(t=typeof h=="function"?h:Jt(+h),c):t},c.cornerRadius=function(h){return arguments.length?(r=typeof h=="function"?h:Jt(+h),c):r},c.padRadius=function(h){return arguments.length?(i=h==null?null:typeof h=="function"?h:Jt(+h),c):i},c.startAngle=function(h){return arguments.length?(a=typeof h=="function"?h:Jt(+h),c):a},c.endAngle=function(h){return arguments.length?(s=typeof h=="function"?h:Jt(+h),c):s},c.padAngle=function(h){return arguments.length?(n=typeof h=="function"?h:Jt(+h),c):n},c.context=function(h){return arguments.length?(o=h??null,c):o},c}function yp(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function bp(e){this._context=e}bp.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(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function ns(e){return new bp(e)}function hB(e){return e[0]}function uB(e){return e[1]}function dB(e,t){var r=Jt(!0),i=null,a=ns,s=null,n=mp(o);e=typeof e=="function"?e:e===void 0?hB:Jt(e),t=typeof t=="function"?t:t===void 0?uB:Jt(t);function o(l){var c,h=(l=yp(l)).length,u,g=!1,d;for(i==null&&(s=a(d=n())),c=0;c<=h;++c)!(c<h&&r(u=l[c],c,l))===g&&((g=!g)?s.lineStart():s.lineEnd()),g&&s.point(+e(u,c,l),+t(u,c,l));if(d)return s=null,d+""||null}return o.x=function(l){return arguments.length?(e=typeof l=="function"?l:Jt(+l),o):e},o.y=function(l){return arguments.length?(t=typeof l=="function"?l:Jt(+l),o):t},o.defined=function(l){return arguments.length?(r=typeof l=="function"?l:Jt(!!l),o):r},o.curve=function(l){return arguments.length?(a=l,i!=null&&(s=a(i)),o):a},o.context=function(l){return arguments.length?(l==null?i=s=null:s=a(i=l),o):i},o}function gB(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}function fB(e){return e}function h8(){var e=fB,t=gB,r=null,i=Jt(0),a=Jt(dn),s=Jt(0);function n(o){var l,c=(o=yp(o)).length,h,u,g=0,d=new Array(c),f=new Array(c),p=+i.apply(this,arguments),m=Math.min(dn,Math.max(-dn,a.apply(this,arguments)-p)),b,k=Math.min(Math.abs(m)/c,s.apply(this,arguments)),x=k*(m<0?-1:1),C;for(l=0;l<c;++l)(C=f[d[l]=l]=+e(o[l],l,o))>0&&(g+=C);for(t!=null?d.sort(function(T,w){return t(f[T],f[w])}):r!=null&&d.sort(function(T,w){return r(o[T],o[w])}),l=0,u=g?(m-c*x)/g:0;l<c;++l,p=b)h=d[l],C=f[h],b=p+(C>0?C*u:0)+x,f[h]={data:o[h],index:l,value:C,startAngle:p,endAngle:b,padAngle:k};return f}return n.value=function(o){return arguments.length?(e=typeof o=="function"?o:Jt(+o),n):e},n.sortValues=function(o){return arguments.length?(t=o,r=null,n):t},n.sort=function(o){return arguments.length?(r=o,t=null,n):r},n.startAngle=function(o){return arguments.length?(i=typeof o=="function"?o:Jt(+o),n):i},n.endAngle=function(o){return arguments.length?(a=typeof o=="function"?o:Jt(+o),n):a},n.padAngle=function(o){return arguments.length?(s=typeof o=="function"?o:Jt(+o),n):s},n}class kp{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function vp(e){return new kp(e,!0)}function xp(e){return new kp(e,!1)}function Kr(){}function qn(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function _o(e){this._context=e}_o.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:qn(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:qn(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lc(e){return new _o(e)}function Cp(e){this._context=e}Cp.prototype={areaStart:Kr,areaEnd:Kr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:qn(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function pB(e){return new Cp(e)}function wp(e){this._context=e}wp.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,i=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,i):this._context.moveTo(r,i);break;case 3:this._point=4;default:qn(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function mB(e){return new wp(e)}function Tp(e,t){this._basis=new _o(e),this._beta=t}Tp.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,r=e.length-1;if(r>0)for(var i=e[0],a=t[0],s=e[r]-i,n=t[r]-a,o=-1,l;++o<=r;)l=o/r,this._basis.point(this._beta*e[o]+(1-this._beta)*(i+l*s),this._beta*t[o]+(1-this._beta)*(a+l*n));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const yB=function e(t){function r(i){return t===1?new _o(i):new Tp(i,t)}return r.beta=function(i){return e(+i)},r}(.85);function Un(e,t,r){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-r),e._x2,e._y2)}function yh(e,t){this._context=e,this._k=(1-t)/6}yh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Un(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:Un(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Sp=function e(t){function r(i){return new yh(i,t)}return r.tension=function(i){return e(+i)},r}(0);function bh(e,t){this._context=e,this._k=(1-t)/6}bh.prototype={areaStart:Kr,areaEnd:Kr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Un(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const bB=function e(t){function r(i){return new bh(i,t)}return r.tension=function(i){return e(+i)},r}(0);function kh(e,t){this._context=e,this._k=(1-t)/6}kh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Un(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const kB=function e(t){function r(i){return new kh(i,t)}return r.tension=function(i){return e(+i)},r}(0);function vh(e,t,r){var i=e._x1,a=e._y1,s=e._x2,n=e._y2;if(e._l01_a>xe){var o=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);i=(i*o-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,a=(a*o-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>xe){var c=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,h=3*e._l23_a*(e._l23_a+e._l12_a);s=(s*c+e._x1*e._l23_2a-t*e._l12_2a)/h,n=(n*c+e._y1*e._l23_2a-r*e._l12_2a)/h}e._context.bezierCurveTo(i,a,s,n,e._x2,e._y2)}function _p(e,t){this._context=e,this._alpha=t}_p.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var r=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:vh(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Bp=function e(t){function r(i){return t?new _p(i,t):new yh(i,0)}return r.alpha=function(i){return e(+i)},r}(.5);function Lp(e,t){this._context=e,this._alpha=t}Lp.prototype={areaStart:Kr,areaEnd:Kr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){if(e=+e,t=+t,this._point){var r=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:vh(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const vB=function e(t){function r(i){return t?new Lp(i,t):new bh(i,0)}return r.alpha=function(i){return e(+i)},r}(.5);function Ap(e,t){this._context=e,this._alpha=t}Ap.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var r=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:vh(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const xB=function e(t){function r(i){return t?new Ap(i,t):new kh(i,0)}return r.alpha=function(i){return e(+i)},r}(.5);function Mp(e){this._context=e}Mp.prototype={areaStart:Kr,areaEnd:Kr,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function CB(e){return new Mp(e)}function Nd(e){return e<0?-1:1}function Hd(e,t,r){var i=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(i||a<0&&-0),n=(r-e._y1)/(a||i<0&&-0),o=(s*a+n*i)/(i+a);return(Nd(s)+Nd(n))*Math.min(Math.abs(s),Math.abs(n),.5*Math.abs(o))||0}function Wd(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function wl(e,t,r){var i=e._x0,a=e._y0,s=e._x1,n=e._y1,o=(s-i)/3;e._context.bezierCurveTo(i+o,a+o*t,s-o,n-o*r,s,n)}function Vn(e){this._context=e}Vn.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:wl(this,this._t0,Wd(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,wl(this,Wd(this,r=Hd(this,e,t)),r);break;default:wl(this,this._t0,r=Hd(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function Fp(e){this._context=new Pp(e)}(Fp.prototype=Object.create(Vn.prototype)).point=function(e,t){Vn.prototype.point.call(this,t,e)};function Pp(e){this._context=e}Pp.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo
vendor: 8,021 bytes, lines 128-134
128:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,i,a,s){this._context.bezierCurveTo(t,e,i,r,s,a)}};function Ep(e){return new Vn(e)}function Op(e){return new Fp(e)}function Dp(e){this._context=e}Dp.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var i=qd(e),a=qd(t),s=0,n=1;n<r;++s,++n)this._context.bezierCurveTo(i[0][s],a[0][s],i[1][s],a[1][s],e[n],t[n]);(this._line||this._line!==0&&r===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function qd(e){var t,r=e.length-1,i,a=new Array(r),s=new Array(r),n=new Array(r);for(a[0]=0,s[0]=2,n[0]=e[0]+2*e[1],t=1;t<r-1;++t)a[t]=1,s[t]=4,n[t]=4*e[t]+2*e[t+1];for(a[r-1]=2,s[r-1]=7,n[r-1]=8*e[r-1]+e[r],t=1;t<r;++t)i=a[t]/s[t-1],s[t]-=i,n[t]-=i*n[t-1];for(a[r-1]=n[r-1]/s[r-1],t=r-2;t>=0;--t)a[t]=(n[t]-a[t+1])/s[t];for(s[r-1]=(e[r]+a[r-1])/2,t=0;t<r-1;++t)s[t]=2*e[t+1]-a[t+1];return[a,s]}function Ip(e){return new Dp(e)}function Bo(e,t){this._context=e,this._t=t}Bo.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function $p(e){return new Bo(e,.5)}function zp(e){return new Bo(e,0)}function Rp(e){return new Bo(e,1)}function Ka(e,t,r){this.k=e,this.x=t,this.y=r}Ka.prototype={constructor:Ka,scale:function(e){return e===1?this:new Ka(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ka(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};Ka.prototype;var wB=y(e=>{var a;const{securityLevel:t}=Ht();let r=Et("body");if(t==="sandbox"){const n=((a=Et(`#i${e}`).node())==null?void 0:a.contentDocument)??document;r=Et(n.body)}return r.select(`#${e}`)},"selectSvgElement");function xh(e){return typeof e>"u"||e===null}y(xh,"isNothing");function Np(e){return typeof e=="object"&&e!==null}y(Np,"isObject");function Hp(e){return Array.isArray(e)?e:xh(e)?[]:[e]}y(Hp,"toArray");function Wp(e,t){var r,i,a,s;if(t)for(s=Object.keys(t),r=0,i=s.length;r<i;r+=1)a=s[r],e[a]=t[a];return e}y(Wp,"extend");function qp(e,t){var r="",i;for(i=0;i<t;i+=1)r+=e;return r}y(qp,"repeat");function Up(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}y(Up,"isNegativeZero");var TB=xh,SB=Np,_B=Hp,BB=qp,LB=Up,AB=Wp,ne={isNothing:TB,isObject:SB,toArray:_B,repeat:BB,isNegativeZero:LB,extend:AB};function Ch(e,t){var r="",i=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(r+='in "'+e.mark.name+'" '),r+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!t&&e.mark.snippet&&(r+=` 129 130`+e.mark.snippet),i+" "+r):i}y(Ch,"formatError");function xa(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=Ch(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}y(xa,"YAMLException$1");xa.prototype=Object.create(Error.prototype);xa.prototype.constructor=xa;xa.prototype.toString=y(function(t){return this.name+": "+Ch(this,t)},"toString");var De=xa;function gn(e,t,r,i,a){var s="",n="",o=Math.floor(a/2)-1;return i-t>o&&(s=" ... ",t=i-o+s.length),r-i>o&&(n=" ...",r=i+o-n.length),{str:s+e.slice(t,r).replace(/\t/g,"â")+n,pos:i-t+s.length}}y(gn,"getLine");function fn(e,t){return ne.repeat(" ",t-e.length)+e}y(fn,"padStart");function Vp(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),typeof t.indent!="number"&&(t.indent=1),typeof t.linesBefore!="number"&&(t.linesBefore=3),typeof t.linesAfter!="number"&&(t.linesAfter=2);for(var r=/\r?\n|\r|\0/g,i=[0],a=[],s,n=-1;s=r.exec(e.buffer);)a.push(s.index),i.push(s.index+s[0].length),e.position<=s.index&&n<0&&(n=i.length-2);n<0&&(n=i.length-1);var o="",l,c,h=Math.min(e.line+t.linesAfter,a.length).toString().length,u=t.maxLength-(t.indent+h+3);for(l=1;l<=t.linesBefore&&!(n-l<0);l++)c=gn(e.buffer,i[n-l],a[n-l],e.position-(i[n]-i[n-l]),u),o=ne.repeat(" ",t.indent)+fn((e.line-l+1).toString(),h)+" | "+c.str+` 131`+o;for(c=gn(e.buffer,i[n],a[n],e.position,u),o+=ne.repeat(" ",t.indent)+fn((e.line+1).toString(),h)+" | "+c.str+` 132`,o+=ne.repeat("-",t.indent+h+3+c.pos)+`^ 133`,l=1;l<=t.linesAfter&&!(n+l>=a.length);l++)c=gn(e.buffer,i[n+l],a[n+l],e.position-(i[n]-i[n+l]),u),o+=ne.repeat(" ",t.indent)+fn((e.line+l+1).toString(),h)+" | "+c.str+` 134`;return o.replace(/\n$/,"")}y(Vp,"makeSnippet");var MB=Vp,FB=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],PB=["scalar","sequence","mapping"];function Yp(e){var t={};return e!==null&&Object.keys(e).forEach(function(r){e[r].forEach(function(i){t[String(i)]=r})}),t}y(Yp,"compileStyleAliases");function Gp(e,t){if(t=t||{},Object.keys(t).forEach(function(r){if(FB.indexOf(r)===-1)throw new De('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(r){return r},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=Yp(t.styleAliases||null),PB.indexOf(this.kind)===-1)throw new De('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}y(Gp,"Type$1");var Se=Gp;function cc(e,t){var r=[];return e[t].forEach(function(i){var a=r.length;r.forEach(function(s,n){s.tag===i.tag&&s.kind===i.kind&&s.multi===i.multi&&(a=n)}),r[a]=i}),r}y(cc,"compileList");function jp(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},t,r;function i(a){a.multi?(e.multi[a.kind].push(a),e.multi.fallback.push(a)):e[a.kind][a.tag]=e.fallback[a.tag]=a}for(y(i,"collectType"),t=0,r=arguments.length;t<r;t+=1)arguments[t].forEach(i);return e}y(jp,"compileMap");function Yn(e){return this.extend(e)}y(Yn,"Schema$1");Yn.prototype.extend=y(function(t){var r=[],i=[];if(t instanceof Se)i.push(t);else if(Array.isArray(t))i=i.concat(t);else if(t&&(Array.isArray(t.implicit)||Array.isArray(t.explicit)))t.implicit&&(r=r.concat(t.implicit)),t.explicit&&(i=i.concat(t.explicit));else throw new De("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(s){if(!(s instanceof Se))throw new De("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(s.loadKind&&s.loadKind!=="scalar")throw new De("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
vendor: 27,338 bytes, lines 134-144
134if(s.multi)throw new De("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),i.forEach(function(s){if(!(s instanceof Se))throw new De("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var a=Object.create(Yn.prototype);return a.implicit=(this.implicit||[]).concat(r),a.explicit=(this.explicit||[]).concat(i),a.compiledImplicit=cc(a,"implicit"),a.compiledExplicit=cc(a,"explicit"),a.compiledTypeMap=jp(a.compiledImplicit,a.compiledExplicit),a},"extend");var EB=Yn,OB=new Se("tag:yaml.org,2002:str",{kind:"scalar",construct:y(function(e){return e!==null?e:""},"construct")}),DB=new Se("tag:yaml.org,2002:seq",{kind:"sequence",construct:y(function(e){return e!==null?e:[]},"construct")}),IB=new Se("tag:yaml.org,2002:map",{kind:"mapping",construct:y(function(e){return e!==null?e:{}},"construct")}),$B=new EB({explicit:[OB,DB,IB]});function Xp(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}y(Xp,"resolveYamlNull");function Qp(){return null}y(Qp,"constructYamlNull");function Kp(e){return e===null}y(Kp,"isNull");var zB=new Se("tag:yaml.org,2002:null",{kind:"scalar",resolve:Xp,construct:Qp,predicate:Kp,represent:{canonical:y(function(){return"~"},"canonical"),lowercase:y(function(){return"null"},"lowercase"),uppercase:y(function(){return"NULL"},"uppercase"),camelcase:y(function(){return"Null"},"camelcase"),empty:y(function(){return""},"empty")},defaultStyle:"lowercase"});function Zp(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}y(Zp,"resolveYamlBoolean");function Jp(e){return e==="true"||e==="True"||e==="TRUE"}y(Jp,"constructYamlBoolean");function tm(e){return Object.prototype.toString.call(e)==="[object Boolean]"}y(tm,"isBoolean");var RB=new Se("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Zp,construct:Jp,predicate:tm,represent:{lowercase:y(function(e){return e?"true":"false"},"lowercase"),uppercase:y(function(e){return e?"TRUE":"FALSE"},"uppercase"),camelcase:y(function(e){return e?"True":"False"},"camelcase")},defaultStyle:"lowercase"});function em(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}y(em,"isHexCode");function rm(e){return 48<=e&&e<=55}y(rm,"isOctCode");function im(e){return 48<=e&&e<=57}y(im,"isDecCode");function am(e){if(e===null)return!1;var t=e.length,r=0,i=!1,a;if(!t)return!1;if(a=e[r],(a==="-"||a==="+")&&(a=e[++r]),a==="0"){if(r+1===t)return!0;if(a=e[++r],a==="b"){for(r++;r<t;r++)if(a=e[r],a!=="_"){if(a!=="0"&&a!=="1")return!1;i=!0}return i&&a!=="_"}if(a==="x"){for(r++;r<t;r++)if(a=e[r],a!=="_"){if(!em(e.charCodeAt(r)))return!1;i=!0}return i&&a!=="_"}if(a==="o"){for(r++;r<t;r++)if(a=e[r],a!=="_"){if(!rm(e.charCodeAt(r)))return!1;i=!0}return i&&a!=="_"}}if(a==="_")return!1;for(;r<t;r++)if(a=e[r],a!=="_"){if(!im(e.charCodeAt(r)))return!1;i=!0}return!(!i||a==="_")}y(am,"resolveYamlInteger");function sm(e){var t=e,r=1,i;if(t.indexOf("_")!==-1&&(t=t.replace(/_/g,"")),i=t[0],(i==="-"||i==="+")&&(i==="-"&&(r=-1),t=t.slice(1),i=t[0]),t==="0")return 0;if(i==="0"){if(t[1]==="b")return r*parseInt(t.slice(2),2);if(t[1]==="x")return r*parseInt(t.slice(2),16);if(t[1]==="o")return r*parseInt(t.slice(2),8)}return r*parseInt(t,10)}y(sm,"constructYamlInteger");function nm(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!ne.isNegativeZero(e)}y(nm,"isInteger");var NB=new Se("tag:yaml.org,2002:int",{kind:"scalar",resolve:am,construct:sm,predicate:nm,represent:{binary:y(function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},"binary"),octal:y(function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},"octal"),decimal:y(function(e){return e.toString(10)},"decimal"),hexadecimal:y(function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),HB=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function om(e){return!(e===null||!HB.test(e)||e[e.length-1]==="_")}y(om,"resolveYamlFloat");function lm(e){var t,r;return t=e.replace(/_/g,"").toLowerCase(),r=t[0]==="-"?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:r*parseFloat(t,10)}y(lm,"constructYamlFloat");var WB=/^[-+]?[0-9]+e/;function cm(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ne.isNegativeZero(e))return"-0.0";return r=e.toString(10),WB.test(r)?r.replace("e",".e"):r}y(cm,"representYamlFloat");function hm(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||ne.isNegativeZero(e))}y(hm,"isFloat");var qB=new Se("tag:yaml.org,2002:float",{kind:"scalar",resolve:om,construct:lm,predicate:hm,represent:cm,defaultStyle:"lowercase"}),um=$B.extend({implicit:[zB,RB,NB,qB]}),UB=um,dm=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),gm=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function fm(e){return e===null?!1:dm.exec(e)!==null||gm.exec(e)!==null}y(fm,"resolveYamlTimestamp");function pm(e){var t,r,i,a,s,n,o,l=0,c=null,h,u,g;if(t=dm.exec(e),t===null&&(t=gm.exec(e)),t===null)throw new Error("Date resolve error");if(r=+t[1],i=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(r,i,a));if(s=+t[4],n=+t[5],o=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(h=+t[10],u=+(t[11]||0),c=(h*60+u)*6e4,t[9]==="-"&&(c=-c)),g=new Date(Date.UTC(r,i,a,s,n,o,l)),c&&g.setTime(g.getTime()-c),g}y(pm,"constructYamlTimestamp");function mm(e){return e.toISOString()}y(mm,"representYamlTimestamp");var VB=new Se("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:fm,construct:pm,instanceOf:Date,represent:mm});function ym(e){return e==="<<"||e===null}y(ym,"resolveYamlMerge");var YB=new Se("tag:yaml.org,2002:merge",{kind:"scalar",resolve:ym}),wh=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= 135\r`;function bm(e){if(e===null)return!1;var t,r,i=0,a=e.length,s=wh;for(r=0;r<a;r++)if(t=s.indexOf(e.charAt(r)),!(t>64)){if(t<0)return!1;i+=6}return i%8===0}y(bm,"resolveYamlBinary");function km(e){var t,r,i=e.replace(/[\r\n=]/g,""),a=i.length,s=wh,n=0,o=[];for(t=0;t<a;t++)t%4===0&&t&&(o.push(n>>16&255),o.push(n>>8&255),o.push(n&255)),n=n<<6|s.indexOf(i.charAt(t));return r=a%4*6,r===0?(o.push(n>>16&255),o.push(n>>8&255),o.push(n&255)):r===18?(o.push(n>>10&255),o.push(n>>2&255)):r===12&&o.push(n>>4&255),new Uint8Array(o)}y(km,"constructYamlBinary");function vm(e){var t="",r=0,i,a,s=e.length,n=wh;for(i=0;i<s;i++)i%3===0&&i&&(t+=n[r>>18&63],t+=n[r>>12&63],t+=n[r>>6&63],t+=n[r&63]),r=(r<<8)+e[i];return a=s%3,a===0?(t+=n[r>>18&63],t+=n[r>>12&63],t+=n[r>>6&63],t+=n[r&63]):a===2?(t+=n[r>>10&63],t+=n[r>>4&63],t+=n[r<<2&63],t+=n[64]):a===1&&(t+=n[r>>2&63],t+=n[r<<4&63],t+=n[64],t+=n[64]),t}y(vm,"representYamlBinary");function xm(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}y(xm,"isBinary");var GB=new Se("tag:yaml.org,2002:binary",{kind:"scalar",resolve:bm,construct:km,predicate:xm,represent:vm}),jB=Object.prototype.hasOwnProperty,XB=Object.prototype.toString;function Cm(e){if(e===null)return!0;var t=[],r,i,a,s,n,o=e;for(r=0,i=o.length;r<i;r+=1){if(a=o[r],n=!1,XB.call(a)!=="[object Object]")return!1;for(s in a)if(jB.call(a,s))if(!n)n=!0;else return!1;if(!n)return!1;if(t.indexOf(s)===-1)t.push(s);else return!1}return!0}y(Cm,"resolveYamlOmap");function wm(e){return e!==null?e:[]}y(wm,"constructYamlOmap");var QB=new Se("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Cm,construct:wm}),KB=Object.prototype.toString;function Tm(e){if(e===null)return!0;var t,r,i,a,s,n=e;for(s=new Array(n.length),t=0,r=n.length;t<r;t+=1){if(i=n[t],KB.call(i)!=="[object Object]"||(a=Object.keys(i),a.length!==1))return!1;s[t]=[a[0],i[a[0]]]}return!0}y(Tm,"resolveYamlPairs");function Sm(e){if(e===null)return[];var t,r,i,a,s,n=e;for(s=new Array(n.length),t=0,r=n.length;t<r;t+=1)i=n[t],a=Object.keys(i),s[t]=[a[0],i[a[0]]];return s}y(Sm,"constructYamlPairs");var ZB=new Se("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Tm,construct:Sm}),JB=Object.prototype.hasOwnProperty;function _m(e){if(e===null)return!0;var t,r=e;for(t in r)if(JB.call(r,t)&&r[t]!==null)return!1;return!0}y(_m,"resolveYamlSet");function Bm(e){return e!==null?e:{}}y(Bm,"constructYamlSet");var tL=new Se("tag:yaml.org,2002:set",{kind:"mapping",resolve:_m,construct:Bm}),Lm=UB.extend({implicit:[VB,YB],explicit:[GB,QB,ZB,tL]}),Zr=Object.prototype.hasOwnProperty,Gn=1,Am=2,Mm=3,jn=4,Tl=1,eL=2,Ud=3,rL=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,iL=/[\x85\u2028\u2029]/,aL=/[,\[\]\{\}]/,Fm=/^(?:!|!!|![a-z\-]+!)$/i,Pm=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function hc(e){return Object.prototype.toString.call(e)}y(hc,"_class");function Ke(e){return e===10||e===13}y(Ke,"is_EOL");function Qr(e){return e===9||e===32}y(Qr,"is_WHITE_SPACE");function Me(e){return e===9||e===32||e===10||e===13}y(Me,"is_WS_OR_EOL");function di(e){return e===44||e===91||e===93||e===123||e===125}y(di,"is_FLOW_INDICATOR");function Em(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}y(Em,"fromHexCode");function Om(e){return e===120?2:e===117?4:e===85?8:0}y(Om,"escapedHexLen");function Dm(e){return 48<=e&&e<=57?e-48:-1}y(Dm,"fromDecimalCode");function uc(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` 136`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"Â ":e===95?"Â ":e===76?"\u2028":e===80?"\u2029":""}y(uc,"simpleEscapeSequence");function Im(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}y(Im,"charFromCodepoint");function Th(e,t,r){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:r}):e[t]=r}y(Th,"setProperty");var $m=new Array(256),zm=new Array(256);for(ni=0;ni<256;ni++)$m[ni]=uc(ni)?1:0,zm[ni]=uc(ni);var ni;function Rm(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Lm,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}y(Rm,"State$1");function Sh(e,t){var r={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return r.snippet=MB(r),new De(t,r)}y(Sh,"generateError");function vt(e,t){throw Sh(e,t)}y(vt,"throwError");function ps(e,t){e.onWarning&&e.onWarning.call(null,Sh(e,t))}y(ps,"throwWarning");var Vd={YAML:y(function(t,r,i){var a,s,n;t.version!==null&&vt(t,"duplication of %YAML directive"),i.length!==1&&vt(t,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),a===null&&vt(t,"ill-formed argument of the YAML directive"),s=parseInt(a[1],10),n=parseInt(a[2],10),s!==1&&vt(t,"unacceptable YAML version of the document"),t.version=i[0],t.checkLineBreaks=n<2,n!==1&&n!==2&&ps(t,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:y(function(t,r,i){var a,s;i.length!==2&&vt(t,"TAG directive accepts exactly two arguments"),a=i[0],s=i[1],Fm.test(a)||vt(t,"ill-formed tag handle (first argument) of the TAG directive"),Zr.call(t.tagMap,a)&&vt(t,'there is a previously declared suffix for "'+a+'" tag handle'),Pm.test(s)||vt(t,"ill-formed tag prefix (second argument) of the TAG directive");try{s=decodeURIComponent(s)}catch{vt(t,"tag prefix is malformed: "+s)}t.tagMap[a]=s},"handleTagDirective")};function Or(e,t,r,i){var a,s,n,o;if(t<r){if(o=e.input.slice(t,r),i)for(a=0,s=o.length;a<s;a+=1)n=o.charCodeAt(a),n===9||32<=n&&n<=1114111||vt(e,"expected valid JSON character");else rL.test(o)&&vt(e,"the stream contains non-printable characters");e.result+=o}}y(Or,"captureSegment");function dc(e,t,r,i){var a,s,n,o;for(ne.isObject(r)||vt(e,"cannot merge mappings; the provided source object is unacceptable"),a=Object.keys(r),n=0,o=a.length;n<o;n+=1)s=a[n],Zr.call(t,s)||(Th(t,s,r[s]),i[s]=!0)}y(dc,"mergeMappings");function gi(e,t,r,i,a,s,n,o,l){var c,h;if(Array.isArray(a))for(a=Array.prototype.slice.call(a),c=0,h=a.length;c<h;c+=1)Array.isArray(a[c])&&vt(e,"nested arrays are not supported inside keys"),typeof a=="object"&&hc(a[c])==="[object Object]"&&(a[c]="[object Object]");if(typeof a=="object"&&hc(a)==="[object Object]"&&(a="[object Object]"),a=String(a),t===null&&(t={}),i==="tag:yaml.org,2002:merge")if(Array.isArray(s))for(c=0,h=s.length;c<h;c+=1)dc(e,t,s[c],r);else dc(e,t,s,r);else!e.json&&!Zr.call(r,a)&&Zr.call(t,a)&&(e.line=n||e.line,e.lineStart=o||e.lineStart,e.position=l||e.position,vt(e,"duplicated mapping key")),Th(t,a,s),delete r[a];return t}y(gi,"storeMappingPair");function Lo(e){var t;t=e.input.charCodeAt(e.position),t===10?e.position++:t===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):vt(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}y(Lo,"readLineBreak");function te(e,t,r){for(var i=0,a=e.input.charCodeAt(e.position);a!==0;){for(;Qr(a);)a===9&&e.firstTabInLine===-1&&(e.firstTabInLine=e.position),a=e.input.charCodeAt(++e.position);if(t&&a===35)do a=e.input.charCodeAt(++e.position);while(a!==10&&a!==13&&a!==0);if(Ke(a))for(Lo(e),a=e.input.charCodeAt(e.position),i++,e.lineIndent=0;a===32;)e.lineIndent++,a=e.input.charCodeAt(++e.position);else break}return r!==-1&&i!==0&&e.lineIndent<r&&ps(e,"deficient indentation"),i}y(te,"skipSeparationSpace");function As(e){var t=e.position,r;return r=e.input.charCodeAt(t),!!((r===45||r===46)&&r===e.input.charCodeAt(t+1)&&r===e.input.charCodeAt(t+2)&&(t+=3,r=e.input.charCodeAt(t),r===0||Me(r)))}y(As,"testDocumentSeparator");function Ao(e,t){t===1?e.result+=" ":t>1&&(e.result+=ne.repeat(` 137`,t-1))}y(Ao,"writeFoldedLines");function Nm(e,t,r){var i,a,s,n,o,l,c,h,u=e.kind,g=e.result,d;if(d=e.input.charCodeAt(e.position),Me(d)||di(d)||d===35||d===38||d===42||d===33||d===124||d===62||d===39||d===34||d===37||d===64||d===96||(d===63||d===45)&&(a=e.input.charCodeAt(e.position+1),Me(a)||r&&di(a)))return!1;for(e.kind="scalar",e.result="",s=n=e.position,o=!1;d!==0;){if(d===58){if(a=e.input.charCodeAt(e.position+1),Me(a)||r&&di(a))break}else if(d===35){if(i=e.input.charCodeAt(e.position-1),Me(i))break}else{if(e.position===e.lineStart&&As(e)||r&&di(d))break;if(Ke(d))if(l=e.line,c=e.lineStart,h=e.lineIndent,te(e,!1,-1),e.lineIndent>=t){o=!0,d=e.input.charCodeAt(e.position);continue}else{e.position=n,e.line=l,e.lineStart=c,e.lineIndent=h;break}}o&&(Or(e,s,n,!1),Ao(e,e.line-l),s=n=e.position,o=!1),Qr(d)||(n=e.position+1),d=e.input.charCodeAt(++e.position)}return Or(e,s,n,!1),e.result?!0:(e.kind=u,e.result=g,!1)}y(Nm,"readPlainScalar");function Hm(e,t){var r,i,a;if(r=e.input.charCodeAt(e.position),r!==39)return!1;for(e.kind="scalar",e.result="",e.position++,i=a=e.position;(r=e.input.charCodeAt(e.position))!==0;)if(r===39)if(Or(e,i,e.position,!0),r=e.input.charCodeAt(++e.position),r===39)i=e.position,e.position++,a=e.position;else return!0;else Ke(r)?(Or(e,i,a,!0),Ao(e,te(e,!1,t)),i=a=e.position):e.position===e.lineStart&&As(e)?vt(e,"unexpected end of the document within a single quoted scalar"):(e.position++,a=e.position);vt(e,"unexpected end of the stream within a single quoted scalar")}y(Hm,"readSingleQuotedScalar");function Wm(e,t){var r,i,a,s,n,o;if(o=e.input.charCodeAt(e.position),o!==34)return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;(o=e.input.charCodeAt(e.position))!==0;){if(o===34)return Or(e,r,e.position,!0),e.position++,!0;if(o===92){if(Or(e,r,e.position,!0),o=e.input.charCodeAt(++e.position),Ke(o))te(e,!1,t);else if(o<256&&$m[o])e.result+=zm[o],e.position++;else if((n=Om(o))>0){for(a=n,s=0;a>0;a--)o=e.input.charCodeAt(++e.position),(n=Em(o))>=0?s=(s<<4)+n:vt(e,"expected hexadecimal character");e.result+=Im(s),e.position++}else vt(e,"unknown escape sequence");r=i=e.position}else Ke(o)?(Or(e,r,i,!0),Ao(e,te(e,!1,t)),r=i=e.position):e.position===e.lineStart&&As(e)?vt(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}vt(e,"unexpected end of the stream within a double quoted scalar")}y(Wm,"readDoubleQuotedScalar");function qm(e,t){var r=!0,i,a,s,n=e.tag,o,l=e.anchor,c,h,u,g,d,f=Object.create(null),p,m,b,k;if(k=e.input.charCodeAt(e.position),k===91)h=93,d=!1,o=[];else if(k===123)h=125,d=!0,o={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=o),k=e.input.charCodeAt(++e.position);k!==0;){if(te(e,!0,t),k=e.input.charCodeAt(e.position),k===h)return e.position++,e.tag=n,e.anchor=l,e.kind=d?"mapping":"sequence",e.result=o,!0;r?k===44&&vt(e,"expected the node content, but found ','"):vt(e,"missed comma between flow collection entries"),m=p=b=null,u=g=!1,k===63&&(c=e.input.charCodeAt(e.position+1),Me(c)&&(u=g=!0,e.position++,te(e,!0,t))),i=e.line,a=e.lineStart,s=e.position,Ci(e,t,Gn,!1,!0),m=e.tag,p=e.result,te(e,!0,t),k=e.input.charCodeAt(e.position),(g||e.line===i)&&k===58&&(u=!0,k=e.input.charCodeAt(++e.position),te(e,!0,t),Ci(e,t,Gn,!1,!0),b=e.result),d?gi(e,o,f,m,p,b,i,a,s):u?o.push(gi(e,null,f,m,p,b,i,a,s)):o.push(p),te(e,!0,t),k=e.input.charCodeAt(e.position),k===44?(r=!0,k=e.input.charCodeAt(++e.position)):r=!1}vt(e,"unexpected end of the stream within a flow collection")}y(qm,"readFlowCollection");function Um(e,t){var r,i,a=Tl,s=!1,n=!1,o=t,l=0,c=!1,h,u;if(u=e.input.charCodeAt(e.position),u===124)i=!1;else if(u===62)i=!0;else return!1;for(e.kind="scalar",e.result="";u!==0;)if(u=e.input.charCodeAt(++e.position),u===43||u===45)Tl===a?a=u===43?Ud:eL:vt(e,"repeat of a chomping mode identifier");else if((h=Dm(u))>=0)h===0?vt(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):n?vt(e,"repeat of an indentation width identifier"):(o=t+h-1,n=!0);else break;if(Qr(u)){do u=e.input.charCodeAt(++e.position);while(Qr(u));if(u===35)do u=e.input.charCodeAt(++e.position);while(!Ke(u)&&u!==0)}for(;u!==0;){for(Lo(e),e.lineIndent=0,u=e.input.charCodeAt(e.position);(!n||e.lineIndent<o)&&u===32;)e.lineIndent++,u=e.input.charCodeAt(++e.position);if(!n&&e.lineIndent>o&&(o=e.lineIndent),Ke(u)){l++;continue}if(e.lineIndent<o){a===Ud?e.result+=ne.repeat(` 138`,s?1+l:l):a===Tl&&s&&(e.result+=` 139`);break}for(i?Qr(u)?(c=!0,e.result+=ne.repeat(` 140`,s?1+l:l)):c?(c=!1,e.result+=ne.repeat(` 141`,l+1)):l===0?s&&(e.result+=" "):e.result+=ne.repeat(` 142`,l):e.result+=ne.repeat(` 143`,s?1+l:l),s=!0,n=!0,l=0,r=e.position;!Ke(u)&&u!==0;)u=e.input.charCodeAt(++e.position);Or(e,r,e.position,!1)}return!0}y(Um,"readBlockScalar");function gc(e,t){var r,i=e.tag,a=e.anchor,s=[],n,o=!1,l;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),l=e.input.charCodeAt(e.position);l!==0&&(e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,vt(e,"tab characters must not be used in indentation")),!(l!==45||(n=e.input.charCodeAt(e.position+1),!Me(n))));){if(o=!0,e.position++,te(e,!0,-1)&&e.lineIndent<=t){s.push(null),l=e.input.charCodeAt(e.position);continue}if(r=e.line,Ci(e,t,Mm,!1,!0),s.push(e.result),te(e,!0,-1),l=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&l!==0)vt(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break}return o?(e.tag=i,e.anchor=a,e.kind="sequence",e.result=s,!0):!1}y(gc,"readBlockSequence");function Vm(e,t,r){var i,a,s,n,o,l,c=e.tag,h=e.anchor,u={},g=Object.create(null),d=null,f=null,p=null,m=!1,b=!1,k;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=u),k=e.input.charCodeAt(e.position);k!==0;){if(!m&&e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,vt(e,"tab characters must not be used in indentation")),i=e.input.charCodeAt(e.position+1),s=e.line,(k===63||k===58)&&Me(i))k===63?(m&&(gi(e,u,g,d,f,null,n,o,l),d=f=p=null),b=!0,m=!0,a=!0):m?(m=!1,a=!0):vt(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,k=i;else{if(n=e.line,o=e.lineStart,l=e.position,!Ci(e,r,Am,!1,!0))break;if(e.line===s){for(k=e.input.charCodeAt(e.position);Qr(k);)k=e.input.charCodeAt(++e.position);if(k===58)k=e.input.charCodeAt(++e.position),Me(k)||vt(e,"a whitespace character is expected after the key-value separator within a block mapping"),m&&(gi(e,u,g,d,f,null,n,o,l),d=f=p=null),b=!0,m=!1,a=!1,d=e.tag,f=e.result;else if(b)vt(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=c,e.anchor=h,!0}else if(b)vt(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=c,e.anchor=h,!0}if((e.line===s||e.lineIndent>t)&&(m&&(n=e.line,o=e.lineStart,l=e.position),Ci(e,t,jn,!0,a)&&(m?f=e.result:p=e.result),m||(gi(e,u,g,d,f,p,n,o,l),d=f=p=null),te(e,!0,-1),k=e.input.charCodeAt(e.position)),(e.line===s||e.lineIndent>t)&&k!==0)vt(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return m&&gi(e,u,g,d,f,null,n,o,l),b&&(e.tag=c,e.anchor=h,e.kind="mapping",e.result=u),b}y(Vm,"readBlockMapping");function Ym(e){var t,r=!1,i=!1,a,s,n;if(n=e.input.charCodeAt(e.position),n!==33)return!1;if(e.tag!==null&&vt(e,"duplication of a tag property"),n=e.input.charCodeAt(++e.position),n===60?(r=!0,n=e.input.charCodeAt(++e.position)):n===33?(i=!0,a="!!",n=e.input.charCodeAt(++e.position)):a="!",t=e.position,r){do n=e.input.charCodeAt(++e.position);while(n!==0&&n!==62);e.position<e.length?(s=e.input.slice(t,e.position),n=e.input.charCodeAt(++e.position)):vt(e,"unexpected end of the stream within a verbatim tag")}else{for(;n!==0&&!Me(n);)n===33&&(i?vt(e,"tag suffix cannot contain exclamation marks"):(a=e.input.slice(t-1,e.position+1),Fm.test(a)||vt(e,"named tag handle cannot contain such characters"),i=!0,t=e.position+1)),n=e.input.charCodeAt(++e.position);s=e.input.slice(t,e.position),aL.test(s)&&vt(e,"tag suffix cannot contain flow indicator characters")}s&&!Pm.test(s)&&vt(e,"tag name cannot contain such characters: "+s);try{s=decodeURIComponent(s)}catch{vt(e,"tag name is malformed: "+s)}return r?e.tag=s:Zr.call(e.tagMap,a)?e.tag=e.tagMap[a]+s:a==="!"?e.tag="!"+s:a==="!!"?e.tag="tag:yaml.org,2002:"+s:vt(e,'undeclared tag handle "'+a+'"'),!0}y(Ym,"readTagProperty");function Gm(e){var t,r;if(r=e.input.charCodeAt(e.position),r!==38)return!1;for(e.anchor!==null&&vt(e,"duplication of an anchor property"),r=e.input.charCodeAt(++e.position),t=e.position;r!==0&&!Me(r)&&!di(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&vt(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}y(Gm,"readAnchorProperty");function jm(e){var t,r,i;if(i=e.input.charCodeAt(e.position),i!==42)return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;i!==0&&!Me(i)&&!di(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&vt(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),Zr.call(e.anchorMap,r)||vt(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],te(e,!0,-1),!0}y(jm,"readAlias");function Ci(e,t,r,i,a){var s,n,o,l=1,c=!1,h=!1,u,g,d,f,p,m;if(e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,s=n=o=jn===r||Mm===r,i&&te(e,!0,-1)&&(c=!0,e.lineIndent>t?l=1:e.lineIndent===t?l=0:e.lineIndent<t&&(l=-1)),l===1)for(;Ym(e)||Gm(e);)te(e,!0,-1)?(c=!0,o=s,e.lineIndent>t?l=1:e.lineIndent===t?l=0:e.lineIndent<t&&(l=-1)):o=!1;if(o&&(o=c||a),(l===1||jn===r)&&(Gn===r||Am===r?p=t:p=t+1,m=e.position-e.lineStart,l===1?o&&(gc(e,m)||Vm(e,m,p))||qm(e,p)?h=!0:(n&&Um(e,p)||Hm(e,p)||Wm(e,p)?h=!0:jm(e)?(h=!0,(e.tag!==null||e.anchor!==null)&&vt(e,"alias node should not have any properties")):Nm(e,p,Gn===r)&&(h=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):l===0&&(h=o&&gc(e,m))),e.tag===null)e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);else if(e.tag==="?"){for(e.result!==null&&e.kind!=="scalar"&&vt(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),u=0,g=e.implicitTypes.length;u<g;u+=1)if(f=e.implicitTypes[u],f.resolve(e.result)){e.result=f.construct(e.result),e.tag=f.tag,e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);break}}else if(e.tag!=="!"){if(Zr.call(e.typeMap[e.kind||"fallback"],e.tag))f=e.typeMap[e.kind||"fallback"][e.tag];else for(f=null,d=e.typeMap.multi[e.kind||"fallback"],u=0,g=d.length;u<g;u+=1)if(e.tag.slice(0,d[u].tag.length)===d[u].tag){f=d[u];break}f||vt(e,"unknown tag !<"+e.tag+">"),e.result!==null&&f.kind!==e.kind&&vt(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+f.kind+'", not "'+e.kind+'"'),f.resolve(e.result,e.tag)?(e.result=f.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):vt(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||h}y(Ci,"composeNode");function Xm(e){var t=e.position,r,i,a,s=!1,n;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(n=e.input.charCodeAt(e.position))!==0&&(te(e,!0,-1),n=e.input.charCodeAt(e.position),!(e.lineIndent>0||n!==37));){for(s=!0,n=e.input.charCodeAt(++e.position),r=e.position;n!==0&&!Me(n);)n=e.input.charCodeAt(++e.position);for(i=e.input.slice(r,e.position),a=[],i.length<1&&vt(e,"directive name must not be less than one character in length");n!==0;){for(;Qr(n);)n=e.input.charCodeAt(++e.position);if(n===35){do n=e.input.charCodeAt(++e.position);while(n!==0&&!Ke(n));break}if(Ke(n))break;for(r=e.position;n!==0&&!Me(n);)n=e.input.charCodeAt(++e.position);a.push(e.input.slice(r,e.position))}n!==0&&Lo(e),Zr.call(Vd,i)?Vd[i](e,i,a):ps(e,'unknown document directive "'+i+'"')}if(te(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,te(e,!0,-1)):s&&vt(e,"directives end mark is expected"),Ci(e,e.lineIndent-1,jn,!1,!0),te(e,!0,-1),e.checkLineBreaks&&iL.test(e.input.slice(t,e.position))&&ps(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&As(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,te(e,!0,-1));return}if(e.position<e.length-1)vt(e,"end of the stream or a document separator is expected");else return}y(Xm,"readDocument");function _h(e,t){e=String(e),t=t||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=` 144`),e.charCodeAt(0)===65279&&(e=e.slice(1)));var r=new Rm(e,t),i=e.indexOf("\0");
vendor: 5,787 bytes, lines 144-155
144for(i!==-1&&(r.position=i,vt(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)Xm(r);return r.documents}y(_h,"loadDocuments");function sL(e,t,r){t!==null&&typeof t=="object"&&typeof r>"u"&&(r=t,t=null);var i=_h(e,r);if(typeof t!="function")return i;for(var a=0,s=i.length;a<s;a+=1)t(i[a])}y(sL,"loadAll$1");function Qm(e,t){var r=_h(e,t);if(r.length!==0){if(r.length===1)return r[0];throw new De("expected a single document in the stream, but found more")}}y(Qm,"load$1");var nL=Qm,oL={load:nL},Km=Object.prototype.toString,Zm=Object.prototype.hasOwnProperty,Bh=65279,lL=9,ms=10,cL=13,hL=32,uL=33,dL=34,fc=35,gL=37,fL=38,pL=39,mL=42,Jm=44,yL=45,Xn=58,bL=61,kL=62,vL=63,xL=64,ty=91,ey=93,CL=96,ry=123,wL=124,iy=125,_e={};_e[0]="\\0";_e[7]="\\a";_e[8]="\\b";_e[9]="\\t";_e[10]="\\n";_e[11]="\\v";_e[12]="\\f";_e[13]="\\r";_e[27]="\\e";_e[34]='\\"';_e[92]="\\\\";_e[133]="\\N";_e[160]="\\_";_e[8232]="\\L";_e[8233]="\\P";var TL=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],SL=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function ay(e,t){var r,i,a,s,n,o,l;if(t===null)return{};for(r={},i=Object.keys(t),a=0,s=i.length;a<s;a+=1)n=i[a],o=String(t[n]),n.slice(0,2)==="!!"&&(n="tag:yaml.org,2002:"+n.slice(2)),l=e.compiledTypeMap.fallback[n],l&&Zm.call(l.styleAliases,o)&&(o=l.styleAliases[o]),r[n]=o;return r}y(ay,"compileStyleMap");function sy(e){var t,r,i;if(t=e.toString(16).toUpperCase(),e<=255)r="x",i=2;else if(e<=65535)r="u",i=4;else if(e<=4294967295)r="U",i=8;else throw new De("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+ne.repeat("0",i-t.length)+t}y(sy,"encodeHex");var _L=1,ys=2;function ny(e){this.schema=e.schema||Lm,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=ne.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=ay(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.quotingType=e.quotingType==='"'?ys:_L,this.forceQuotes=e.forceQuotes||!1,this.replacer=typeof e.replacer=="function"?e.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}y(ny,"State");function pc(e,t){for(var r=ne.repeat(" ",t),i=0,a=-1,s="",n,o=e.length;i<o;)a=e.indexOf(` 145`,i),a===-1?(n=e.slice(i),i=o):(n=e.slice(i,a+1),i=a+1),n.length&&n!==` 146`&&(s+=r),s+=n;return s}y(pc,"indentString");function Qn(e,t){return` 147`+ne.repeat(" ",e.indent*t)}y(Qn,"generateNextLine");function oy(e,t){var r,i,a;for(r=0,i=e.implicitTypes.length;r<i;r+=1)if(a=e.implicitTypes[r],a.resolve(t))return!0;return!1}y(oy,"testImplicitResolving");function bs(e){return e===hL||e===lL}y(bs,"isWhitespace");function Ca(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==Bh||65536<=e&&e<=1114111}y(Ca,"isPrintable");function mc(e){return Ca(e)&&e!==Bh&&e!==cL&&e!==ms}y(mc,"isNsCharOrWhitespace");function yc(e,t,r){var i=mc(e),a=i&&!bs(e);return(r?i:i&&e!==Jm&&e!==ty&&e!==ey&&e!==ry&&e!==iy)&&e!==fc&&!(t===Xn&&!a)||mc(t)&&!bs(t)&&e===fc||t===Xn&&a}y(yc,"isPlainSafe");function ly(e){return Ca(e)&&e!==Bh&&!bs(e)&&e!==yL&&e!==vL&&e!==Xn&&e!==Jm&&e!==ty&&e!==ey&&e!==ry&&e!==iy&&e!==fc&&e!==fL&&e!==mL&&e!==uL&&e!==wL&&e!==bL&&e!==kL&&e!==pL&&e!==dL&&e!==gL&&e!==xL&&e!==CL}y(ly,"isPlainSafeFirst");function cy(e){return!bs(e)&&e!==Xn}y(cy,"isPlainSafeLast");function ji(e,t){var r=e.charCodeAt(t),i;return r>=55296&&r<=56319&&t+1<e.length&&(i=e.charCodeAt(t+1),i>=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}y(ji,"codePointAt");function Lh(e){var t=/^\n* /;return t.test(e)}y(Lh,"needIndentIndicator");var hy=1,bc=2,uy=3,dy=4,Wi=5;function gy(e,t,r,i,a,s,n,o){var l,c=0,h=null,u=!1,g=!1,d=i!==-1,f=-1,p=ly(ji(e,0))&&cy(ji(e,e.length-1));if(t||n)for(l=0;l<e.length;c>=65536?l+=2:l++){if(c=ji(e,l),!Ca(c))return Wi;p=p&&yc(c,h,o),h=c}else{for(l=0;l<e.length;c>=65536?l+=2:l++){if(c=ji(e,l),c===ms)u=!0,d&&(g=g||l-f-1>i&&e[f+1]!==" ",f=l);else if(!Ca(c))return Wi;p=p&&yc(c,h,o),h=c}g=g||d&&l-f-1>i&&e[f+1]!==" "}return!u&&!g?p&&!n&&!a(e)?hy:s===ys?Wi:bc:r>9&&Lh(e)?Wi:n?s===ys?Wi:bc:g?dy:uy}y(gy,"chooseScalarStyle");function fy(e,t,r,i,a){e.dump=function(){if(t.length===0)return e.quotingType===ys?'""':"''";if(!e.noCompatMode&&(TL.indexOf(t)!==-1||SL.test(t)))return e.quotingType===ys?'"'+t+'"':"'"+t+"'";var s=e.indent*Math.max(1,r),n=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-s),o=i||e.flowLevel>-1&&r>=e.flowLevel;function l(c){return oy(e,c)}switch(y(l,"testAmbiguity"),gy(t,o,e.indent,n,l,e.quotingType,e.forceQuotes&&!i,a)){case hy:return t;case bc:return"'"+t.replace(/'/g,"''")+"'";case uy:return"|"+kc(t,e.indent)+vc(pc(t,s));case dy:return">"+kc(t,e.indent)+vc(pc(py(t,n),s));case Wi:return'"'+my(t)+'"';default:throw new De("impossible error: invalid scalar style")}}()}y(fy,"writeScalar");function kc(e,t){var r=Lh(e)?String(t):"",i=e[e.length-1]===` 148`,a=i&&(e[e.length-2]===` 149`||e===` 150`),s=a?"+":i?"":"-";return r+s+` 151`}y(kc,"blockHeader");function vc(e){return e[e.length-1]===` 152`?e.slice(0,-1):e}y(vc,"dropEndingNewline");function py(e,t){for(var r=/(\n+)([^\n]*)/g,i=function(){var c=e.indexOf(` 153`);return c=c!==-1?c:e.length,r.lastIndex=c,xc(e.slice(0,c),t)}(),a=e[0]===` 154`||e[0]===" ",s,n;n=r.exec(e);){var o=n[1],l=n[2];s=l[0]===" ",i+=o+(!a&&!s&&l!==""?` 155`:"")+xc(l,t),a=s}return i}y(py,"foldString");function xc(e,t){if(e===""||e[0]===" ")return e;for(var r=/ [^ ]/g,i,a=0,s,n=0,o=0,l="";i=r.exec(e);)o=i.index,o-a>t&&(s=n>
vendor: 6,437 bytes, lines 155-163
155a?n:o,l+=` 156`+e.slice(a,s),a=s+1),n=o;return l+=` 157`,e.length-a>t&&n>a?l+=e.slice(a,n)+` 158`+e.slice(n+1):l+=e.slice(a),l.slice(1)}y(xc,"foldLine");function my(e){for(var t="",r=0,i,a=0;a<e.length;r>=65536?a+=2:a++)r=ji(e,a),i=_e[r],!i&&Ca(r)?(t+=e[a],r>=65536&&(t+=e[a+1])):t+=i||sy(r);return t}y(my,"escapeString");function yy(e,t,r){var i="",a=e.tag,s,n,o;for(s=0,n=r.length;s<n;s+=1)o=r[s],e.replacer&&(o=e.replacer.call(r,String(s),o)),(yr(e,t,o,!1,!1)||typeof o>"u"&&yr(e,t,null,!1,!1))&&(i!==""&&(i+=","+(e.condenseFlow?"":" ")),i+=e.dump);e.tag=a,e.dump="["+i+"]"}y(yy,"writeFlowSequence");function Cc(e,t,r,i){var a="",s=e.tag,n,o,l;for(n=0,o=r.length;n<o;n+=1)l=r[n],e.replacer&&(l=e.replacer.call(r,String(n),l)),(yr(e,t+1,l,!0,!0,!1,!0)||typeof l>"u"&&yr(e,t+1,null,!0,!0,!1,!0))&&((!i||a!=="")&&(a+=Qn(e,t)),e.dump&&ms===e.dump.charCodeAt(0)?a+="-":a+="- ",a+=e.dump);e.tag=s,e.dump=a||"[]"}y(Cc,"writeBlockSequence");function by(e,t,r){var i="",a=e.tag,s=Object.keys(r),n,o,l,c,h;for(n=0,o=s.length;n<o;n+=1)h="",i!==""&&(h+=", "),e.condenseFlow&&(h+='"'),l=s[n],c=r[l],e.replacer&&(c=e.replacer.call(r,l,c)),yr(e,t,l,!1,!1)&&(e.dump.length>1024&&(h+="? "),h+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),yr(e,t,c,!1,!1)&&(h+=e.dump,i+=h));e.tag=a,e.dump="{"+i+"}"}y(by,"writeFlowMapping");function ky(e,t,r,i){var a="",s=e.tag,n=Object.keys(r),o,l,c,h,u,g;if(e.sortKeys===!0)n.sort();else if(typeof e.sortKeys=="function")n.sort(e.sortKeys);else if(e.sortKeys)throw new De("sortKeys must be a boolean or a function");for(o=0,l=n.length;o<l;o+=1)g="",(!i||a!=="")&&(g+=Qn(e,t)),c=n[o],h=r[c],e.replacer&&(h=e.replacer.call(r,c,h)),yr(e,t+1,c,!0,!0,!0)&&(u=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,u&&(e.dump&&ms===e.dump.charCodeAt(0)?g+="?":g+="? "),g+=e.dump,u&&(g+=Qn(e,t)),yr(e,t+1,h,!0,u)&&(e.dump&&ms===e.dump.charCodeAt(0)?g+=":":g+=": ",g+=e.dump,a+=g));e.tag=s,e.dump=a||"{}"}y(ky,"writeBlockMapping");function wc(e,t,r){var i,a,s,n,o,l;for(a=r?e.explicitTypes:e.implicitTypes,s=0,n=a.length;s<n;s+=1)if(o=a[s],(o.instanceOf||o.predicate)&&(!o.instanceOf||typeof t=="object"&&t instanceof o.instanceOf)&&(!o.predicate||o.predicate(t))){if(r?o.multi&&o.representName?e.tag=o.representName(t):e.tag=o.tag:e.tag="?",o.represent){if(l=e.styleMap[o.tag]||o.defaultStyle,Km.call(o.represent)==="[object Function]")i=o.represent(t,l);else if(Zm.call(o.represent,l))i=o.represent[l](t,l);else throw new De("!<"+o.tag+'> tag resolver accepts not "'+l+'" style');e.dump=i}return!0}return!1}y(wc,"detectType");function yr(e,t,r,i,a,s,n){e.tag=null,e.dump=r,wc(e,r,!1)||wc(e,r,!0);var o=Km.call(e.dump),l=i,c;i&&(i=e.flowLevel<0||e.flowLevel>t);var h=o==="[object Object]"||o==="[object Array]",u,g;if(h&&(u=e.duplicates.indexOf(r),g=u!==-1),(e.tag!==null&&e.tag!=="?"||g||e.indent!==2&&t>0)&&(a=!1),g&&e.usedDuplicates[u])e.dump="*ref_"+u;else{if(h&&g&&!e.usedDuplicates[u]&&(e.usedDuplicates[u]=!0),o==="[object Object]")i&&Object.keys(e.dump).length!==0?(ky(e,t,e.dump,a),g&&(e.dump="&ref_"+u+e.dump)):(by(e,t,e.dump),g&&(e.dump="&ref_"+u+" "+e.dump));else if(o==="[object Array]")i&&e.dump.length!==0?(e.noArrayIndent&&!n&&t>0?Cc(e,t-1,e.dump,a):Cc(e,t,e.dump,a),g&&(e.dump="&ref_"+u+e.dump)):(yy(e,t,e.dump),g&&(e.dump="&ref_"+u+" "+e.dump));else if(o==="[object String]")e.tag!=="?"&&fy(e,e.dump,t,s,l);else{if(o==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new De("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(c=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?c="!"+c:c.slice(0,18)==="tag:yaml.org,2002:"?c="!!"+c.slice(18):c="!<"+c+">",e.dump=c+" "+e.dump)}return!0}y(yr,"writeNode");function vy(e,t){var r=[],i=[],a,s;for(Kn(e,r,i),a=0,s=i.length;a<s;a+=1)t.duplicates.push(r[i[a]]);t.usedDuplicates=new Array(s)}y(vy,"getDuplicateReferences");function Kn(e,t,r){var i,a,s;if(e!==null&&typeof e=="object")if(a=t.indexOf(e),a!==-1)r.indexOf(a)===-1&&r.push(a);else if(t.push(e),Array.isArray(e))for(a=0,s=e.length;a<s;a+=1)Kn(e[a],t,r);else for(i=Object.keys(e),a=0,s=i.length;a<s;a+=1)Kn(e[i[a]],t,r)}y(Kn,"inspectNode");function BL(e,t){t=t||{};var r=new ny(t);r.noRefs||vy(e,r);var i=e;return r.replacer&&(i=r.replacer.call({"":i},"",i)),yr(r,0,i,!0,!0)?r.dump+` 159`:""}y(BL,"dump$1");function LL(e,t){return function(){throw new Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+t+" instead, which is now safe by default.")}}y(LL,"renamed");var AL=um,ML=oL.load;/*! Bundled license information: 160 161js-yaml/dist/js-yaml.mjs: 162 (*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT *) 163*/var FL=y(e=>{const{handDrawnSeed:t}=Ht();return{fill:e,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:e,seed:t}},"solidStateFill"),Sa=y(e=>{const t=PL([...e.cssCompiledStyles||[],...e.cssStyles||[],...e.labelStyle||[]]);return{stylesMap:t,stylesArray:[...t]}},"compileStyles"),PL=y(e=>{const t=new Map;return e.forEach(r=>{const[i,a]=r.split(":");t.set(i.trim(),a==null?void 0:a.trim())}),t},"styles2Map"),xy=y(e=>e==="color"||e==="font-size"||e==="font-family"||e==="font-weight"||e==="font-style"||e==="text-decoration"||e==="text-align"||e==="text-transform"||e==="line-height"||e==="letter-spacing"||e==="word-spacing"||e==="text-shadow"||e==="text-overflow"||e==="white-space"||e==="word-wrap"||e==="word-break"||e==="overflow-wrap"||e==="hyphens","isLabelStyle"),ft=y(e=>{const{stylesArray:t}=Sa(e),r=[],i=[],a=[],s=[];return t.forEach(n=>{const o=n[0];xy(o)?r.push(n.join(":")+" !important"):(i.push(n.join(":")+" !important"),o.includes("stroke")&&a.push(n.join(":")+" !important"),o==="fill"&&s.push(n.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:i.join(";"),stylesArray:t,borderStyles:a,backgroundStyles:s}},"styles2String"),ht=y((e,t)=>{var l;const{themeVariables:r,handDrawnSeed:i}=Ht(),{nodeBorder:a,mainBkg:s}=r,{stylesMap:n}=Sa(e);return Object.assign({roughness:.7,fill:n.get("fill")||s,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:n.get("stroke")||a,seed:i,strokeWidth:((l=n.get("stroke-width"))==null?void 0:l.replace("px",""))||1.3,fillLineDash:[0,0],strokeLineDash:EL(n.get("stroke-dasharray"))},t)},"userNodeOverrides"),EL=y(e=>{if(!e)return[0,0];const t=e.trim().split(/\s+/).map(Number);if(t.length===1){const a=isNaN(t[0])?0:t[0];return[a,a]}const r=isNaN(t[0])?0:t[0],i=isNaN(t[1])?0:t[1];return[r,i]},"getStrokeDashArray"),Cy={},he={};
163Object.defineProperty(he,"__esModule",{value:!0});he.BLANK_URL=he.relativeFirstCharacters=he.whitespaceEscapeCharsRegex=he.urlSchemeRegex=he.ctrlCharactersRegex=he.htmlCtrlEntityRegex=he.htmlEntitiesRegex=he.invalidProtocolRegex=void 0;he.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;he.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;he.htmlCtrlEntityRegex=/&(newline|tab);/gi;he.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;he.urlSchemeRegex=/^.+(:|:)/gim;he.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;he.relativeFirstCharacters=[".","/"];he.BLANK_URL="about:blank";Object.defineProperty(Cy,"__esModule",{value:!0});var OL=Cy.sanitizeUrl=zL,Ce=he;function DL(e){return Ce.relativeFirstCharacters.indexOf(e[0])>-1}function IL(e){var t=e.replace(Ce.ctrlCharactersRegex,"");return t.replace(Ce.htmlEntitiesRegex,function(r,i){return String.fromCharCode(i)})}function $L(e){return URL.canParse(e)}function Yd(e){try{return decodeURIComponent(e)}catch{return e}}function zL(e){if(!e)return Ce.BLANK_URL;var t,r=Yd(e.trim());do r=IL(r).replace(Ce.htmlCtrlEntityRegex,"").replace(Ce.ctrlCharactersRegex,"").replace(Ce.whitespaceEscapeCharsRegex,"").trim(),r=Yd(r),t=r.match(Ce.ctrlCharactersRegex)||r.match(Ce.htmlEntitiesRegex)||r.match(Ce.htmlCtrlEntityRegex)||r.match(Ce.whitespaceEscapeCharsRegex);while(t&&t.length>0);var i=r;if(!i)return Ce.BLANK_URL;if(DL(i))return i;var a=i.trimStart(),s=a.match(Ce.urlSchemeRegex);if(!s)return i;var n=s[0].toLowerCase().trim();if(Ce.invalidProtocolRegex.test(n))return Ce.BLANK_URL;var o=a.replace(/\\/g,"/");if(n==="mailto:"||n.includes("://"))return o;if(n==="http:"||n==="https:"){if(!$L(o))return Ce.BLANK_URL;var l=new URL(o);return l.protocol=l.protocol.toLowerCase(),l.hostname=l.hostname.toLowerCase(),l.toString()}return o}function RL(e){return Array.isArray(e)}function Sl(e){var r;if(typeof e!="object"||e==null)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!=="[object Object]"){const i=e[Symbol.toStringTag];return i==null||!((r=Object.getOwnPropertyDescriptor(e,Symbol.toStringTag))!=null&&r.writable)?!1:e.toString()===`[object ${i}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function NL(){}function wy(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function Ms(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const Ty="[object RegExp]",Ah="[object String]",Mh="[object Number]",Fh="[object Boolean]",Ph="[object Arguments]",Sy="[object Symbol]",_y="[object Date]",By="[object Map]",Ly="[object Set]",Ay="[object Array]",My="[object ArrayBuffer]",Fy="[object Object]",Py="[object DataView]",Ey="[object Uint8Array]",Oy="[object Uint8ClampedArray]",Dy="[object Uint16Array]",Iy="[object Uint32Array]",$y="[object Int8Array]",zy="[object Int16Array]",Ry="[object Int32Array]",Ny="[object Float32Array]",Hy="[object Float64Array]",Gd=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||function(){return this}();function Eh(e){return typeof Gd.Buffer<"u"&&Gd.Buffer.isBuffer(e)}function HL(e){return Number.isSafeInteger(e)&&e>=0}function Wy(e){return e!=null&&typeof e!="function"&&HL(e.length)}function WL(e){return e==="__proto__"}function Mo(e){return e==null||typeof e!="object"&&typeof e!="function"}function Oh(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function qL(e,t){return Xi(e,void 0,e,new Map,t)}function Xi(e,t,r,i=new Map,a=void 0){const s=a==null?void 0:a(e,t,r,i);if(s!==void 0)return s;if(Mo(e))return e;if(i.has(e))return i.get(e);if(Array.isArray(e)){const n=new Array(e.length);i.set(e,n);for(let o=0;o<e.length;o++)n[o]=Xi(e[o],o,r,i,a);return Object.hasOwn(e,"index")&&(n.index=e.index),Object.hasOwn(e,"input")&&(n.input=e.input),n}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const n=new RegExp(e.source,e.flags);return n.lastIndex=e.lastIndex,n}if(e instanceof Map){const n=new Map;i.set(e,n);for(const[o,l]of e)n.set(o,Xi(l,o,r,i,a));return n}if(e instanceof Set){const n=new Set;i.set(e,n);for(const o of e)n.add(Xi(o,void 0,r,i,a));return n}if(Eh(e))return e.subarray();if(Oh(e)){const n=new(Object.getPrototypeOf(e)).constructor(e.length);i.set(e,n);for(let o=0;o<e.length;o++)n[o]=Xi(e[o],o,r,i,a);return n}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){const n=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return i.set(e,n),Ve(n,e,r,i,a),n}if(typeof File<"u"&&e instanceof File){const n=new File([e],e.name,{type:e.type});return i.set(e,n),Ve(n,e,r,i,a),n}if(typeof Blob<"u"&&e instanceof Blob){const n=new Blob([e],{type:e.type});return i.set(e,n),Ve(n,e,r,i,a),n}if(e instanceof Error){const n=structuredClone(e);return i.set(e,n),n.message=e.message,n.name=e.name,n.stack=e.stack,n.cause=e.cause,n.constructor=e.constructor,Ve(n,e,r,i,a),n}if(e instanceof Boolean){const n=new Boolean(e.valueOf());return i.set(e,n),Ve(n,e,r,i,a),n}if(e instanceof Number){const n=new Number(e.valueOf());return i.set(e,n),Ve(n,e,r,i,a),n}if(e instanceof String){const n=new String(e.valueOf());return i.set(e,n),Ve(n,e,r,i,a),n}if(typeof e=="object"&&UL(e)){const n=Object.create(Object.getPrototypeOf(e));return i.set(e,n),Ve(n,e,r,i,a),n}return e}function Ve(e,t,r=e,i,a){const s=[...Object.keys(t),...wy(t)];for(let n=0;n<s.length;n++){const o=s[n],l=Object.getOwnPropertyDescriptor(e,o);(l==null||l.writable)&&(e[o]=Xi(t[o],o,r,i,a))}}function UL(e){switch(Ms(e)){case Ph:case Ay:case My:case Py:case Fh:case _y:case Ny:case Hy:case $y:case zy:case Ry:case By:case Mh:case Fy:case Ty:case Ly:case Ah:case Sy:case Ey:case Oy:case Dy:case Iy:return!0;default:return!1}}function VL(e,t){return qL(e,(r,i,a,s)=>{if(typeof e=="object"){if(Ms(e)==="[object Object]"&&typeof e.constructor!="function"){const n={};return s.set(e,n),Ve(n,e,a,s),n}switch(Object.prototype.toString.call(e)){case Mh:case Ah:case Fh:{const n=new e.constructor(e==null?void 0:e.valueOf());return Ve(n,e),n}case Ph:{const n={};return Ve(n,e),n.length=e.length,n[Symbol.iterator]=e[Symbol.iterator],n}default:return}}})}
163function jd(e){return VL(e)}function Tc(e){return e!==null&&typeof e=="object"&&Ms(e)==="[object Arguments]"}function Sc(e){return typeof e=="object"&&e!==null}function YL(e){return Sc(e)&&Wy(e)}function Fs(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError("Expected a function");const r=function(...i){const a=t?t.apply(this,i):i[0],s=r.cache;if(s.has(a))return s.get(a);const n=e.apply(this,i);return r.cache=s.set(a,n)||s,n};return r.cache=new(Fs.Cache||Map),r}Fs.Cache=Map;function os(e){return Oh(e)}function GL(e){const t=e==null?void 0:e.constructor;return e===(typeof t=="function"?t.prototype:Object.prototype)}function u8(e){if(Mo(e))return e;const t=Ms(e);if(!jL(e))return{};if(RL(e)){const i=Array.from(e);return e.length>0&&typeof e[0]=="string"&&Object.hasOwn(e,"index")&&(i.index=e.index,i.input=e.input),i}if(os(e)){const i=e,a=i.constructor;return new a(i.buffer,i.byteOffset,i.length)}if(t==="[object ArrayBuffer]")return new ArrayBuffer(e.byteLength);if(t==="[object DataView]"){const i=e,a=i.buffer,s=i.byteOffset,n=i.byteLength,o=new ArrayBuffer(n),l=new Uint8Array(a,s,n);return new Uint8Array(o).set(l),new DataView(o)}if(t==="[object Boolean]"||t==="[object Number]"||t==="[object String]"){const i=e.constructor,a=new i(e.valueOf());return t==="[object String]"?QL(a,e):_l(a,e),a}if(t==="[object Date]")return new Date(Number(e));if(t==="[object RegExp]"){const i=e,a=new RegExp(i.source,i.flags);return a.lastIndex=i.lastIndex,a}if(t==="[object Symbol]")return Object(Symbol.prototype.valueOf.call(e));if(t==="[object Map]"){const i=e,a=new Map;return i.forEach((s,n)=>{a.set(n,s)}),a}if(t==="[object Set]"){const i=e,a=new Set;return i.forEach(s=>{a.add(s)}),a}if(t==="[object Arguments]"){const i=e,a={};return _l(a,i),a.length=i.length,a[Symbol.iterator]=i[Symbol.iterator],a}const r={};return KL(r,e),_l(r,e),XL(r,e),r}function jL(e){switch(Ms(e)){case Ph:case Ay:case My:case Py:case Fh:case _y:case Ny:case Hy:case $y:case zy:case Ry:case By:case Mh:case Fy:case Ty:case Ly:case Ah:case Sy:case Ey:case Oy:case Dy:case Iy:return!0;default:return!1}}function _l(e,t){for(const r in t)Object.hasOwn(t,r)&&(e[r]=t[r])}function XL(e,t){const r=Object.getOwnPropertySymbols(t);for(let i=0;i<r.length;i++){const a=r[i];Object.prototype.propertyIsEnumerable.call(t,a)&&(e[a]=t[a])}}function QL(e,t){const r=t.valueOf().length;for(const i in t)Object.hasOwn(t,i)&&(Number.isNaN(Number(i))||Number(i)>=r)&&(e[i]=t[i])}function KL(e,t){const r=Object.getPrototypeOf(t);r!==null&&typeof t.constructor=="function"&&Object.setPrototypeOf(e,r)}function ZL(e){if(Mo(e))return e;if(Array.isArray(e)||Oh(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return e.slice(0);const t=Object.getPrototypeOf(e);if(t==null)return Object.assign(Object.create(t),e);const r=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new r(e);if(e instanceof RegExp){const i=new r(e);return i.lastIndex=e.lastIndex,i}if(e instanceof DataView)return new r(e.buffer.slice(0));if(e instanceof Error){let i;return e instanceof AggregateError?i=new r(e.errors,e.message,{cause:e.cause}):i=new r(e.message,{cause:e.cause}),i.stack=e.stack,Object.assign(i,e),i}return typeof File<"u"&&e instanceof File?new r([e],e.name,{type:e.type,lastModified:e.lastModified}):typeof e=="object"?Object.assign(Object.create(t),e):e}function JL(e,...t){const r=t.slice(0,-1),i=t[t.length-1];let a=e;for(let s=0;s<r.length;s++){const n=r[s];a=pn(a,n,i,new Map)}return a}function pn(e,t,r,i){if(Mo(e)&&(e=Object(e)),t==null||typeof t!="object")return e;if(i.has(t))return ZL(i.get(t));if(i.set(t,e),Array.isArray(t)){t=t.slice();for(let s=0;s<t.length;s++)t[s]=t[s]??void 0}const a=[...Object.keys(t),...wy(t)];for(let s=0;s<a.length;s++){const n=a[s];if(WL(n))continue;let o=t[n],l=e[n];if(Tc(o)&&(o={...o}),Tc(l)&&(l={...l}),Eh(o)&&(o=jd(o)),Array.isArray(o))if(Array.isArray(l)){const h=[],u=Reflect.ownKeys(l);for(let g=0;g<u.length;g++){const d=u[g];h[d]=l[d]}l=h}else if(YL(l)){const h=[];for(let u=0;u<l.length;u++)h[u]=l[u];l=h}else l=[];const c=r(l,o,n,e,t,i);c!==void 0?e[n]=c:Array.isArray(o)||Sc(l)&&Sc(o)&&(Sl(l)||Sl(o)||os(l)||os(o))?e[n]=pn(l,o,r,i):l==null&&Sl(o)?e[n]=pn({},o,r,i):l==null&&os(o)?e[n]=jd(o):(l===void 0||o!==void 0)&&(e[n]=o)}return e}function tA(e,...t){return JL(e,...t,NL)}function Xd(e){if(e==null)return!0;
vendor: 20,425 bytes, lines 163-164
163if(Wy(e))return typeof e.splice!="function"&&typeof e!="string"&&!Eh(e)&&!os(e)&&!Tc(e)?!1:e.length===0;if(typeof e=="object"||typeof e=="function"){if(e instanceof Map||e instanceof Set)return e.size===0;const t=Object.keys(e);return GL(e)?t.filter(r=>r!=="constructor").length===0:t.length===0}return!0}var eA="â",rA={curveBasis:lc,curveBasisClosed:pB,curveBasisOpen:mB,curveBumpX:vp,curveBumpY:xp,curveBundle:yB,curveCardinalClosed:bB,curveCardinalOpen:kB,curveCardinal:Sp,curveCatmullRomClosed:vB,curveCatmullRomOpen:xB,curveCatmullRom:Bp,curveLinear:ns,curveLinearClosed:CB,curveMonotoneX:Ep,curveMonotoneY:Op,curveNatural:Ip,curveStep:$p,curveStepAfter:Rp,curveStepBefore:zp},iA=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,aA=y(function(e,t){const r=qy(e,/(?:init\b)|(?:initialize\b)/);let i={};if(Array.isArray(r)){const n=r.map(o=>o.args);xn(n),i=se(i,[...n])}else i=r.args;if(!i)return;let a=Zc(e,t);const s="config";return i[s]!==void 0&&(a==="flowchart-v2"&&(a="flowchart"),i[a]=i[s],delete i[s]),i},"detectInit"),qy=y(function(e,t=null){var r,i;try{const a=new RegExp(`[%]{2}(?![{]${iA.source})(?=[}][%]{2}).* 164`,"ig");e=e.trim().replace(a,"").replace(/'/gm,'"'),J.debug(`Detecting diagram directive${t!==null?" type:"+t:""} based on the text:${e}`);let s;const n=[];for(;(s=as.exec(e))!==null;)if(s.index===as.lastIndex&&as.lastIndex++,s&&!t||t&&((r=s[1])!=null&&r.match(t))||t&&((i=s[2])!=null&&i.match(t))){const o=s[1]?s[1]:s[2],l=s[3]?s[3].trim():s[4]?JSON.parse(s[4].trim()):null;n.push({type:o,args:l})}return n.length===0?{type:e,args:null}:n.length===1?n[0]:n}catch(a){return J.error(`ERROR: ${a.message} - Unable to parse directive type: '${t}' based on the text: '${e}'`),{type:void 0,args:null}}},"detectDirective"),sA=y(function(e){return e.replace(as,"")},"removeDirectives"),nA=y(function(e,t){for(const[r,i]of t.entries())if(i.match(e))return r;return-1},"isSubstringInArray");function Dh(e,t){if(!e)return t;const r=`curve${e.charAt(0).toUpperCase()+e.slice(1)}`;return rA[r]??t}y(Dh,"interpolateToCurve");function Uy(e,t){const r=e.trim();if(r)return t.securityLevel!=="loose"?OL(r):r}y(Uy,"formatUrl");var oA=y((e,...t)=>{const r=e.split("."),i=r.length-1,a=r[i];let s=window;for(let n=0;n<i;n++)if(s=s[r[n]],!s){J.error(`Function name: ${e} not found in window`);return}s[a](...t)},"runFunc");function Ih(e,t){return!e||!t?0:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}y(Ih,"distance");function Vy(e){let t,r=0;e.forEach(a=>{r+=Ih(a,t),t=a});const i=r/2;return $h(e,i)}y(Vy,"traverseEdge");function Yy(e){return e.length===1?e[0]:Vy(e)}y(Yy,"calcLabelPosition");var Qd=y((e,t=2)=>{const r=Math.pow(10,t);return Math.round(e*r)/r},"roundNumber"),$h=y((e,t)=>{let r,i=t;for(const a of e){if(r){const s=Ih(a,r);if(s===0)return r;if(s<i)i-=s;else{const n=i/s;if(n<=0)return r;if(n>=1)return{x:a.x,y:a.y};if(n>0&&n<1)return{x:Qd((1-n)*r.x+n*a.x,5),y:Qd((1-n)*r.y+n*a.y,5)}}}r=a}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),lA=y((e,t,r)=>{J.info(`our points ${JSON.stringify(t)}`),t[0]!==r&&(t=t.reverse());const a=$h(t,25),s=e?10:5,n=Math.atan2(t[0].y-a.y,t[0].x-a.x),o={x:0,y:0};return o.x=Math.sin(n)*s+(t[0].x+a.x)/2,o.y=-Math.cos(n)*s+(t[0].y+a.y)/2,o},"calcCardinalityPosition");function Gy(e,t,r){const i=structuredClone(r);J.info("our points",i),t!=="start_left"&&t!=="start_right"&&i.reverse();const a=25+e,s=$h(i,a),n=10+e*.5,o=Math.atan2(i[0].y-s.y,i[0].x-s.x),l={x:0,y:0};return t==="start_left"?(l.x=Math.sin(o+Math.PI)*n+(i[0].x+s.x)/2,l.y=-Math.cos(o+Math.PI)*n+(i[0].y+s.y)/2):t==="end_right"?(l.x=Math.sin(o-Math.PI)*n+(i[0].x+s.x)/2-5,l.y=-Math.cos(o-Math.PI)*n+(i[0].y+s.y)/2-5):t==="end_left"?(l.x=Math.sin(o)*n+(i[0].x+s.x)/2-5,l.y=-Math.cos(o)*n+(i[0].y+s.y)/2-5):(l.x=Math.sin(o)*n+(i[0].x+s.x)/2,l.y=-Math.cos(o)*n+(i[0].y+s.y)/2),l}y(Gy,"calcTerminalLabelPosition");function jy(e){let t="",r="";for(const i of e)i!==void 0&&(i.startsWith("color:")||i.startsWith("text-align:")?r=r+i+";":t=t+i+";");return{style:t,labelStyle:r}}y(jy,"getStylesFromArray");var Kd=0,cA=y(()=>(Kd++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Kd),"generateId");function Xy(e){let t="";const r="0123456789abcdef",i=r.length;for(let a=0;a<e;a++)t+=r.charAt(Math.floor(Math.random()*i));return t}y(Xy,"makeRandomHex");var hA=y(e=>Xy(e.length),"random"),uA=y(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),dA=y(function(e,t){const r=t.text.replace(Ss.lineBreakRegex," "),[,i]=Fo(t.fontSize),a=e.append("text");a.attr("x",t.x),a.attr("y",t.y),a.style("text-anchor",t.anchor),a.style("font-family",t.fontFamily),a.style("font-size",i),a.style("font-weight",t.fontWeight),a.attr("fill",t.fill),t.class!==void 0&&a.attr("class",t.class);const s=a.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.attr("fill",t.fill),s.text(r),a},"drawSimpleText"),gA=Fs((e,t,r)=>{if(!e||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},r),Ss.lineBreakRegex.test(e)))return e;const i=e.split(" ").filter(Boolean),a=[];let s="";return i.forEach((n,o)=>{const l=zr(`${n} `,r),c=zr(s,r);if(l>t){const{hyphenatedStrings:g,remainingWord:d}=fA(n,t,"-",r);a.push(s,...g),s=d}else c+l>=t?(a.push(s),s=n):s=[s,n].filter(Boolean).join(" ");o+1===i.length&&a.push(s)}),a.filter(n=>n!=="").join(r.joinWith)},(e,t,r)=>`${e}${t}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),fA=Fs((e,t,r="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);const a=[...e],s=[];let n="";return a.forEach((o,l)=>{const c=`${n}${o}`;if(zr(c,i)>=t){const u=l+1,g=a.length===u,d=`${c}${r}`;s.push(g?c:d),n=""}else n=c}),{hyphenatedStrings:s,remainingWord:n}},(e,t,r="-",i)=>`${e}${t}${r}${i.fontSize}${i.fontWeight}${i.fontFamily}`);function Qy(e,t){return zh(e,t).height}y(Qy,"calculateTextHeight");function zr(e,t){return zh(e,t).width}y(zr,"calculateTextWidth");var zh=Fs((e,t)=>{const{fontSize:r=12,fontFamily:i="Arial",fontWeight:a=400}=t;if(!e)return{width:0,height:0};const[,s]=Fo(r),n=["sans-serif",i],o=e.split(Ss.lineBreakRegex),l=[],c=Et("body");if(!c.remove)return{width:0,height:0,lineHeight:0};const h=c.append("svg");for(const g of n){let d=0;const f={width:0,height:0,lineHeight:0};for(const p of o){const m=uA();m.text=p||eA;const b=dA(h,m).style("font-size",s).style("font-weight",a).style("font-family",g),k=(b._groups||b)[0][0].getBBox();if(k.width===0&&k.height===0)throw new Error("svg element not in render tree");f.width=Math.round(Math.max(f.width,k.width)),d=Math.round(k.height),f.height+=d,f.lineHeight=Math.round(Math.max(f.lineHeight,d))}l.push(f)}h.remove();const u=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[u]},(e,t)=>`${e}${t.fontSize}${t.fontWeight}${t.fontFamily}`),ga,pA=(ga=class{constructor(t=!1,r){this.count=0,this.count=r?r.length:0,this.next=t?()=>this.count++:()=>Date.now()}},y(ga,"InitIDGenerator"),ga),Qs,mA=y(function(e){return Qs=Qs||document.createElement("div"),e=escape(e).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Qs.innerHTML=e,unescape(Qs.textContent)},"entityDecode");function Rh(e){return"str"in e}y(Rh,"isDetailedError");var yA=y((e,t,r,i)=>{var s;if(!i)return;const a=(s=e.node())==null?void 0:s.getBBox();a&&e.append("text").text(i).attr("text-anchor","middle").attr("x",a.x+a.width/2).attr("y",-r).attr("class",t)},"insertTitle"),Fo=y(e=>{if(typeof e=="number")return[e,e+"px"];const t=parseInt(e??"",10);return Number.isNaN(t)?[void 0,void 0]:e===String(t)?[t,e+"px"]:[t,e]},"parseFontSize");function Nh(e,t){return tA({},e,t)}y(Nh,"cleanAndMerge");var Qe={assignWithDepth:se,wrapLabel:gA,calculateTextHeight:Qy,calculateTextWidth:zr,calculateTextDimensions:zh,cleanAndMerge:Nh,detectInit:aA,detectDirective:qy,isSubstringInArray:nA,interpolateToCurve:Dh,calcLabelPosition:Yy,calcCardinalityPosition:lA,calcTerminalLabelPosition:Gy,formatUrl:Uy,getStylesFromArray:jy,generateId:cA,random:hA,runFunc:oA,entityDecode:mA,insertTitle:yA,isLabelCoordinateInPath:Ky,parseFontSize:Fo,InitIDGenerator:pA},bA=y(function(e){let t=e;return t=t.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),t=t.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),t=t.replace(/#\w+;/g,function(r){const i=r.substring(1,r.length-1);return/^\+?\d+$/.test(i)?"ï¬Â°Â°"+i+"¶Ã":"ï¬Â°"+i+"¶Ã"}),t},"encodeEntities"),wi=y(function(e){return e.replace(/ï¬Â°Â°/g,"&#").replace(/ï¬Â°/g,"&").replace(/¶Ã/g,";")},"decodeEntities"),d8=y((e,t,{counter:r=0,prefix:i,suffix:a},s)=>s||`${i?`${i}_`:""}${e}_${t}_${r}${a?`_${a}`:""}`,"getEdgeId");function ue(e){return e??null}y(ue,"handleUndefinedAttr");function Ky(e,t){const r=Math.round(e.x),i=Math.round(e.y),a=t.replace(/(\d+\.\d+)/g,s=>Math.round(parseFloat(s)).toString());return a.includes(r.toString())||a.includes(i.toString())}y(Ky,"isLabelCoordinateInPath");var Hh=y(({flowchart:e})=>{var a,s;const t=((a=e==null?void 0:e.subGraphTitleMargin)==null?void 0:a.top)??0,r=((s=e==null?void 0:e.subGraphTitleMargin)==null?void 0:s.bottom)??0,i=t+r;return{subGraphTitleTopMargin:t,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:i}},"getSubGraphTitleMargins");async function Zy(e,t){const r=e.getElementsByTagName("img");if(!r||r.length===0)return;const i=t.replace(/<img[^>]*>/g,"").trim()==="";await Promise.all([...r].map(a=>new Promise(s=>{function n(){if(a.style.display="flex",a.style.flexDirection="column",i){const o=Ht().fontSize?Ht().fontSize:window.getComputedStyle(document.body).fontSize,l=5,[c=nf.fontSize]=Fo(o),h=c*l+"px";a.style.minWidth=h,a.style.maxWidth=h}else a.style.width="100%";s(a)}y(n,"setupImage"),setTimeout(()=>{a.complete&&n()}),a.addEventListener("error",n),a.addEventListener("load",n)})))}y(Zy,"configureLabelImages");const kA=Object.freeze({left:0,top:0,width:16,height:16}),Zn=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Jy=Object.freeze({...kA,...Zn}),vA=Object.freeze({...Jy,body:"",hidden:!1}),xA=Object.freeze({width:null,height:null}),CA=Object.freeze({...xA,...Zn}),wA=(e,t,r,i="")=>{const a=e.split(":");if(e.slice(0,1)==="@"){if(a.length<2||a.length>3)return null;i=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const o=a.pop(),l=a.pop(),c={provider:a.length>0?a[0]:i,prefix:l,name:o};return Bl(c)?c:null}const s=a[0],n=s.split("-");if(n.length>1){const o={provider:i,prefix:n.shift(),name:n.join("-")};return Bl(o)?o:null}if(r&&i===""){const o={provider:i,prefix:"",name:s};return Bl(o,r)?o:null}return null},Bl=(e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1;function TA(e,t){const r={};!e.hFlip!=!t.hFlip&&(r.hFlip=!0),!e.vFlip!=!t.vFlip&&(r.vFlip=!0);const i=((e.rotate||0)+(t.rotate||0))%4;return i&&(r.rotate=i),r}function Zd(e,t){const r=TA(e,t);for(const i in vA)i in Zn?i in e&&!(i in r)&&(r[i]=Zn[i]):i in t?r[i]=t[i]:i in e&&(r[i]=e[i]);return r}function SA(e,t){const r=e.icons,i=e.aliases||Object.create(null),a=Object.create(null);function s(n){if(r[n])return a[n]=[];if(!(n in a)){a[n]=null;const o=i[n]&&i[n].parent,l=o&&s(o);l&&(a[n]=[o].concat(l))}return a[n]}return(t||Object.keys(r).concat(Object.keys(i))).forEach(s),a}function Jd(e,t,r){const i=e.icons,a=e.aliases||Object.create(null);let s={};function n(o){s=Zd(i[o]||a[o],s)}return n(t),r.forEach(n),Zd(e,s)}function _A(e,t){if(e.icons[t])return Jd(e,t,[]);const r=SA(e,[t])[t];return r?Jd(e,t,r):null}const BA=/(-?[0-9.]*[0-9]+[0-9.]*)/g,LA=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function tg(e,t,r){if(t===1)return e;if(r=r||100,typeof e=="number")return Math.ceil(e*t*r)/r;if(typeof e!="string")return e;const i=e.split(BA);if(i===null||!i.length)return e;const a=[];let s=i.shift(),n=LA.test(s);for(;;){if(n){const o=parseFloat(s);isNaN(o)?a.push(s):a.push(Math.ceil(o*t*r)/r)}else a.push(s);if(s=i.shift(),s===void 0)return a.join("");n=!n}}function AA(e,t="defs"){let r="";const i=e.indexOf("<"+t);for(;i>=0;){const a=e.indexOf(">",i),s=e.indexOf("</"+t);if(a===-1||s===-1)break;const n=e.indexOf(">",s);if(n===-1)break;r+=e.slice(a+1,s).trim(),e=e.slice(0,i).trim()+e.slice(n+1)}return{defs:r,content:e}}function MA(e,t){return e?"<defs>"+e+"</defs>"+t:t}function FA(e,t,r){const i=AA(e);return MA(i.defs,t+i.content+r)}const PA=e=>e==="unset"||e==="undefined"||e==="none";function EA(e,t){const r={...Jy,...e},i={...CA,...t},a={left:r.left,top:r.top,width:r.width,height:r.height};let s=r.body;[r,i].forEach(p=>{const m=[],b=p.hFlip,k=p.vFlip;let x=p.rotate;b?k?x+=2:(m.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),m.push("scale(-1 1)"),a.top=a.left=0):k&&(m.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),m.push("scale(1 -1)"),a.top=a.left=0);let C;switch(x<0&&(x-=Math.floor(x/4)*4),x=x%4,x){case 1:C=a.height/2+a.top,m.unshift("rotate(90 "+C.toString()+" "+C.toString()+")");break;case 2:m.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:C=a.width/2+a.left,m.unshift("rotate(-90 "+C.toString()+" "+C.toString()+")");break}x%2===1&&(a.left!==a.top&&(C=a.left,a.left=a.top,a.top=C),a.width!==a.height&&(C=a.width,a.width=a.height,a.height=C)),m.length&&(s=FA(s,'<g transform="'+m.join(" ")+'">',"</g>"))});const n=i.width,o=i.height,l=a.width,c=a.height;let h,u;n===null?(u=o===null?"1em":o==="auto"?c:o,h=tg(u,l/c)):(h=n==="auto"?l:n,u=o===null?tg(h,c/l):o==="auto"?c:o);const g={},d=(p,m)=>{PA(m)||(g[p]=m.toString())};d("width",h),d("height",u);const f=[a.left,a.top,l,c];return g.viewBox=f.join(" "),{attributes:g,viewBox:f,body:s}}const OA=/\sid="(\S+)"/g,eg=new Map;function DA(e){e=e.replace(/[0-9]+$/,"")||"a";const t=eg.get(e)||0;return eg.set(e,t+1),t?`${e}${t}`:e}function IA(e){const t=[];let r;for(;r=OA.exec(e);)t.push(r[1]);if(!t.length)return e;const i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return t.forEach(a=>{const s=DA(a),n=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+n+')([")]|\\.[a-z])',"g"),"$1"+s+i+"$3")}),e=e.replace(new RegExp(i,"g"),""),e}function $A(e,t){let r=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const i in t)r+=" "+i+'="'+t[i]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+r+">"+e+"</svg>"}var zA={body:'<g><rect width="80" height="80" style="fill: #087ebf; stroke-width: 0px;"/><text transform="translate(21.16 64.67)" style="fill: #fff; font-family: ArialMT, Arial; font-size: 67.75px;"><tspan x="0" y="0">?</tspan></text></g>',height:80,width:80},_c=new Map,t0=new Map,RA=y(e=>{for(const t of e){if(!t.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(J.debug("Registering icon pack:",t.name),"loader"in t)t0.set(t.name,t.loader);else if("icons"in t)_c.set(t.name,t.icons);else throw J.error("Invalid icon loader:",t),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),e0=y(async(e,t)=>{const r=wA(e,!0,t!==void 0);if(!r)throw new Error(`Invalid icon name: ${e}`);const i=r.prefix||t;if(!i)throw new Error(`Icon name must contain a prefix: ${e}`);let a=_c.get(i);if(!a){const n=t0.get(i);if(!n)throw new Error(`Icon set not found: ${r.prefix}`);try{a={...await n(),prefix:i},_c.set(i,a)}catch(o){throw J.error(o),new Error(`Failed to load icon set: ${r.prefix}`)}}const s=_A(a,r.name);if(!s)throw new Error(`Icon not found: ${e}`);return s},"getRegisteredIconData"),NA=y(async e=>{try{return await e0(e),!0}catch{return!1}},"isIconAvailable"),Ps=y(async(e,t,r)=>{let i;try{i=await e0(e,t==null?void 0:t.fallbackPrefix)}catch(n){J.error(n),i=zA}const a=EA(i,t),s=$A(IA(a.body),{...a.attributes,...r});return tr(s,Xt())},"getIconSVG");function Wh(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Mi=Wh();function r0(e){Mi=e}var ls={exec:()=>null};function Vt(e,t=""){let r=typeof e=="string"?e:e.source,i={replace:(a,s)=>{let n=typeof s=="string"?s:s.source;return n=n.replace(Fe.caret,"$1"),r=r.replace(a,n),i},getRegex:()=>new RegExp(r,t)};return i}var HA=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),Fe={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},WA=/^(?:[ \t]*(?:\n|$))+/,qA=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,UA=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Es=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,VA=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,qh=/(?:[*+-]|\d{1,9}[.)])/,i0=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,a0=Vt(i0).replace(/bull/g,qh).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),YA=Vt(i0).replace(/bull/g,qh).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Uh=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,GA=/^[^\n]+/,Vh=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,jA=Vt(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Vh).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),XA=Vt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,qh).getRegex(),Po="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Yh=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,QA=Vt("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>
164)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Yh).replace("tag",Po).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),s0=Vt(Uh).replace("hr",Es).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Po).getRegex(),KA=Vt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",s0).getRegex(),Gh={blockquote:KA,code:qA,def:jA,fences:UA,heading:VA,hr:Es,html:QA,lheading:a0,list:XA,newline:WA,paragraph:s0,table:ls,text:GA},rg=Vt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Es).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Po).getRegex(),ZA={...Gh,lheading:YA,table:rg,paragraph:Vt(Uh).replace("hr",Es).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",rg).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Po).getRegex()},JA={...Gh,html:Vt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Yh).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ls,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Vt(Uh).replace("hr",Es).replace("heading",` *#{1,6} *[^ 165]`).replace("lheading",a0).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},tM=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,eM=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,n0=/^( {2,}|\\)\n(?!\s*$)/,rM=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Eo=/[\p{P}\p{S}]/u,jh=/[\s\p{P}\p{S}]/u,o0=/[^\s\p{P}\p{S}]/u,iM=Vt(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,jh).getRegex(),l0=/(?!~)[\p{P}\p{S}]/u,aM=/(?!~)[\s\p{P}\p{S}]/u,sM=/(?:[^\s\p{P}\p{S}]|~)/u,nM=Vt(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",HA?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),c0=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,oM=Vt(c0,"u").replace(/punct/g,Eo).getRegex(),lM=Vt(c0,"u").replace(/punct/g,l0).getRegex(),h0="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",cM=Vt(h0,"gu").replace(/notPunctSpace/g,o0).replace(/punctSpace/g,jh).replace(/punct/g,Eo).getRegex(),hM=Vt(h0,"gu").replace(/notPunctSpace/g,sM).replace(/punctSpace/g,aM).replace(/punct/g,l0).getRegex(),uM=Vt("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,o0).replace(/punctSpace/g,jh).replace(/punct/g,Eo).getRegex(),dM=Vt(/\\(punct)/,"gu").replace(/punct/g,Eo).getRegex(),gM=Vt(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),fM=Vt(Yh).replace("(?:-->|$)","-->").getRegex(),pM=Vt("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",fM).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Jn=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,mM=Vt(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Jn).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),u0=Vt(/^!?\[(label)\]\[(ref)\]/).replace("label",Jn).replace("ref",Vh).getRegex(),d0=Vt(/^!?\[(ref)\](?:\[\])?/).replace("ref",Vh).getRegex(),yM=Vt("reflink|nolink(?!\\()","g").replace("reflink",u0).replace("nolink",d0).getRegex(),ig=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Xh={_backpedal:ls,anyPunctuation:dM,autolink:gM,blockSkip:nM,br:n0,code:eM,del:ls,emStrongLDelim:oM,emStrongRDelimAst:cM,emStrongRDelimUnd:uM,escape:tM,link:mM,nolink:d0,punctuation:iM,reflink:u0,reflinkSearch:yM,tag:pM,text:rM,url:ls},bM={...Xh,link:Vt(/^!?\[(label)\]\((.*?)\)/).replace("label",Jn).getRegex(),reflink:Vt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Jn).getRegex()},Bc={...Xh,emStrongRDelimAst:hM,emStrongLDelim:lM,url:Vt(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",ig).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:Vt(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",ig).getRegex()},kM={...Bc,br:Vt(n0).replace("{2,}","*").getRegex(),text:Vt(Bc.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Ks={normal:Gh,gfm:ZA,pedantic:JA},Ha={normal:Xh,gfm:Bc,breaks:kM,pedantic:bM},vM={"&":"&","<":"<",">":">",'"':""","'":"'"},ag=e=>vM[e];function lr(e,t){if(t){if(Fe.escapeTest.test(e))return e.replace(Fe.escapeReplace,ag)}else if(Fe.escapeTestNoEncode.test(e))return e.replace(Fe.escapeReplaceNoEncode,ag);return e}function sg(e){try{e=encodeURI(e).replace(Fe.percentDecode,"%")}catch{return null}return e}function ng(e,t){var s;let r=e.replace(Fe.findPipe,(n,o,l)=>{let c=!1,h=o;for(;--h>=0&&l[h]==="\\";)c=!c;return c?"|":" |"}),i=r.split(Fe.splitPipe),a=0;if(i[0].trim()||i.shift(),i.length>0&&!((s=i.at(-1))!=null&&s.trim())&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length<t;)i.push("");for(;a<i.length;a++)i[a]=i[a].trim().replace(Fe.slashPipe,"|");return i}function Wa(e,t,r){let i=e.length;if(i===0)return"";let a=0;for(;a<i&&e.charAt(i-a-1)===t;)a++;return e.slice(0,i-a)}function xM(e,t){if(e.indexOf(t[1])===-1)return-1;let r=0;for(let i=0;i<e.length;i++)if(e[i]==="\\")i++;else if(e[i]===t[0])r++;else if(e[i]===t[1]&&(r--,r<0))return i;return r>0?-2:-1}function og(e,t,r,i,a){let s=t.href,n=t.title||null,o=e[1].replace(a.other.outputLinkReplace,"$1");i.state.inLink=!0;let l={type:e[0].charAt(0)==="!"?"image":"link",raw:r,href:s,title:n,text:o,tokens:i.inl
vendor: 34,488 bytes, lines 165-233
165ineTokens(o)};return i.state.inLink=!1,l}function CM(e,t,r){let i=e.match(r.other.indentCodeCompensation);if(i===null)return t;let a=i[1];return t.split(` 166`).map(s=>{let n=s.match(r.other.beginningSpace);if(n===null)return s;let[o]=n;return o.length>=a.length?s.slice(a.length):s}).join(` 167`)}var to=class{constructor(t){Gt(this,"options");Gt(this,"rules");Gt(this,"lexer");this.options=t||Mi}space(t){let r=this.rules.block.newline.exec(t);if(r&&r[0].length>0)return{type:"space",raw:r[0]}}code(t){let r=this.rules.block.code.exec(t);if(r){let i=r[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:r[0],codeBlockStyle:"indented",text:this.options.pedantic?i:Wa(i,` 168`)}}}fences(t){let r=this.rules.block.fences.exec(t);if(r){let i=r[0],a=CM(i,r[3]||"",this.rules);return{type:"code",raw:i,lang:r[2]?r[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):r[2],text:a}}}heading(t){let r=this.rules.block.heading.exec(t);if(r){let i=r[2].trim();if(this.rules.other.endingHash.test(i)){let a=Wa(i,"#");(this.options.pedantic||!a||this.rules.other.endingSpaceChar.test(a))&&(i=a.trim())}return{type:"heading",raw:r[0],depth:r[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(t){let r=this.rules.block.hr.exec(t);if(r)return{type:"hr",raw:Wa(r[0],` 169`)}}blockquote(t){let r=this.rules.block.blockquote.exec(t);if(r){let i=Wa(r[0],` 170`).split(` 171`),a="",s="",n=[];for(;i.length>0;){let o=!1,l=[],c;for(c=0;c<i.length;c++)if(this.rules.other.blockquoteStart.test(i[c]))l.push(i[c]),o=!0;else if(!o)l.push(i[c]);else break;i=i.slice(c);let h=l.join(` 172`),u=h.replace(this.rules.other.blockquoteSetextReplace,` 173 $1`).replace(this.rules.other.blockquoteSetextReplace2,"");a=a?`${a} 174${h}`:h,s=s?`${s} 175${u}`:u;let g=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(u,n,!0),this.lexer.state.top=g,i.length===0)break;let d=n.at(-1);if((d==null?void 0:d.type)==="code")break;if((d==null?void 0:d.type)==="blockquote"){let f=d,p=f.raw+` 176`+i.join(` 177`),m=this.blockquote(p);n[n.length-1]=m,a=a.substring(0,a.length-f.raw.length)+m.raw,s=s.substring(0,s.length-f.text.length)+m.text;break}else if((d==null?void 0:d.type)==="list"){let f=d,p=f.raw+` 178`+i.join(` 179`),m=this.list(p);n[n.length-1]=m,a=a.substring(0,a.length-d.raw.length)+m.raw,s=s.substring(0,s.length-f.raw.length)+m.raw,i=p.substring(n.at(-1).raw.length).split(` 180`);continue}}return{type:"blockquote",raw:a,tokens:n,text:s}}}list(t){let r=this.rules.block.list.exec(t);if(r){let i=r[1].trim(),a=i.length>1,s={type:"list",raw:"",ordered:a,start:a?+i.slice(0,-1):"",loose:!1,items:[]};i=a?`\\d{1,9}\\${i.slice(-1)}`:`\\${i}`,this.options.pedantic&&(i=a?i:"[*+-]");let n=this.rules.other.listItemRegex(i),o=!1;for(;t;){let c=!1,h="",u="";if(!(r=n.exec(t))||this.rules.block.hr.test(t))break;h=r[0],t=t.substring(h.length);let g=r[2].split(` 181`,1)[0].replace(this.rules.other.listReplaceTabs,k=>" ".repeat(3*k.length)),d=t.split(` 182`,1)[0],f=!g.trim(),p=0;if(this.options.pedantic?(p=2,u=g.trimStart()):f?p=r[1].length+1:(p=r[2].search(this.rules.other.nonSpaceChar),p=p>4?1:p,u=g.slice(p),p+=r[1].length),f&&this.rules.other.blankLine.test(d)&&(h+=d+` 183`,t=t.substring(d.length+1),c=!0),!c){let k=this.rules.other.nextBulletRegex(p),x=this.rules.other.hrRegex(p),C=this.rules.other.fencesBeginRegex(p),T=this.rules.other.headingBeginRegex(p),w=this.rules.other.htmlBeginRegex(p);for(;t;){let _=t.split(` 184`,1)[0],B;if(d=_,this.options.pedantic?(d=d.replace(this.rules.other.listReplaceNesting," "),B=d):B=d.replace(this.rules.other.tabCharGlobal," "),C.test(d)||T.test(d)||w.test(d)||k.test(d)||x.test(d))break;if(B.search(this.rules.other.nonSpaceChar)>=p||!d.trim())u+=` 185`+B.slice(p);else{if(f||g.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||C.test(g)||T.test(g)||x.test(g))break;u+=` 186`+d}!f&&!d.trim()&&(f=!0),h+=_+` 187`,t=t.substring(_.length+1),g=B.slice(p)}}s.loose||(o?s.loose=!0:this.rules.other.doubleBlankLine.test(h)&&(o=!0));let m=null,b;this.options.gfm&&(m=this.rules.other.listIsTask.exec(u),m&&(b=m[0]!=="[ ] ",u=u.replace(this.rules.other.listReplaceTask,""))),s.items.push({type:"list_item",raw:h,task:!!m,checked:b,loose:!1,text:u,tokens:[]}),s.raw+=h}let l=s.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;s.raw=s.raw.trimEnd();for(let c=0;c<s.items.length;c++)if(this.lexer.state.top=!1,s.items[c].tokens=this.lexer.blockTokens(s.items[c].text,[]),!s.loose){let h=s.items[c].tokens.filter(g=>g.type==="space"),u=h.length>0&&h.some(g=>this.rules.other.anyLine.test(g.raw));s.loose=u}if(s.loose)for(let c=0;c<s.items.length;c++)s.items[c].loose=!0;return s}}html(t){let r=this.rules.block.html.exec(t);if(r)return{type:"html",block:!0,raw:r[0],pre:r[1]==="pre"||r[1]==="script"||r[1]==="style",text:r[0]}}def(t){let r=this.rules.block.def.exec(t);if(r){let i=r[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),a=r[2]?r[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",s=r[3]?r[3].substring(1,r[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):r[3];return{type:"def",tag:i,raw:r[0],href:a,title:s}}}table(t){var o;let r=this.rules.block.table.exec(t);if(!r||!this.rules.other.tableDelimiter.test(r[2]))return;let i=ng(r[1]),a=r[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=(o=r[3])!=null&&o.trim()?r[3].replace(this.rules.other.tableRowBlankLine,"").split(` 188`):[],n={type:"table",raw:r[0],header:[],align:[],rows:[]};if(i.length===a.length){for(let l of a)this.rules.other.tableAlignRight.test(l)?n.align.push("right"):this.rules.other.tableAlignCenter.test(l)?n.align.push("center"):this.rules.other.tableAlignLeft.test(l)?n.align.push("left"):n.align.push(null);for(let l=0;l<i.length;l++)n.header.push({text:i[l],tokens:this.lexer.inline(i[l]),header:!0,align:n.align[l]});for(let l of s)n.rows.push(ng(l,n.header.length).map((c,h)=>({text:c,tokens:this.lexer.inline(c),header:!1,align:n.align[h]})));return n}}lheading(t){let r=this.rules.block.lheading.exec(t);if(r)return{type:"heading",raw:r[0],depth:r[2].charAt(0)==="="?1:2,text:r[1],tokens:this.lexer.inline(r[1])}}paragraph(t){let r=this.rules.block.paragraph.exec(t);if(r){let i=r[1].charAt(r[1].length-1)===` 189`?r[1].slice(0,-1):r[1];return{type:"paragraph",raw:r[0],text:i,tokens:this.lexer.inline(i)}}}text(t){let r=this.rules.block.text.exec(t);if(r)return{type:"text",raw:r[0],text:r[0],tokens:this.lexer.inline(r[0])}}escape(t){let r=this.rules.inline.escape.exec(t);if(r)return{type:"escape",raw:r[0],text:r[1]}}tag(t){let r=this.rules.inline.tag.exec(t);if(r)return!this.lexer.state.inLink&&this.rules.other.startATag.test(r[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(r[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(r[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(r[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:r[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:r[0]}}link(t){let r=this.rules.inline.link.exec(t);if(r){let i=r[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(i)){if(!this.rules.other.endAngleBracket.test(i))return;let n=Wa(i.slice(0,-1),"\\");if((i.length-n.length)%2===0)return}else{let n=xM(r[2],"()");if(n===-2)return;if(n>-1){let o=(r[0].indexOf("!")===0?5:4)+r[1].length+n;r[2]=r[2].substring(0,n),r[0]=r[0].substring(0,o).trim(),r[3]=""}}let a=r[2],s="";if(this.options.pedantic){let n=this.rules.other.pedanticHrefTitle.exec(a);n&&(a=n[1],s=n[3])}else s=r[3]?r[3].slice(1,-1):"";return a=a.trim(),this.rules.other.startAngleBracket.test(a)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(i)?a=a.slice(1):a=a.slice(1,-1)),og(r,{href:a&&a.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},r[0],this.lexer,this.rules)}}reflink(t,r){let i;if((i=this.rules.inline.reflink.exec(t))||(i=this.rules.inline.nolink.exec(t))){let a=(i[2]||i[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=r[a.toLowerCase()];if(!s){let n=i[0].charAt(0);return{type:"text",raw:n,text:n}}return og(i,s,i[0],this.lexer,this.rules)}}emStrong(t,r,i=""){let a=this.rules.inline.emStrongLDelim.exec(t);if(!(!a||a[3]&&i.match(this.rules.other.unicodeAlphaNumeric))&&(!(a[1]||a[2])||!i||this.rules.inline.punctuation.exec(i))){let s=[...a[0]].length-1,n,o,l=s,c=0,h=a[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,r=r.slice(-1*t.length+s);(a=h.exec(r))!=null;){if(n=a[1]||a[2]||a[3]||a[4]||a[5]||a[6],!n)continue;if(o=[...n].length,a[3]||a[4]){l+=o;continue}else if((a[5]||a[6])&&s%3&&!((s+o)%3)){c+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l+c);let u=[...a[0]][0].length,g=t.slice(0,s+a.index+u+o);if(Math.min(s,o)%2){let f=g.slice(1,-1);return{type:"em",raw:g,text:f,tokens:this.lexer.inlineTokens(f)}}let d=g.slice(2,-2);return{type:"strong",raw:g,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(t){let r=this.rules.inline.code.exec(t);if(r){let i=r[2].replace(this.rules.other.newLineCharGlobal," "),a=this.rules.other.nonSpaceChar.test(i),s=this.rules.other.startingSpaceChar.test(i)&&this.rules.other.endingSpaceChar.test(i);return a&&s&&(i=i.substring(1,i.length-1)),{type:"codespan",raw:r[0],text:i}}}br(t){let r=this.rules.inline.br.exec(t);if(r)return{type:"br",raw:r[0]}}del(t){let r=this.rules.inline.del.exec(t);if(r)return{type:"del",raw:r[0],text:r[2],tokens:this.lexer.inlineTokens(r[2])}}autolink(t){let r=this.rules.inline.autolink.exec(t);if(r){let i,a;return r[2]==="@"?(i=r[1],a="mailto:"+i):(i=r[1],a=i),{type:"link",raw:r[0],text:i,href:a,tokens:[{type:"text",raw:i,text:i}]}}}url(t){var i;let r;if(r=this.rules.inline.url.exec(t)){let a,s;if(r[2]==="@")a=r[0],s="mailto:"+a;else{let n;do n=r[0],r[0]=((i=this.rules.inline._backpedal.exec(r[0]))==null?void 0:i[0])??"";while(n!==r[0]);a=r[0],r[1]==="www."?s="http://"+r[0]:s=r[0]}return{type:"link",raw:r[0],text:a,href:s,tokens:[{type:"text",raw:a,text:a}]}}}inlineText(t){let r=this.rules.inline.text.exec(t);if(r){let i=this.lexer.state.inRawBlock;return{type:"text",raw:r[0],text:r[0],escaped:i}}}},Ge=class Lc{constructor(t){Gt(this,"tokens");Gt(this,"options");Gt(this,"state");Gt(this,"tokenizer");Gt(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Mi,this.options.tokenizer=this.options.tokenizer||new to,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let r={other:Fe,block:Ks.normal,inline:Ha.normal};this.options.pedantic?(r.block=Ks.pedantic,r.inline=Ha.pedantic):this.options.gfm&&(r.block=Ks.gfm,this.options.breaks?r.inline=Ha.breaks:r.inline=Ha.gfm),this.tokenizer.rules=r}static get rules(){return{block:Ks,inline:Ha}}static lex(t,r){return new Lc(r).lex(t)}static lexInline(t,r){return new Lc(r).inlineTokens(t)}lex(t){t=t.replace(Fe.carriageReturn,` 190`),this.blockTokens(t,this.tokens);for(let r=0;r<this.inlineQueue.length;r++){let i=this.inlineQueue[r];this.inlineTokens(i.src,i.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,r=[],i=!1){var a,s,n;for(this.options.pedantic&&(t=t.replace(Fe.tabCharGlobal," ").replace(Fe.spaceLine,""));t;){let o;if((s=(a=this.options.extensions)==null?void 0:a.block)!=null&&s.some(c=>(o=c.call({lexer:this},t,r))?(t=t.substring(o.raw.length),r.push(o),!0):!1))continue;if(o=this.tokenizer.space(t)){t=t.substring(o.raw.length);let c=r.at(-1);o.raw.length===1&&c!==void 0?c.raw+=` 191`:r.push(o);continue}if(o=this.tokenizer.code(t)){t=t.substring(o.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(` 192`)?"":` 193`)+o.raw,c.text+=` 194`+o.text,this.inlineQueue.at(-1).src=c.text):r.push(o);continue}if(o=this.tokenizer.fences(t)){t=t.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.heading(t)){t=t.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.hr(t)){t=t.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.blockquote(t)){t=t.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.list(t)){t=t.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.html(t)){t=t.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.def(t)){t=t.substring(o.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(` 195`)?"":` 196`)+o.raw,c.text+=` 197`+o.raw,this.inlineQueue.at(-1).src=c.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title},r.push(o));continue}if(o=this.tokenizer.table(t)){t=t.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.lheading(t)){t=t.substring(o.raw.length),r.push(o);continue}let l=t;if((n=this.options.extensions)!=null&&n.startBlock){let c=1/0,h=t.slice(1),u;this.options.extensions.startBlock.forEach(g=>{u=g.call({lexer:this},h),typeof u=="number"&&u>=0&&(c=Math.min(c,u))}),c<1/0&&c>=0&&(l=t.substring(0,c+1))}if(this.state.top&&(o=this.tokenizer.paragraph(l))){let c=r.at(-1);i&&(c==null?void 0:c.type)==="paragraph"?(c.raw+=(c.raw.endsWith(` 198`)?"":` 199`)+o.raw,c.text+=` 200`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):r.push(o),i=l.length!==t.length,t=t.substring(o.raw.length);continue}if(o=this.tokenizer.text(t)){t=t.substring(o.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(` 201`)?"":` 202`)+o.raw,c.text+=` 203`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):r.push(o);continue}if(t){let c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return this.state.top=!0,r}inline(t,r=[]){return this.inlineQueue.push({src:t,tokens:r}),r}inlineTokens(t,r=[]){var l,c,h,u,g;let i=t,a=null;if(this.tokens.links){let d=Object.keys(this.tokens.links);if(d.length>0)for(;(a=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)d.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(a=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,a.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s;for(;(a=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)s=a[2]?a[2].length:0,i=i.slice(0,a.index+s)+"["+"a".repeat(a[0].length-s-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);i=((c=(l=this.options.hooks)==null?void 0:l.emStrongMask)==null?void 0:c.call({lexer:this},i))??i;let n=!1,o="";for(;t;){n||(o=""),n=!1;let d;if((u=(h=this.options.extensions)==null?void 0:h.inline)!=null&&u.some(p=>(d=p.call({lexer:this},t,r))?(t=t.substring(d.raw.length),r.push(d),!0):!1))continue;if(d=this.tokenizer.escape(t)){t=t.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.tag(t)){t=t.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.link(t)){t=t.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(d.raw.length);let p=r.at(-1);d.type==="text"&&(p==null?void 0:p.type)==="text"?(p.raw+=d.raw,p.text+=d.text):r.push(d);continue}if(d=this.tokenizer.emStrong(t,i,o)){t=t.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.codespan(t)){t=t.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.br(t)){t=t.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.del(t)){t=t.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.autolink(t)){t=t.substring(d.raw.length),r.push(d);continue}if(!this.state.inLink&&(d=this.tokenizer.url(t))){t=t.substring(d.raw.length),r.push(d);continue}let f=t;if((g=this.options.extensions)!=null&&g.startInline){let p=1/0,m=t.slice(1),b;this.options.extensions.startInline.forEach(k=>{b=k.call({lexer:this},m),typeof b=="number"&&b>=0&&(p=Math.min(p,b))}),p<1/0&&p>=0&&(f=t.substring(0,p+1))}if(d=this.tokenizer.inlineText(f)){t=t.substring(d.raw.length),d.raw.slice(-1)!=="_"&&(o=d.raw.slice(-1)),n=!0;let p=r.at(-1);(p==null?void 0:p.type)==="text"?(p.raw+=d.raw,p.text+=d.text):r.push(d);continue}if(t){let p="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(p);break}else throw new Error(p)}}return r}},eo=class{constructor(t){Gt(this,"options");Gt(this,"parser");this.options=t||Mi}space(t){return""}code({text:t,lang:r,escaped:i}){var n;let a=(n=(r||"").match(Fe.notSpaceStart))==null?void 0:n[0],s=t.replace(Fe.endingNewline,"")+` 204`;return a?'<pre><code class="language-'+lr(a)+'">'+(i?s:lr(s,!0))+`</code></pre> 205`:"<pre><code>"+(i?s:lr(s,!0))+`</code></pre> 206`}blockquote({tokens:t}){return`<blockquote> 207${this.parser.parse(t)}</blockquote> 208`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:r}){return`<h${r}>${this.parser.parseInline(t)}</h${r}> 209`}hr(t){return`<hr> 210`}list(t){let r=t.ordered,i=t.start,a="";for(let o=0;o<t.items.length;o++){let l=t.items[o];a+=this.listitem(l)}let s=r?"ol":"ul",n=r&&i!==1?' start="'+i+'"':"";return"<"+s+n+`> 211`+a+"</"+s+`> 212`}listitem(t){var i;let r="";if(t.task){let a=this.checkbox({checked:!!t.checked});t.loose?((i=t.tokens[0])==null?void 0:i.type)==="paragraph"?(t.tokens[0].text=a+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=a+" "+lr(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:a+" ",text:a+" ",escaped:!0}):r+=a+" "}return r+=this.parser.parse(t.tokens,!!t.loose),`<li>${r}</li> 213`}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p> 214`}table(t){let r="",i="";for(let s=0;s<t.header.length;s++)i+=this.tablecell(t.header[s]);r+=this.tablerow({text:i});let a="";for(let s=0;s<t.rows.length;s++){let n=t.rows[s];i="";for(let o=0;o<n.length;o++)i+=this.tablecell(n[o]);a+=this.tablerow({text:i})}return a&&(a=`<tbody>${a}</tbody>`),`<table> 215<thead> 216`+r+`</thead> 217`+a+`</table> 218`}tablerow({text:t}){return`<tr> 219${t}</tr> 220`}tablecell(t){let r=this.parser.parseInline(t.tokens),i=t.header?"th":"td";return(t.align?`<${i} align="${t.align}">`:`<${i}>`)+r+`</${i}> 221`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${lr(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:r,tokens:i}){let a=this.parser.parseInline(i),s=sg(t);if(s===null)return a;t=s;let n='<a href="'+t+'"';return r&&(n+=' title="'+lr(r)+'"'),n+=">"+a+"</a>",n}image({href:t,title:r,text:i,tokens:a}){a&&(i=this.parser.parseInline(a,this.parser.textRenderer));let s=sg(t);if(s===null)return lr(i);t=s;let n=`<img src="${t}" alt="${i}"`;return r&&(n+=` title="${lr(r)}"`),n+=">",n}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:lr(t.text)}},Qh=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}},je=class Ac{constructor(t){Gt(this,"options");Gt(this,"renderer");Gt(this,"textRenderer");this.options=t||Mi,this.options.renderer=this.options.renderer||new eo,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Qh}static parse(t,r){return new Ac(r).parse(t)}static parseInline(t,r){return new Ac(r).parseInline(t)}parse(t,r=!0){var a,s;let i="";for(let n=0;n<t.length;n++){let o=t[n];if((s=(a=this.options.extensions)==null?void 0:a.renderers)!=null&&s[o.type]){let c=o,h=this.options.extensions.renderers[c.type].call({parser:this},c);if(h!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(c.type)){i+=h||"";continue}}let l=o;switch(l.type){case"space":{i+=this.renderer.space(l);continue}case"hr":{i+=this.renderer.hr(l);continue}case"heading":{i+=this.renderer.heading(l);continue}case"code":{i+=this.renderer.code(l);continue}case"table":{i+=this.renderer.table(l);continue}case"blockquote":{i+=this.renderer.blockquote(l);continue}case"list":{i+=this.renderer.list(l);continue}case"html":{i+=this.renderer.html(l);continue}case"def":{i+=this.renderer.def(l);continue}case"paragraph":{i+=this.renderer.paragraph(l);continue}case"text":{let c=l,h=this.renderer.text(c);for(;n+1<t.length&&t[n+1].type==="text";)c=t[++n],h+=` 222`+this.renderer.text(c);r?i+=this.renderer.paragraph({type:"paragraph",raw:h,text:h,tokens:[{type:"text",raw:h,text:h,escaped:!0}]}):i+=h;continue}default:{let c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return i}parseInline(t,r=this.renderer){var a,s;let i="";for(let n=0;n<t.length;n++){let o=t[n];if((s=(a=this.options.extensions)==null?void 0:a.renderers)!=null&&s[o.type]){let c=this.options.extensions.renderers[o.type].call({parser:this},o);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type)){i+=c||"";continue}}let l=o;switch(l.type){case"escape":{i+=r.text(l);break}case"html":{i+=r.html(l);break}case"link":{i+=r.link(l);break}case"image":{i+=r.image(l);break}case"strong":{i+=r.strong(l);break}case"em":{i+=r.em(l);break}case"codespan":{i+=r.codespan(l);break}case"br":{i+=r.br(l);break}case"del":{i+=r.del(l);break}case"text":{i+=r.text(l);break}default:{let c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return i}},an,Za=(an=class{constructor(t){Gt(this,"options");Gt(this,"block");this.options=t||Mi}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(){return this.block?Ge.lex:Ge.lexInline}provideParser(){return this.block?je.parse:je.parseInline}},Gt(an,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),Gt(an,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),an),wM=class{constructor(...t){Gt(this,"defaults",Wh());Gt(this,"options",this.setOptions);Gt(this,"parse",this.parseMarkdown(!0));Gt(this,"parseInline",this.parseMarkdown(!1));Gt(this,"Parser",je);Gt(this,"Renderer",eo);Gt(this,"TextRenderer",Qh);Gt(this,"Lexer",Ge);Gt(this,"Tokenizer",to);Gt(this,"Hooks",Za);this.use(...t)}walkTokens(t,r){var a,s;let i=[];for(let n of t)switch(i=i.concat(r.call(this,n)),n.type){case"table":{let o=n;for(let l of o.header)i=i.concat(this.walkTokens(l.tokens,r));for(let l of o.rows)for(let c of l)i=i.concat(this.walkTokens(c.tokens,r));break}case"list":{let o=n;i=i.concat(this.walkTokens(o.items,r));break}default:{let o=n;(s=(a=this.defaults.extensions)==null?void 0:a.childTokens)!=null&&s[o.type]?this.defaults.extensions.childTokens[o.type].forEach(l=>{let c=o[l].flat(1/0);i=i.concat(this.walkTokens(c,r))}):o.tokens&&(i=i.concat(this.walkTokens(o.tokens,r)))}}return i}use(...t){let r=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(i=>{let a={...i};if(a.async=this.defaults.async||a.async||!1,i.extensions&&(i.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){let n=r.renderers[s.name];n?r.renderers[s.name]=function(...o){let l=s.renderer.apply(this,o);return l===!1&&(l=n.apply(this,o)),l}:r.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let n=r[s.level];n?n.unshift(s.tokenizer):r[s.level]=[s.tokenizer],s.start&&(s.level==="block"?r.startBlock?r.startBlock.push(s.start):r.startBlock=[s.start]:s.level==="inline"&&(r.startInline?r.startInline.push(s.start):r.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(r.childTokens[s.name]=s.childTokens)}),a.extensions=r),i.renderer){let s=this.defaults.renderer||new eo(this.defaults);for(let n in i.renderer){if(!(n in s))throw new Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;let o=n,l=i.renderer[o],c=s[o];s[o]=(...h)=>{let u=l.apply(s,h);return u===!1&&(u=c.apply(s,h)),u||""}}a.renderer=s}if(i.tokenizer){let s=this.defaults.tokenizer||new to(this.defaults);for(let n in i.tokenizer){if(!(n in s))throw new Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;let o=n,l=i.tokenizer[o],c=s[o];s[o]=(...h)=>{let u=l.apply(s,h);return u===!1&&(u=c.apply(s,h)),u}}a.tokenizer=s}if(i.hooks){let s=this.defaults.hooks||new Za;for(let n in i.hooks){if(!(n in s))throw new Error(`hook '${n}' does not exist`);if(["options","block"].includes(n))continue;let o=n,l=i.hooks[o],c=s[o];Za.passThroughHooks.has(n)?s[o]=h=>{if(this.defaults.async&&Za.passThroughHooksRespectAsync.has(n))return(async()=>{let g=await l.call(s,h);return c.call(s,g)})();let u=l.call(s,h);return c.call(s,u)}:s[o]=(...h)=>{if(this.defaults.async)return(async()=>{let g=await l.apply(s,h);return g===!1&&(g=await c.apply(s,h)),g})();let u=l.apply(s,h);return u===!1&&(u=c.apply(s,h)),u}}a.hooks=s}if(i.walkTokens){let s=this.defaults.walkTokens,n=i.walkTokens;a.walkTokens=function(o){let l=[];return l.push(n.call(this,o)),s&&(l=l.concat(s.call(this,o))),l}}this.defaults={...this.defaults,...a}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,r){return Ge.lex(t,r??this.defaults)}parser(t,r){return je.parse(t,r??this.defaults)}parseMarkdown(t){return(r,i)=>{let a={...i},s={...this.defaults,...a},n=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&a.async===!1)return n(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof r>"u"||r===null)return n(new Error("marked(): input parameter is undefined or null"));if(typeof r!="string")return n(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(r)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=t),s.async)return(async()=>{let o=s.hooks?await s.hooks.preprocess(r):r,l=await(s.hooks?await s.hooks.provideLexer():t?Ge.lex:Ge.lexInline)(o,s),c=s.hooks?await s.hooks.processAllTokens(l):l;s.walkTokens&&await Promise.all(this.walkTokens(c,s.walkTokens));let h=await(s.hooks?await s.hooks.provideParser():t?je.parse:je.parseInline)(c,s);return s.hooks?await s.hooks.postprocess(h):h})().catch(n);try{s.hooks&&(r=s.hooks.preprocess(r));let o=(s.hooks?s.hooks.provideLexer():t?Ge.lex:Ge.lexInline)(r,s);s.hooks&&(o=s.hooks.processAllTokens(o)),s.walkTokens&&this.walkTokens(o,s.walkTokens);let l=(s.hooks?s.hooks.provideParser():t?je.parse:je.parseInline)(o,s);return s.hooks&&(l=s.hooks.postprocess(l)),l}catch(o){return n(o)}}}onError(t,r){return i=>{if(i.message+=` 223Please report this to https://github.com/markedjs/marked.`,t){let a="<p>An error occurred:</p><pre>"+lr(i.message+"",!0)+"</pre>";return r?Promise.resolve(a):a}if(r)return Promise.reject(i);throw i}}},Ti=new wM;function Yt(e,t){return Ti.parse(e,t)}Yt.options=Yt.setOptions=function(e){return Ti.setOptions(e),Yt.defaults=Ti.defaults,r0(Yt.defaults),Yt};Yt.getDefaults=Wh;Yt.defaults=Mi;Yt.use=function(...e){return Ti.use(...e),Yt.defaults=Ti.defaults,r0(Yt.defaults),Yt};Yt.walkTokens=function(e,t){return Ti.walkTokens(e,t)};Yt.parseInline=Ti.parseInline;Yt.Parser=je;Yt.parser=je.parse;Yt.Renderer=eo;Yt.TextRenderer=Qh;Yt.Lexer=Ge;Yt.lexer=Ge.lex;Yt.Tokenizer=to;Yt.Hooks=Za;Yt.parse=Yt;Yt.options;Yt.setOptions;Yt.use;Yt.walkTokens;Yt.parseInline;je.parse;Ge.lex;function g0(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.from(typeof e=="string"?[e]:e);i[i.length-1]=i[i.length-1].replace(/\r?\n([\t ]*)$/,"");var a=i.reduce(function(o,l){var c=l.match(/\n([\t ]+|(?!\s).)/g);return c?o.concat(c.map(function(h){var u,g;return(g=(u=h.match(/[\t ]/g))===null||u===void 0?void 0:u.length)!==null&&g!==void 0?g:0})):o},[]);if(a.length){var s=new RegExp(` 224[ ]{`.concat(Math.min.apply(Math,a),"}"),"g");i=i.map(function(o){return o.replace(s,` 225`)})}i[0]=i[0].replace(/^\r?\n/,"");var n=i[0];return t.forEach(function(o,l){var c=n.match(/(?:^|\n)( *)$/),h=c?c[1]:"",u=o;typeof o=="string"&&o.includes(` 226`)&&(u=String(o).split(` 227`).map(function(g,d){return d===0?g:"".concat(h).concat(g)}).join(` 228`)),n+=u+i[l+1]}),n}function f0(e,{markdownAutoWrap:t}){const i=e.replace(/<br\/>/g,` 229`).replace(/\n{2,}/g,` 230`);return g0(i)}y(f0,"preprocessMarkdown");function p0(e){return e.split(/\\n|\n|<br\s*\/?>/gi).map(t=>{var r;return((r=t.trim().match(/<[^>]+>|[^\s<>]+/g))==null?void 0:r.map(i=>({content:i,type:"normal"})))??[]})}y(p0,"nonMarkdownToLines");function m0(e,t={}){const r=f0(e,t),i=Yt.lexer(r),a=[[]];let s=0;function n(o,l="normal"){o.type==="text"?o.text.split(` 231`).forEach((h,u)=>{u!==0&&(s++,a.push([])),h.split(" ").forEach(g=>{g=g.replace(/'/g,"'"),g&&a[s].push({content:g,type:l})})}):o.type==="strong"||o.type==="em"?o.tokens.forEach(c=>{n(c,o.type)}):o.type==="html"&&a[s].push({content:o.text,type:"normal"})}return y(n,"processNode"),i.forEach(o=>{var l;o.type==="paragraph"?(l=o.tokens)==null||l.forEach(c=>{n(c)}):o.type==="html"?a[s].push({content:o.text,type:"normal"}):a[s].push({content:o.raw,type:"normal"})}),a}y(m0,"markdownToLines");function y0(e){return e?`<p>${e.replace(/\\n|\n/g,"<br />")}</p>`:""}y(y0,"nonMarkdownToHTML");function b0(e,{markdownAutoWrap:t}={}){const r=Yt.lexer(e);function i(a){var s,n,o;return a.type==="text"?t===!1?a.text.replace(/\n */g,"<br/>").replace(/ /g," "):a.text.replace(/\n */g,"<br/>"):a.type==="strong"?`<strong>${(s=a.tokens)==null?void 0:s.map(i).join("")}</strong>`:a.type==="em"?`<em>${(n=a.tokens)==null?void 0:n.map(i).join("")}</em>`:a.type==="paragraph"?`<p>${(o=a.tokens)==null?void 0:o.map(i).join("")}</p>`:a.type==="space"?"":a.type==="html"?`${a.text}`:a.type==="escape"?a.text:(J.warn(`Unsupported markdown: ${a.type}`),a.raw)}return y(i,"output"),r.map(i).join("")}y(b0,"markdownToHTML");function k0(e){return Intl.Segmenter?[...new Intl.Segmenter().segment(e)].map(t=>t.segment):[...e]}y(k0,"splitTextToChars");function v0(e,t){const r=k0(t.content);return Kh(e,[],r,t.type)}y(v0,"splitWordToFitWidth");function Kh(e,t,r,i){if(r.length===0)return[{content:t.join(""),type:i},{content:"",type:i}];const[a,...s]=r,n=[...t,a];return e([{content:n.join(""),type:i}])?Kh(e,n,s,i):(t.length===0&&a&&(t.push(a),r.shift()),[{content:t.join(""),type:i},{content:r.join(""),type:i}])}y(Kh,"splitWordToFitWidthRecursion");function x0(e,t){if(e.some(({content:r})=>r.includes(` 232`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return ro(e,t)}y(x0,"splitLineToFitWidth");function ro(e,t,r=[],i=[]){if(e.length===0)return i.length>0&&r.push(i),r.length>0?r:[];let a="";e[0].content===" "&&(a=" ",e.shift());const s=e.shift()??{content:" ",type:"normal"},n=[...i];if(a!==""&&n.push({content:a,type:"normal"}),n.push(s),t(n))return ro(e,t,r,n);if(i.length>0)r.push(i),e.unshift(s);else if(s.content){const[o,l]=v0(t,s);r.push([o]),l.content&&e.unshift(l)}return ro(e,t,r)}y(ro,"splitLineToFitWidthRecursion");function Mc(e,t){t&&e.attr("style",t)}y(Mc,"applyStyle");var lg=16384;async function C0(e,t,r,i,a=!1,s=Xt()){const n=e.append("foreignObject");n.attr("width",`${Math.min(10*r,lg)}px`),n.attr("height",`${Math.min(10*r,lg)}px`);const o=n.append("xhtml:div"),l=hs(t.label)?await kf(t.label.replace(Ss.lineBreakRegex,` 233`),s):tr(t.label,s),c=t.isNode?"nodeLabel":"edgeLabel",h=o.append("span");h.html(l),Mc(h,t.labelStyle),h.attr("class",`${c} ${i}`),Mc(o,t.labelStyle),o.style("display","table-cell"),o.style("white-space","nowrap"),o.style("line-height","1.5"),r!==Number.POSITIVE_INFINITY&&(o.style("max-width",r+"px"),o.style("text-align","center")),o.attr("xmlns","http://www.w3.org/1999/xhtml"),a&&o.attr("class","labelBkg");let u=o.node().getBoundingClientRect();return u.width===r&&(o.style("display","table"),o.style("white-space","break-spaces"),o.style("width",r+"px"),u=o.node().getBoundingClientRect()),n.node()}y(C0,"addHtmlSpan");function Oo(e,t,r,i=!1){const a=e.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",t*r-.1+"em").attr("dy",r+"em");return i&&a.attr("text-anchor","middle"),a}y(Oo,"createTspan");function w0(e,t,r){const i=e.append("text"),a=Oo(i,1,t);Do(a,r);const s=a.node().getComputedTextLength();return i.remove(),s}y(w0,"computeWidthOfText");function TM(e,t,r){var n;const i=e.append("text"),a=Oo(i,1,t);Do(a,[{content:r,type:"normal"}]);const s=(n=a.node())==null?void 0:n.getBoundingClientRect();return s&&i.remove(),s}y(TM,"computeDimensionOfText");function T0(e,t,r,i=!1,a=!1){const n=t.append("g"),o=n.insert("rect").attr("class","background").attr("style","stroke: none"),l=n.append("text").attr("y","-10.1");a&&l.attr("text-anchor","middle");let c=0;for(const h of r){const u=y(d=>w0(n,1.1,d)<=e,"checkWidth"),g=u(h)?[h]:x0(h,u);for(const d of g){const f=Oo(l,c,1.1,a);Do(f,d),c++}}if(i){const h=l.node().getBBox(),u=2;return o.attr("x",h.x-u).attr("y",h.y-u).attr("width",h.width+2*u).attr("height",h.height+2*u),n.node()}else return l.node()}y(T0,"createFormattedText");function Fc(e){const t=/&(amp|lt|gt);/g;return e.replace(t,(r,i)=>{switch(i){case"amp":return"&";case"lt":return"<";case"gt":return">";default:return r}})}y(Fc,"decodeHTMLEntities");function Do(e,t){e.text(""),t.forEach((r,i)=>{const a=e.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");i===0?a.text(Fc(r.content)):a.text(" "+Fc(r.content))})}y(Do,"updateTextContentAndStyles");async function S0(e,t={}){const r=[];e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(a,s,n)=>(r.push((async()=>{const o=`${s}:${n}`;return await NA(o)?await Ps(o,void 0,{class:"label-icon"}):`<i class='${tr(a,t).replace(":"," ")}'></i>`})()),a));const i=await Promise.all(r);return e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>i.shift()??"")}y(S0,"replaceIconSubstring");var wr=y(async(e,t="",{style:r="",isTitle:i=!1,classes:a="",useHtmlLabels:s=!0,markdown:n=!0,isNode:o=!0,width:l=200,addSvgBackgroun
vendor: 23,104 bytes, line 233
233d:c=!1}={},h)=>{if(J.debug("XYZ createText",t,r,i,a,s,o,"addSvgBackground: ",c),s){const u=n?b0(t,h):y0(t),g=await S0(wi(u),h),d=t.replace(/\\\\/g,"\\"),f={isNode:o,label:hs(t)?d:g,labelStyle:r.replace("fill:","color:")};return await C0(e,f,l,a,c,h)}else{const u=wi(t.replace(/<br\s*\/?>/g,"<br/>")),g=n?m0(u.replace("<br>","<br/>"),h):p0(u),d=T0(l,e,g,t?c:!1,!o);if(o){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));const f=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");Et(d).attr("style",f)}else{const f=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");Et(d).select("rect").attr("style",f.replace(/background:/g,"fill:"));const p=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");Et(d).select("text").attr("style",p)}return i?Et(d).selectAll("tspan.text-outer-tspan").classed("title-row",!0):Et(d).selectAll("tspan.text-outer-tspan").classed("row",!0),d}},"createText");function Ll(e,t,r){if(e&&e.length){const[i,a]=t,s=Math.PI/180*r,n=Math.cos(s),o=Math.sin(s);for(const l of e){const[c,h]=l;l[0]=(c-i)*n-(h-a)*o+i,l[1]=(c-i)*o+(h-a)*n+a}}}function SM(e,t){return e[0]===t[0]&&e[1]===t[1]}function _M(e,t,r,i=1){const a=r,s=Math.max(t,.1),n=e[0]&&e[0][0]&&typeof e[0][0]=="number"?[e]:e,o=[0,0];if(a)for(const c of n)Ll(c,o,a);const l=function(c,h,u){const g=[];for(const k of c){const x=[...k];SM(x[0],x[x.length-1])||x.push([x[0][0],x[0][1]]),x.length>2&&g.push(x)}const d=[];h=Math.max(h,.1);const f=[];for(const k of g)for(let x=0;x<k.length-1;x++){const C=k[x],T=k[x+1];if(C[1]!==T[1]){const w=Math.min(C[1],T[1]);f.push({ymin:w,ymax:Math.max(C[1],T[1]),x:w===C[1]?C[0]:T[0],islope:(T[0]-C[0])/(T[1]-C[1])})}}if(f.sort((k,x)=>k.ymin<x.ymin?-1:k.ymin>x.ymin?1:k.x<x.x?-1:k.x>x.x?1:k.ymax===x.ymax?0:(k.ymax-x.ymax)/Math.abs(k.ymax-x.ymax)),!f.length)return d;let p=[],m=f[0].ymin,b=0;for(;p.length||f.length;){if(f.length){let k=-1;for(let x=0;x<f.length&&!(f[x].ymin>m);x++)k=x;f.splice(0,k+1).forEach(x=>{p.push({s:m,edge:x})})}if(p=p.filter(k=>!(k.edge.ymax<=m)),p.sort((k,x)=>k.edge.x===x.edge.x?0:(k.edge.x-x.edge.x)/Math.abs(k.edge.x-x.edge.x)),(u!==1||b%h==0)&&p.length>1)for(let k=0;k<p.length;k+=2){const x=k+1;if(x>=p.length)break;const C=p[k].edge,T=p[x].edge;d.push([[Math.round(C.x),m],[Math.round(T.x),m]])}m+=u,p.forEach(k=>{k.edge.x=k.edge.x+u*k.edge.islope}),b++}return d}(n,s,i);if(a){for(const c of n)Ll(c,o,-a);(function(c,h,u){const g=[];c.forEach(d=>g.push(...d)),Ll(g,h,u)})(l,o,-a)}return l}function Os(e,t){var r;const i=t.hachureAngle+90;let a=t.hachureGap;a<0&&(a=4*t.strokeWidth),a=Math.round(Math.max(a,.1));let s=1;return t.roughness>=1&&(((r=t.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(s=a),_M(e,a,i,s||1)}class Zh{constructor(t){this.helper=t}fillPolygons(t,r){return this._fillPolygons(t,r)}_fillPolygons(t,r){const i=Os(t,r);return{type:"fillSketch",ops:this.renderLines(i,r)}}renderLines(t,r){const i=[];for(const a of t)i.push(...this.helper.doubleLineOps(a[0][0],a[0][1],a[1][0],a[1][1],r));return i}}function Io(e){const t=e[0],r=e[1];return Math.sqrt(Math.pow(t[0]-r[0],2)+Math.pow(t[1]-r[1],2))}class BM extends Zh{fillPolygons(t,r){let i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);const a=Os(t,Object.assign({},r,{hachureGap:i})),s=Math.PI/180*r.hachureAngle,n=[],o=.5*i*Math.cos(s),l=.5*i*Math.sin(s);for(const[c,h]of a)Io([c,h])&&n.push([[c[0]-o,c[1]+l],[...h]],[[c[0]+o,c[1]-l],[...h]]);return{type:"fillSketch",ops:this.renderLines(n,r)}}}class LM extends Zh{fillPolygons(t,r){const i=this._fillPolygons(t,r),a=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),s=this._fillPolygons(t,a);return i.ops=i.ops.concat(s.ops),i}}class AM{constructor(t){this.helper=t}fillPolygons(t,r){const i=Os(t,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(i,r)}dotsOnLines(t,r){const i=[];let a=r.hachureGap;a<0&&(a=4*r.strokeWidth),a=Math.max(a,.1);let s=r.fillWeight;s<0&&(s=r.strokeWidth/2);const n=a/4;for(const o of t){const l=Io(o),c=l/a,h=Math.ceil(c)-1,u=l-h*a,g=(o[0][0]+o[1][0])/2-a/4,d=Math.min(o[0][1],o[1][1]);for(let f=0;f<h;f++){const p=d+u+f*a,m=g-n+2*Math.random()*n,b=p-n+2*Math.random()*n,k=this.helper.ellipse(m,b,s,s,r);i.push(...k.ops)}}return{type:"fillSketch",ops:i}}}class MM{constructor(t){this.helper=t}fillPolygons(t,r){const i=Os(t,r);return{type:"fillSketch",ops:this.dashedLine(i,r)}}dashedLine(t,r){const i=r.dashOffset<0?r.hachureGap<0?4*r.strokeWidth:r.hachureGap:r.dashOffset,a=r.dashGap<0?r.hachureGap<0?4*r.strokeWidth:r.hachureGap:r.dashGap,s=[];return t.forEach(n=>{const o=Io(n),l=Math.floor(o/(i+a)),c=(o+a-l*(i+a))/2;let h=n[0],u=n[1];h[0]>u[0]&&(h=n[1],u=n[0]);const g=Math.atan((u[1]-h[1])/(u[0]-h[0]));for(let d=0;d<l;d++){const f=d*(i+a),p=f+i,m=[h[0]+f*Math.cos(g)+c*Math.cos(g),h[1]+f*Math.sin(g)+c*Math.sin(g)],b=[h[0]+p*Math.cos(g)+c*Math.cos(g),h[1]+p*Math.sin(g)+c*Math.sin(g)];s.push(...this.helper.doubleLineOps(m[0],m[1],b[0],b[1],r))}}),s}}class FM{constructor(t){this.helper=t}fillPolygons(t,r){const i=r.hachureGap<0?4*r.strokeWidth:r.hachureGap,a=r.zigzagOffset<0?i:r.zigzagOffset,s=Os(t,r=Object.assign({},r,{hachureGap:i+a}));return{type:"fillSketch",ops:this.zigzagLines(s,a,r)}}zigzagLines(t,r,i){const a=[];return t.forEach(s=>{const n=Io(s),o=Math.round(n/(2*r));let l=s[0],c=s[1];l[0]>c[0]&&(l=s[1],c=s[0]);const h=Math.atan((c[1]-l[1])/(c[0]-l[0]));for(let u=0;u<o;u++){const g=2*u*r,d=2*(u+1)*r,f=Math.sqrt(2*Math.pow(r,2)),p=[l[0]+g*Math.cos(h),l[1]+g*Math.sin(h)],m=[l[0]+d*Math.cos(h),l[1]+d*Math.sin(h)],b=[p[0]+f*Math.cos(h+Math.PI/4),p[1]+f*Math.sin(h+Math.PI/4)];a.push(...this.helper.doubleLineOps(p[0],p[1],b[0],b[1],i),...this.helper.doubleLineOps(b[0],b[1],m[0],m[1],i))}}),a}}const Ee={};class PM{constructor(t){this.seed=t}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}}const EM=0,Al=1,cg=2,Zs={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function Ml(e,t){return e.type===t}function Jh(e){const t=[],r=function(n){const o=new Array;for(;n!=="";)if(n.match(/^([ \t\r\n,]+)/))n=n.substr(RegExp.$1.length);else if(n.match(/^([aAcChHlLmMqQsStTvVzZ])/))o[o.length]={type:EM,text:RegExp.$1},n=n.substr(RegExp.$1.length);else{if(!n.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];o[o.length]={type:Al,text:`${parseFloat(RegExp.$1)}`},n=n.substr(RegExp.$1.length)}return o[o.length]={type:cg,text:""},o}(e);let i="BOD",a=0,s=r[a];for(;!Ml(s,cg);){let n=0;const o=[];if(i==="BOD"){if(s.text!=="M"&&s.text!=="m")return Jh("M0,0"+e);a++,n=Zs[s.text],i=s.text}else Ml(s,Al)?n=Zs[i]:(a++,n=Zs[s.text],i=s.text);if(!(a+n<r.length))throw new Error("Path data ended short");for(let l=a;l<a+n;l++){const c=r[l];if(!Ml(c,Al))throw new Error("Param not a number: "+i+","+c.text);o[o.length]=+c.text}if(typeof Zs[i]!="number")throw new Error("Bad segment: "+i);{const l={key:i,data:o};t.push(l),a+=n,s=r[a],i==="M"&&(i="L"),i==="m"&&(i="l")}}return t}function _0(e){let t=0,r=0,i=0,a=0;const s=[];for(const{key:n,data:o}of e)switch(n){case"M":s.push({key:"M",data:[...o]}),[t,r]=o,[i,a]=o;break;case"m":t+=o[0],r+=o[1],s.push({key:"M",data:[t,r]}),i=t,a=r;break;case"L":s.push({key:"L",data:[...o]}),[t,r]=o;break;case"l":t+=o[0],r+=o[1],s.push({key:"L",data:[t,r]});break;case"C":s.push({key:"C",data:[...o]}),t=o[4],r=o[5];break;case"c":{const l=o.map((c,h)=>h%2?c+r:c+t);s.push({key:"C",data:l}),t=l[4],r=l[5];break}case"Q":s.push({key:"Q",data:[...o]}),t=o[2],r=o[3];break;case"q":{const l=o.map((c,h)=>h%2?c+r:c+t);s.push({key:"Q",data:l}),t=l[2],r=l[3];break}case"A":s.push({key:"A",data:[...o]}),t=o[5],r=o[6];break;case"a":t+=o[5],r+=o[6],s.push({key:"A",data:[o[0],o[1],o[2],o[3],o[4],t,r]});break;case"H":s.push({key:"H",data:[...o]}),t=o[0];break;case"h":t+=o[0],s.push({key:"H",data:[t]});break;case"V":s.push({key:"V",data:[...o]}),r=o[0];break;case"v":r+=o[0],s.push({key:"V",data:[r]});break;case"S":s.push({key:"S",data:[...o]}),t=o[2],r=o[3];break;case"s":{const l=o.map((c,h)=>h%2?c+r:c+t);s.push({key:"S",data:l}),t=l[2],r=l[3];break}case"T":s.push({key:"T",data:[...o]}),t=o[0],r=o[1];break;case"t":t+=o[0],r+=o[1],s.push({key:"T",data:[t,r]});break;case"Z":case"z":s.push({key:"Z",data:[]}),t=i,r=a}return s}function B0(e){const t=[];let r="",i=0,a=0,s=0,n=0,o=0,l=0;for(const{key:c,data:h}of e){switch(c){case"M":t.push({key:"M",data:[...h]}),[i,a]=h,[s,n]=h;break;case"C":t.push({key:"C",data:[...h]}),i=h[4],a=h[5],o=h[2],l=h[3];break;case"L":t.push({key:"L",data:[...h]}),[i,a]=h;break;case"H":i=h[0],t.push({key:"L",data:[i,a]});break;case"V":a=h[0],t.push({key:"L",data:[i,a]});break;case"S":{let u=0,g=0;r==="C"||r==="S"?(u=i+(i-o),g=a+(a-l)):(u=i,g=a),t.push({key:"C",data:[u,g,...h]}),o=h[0],l=h[1],i=h[2],a=h[3];break}case"T":{const[u,g]=h;let d=0,f=0;r==="Q"||r==="T"?(d=i+(i-o),f=a+(a-l)):(d=i,f=a);const p=i+2*(d-i)/3,m=a+2*(f-a)/3,b=u+2*(d-u)/3,k=g+2*(f-g)/3;t.push({key:"C",data:[p,m,b,k,u,g]}),o=d,l=f,i=u,a=g;break}case"Q":{const[u,g,d,f]=h,p=i+2*(u-i)/3,m=a+2*(g-a)/3,b=d+2*(u-d)/3,k=f+2*(g-f)/3;t.push({key:"C",data:[p,m,b,k,d,f]}),o=u,l=g,i=d,a=f;break}case"A":{const u=Math.abs(h[0]),g=Math.abs(h[1]),d=h[2],f=h[3],p=h[4],m=h[5],b=h[6];u===0||g===0?(t.push({key:"C",data:[i,a,m,b,m,b]}),i=m,a=b):(i!==m||a!==b)&&(L0(i,a,m,b,u,g,d,f,p).forEach(function(k){t.push({key:"C",data:k})}),i=m,a=b);break}case"Z":t.push({key:"Z",data:[]}),i=s,a=n}r=c}return t}function qa(e,t,r){return[e*Math.cos(r)-t*Math.sin(r),e*Math.sin(r)+t*Math.cos(r)]}function L0(e,t,r,i,a,s,n,o,l,c){const h=(u=n,Math.PI*u/180);var u;let g=[],d=0,f=0,p=0,m=0;if(c)[d,f,p,m]=c;else{[e,t]=qa(e,t,-h),[r,i]=qa(r,i,-h);const D=(e-r)/2,L=(t-i)/2;let F=D*D/(a*a)+L*L/(s*s);F>1&&(F=Math.sqrt(F),a*=F,s*=F);const A=a*a,$=s*s,E=A*$-A*L*L-$*D*D,V=A*L*L+$*D*D,X=(o===l?-1:1)*Math.sqrt(Math.abs(E/V));p=X*a*L/s+(e+r)/2,m=X*-s*D/a+(t+i)/2,d=Math.asin(parseFloat(((t-m)/s).toFixed(9))),f=Math.asin(parseFloat(((i-m)/s).toFixed(9))),e<p&&(d=Math.PI-d),r<p&&(f=Math.PI-f),d<0&&(d=2*Math.PI+d),f<0&&(f=2*Math.PI+f),l&&d>f&&(d-=2*Math.PI),!l&&f>d&&(f-=2*Math.PI)}let b=f-d;if(Math.abs(b)>120*Math.PI/180){const D=f,L=r,F=i;f=l&&f>d?d+120*Math.PI/180*1:d+120*Math.PI/180*-1,g=L0(r=p+a*Math.cos(f),i=m+s*Math.sin(f),L,F,a,s,n,0,l,[f,D,p,m])}b=f-d;const k=Math.cos(d),x=Math.sin(d),C=Math.cos(f),T=Math.sin(f),w=Math.tan(b/4),_=4/3*a*w,B=4/3*s*w,G=[e,t],z=[e+_*x,t-B*k],P=[r+_*T,i-B*C],R=[r,i];if(z[0]=2*G[0]-z[0],z[1]=2*G[1]-z[1],c)return[z,P,R].concat(g);{g=[z,P,R].concat(g);const D=[];for(let L=0;L<g.length;L+=3){const F=qa(g[L][0],g[L][1],h),A=qa(g[L+1][0],g[L+1][1],h),$=qa(g[L+2][0],g[L+2][1],h);D.push([F[0],F[1],A[0],A[1],$[0],$[1]])}return D}}const OM={randOffset:function(e,t){return Bt(e,t)},randOffsetWithRange:function(e,t,r){return io(e,t,r)},ellipse:function(e,t,r,i,a){const s=M0(r,i,a);return Pc(e,t,a,s).opset},doubleLineOps:function(e,t,r,i,a){return Jr(e,t,r,i,a,!0)}};function A0(e,t,r,i,a){return{type:"path",ops:Jr(e,t,r,i,a)}}function mn(e,t,r){const i=(e||[]).length;if(i>2){const a=[];for(let s=0;s<i-1;s++)a.push(...Jr(e[s][0],e[s][1],e[s+1][0],e[s+1][1],r));return t&&a.push(...Jr(e[i-1][0],e[i-1][1],e[0][0],e[0][1],r)),{type:"path",ops:a}}return i===2?A0(e[0][0],e[0][1],e[1][0],e[1][1],r):{type:"path",ops:[]}}function DM(e,t,r,i,a){return function(s,n){return mn(s,!0,n)}([[e,t],[e+r,t],[e+r,t+i],[e,t+i]],a)}function hg(e,t){if(e.length){const r=typeof e[0][0]=="number"?[e]:e,i=Js(r[0],1*(1+.2*t.roughness),t),a=t.disableMultiStroke?[]:Js(r[0],1.5*(1+.22*t.roughness),gg(t));for(let s=1;s<r.length;s++){const n=r[s];if(n.length){const o=Js(n,1*(1+.2*t.roughness),t),l=t.disableMultiStroke?[]:Js(n,1.5*(1+.22*t.roughness),gg(t));for(const c of o)c.op!=="move"&&i.push(c);for(const c of l)c.op!=="move"&&a.push(c)}}return{type:"path",ops:i.concat(a)}}return{type:"path",ops:[]}}function M0(e,t,r){const i=Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(e/2,2)+Math.pow(t/2,2))/2)),a=Math.ceil(Math.max(r.curveStepCount,r.curveStepCount/Math.sqrt(200)*i)),s=2*Math.PI/a;let n=Math.abs(e/2),o=Math.abs(t/2);const l=1-r.curveFitting;return n+=Bt(n*l,r),o+=Bt(o*l,r),{increment:s,rx:n,ry:o}}function Pc(e,t,r,i){const[a,s]=fg(i.increment,e,t,i.rx,i.ry,1,i.increment*io(.1,io(.4,1,r),r),r);let n=ao(a,null,r);if(!r.disableMultiStroke&&r.roughness!==0){const[o]=fg(i.increment,e,t,i.rx,i.ry,1.5,0,r),l=ao(o,null,r);n=n.concat(l)}return{estimatedPoints:s,opset:{type:"path",ops:n}}}function ug(e,t,r,i,a,s,n,o,l){const c=e,h=t;let u=Math.abs(r/2),g=Math.abs(i/2);u+=Bt(.01*u,l),g+=Bt(.01*g,l);let d=a,f=s;for(;d<0;)d+=2*Math.PI,f+=2*Math.PI;f-d>2*Math.PI&&(d=0,f=2*Math.PI);const p=2*Math.PI/l.curveStepCount,m=Math.min(p/2,(f-d)/2),b=pg(m,c,h,u,g,d,f,1,l);if(!l.disableMultiStroke){const k=pg(m,c,h,u,g,d,f,1.5,l);b.push(...k)}return n&&(o?b.push(...Jr(c,h,c+u*Math.cos(d),h+g*Math.sin(d),l),...Jr(c,h,c+u*Math.cos(f),h+g*Math.sin(f),l)):b.push({op:"lineTo",data:[c,h]},{op:"lineTo",data:[c+u*Math.cos(d),h+g*Math.sin(d)]})),{type:"path",ops:b}}function dg(e,t){const r=B0(_0(Jh(e))),i=[];let a=[0,0],s=[0,0];for(const{key:n,data:o}of r)switch(n){case"M":s=[o[0],o[1]],a=[o[0],o[1]];break;case"L":i.push(...Jr(s[0],s[1],o[0],o[1],t)),s=[o[0],o[1]];break;case"C":{const[l,c,h,u,g,d]=o;i.push(...IM(l,c,h,u,g,d,s,t)),s=[g,d];break}case"Z":i.push(...Jr(s[0],s[1],a[0],a[1],t)),s=[a[0],a[1]]}return{type:"path",ops:i}}function Fl(e,t){const r=[];for(const i of e)if(i.length){const a=t.maxRandomnessOffset||0,s=i.length;if(s>2){r.push({op:"move",data:[i[0][0]+Bt(a,t),i[0][1]+Bt(a,t)]});for(let n=1;n<s;n++)r.push({op:"lineTo",data:[i[n][0]+Bt(a,t),i[n][1]+Bt(a,t)]})}}return{type:"fillPath",ops:r}}function Ri(e,t){return function(r,i){let a=r.fillStyle||"hachure";if(!Ee[a])switch(a){case"zigzag":Ee[a]||(Ee[a]=new BM(i));break;case"cross-hatch":Ee[a]||(Ee[a]=new LM(i));break;case"dots":Ee[a]||(Ee[a]=new AM(i));break;case"dashed":Ee[a]||(Ee[a]=new MM(i));break;case"zigzag-line":Ee[a]||(Ee[a]=new FM(i));break;default:a="hachure",Ee[a]||(Ee[a]=new Zh(i))}return Ee[a]}(t,OM).fillPolygons(e,t)}function gg(e){const t=Object.assign({},e);return t.randomizer=void 0,e.seed&&(t.seed=e.seed+1),t}function F0(e){return e.randomizer||(e.randomizer=new PM(e.seed||0)),e.randomizer.next()}function io(e,t,r,i=1){return r.roughness*i*(F0(r)*(t-e)+e)}function Bt(e,t,r=1){return io(-e,e,t,r)}function Jr(e,t,r,i,a,s=!1){const n=s?a.disableMultiStrokeFill:a.disableMultiStroke,o=Ec(e,t,r,i,a,!0,!1);if(n)return o;const l=Ec(e,t,r,i,a,!0,!0);return o.concat(l)}function Ec(e,t,r,i,a,s,n){const o=Math.pow(e-r,2)+Math.pow(t-i,2),l=Math.sqrt(o);let c=1;c=l<200?1:l>500?.4:-.0016668*l+1.233334;let h=a.maxRandomnessOffset||0;h*h*100>o&&(h=l/10);const u=h/2,g=.2+.2*F0(a);let d=a.bowing*a.maxRandomnessOffset*(i-t)/200,f=a.bowing*a.maxRandomnessOffset*(e-r)/200;d=Bt(d,a,c),f=Bt(f,a,c);const p=[],m=()=>Bt(u,a,c),b=()=>Bt(h,a,c),k=a.preserveVertices;return n?p.push({op:"move",data:[e+(k?0:m()),t+(k?0:m())]}):p.push({op:"move",data:[e+(k?0:Bt(h,a,c)),t+(k?0:Bt(h,a,c))]}),n?p.push({op:"bcurveTo",data:[d+e+(r-e)*g+m(),f+t+(i-t)*g+m(),d+e+2*(r-e)*g+m(),f+t+2*(i-t)*g+m(),r+(k?0:m()),i+(k?0:m())]}):p.push({op:"bcurveTo",data:[d+e+(r-e)*g+b(),f+t+(i-t)*g+b(),d+e+2*(r-e)*g+b(),f+t+2*(i-t)*g+b(),r+(k?0:b()),i+(k?0:b())]}),p}function Js(e,t,r){if(!e.length)return[];const i=[];i.push([e[0][0]+Bt(t,r),e[0][1]+Bt(t,r)]),i.push([e[0][0]+Bt(t,r),e[0][1]+Bt(t,r)]);for(let a=1;a<e.length;a++)i.push([e[a][0]+Bt(t,r),e[a][1]+Bt(t,r)]),a===e.length-1&&i.push([e[a][0]+Bt(t,r),e[a][1]+Bt(t,r)]);return ao(i,null,r)}function ao(e,t,r){const i=e.length,a=[];if(i>3){const s=[],n=1-r.curveTightness;a.push({op:"move",data:[e[1][0],e[1][1]]});for(let o=1;o+2<i;o++){const l=e[o];s[0]=[l[0],l[1]],s[1]=[l[0]+(n*e[o+1][0]-n*e[o-1][0])/6,l[1]+(n*e[o+1][1]-n*e[o-1][1])/6],s[2]=[e[o+1][0]+(n*e[o][0]-n*e[o+2][0])/6,e[o+1][1]+(n*e[o][1]-n*e[o+2][1])/6],s[3]=[e[o+1][0],e[o+1][1]],a.push({op:"bcurveTo",data:[s[1][0],s[1][1],s[2][0],s[2][1],s[3][0],s[3][1]]})}}else i===3?(a.push({op:"move",data:[e[1][0],e[1][1]]}),a.push({op:"bcurveTo",data:[e[1][0],e[1][1],e[2][0],e[2][1],e[2][0],e[2][1]]})):i===2&&a.push(...Ec(e[0][0],e[0][1],e[1][0],e[1][1],r,!0,!0));return a}function fg(e,t,r,i,a,s,n,o){const l=[],c=[];if(o.roughness===0){e/=4,c.push([t+i*Math.cos(-e),r+a*Math.sin(-e)]);for(let h=0;h<=2*Math.PI;h+=e){const u=[t+i*Math.cos(h),r+a*Math.sin(h)];l.push(u),c.push(u)}c.push([t+i*Math.cos(0),r+a*Math.sin(0)]),c.push([t+i*Math.cos(e),r+a*Math.sin(e)])}else{const h=Bt(.5,o)-Math.PI/2;c.push([Bt(s,o)+t+.9*i*Math.cos(h-e),Bt(s,o)+r+.9*a*Math.sin(h-e)]);const u=2*Math.PI+h-.01;for(let g=h;g<u;g+=e){const d=[Bt(s,o)+t+i*Math.cos(g),Bt(s,o)+r+a*Math.sin(g)];l.push(d),c.push(d)}c.push([Bt(s,o)+t+i*Math.cos(h+2*Math.PI+.5*n),Bt(s,o)+r+a*Math.sin(h+2*Math.PI+.5*n)]),c.push([Bt(s,o)+t+.98*i*Math.cos(h+n),Bt(s,o)+r+.98*a*Math.sin(h+n)]),c.push([Bt(s,o)+t+.9*i*Math.cos(h+.5*n),Bt(s,o)+r+.9*a*Math.sin(h+.5*n)])}return[c,l]}function pg(e,t,r,i,a,s,n,o,l){const c=s+Bt(.1,l),h=[];h.push([Bt(o,l)+t+.9*i*Math.cos(c-e),Bt(o,l)+r+.9*a*Math.sin(c-e)]);for(let u=c;u<=n;u+=e)h.push([Bt(o,l)+t+i*Math.cos(u),Bt(o,l)+r+a*Math.sin(u)]);return h.push([t+i*Math.cos(n),r+a*Math.sin(n)]),h.push([t+i*Math.cos(n),r+a*Math.sin(n)]),ao(h,null,l)}function IM(e,t,r,i,a,s,n,o){const l=[],c=[o.maxRandomnessOffset||1,(o.maxRandomnessOffset||1)+.3];let h=[0,0];const u=o.disableMultiStroke?1:2,g=o.preserveVertices;for(let d=0;d<u;d++)d===0?l.push({op:"move",data:[n[0],n[1]]}):l.push({op:"move",data:[n[0]+(g?0:Bt(c[0],o)),n[1]+(g?0:Bt(c[0],o))]}),h=g?[a,s]:[a+Bt(c[d],o),s+Bt(c[d],o)],l.push({op:"bcurveTo",data:[e+Bt(c[d],o),t+Bt(c[d],o),r+Bt(c[d],o),i+Bt(c[d],o),h[0],h[1]]});return l}function Ua(e){return[...e]}function mg(e,t=0){const r=e.length;if(r<3)throw new Error("A curve must have at least three points.");const i=[];if(r===3)i.push(Ua(e[0]),Ua(e[1]),Ua(e[2]),Ua(e[2]));else{const a=[];a.push(e[0],e[0]);for(let o=1;o<e.length;o++)a.push(e[o]),o===e.length-1&&a.push(e[o]);const s=[],n=1-t;i.push(Ua(a[0]));for(let o=1;o+2<a.length;o++){const l=a[o];s[0]=[l[0],l[1]],s[1]=[l[0]+(n*a[o+1][0]-n*a[o-1][0])/6,l[1]+(n*a[o+1][1]-n*a[o-1][1])/6],s[2]=[a[o+1][0]+(n*a[o][0]-n*a[o+2][0])/6,a[o+1][1]+(n*a[o][1]-n*a[o+2][1])/6],s[3]=[a[o+1][0],a[o+1][1]],i.push(s[1],s[2],s[3])}}return i}function yn(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)}function $M(e,t,r){const i=yn(t,r);if(i===0)return yn(e,t);let a=((e[0]-t[0])*(r[0]-t[0])+(e[1]-t[1])*(r[1]-t[1]))/i;return a=Math.max(0,Math.min(1,a)),yn(e,ci(t,r,a))}function ci(e,t,r){return[e[0]+(t[0]-e[0])*r,e[1]+(t[1]-e[1])*r]}function Oc(e,t,r,i){const a=i||[];if(function(o,l){const c=o[l+0],h=o[l+1],u=o[l+2],g=o[l+3];let d=3*h[0]-2*c[0]-g[0];d*=d;let f=3*h[1]-2*c[1]-g[1];f*=f;let p=3*u[0]-2*g[0]-c[0];p*=p;let m=3*u[1]-2*g[1]-c[1];return m*=m,d<p&&(d=p),f<m&&(f=m),d+f}(e,t)<r){const o=e[t+0];a.length?(s=a[a.length-1],n=o,Math.sqrt(yn(s,n))>1&&a.push(o)):a.push(o),a.push(e[t+3])}else{const l=e[t+0],c=e[t+1],h=e[t+2],u=e[t+3],g=ci(l,c,.5),d=ci(c,h,.5),f=ci(h,u,.5),p=ci(g,d,.5),m=ci(d,f,.5),b=ci(p,m,.5);Oc([l,g,p,b],0,r,a),Oc([b,m,f,u],0,r,a)}var s,n;return a}function zM(e,t){return so(e,0,e.length,t)}function so(e,t,r,i,a){const s=a||[],n=e[t],o=e[r-1];let l=0,c=1;for(let h=t+1;h<r-1;++h){const u=$M(e[h],n,o);u>l&&(l=u,c=h)}return Math.sqrt(l)>i?(so(e,t,c+1,i,s),so(e,c,r,i,s)):(s.length||s.push(n),s.push(o)),s}function Pl(e,t=.15,r){const i=[],a=(e.length-1)/3;for(let s=0;s<a;s++)Oc(e,3*s,t,i);return r&&r>0?so(i,0,i.length,r):i}const Ie="none";class no{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,r,i){return{shape:t,sets:r||[],options:i||this.defaultOptions}}line(t,r,i,a,s){const n=this._o(s);return this._d("line",[A0(t,r,i,a,n)],n)}rectangle(t,r,i,a,s){const n=this._o(s),o=[],l=DM(t,r,i,a,n);if(n.fill){const c=[[t,r],[t+i,r],[t+i,r+a],[t,r+a]];n.fillStyle==="solid"?o.push(Fl([c],n)):o.push(Ri([c],n))}return n.stroke!==Ie&&o.push(l),this._d("rectangle",o,n)}ellipse(t,r,i,a,s){const n=this._o(s),o=[],l=M0(i,a,n),c=Pc(t,r,n,l);if(n.fill)if(n.fillStyle==="solid"){const h=Pc(t,r,n,l).opset;h.type="fillPath",o.push(h)}else o.push(Ri([c.estimatedPoints],n));return n.stroke!==Ie&&o.push(c.opset),this._d("ellipse",o,n)}circle(t,r,i,a){const s=this.ellipse(t,r,i,i,a);return s.shape="circle",s}linearPath(t,r){const i=this._o(r);return this._d("linearPath",[mn(t,!1,i)],i)}arc(t,r,i,a,s,n,o=!1,l){const c=this._o(l),h=[],u=ug(t,r,i,a,s,n,o,!0,c);if(o&&c.fill)if(c.fillStyle==="solid"){const g=Object.assign({},c);g.disableMultiStroke=!0;const d=ug(t,r,i,a,s,n,!0,!1,g);d.type="fillPath",h.push(d)}else h.push(function(g,d,f,p,m,b,k){const x=g,C=d;let T=Math.abs(f/2),w=Math.abs(p/2);T+=Bt(.01*T,k),w+=Bt(.01*w,k);let _=m,B=b;for(;_<0;)_+=2*Math.PI,B+=2*Math.PI;B-_>2*Math.PI&&(_=0,B=2*Math.PI);const G=(B-_)/k.curveStepCount,z=[];for(let P=_;P<=B;P+=G)z.push([x+T*Math.cos(P),C+w*Math.sin(P)]);return z.push([x+T*Math.cos(B),C+w*Math.sin(B)]),z.push([x,C]),Ri([z],k)}(t,r,i,a,s,n,c));return c.stroke!==Ie&&h.push(u),this._d("arc",h,c)}curve(t,r){const i=this._o(r),a=[],s=hg(t,i);if(i.fill&&i.fill!==Ie)if(i.fillStyle==="solid"){const n=hg(t,Object.assign(Object.assign({},i),{disableMultiStroke:!0,roughness:i.roughness?i.roughness+i.fillShapeRoughnessGain:0}));a.push({type:"fillPath",ops:this._mergedShape(n.ops)})}else{const n=[],o=t;if(o.length){const l=typeof o[0][0]=="number"?[o]:o;for(const c of l)c.length<3?n.push(...c):c.length===3?n.push(...Pl(mg([c[0],c[0],c[1],c[2]]),10,(1+i.roughness)/2)):n.push(...Pl(mg(c),10,(1+i.roughness)/2))}n.length&&a.push(Ri([n],i))}return i.stroke!==Ie&&a.push(s),this._d("curve",a,i)}polygon(t,r){const i=this._o(r),a=[],s=mn(t,!0,i);return i.fill&&(i.fillStyle==="solid"?a.push(Fl([t],i)):a.push(Ri([t],i))),i.stroke!==Ie&&a.push(s),this._d("polygon",a,i)}path(t,r){const i=this._o(r),a=[];if(!t)return this._d("path",a,i);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");const s=i.fill&&i.fill!=="transparent"&&i.fill!==Ie,n=i.stroke!==Ie,o=!!(i.simplification&&i.simplification<1),l=function(h,u,g){const d=B0(_0(Jh(h))),f=[];let p=[],m=[0,0],b=[];const k=()=>{b.length>=4&&p.push(...Pl(b,u)),b=[]},x=()=>{k(),p.length&&(f.push(p),p=[])};for(const{key:T,data:w}of d)switch(T){case"M":x(),m=[w[0],w[1]],p.push(m);break;case"L":k(),p.push([w[0],w[1]]);break;case"C":if(!b.length){const _=p.length?p[p.length-1]:m;b.push([_[0],_[1]])}
vendor: 6,395 bytes, line 233
233b.push([w[0],w[1]]),b.push([w[2],w[3]]),b.push([w[4],w[5]]);break;case"Z":k(),p.push([m[0],m[1]])}if(x(),!g)return f;const C=[];for(const T of f){const w=zM(T,g);w.length&&C.push(w)}return C}(t,1,o?4-4*(i.simplification||1):(1+i.roughness)/2),c=dg(t,i);if(s)if(i.fillStyle==="solid")if(l.length===1){const h=dg(t,Object.assign(Object.assign({},i),{disableMultiStroke:!0,roughness:i.roughness?i.roughness+i.fillShapeRoughnessGain:0}));a.push({type:"fillPath",ops:this._mergedShape(h.ops)})}else a.push(Fl(l,i));else a.push(Ri(l,i));return n&&(o?l.forEach(h=>{a.push(mn(h,!1,i))}):a.push(c)),this._d("path",a,i)}opsToPath(t,r){let i="";for(const a of t.ops){const s=typeof r=="number"&&r>=0?a.data.map(n=>+n.toFixed(r)):a.data;switch(a.op){case"move":i+=`M${s[0]} ${s[1]} `;break;case"bcurveTo":i+=`C${s[0]} ${s[1]}, ${s[2]} ${s[3]}, ${s[4]} ${s[5]} `;break;case"lineTo":i+=`L${s[0]} ${s[1]} `}}return i.trim()}toPaths(t){const r=t.sets||[],i=t.options||this.defaultOptions,a=[];for(const s of r){let n=null;switch(s.type){case"path":n={d:this.opsToPath(s),stroke:i.stroke,strokeWidth:i.strokeWidth,fill:Ie};break;case"fillPath":n={d:this.opsToPath(s),stroke:Ie,strokeWidth:0,fill:i.fill||Ie};break;case"fillSketch":n=this.fillSketch(s,i)}n&&a.push(n)}return a}fillSketch(t,r){let i=r.fillWeight;return i<0&&(i=r.strokeWidth/2),{d:this.opsToPath(t),stroke:r.fill||Ie,strokeWidth:i,fill:Ie}}_mergedShape(t){return t.filter((r,i)=>i===0||r.op!=="move")}}class RM{constructor(t,r){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new no(r)}draw(t){const r=t.sets||[],i=t.options||this.getDefaultOptions(),a=this.ctx,s=t.options.fixedDecimalPlaceDigits;for(const n of r)switch(n.type){case"path":a.save(),a.strokeStyle=i.stroke==="none"?"transparent":i.stroke,a.lineWidth=i.strokeWidth,i.strokeLineDash&&a.setLineDash(i.strokeLineDash),i.strokeLineDashOffset&&(a.lineDashOffset=i.strokeLineDashOffset),this._drawToContext(a,n,s),a.restore();break;case"fillPath":{a.save(),a.fillStyle=i.fill||"";const o=t.shape==="curve"||t.shape==="polygon"||t.shape==="path"?"evenodd":"nonzero";this._drawToContext(a,n,s,o),a.restore();break}case"fillSketch":this.fillSketch(a,n,i)}}fillSketch(t,r,i){let a=i.fillWeight;a<0&&(a=i.strokeWidth/2),t.save(),i.fillLineDash&&t.setLineDash(i.fillLineDash),i.fillLineDashOffset&&(t.lineDashOffset=i.fillLineDashOffset),t.strokeStyle=i.fill||"",t.lineWidth=a,this._drawToContext(t,r,i.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,r,i,a="nonzero"){t.beginPath();for(const s of r.ops){const n=typeof i=="number"&&i>=0?s.data.map(o=>+o.toFixed(i)):s.data;switch(s.op){case"move":t.moveTo(n[0],n[1]);break;case"bcurveTo":t.bezierCurveTo(n[0],n[1],n[2],n[3],n[4],n[5]);break;case"lineTo":t.lineTo(n[0],n[1])}}r.type==="fillPath"?t.fill(a):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,r,i,a,s){const n=this.gen.line(t,r,i,a,s);return this.draw(n),n}rectangle(t,r,i,a,s){const n=this.gen.rectangle(t,r,i,a,s);return this.draw(n),n}ellipse(t,r,i,a,s){const n=this.gen.ellipse(t,r,i,a,s);return this.draw(n),n}circle(t,r,i,a){const s=this.gen.circle(t,r,i,a);return this.draw(s),s}linearPath(t,r){const i=this.gen.linearPath(t,r);return this.draw(i),i}polygon(t,r){const i=this.gen.polygon(t,r);return this.draw(i),i}arc(t,r,i,a,s,n,o=!1,l){const c=this.gen.arc(t,r,i,a,s,n,o,l);return this.draw(c),c}curve(t,r){const i=this.gen.curve(t,r);return this.draw(i),i}path(t,r){const i=this.gen.path(t,r);return this.draw(i),i}}const tn="http://www.w3.org/2000/svg";class NM{constructor(t,r){this.svg=t,this.gen=new no(r)}draw(t){const r=t.sets||[],i=t.options||this.getDefaultOptions(),a=this.svg.ownerDocument||window.document,s=a.createElementNS(tn,"g"),n=t.options.fixedDecimalPlaceDigits;for(const o of r){let l=null;switch(o.type){case"path":l=a.createElementNS(tn,"path"),l.setAttribute("d",this.opsToPath(o,n)),l.setAttribute("stroke",i.stroke),l.setAttribute("stroke-width",i.strokeWidth+""),l.setAttribute("fill","none"),i.strokeLineDash&&l.setAttribute("stroke-dasharray",i.strokeLineDash.join(" ").trim()),i.strokeLineDashOffset&&l.setAttribute("stroke-dashoffset",`${i.strokeLineDashOffset}`);break;case"fillPath":l=a.createElementNS(tn,"path"),l.setAttribute("d",this.opsToPath(o,n)),l.setAttribute("stroke","none"),l.setAttribute("stroke-width","0"),l.setAttribute("fill",i.fill||""),t.shape!=="curve"&&t.shape!=="polygon"||l.setAttribute("fill-rule","evenodd");break;case"fillSketch":l=this.fillSketch(a,o,i)}l&&s.appendChild(l)}return s}fillSketch(t,r,i){let a=i.fillWeight;a<0&&(a=i.strokeWidth/2);const s=t.createElementNS(tn,"path");return s.setAttribute("d",this.opsToPath(r,i.fixedDecimalPlaceDigits)),s.setAttribute("stroke",i.fill||""),s.setAttribute("stroke-width",a+""),s.setAttribute("fill","none"),i.fillLineDash&&s.setAttribute("stroke-dasharray",i.fillLineDash.join(" ").trim()),i.fillLineDashOffset&&s.setAttribute("stroke-dashoffset",`${i.fillLineDashOffset}`),s}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,r){return this.gen.opsToPath(t,r)}line(t,r,i,a,s){const n=this.gen.line(t,r,i,a,s);return this.draw(n)}rectangle(t,r,i,a,s){const n=this.gen.rectangle(t,r,i,a,s);return this.draw(n)}ellipse(t,r,i,a,s){const n=this.gen.ellipse(t,r,i,a,s);return this.draw(n)}circle(t,r,i,a){const s=this.gen.circle(t,r,i,a);return this.draw(s)}linearPath(t,r){const i=this.gen.linearPath(t,r);return this.draw(i)}polygon(t,r){const i=this.gen.polygon(t,r);return this.draw(i)}arc(t,r,i,a,s,n,o=!1,l){const c=this.gen.arc(t,r,i,a,s,n,o,l);return this.draw(c)}curve(t,r){const i=this.gen.curve(t,r);return this.draw(i)}path(t,r){const i=this.gen.path(t,r);return this.draw(i)}}var dt={canvas:(e,t)=>new RM(e,t),svg:(e,t)=>new NM(e,t),generator:e=>new no(e),newSeed:()=>no.newSeed()},_t=y(async(e,t,r)=>{var d,f;let i;const a=t.useHtmlLabels||xr((d=Ht())==null?void 0:d.htmlLabels);r?i=r:i="node default";const s=e.insert("g").attr("class",i).attr("id",t.domId||t.id),n=s.insert("g").attr("class","label").attr("style",ue(t.labelStyle));let o;t.label===void 0?o="":o=typeof t.label=="string"?t.label:t.label[0];const l=!!t.icon||!!t.img,c=t.labelType==="markdown",h=await wr(n,tr(wi(o),Ht()),{useHtmlLabels:a,width:t.width||((f=Ht().flowchart)==null?void 0:f.wrappingWidth),classes:c?"markdown-node-label":"",style:t.labelStyle,addSvgBackgroun
233d:l,markdown:c},Ht());let u=h.getBBox();const g=((t==null?void 0:t.padding)??0)/2;if(a){const p=h.children[0],m=Et(h);await Zy(p,o),u=p.getBoundingClientRect(),m.attr("width",u.width),m.attr("height",u.height)}return a?n.attr("transform","translate("+-u.width/2+", "+-u.height/2+")"):n.attr("transform","translate(0, "+-u.height/2+")"),t.centerLabel&&n.attr("transform","translate("+-u.width/2+", "+-u.height/2+")"),n.insert("rect",":first-child"),{shapeSvg:s,bbox:u,halfPadding:g,label:n}},"labelHelper"),El=y(async(e,t,r)=>{var l,c;const i=r.useHtmlLabels??Pe(Ht()),a=e.insert("g").attr("class","label").attr("style",r.labelStyle||""),s=await wr(a,tr(wi(t),Ht()),{useHtmlLabels:i,width:r.width||((c=(l=Ht())==null?void 0:l.flowchart)==null?void 0:c.wrappingWidth),style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img});let n=s.getBBox();const o=r.padding/2;if(Pe(Ht())){const h=s.children[0],u=Et(s);n=h.getBoundingClientRect(),u.attr("width",n.width),u.attr("height",n.height)}return i?a.attr("transform","translate("+-n.width/2+", "+-n.height/2+")"):a.attr("transform","translate(0, "+-n.height/2+")"),r.centerLabel&&a.attr("transform","translate("+-n.width/2+", "+-n.height/2+")"),a.insert("rect",":first-child"),{shapeSvg:e,bbox:n,halfPadding:o,label:a}},"insertLabel"),yt=y((e,t)=>{const r=t.node().getBBox();e.width=r.width,e.height=r.height},"updateNodeBounds"),Tt=y((e,t)=>(e.look==="handDrawn"?"rough-node":"node")+" "+e.cssClasses+" "+(t||""),"getNodeClasses");function $t(e){const t=e.map((r,i)=>`${i===0?"M":"L"}${r.x},${r.y}`);return t.push("Z"),t.join(" ")}y($t,"createPathFromPoints");function ti(e,t,r,i,a,s){const n=[],l=r-e,c=i-t,h=l/s,u=2*Math.PI/h,g=t+c/2;for(let d=0;d<=50;d++){const f=d/50,p=e+f*l,m=g+a*Math.sin(u*(p-e));n.push({x:p,y:m})}return n}y(ti,"generateFullSineWavePoints");function ks(e,t,r,i,a,s){const n=[],o=a*Math.PI/180,h=(s*Math.PI/180-o)/(i-1);for(let u=0;u<i;u++){const g=o+u*h,d=e+r*Math.cos(g),f=t+r*Math.sin(g);n.push({x:-d,y:-f})}return n}y(ks,"generateCirclePoints");function Dc(e){const t=Array.from(e.childNodes).filter(l=>l.tagName==="path"),r=document.createElementNS("http://www.w3.org/2000/svg","path"),i=t.map(l=>l.getAttribute("d")).filter(l=>l!==null).join(" ");r.setAttribute("d",i);const a=t.find(l=>l.getAttribute("fill")!=="none"),s=t.find(l=>l.getAttribute("stroke")!=="none"),n=y((l,c)=>(l==null?void 0:l.getAttribute(c))??void 0,"getAttr");if(a){const l={fill:n(a,"fill"),"fill-opacity":n(a,"fill-opacity")??"1"};Object.entries(l).forEach(([c,h])=>{h&&r.setAttribute(c,h)})}if(s){const l={stroke:n(s,"stroke"),"stroke-width":n(s,"stroke-width")??"1","stroke-opacity":n(s,"stroke-opacity")??"1"};Object.entries(l).forEach(([c,h])=>{h&&r.setAttribute(c,h)})}const o=document.createElementNS("http://www.w3.org/2000/svg","g");return o.appendChild(r),o}y(Dc,"mergePaths");var HM=y((e,t)=>{var r=e.x,i=e.y,a=t.x-r,s=t.y-i,n=e.width/2,o=e.height/2,l,c;return Math.abs(s)*n>Math.abs(a)*o?(s<0&&(o=-o),l=s===0?0:o*a/s,c=o):(a<0&&(n=-n),l=n,c=a===0?0:n*s/a),{x:r+l,y:i+c}},"intersectRect"),Fi=HM,WM=y(async(e,t,r,i=!1,a=!1)=>{let s=t||"";typeof s=="object"&&(s=s[0]);const n=Ht(),o=Pe(n);return await wr(e,s,{style:r,isTitle:i,useHtmlLabels:o,markdown:!1,isNode:a,width:Number.POSITIVE_INFINITY},n)},"createLabel"),Gr=WM,ei=y((e,t,r,i,a)=>["M",e+a,t,"H",e+r-a,"A",a,a,0,0,1,e+r,t+a,"V",t+i-a,"A",a,a,0,0,1,e+r-a,t+i,"H",e+a,"A",a,a,0,0,1,e,t+i-a,"V",t+a,"A",a,a,0,0,1,e+a,t,"Z"].join(" "),"createRoundedRectPathD"),qM=y(async(e,t)=>{const r=Ht(),{themeVariables:i,handDrawnSeed:a}=r,{clusterBkg:s,clusterBorder:n}=i,o=n,{labelStyles:l,nodeStyles:c,borderStyles:h,backgroundStyles:u}=ft(t),g=e.insert("g").attr("class","cluster swimlane "+(t.cssClasses||"")).attr("id",t.id).attr("data-id",t.id).attr("data-et","cluster").attr("data-look",t.look),d=xr(r.flowchart.htmlLabels),f=t.direction==="LR",p=g.insert("g").attr("class","cluster-label swimlane-label"),m=await wr(p,t.label,{style:t.labelStyle,useHtmlLabels:d,isNode:!0,width:t.width});let b=m.getBBox();if(d){const D=m.children[0],L=Et(m);b=D.getBoundingClientRect(),L.attr("width",b.width),L.attr("height",b.height)}const k=t.padding??0,x=t.width<=b.width+k?b.width+k:t.width;t.width<=b.width+k?t.diff=(x-t.width)/2-k:t.diff=-k;const C=t.height,T=t.y-C/2,w=t.y+C/2,_=t.x-x/2,B=t.swimlaneContentTop!==void 0?t.swimlaneContentTop:T+C/3,G=f?4:0,z=b.height+2*G;let P,R;
233if(f){const D=Math.max(z,b.height+2*G),L=_+D,F=Math.max(0,x-D);if(t.look==="handDrawn"){const E=dt.svg(g),V=ht(t,{roughness:.7,fill:s,stroke:o,fillWeight:3,seed:a}),X=ht(t,{roughness:.7,fill:"none",stroke:o,seed:a}),et=E.rectangle(_,T,D,C,V);P=g.insert(()=>et,":first-child");const ot=E.rectangle(L,T,F,C,X);R=g.insert(()=>ot,":first-child"),P.select("path:nth-child(2)").attr("style",h.join(";")),P.select("path").attr("style",u.join(";").replace("fill","stroke"))}else P=g.insert("rect",":first-child"),R=g.insert("rect",":first-child"),P.attr("class","swimlane-title").attr("style",c).attr("x",_).attr("y",T).attr("width",D).attr("height",C).attr("fill",s).attr("stroke",o),R.attr("class","swimlane-body").attr("style",c).attr("x",L).attr("y",T).attr("width",F).attr("height",C).attr("fill","none").attr("stroke",o);const A=_+D/2,$=t.y;p.attr("transform",`translate(${A}, ${$}) rotate(-90) translate(${-b.width/2}, ${-b.height/2})`)}else{const D=Math.max(0,B-T),L=Math.min(z,D),F=T+L,A=Math.max(0,w-F),$=t.x-x/2;if(t.look==="handDrawn"){const X=dt.svg(g),et=ht(t,{roughness:.7,fill:s,stroke:o,fillWeight:3,seed:a}),ot=ht(t,{roughness:.7,fill:"none",stroke:o,seed:a}),bt=X.rectangle($,T,x,L,et);P=g.insert(()=>bt,":first-child");const pt=X.rectangle($,F,x,A,ot);R=g.insert(()=>pt,":first-child"),P.select("path:nth-child(2)").attr("style",h.join(";")),P.select("path").attr("style",u.join(";").replace("fill","stroke"))}else P=g.insert("rect",":first-child"),R=g.insert("rect",":first-child"),P.attr("class","swimlane-title").attr("style",c).attr("x",$).attr("y",T).attr("width",x).attr("height",L).attr("fill",s).attr("stroke",o),R.attr("class","swimlane-body").attr("style",c).attr("x",$).attr("y",F).attr("width",x).attr("height",A).attr("fill","none").attr("stroke",o);const E=t.x-b.width/2,V=T+(L-b.height)/2;p.attr("transform",`translate(${E}, ${V})`)}if(J.trace("Swimlane data ",t,JSON.stringify(t)),l){const D=p.select("span");D&&D.attr("style",l)}return t.offsetX=0,t.width=x,t.height=C,t.offsetY=b.height-k/2,t.intersect=function(D){return Fi(t,D)},{cluster:g,labelBBox:b}},"swimlane"),P0=y(async(e,t)=>{J.info("Creating subgraph rect for ",t.id,t);const r=Ht(),{themeVariables:i,handDrawnSeed:a}=r,{clusterBkg:s,clusterBorder:n}=i,{labelStyles:o,nodeStyles:l,borderStyles:c,backgroundStyles:h}=ft(t),u=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.domId).attr("data-look",t.look),g=Pe(r),d=u.insert("g").attr("class","cluster-label ");let f;t.labelType==="markdown"?f=await wr(d,t.label,{style:t.labelStyle,useHtmlLabels:g,isNode:!0,width:t.width}):f=await Gr(d,t.label,t.labelStyle||"",!1,!0);let p=f.getBBox();if(Pe(r)){const _=f.children[0],B=Et(f);p=_.getBoundingClientRect(),B.attr("width",p.width),B.attr("height",p.height)}const m=t.width<=p.width+t.padding?p.width+t.padding:t.width;t.width<=p.width+t.padding?t.diff=(m-t.width)/2-t.padding:t.diff=-t.padding;const b=t.height,k=t.x-m/2,x=t.y-b/2;J.trace("Data ",t,JSON.stringify(t));let C;if(t.look==="handDrawn"){const _=dt.svg(u),B=ht(t,{roughness:.7,fill:s,stroke:n,fillWeight:3,seed:a}),G=_.path(ei(k,x,m,b,0),B);C=u.insert(()=>(J.debug("Rough node insert CXC",G),G),":first-child"),C.select("path:nth-child(2)").attr("style",c.join(";")),C.select("path").attr("style",h.join(";").replace("fill","stroke"))}else C=u.insert("rect",":first-child"),C.attr("style",l).attr("rx",t.rx).attr("ry",t.ry).attr("x",k).attr("y",x).attr("width",m).attr("height",b);const{subGraphTitleTopMargin:T}=Hh(r);if(d.attr("transform",`translate(${t.x-p.width/2}, ${t.y-t.height/2+T})`),o){const _=d.select("span");_&&_.attr("style",o)}const w=C.node().getBBox();return t.offsetX=0,t.width=w.width,t.height=w.height,t.offsetY=p.height-t.padding/2,t.intersect=function(_){return Fi(t,_)},{cluster:u,labelBBox:p}},"rect"),UM=y((e,t)=>{const r=e.insert("g").attr("class","note-cluster").attr("id",t.domId),i=r.insert("rect",":first-child"),a=0*t.padding,s=a/2;i.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-s).attr("y",t.y-t.height/2-s).attr("width",t.width+a).attr("height",t.height+a).attr("fill","none");const n=i.node().getBBox();return t.width=n.width,t.height=n.height,t.intersect=function(o){return Fi(t,o)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),VM=y(async(e,t)=>
vendor: 16,087 bytes, lines 233-234
233{const r=Ht(),{themeVariables:i,handDrawnSeed:a}=r,{altBackground:s,compositeBackground:n,compositeTitleBackground:o,nodeBorder:l}=i,c=e.insert("g").attr("class",t.cssClasses).attr("id",t.domId).attr("data-id",t.id).attr("data-look",t.look),h=c.insert("g",":first-child"),u=c.insert("g").attr("class","cluster-label");let g=c.append("rect");const d=await Gr(u,t.label,t.labelStyle,void 0,!0);let f=d.getBBox();if(Pe(r)){const G=d.children[0],z=Et(d);f=G.getBoundingClientRect(),z.attr("width",f.width),z.attr("height",f.height)}const p=0*t.padding,m=p/2,b=(t.width<=f.width+t.padding?f.width+t.padding:t.width)+p;t.width<=f.width+t.padding?t.diff=(b-t.width)/2-t.padding:t.diff=-t.padding;const k=t.height+p,x=t.height+p-f.height-6,C=t.x-b/2,T=t.y-k/2;t.width=b;const w=t.y-t.height/2-m+f.height+2;let _;if(t.look==="handDrawn"){const G=t.cssClasses.includes("statediagram-cluster-alt"),z=dt.svg(c),P=t.rx||t.ry?z.path(ei(C,T,b,k,10),{roughness:.7,fill:o,fillStyle:"solid",stroke:l,seed:a}):z.rectangle(C,T,b,k,{seed:a});_=c.insert(()=>P,":first-child");const R=z.rectangle(C,w,b,x,{fill:G?s:n,fillStyle:G?"hachure":"solid",stroke:l,seed:a});_=c.insert(()=>P,":first-child"),g=c.insert(()=>R)}else _=h.insert("rect",":first-child"),_.attr("class","outer").attr("x",C).attr("y",T).attr("width",b).attr("height",k).attr("data-look",t.look),g.attr("class","inner").attr("x",C).attr("y",w).attr("width",b).attr("height",x);u.attr("transform",`translate(${t.x-f.width/2}, ${T+1-(Pe(r)?0:3)})`);const B=_.node().getBBox();return t.height=B.height,t.offsetX=0,t.offsetY=f.height-t.padding/2,t.labelBBox=f,t.intersect=function(G){return Fi(t,G)},{cluster:c,labelBBox:f}},"roundedWithTitle"),YM=y(async(e,t)=>{J.info("Creating subgraph rect for ",t.id,t);const r=Ht(),{themeVariables:i,handDrawnSeed:a}=r,{clusterBkg:s,clusterBorder:n}=i,{labelStyles:o,nodeStyles:l,borderStyles:c,backgroundStyles:h}=ft(t),u=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.domId).attr("data-look",t.look),g=Pe(r),d=u.insert("g").attr("class","cluster-label "),f=await wr(d,t.label,{style:t.labelStyle,useHtmlLabels:g,isNode:!0,width:t.width});let p=f.getBBox();if(Pe(r)){const _=f.children[0],B=Et(f);p=_.getBoundingClientRect(),B.attr("width",p.width),B.attr("height",p.height)}const m=t.width<=p.width+t.padding?p.width+t.padding:t.width;t.width<=p.width+t.padding?t.diff=(m-t.width)/2-t.padding:t.diff=-t.padding;const b=t.height,k=t.x-m/2,x=t.y-b/2;J.trace("Data ",t,JSON.stringify(t));let C;if(t.look==="handDrawn"){const _=dt.svg(u),B=ht(t,{roughness:.7,fill:s,stroke:n,fillWeight:4,seed:a}),G=_.path(ei(k,x,m,b,t.rx),B);C=u.insert(()=>(J.debug("Rough node insert CXC",G),G),":first-child"),C.select("path:nth-child(2)").attr("style",c.join(";")),C.select("path").attr("style",h.join(";").replace("fill","stroke"))}else C=u.insert("rect",":first-child"),C.attr("style",l).attr("rx",t.rx).attr("ry",t.ry).attr("x",k).attr("y",x).attr("width",m).attr("height",b);const{subGraphTitleTopMargin:T}=Hh(r);if(d.attr("transform",`translate(${t.x-p.width/2}, ${t.y-t.height/2+T})`),o){const _=d.select("span");_&&_.attr("style",o)}const w=C.node().getBBox();return t.offsetX=0,t.width=w.width,t.height=w.height,t.offsetY=p.height-t.padding/2,t.intersect=function(_){return Fi(t,_)},{cluster:u,labelBBox:p}},"kanbanSection"),GM=y((e,t)=>{const r=Ht(),{themeVariables:i,handDrawnSeed:a}=r,{nodeBorder:s}=i,n=e.insert("g").attr("class",t.cssClasses).attr("id",t.domId).attr("data-look",t.look),o=n.insert("g",":first-child"),l=0*t.padding,c=t.width+l;t.diff=-t.padding;const h=t.height+l,u=t.x-c/2,g=t.y-h/2;t.width=c;let d;if(t.look==="handDrawn"){const m=dt.svg(n).rectangle(u,g,c,h,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:s,seed:a});d=n.insert(()=>m,":first-child")}else{d=o.insert("rect",":first-child");let p="outer";t.look,p="divider",d.attr("class",p).attr("x",u).attr("y",g).attr("width",c).attr("height",h).attr("data-look",t.look)}const f=d.node().getBBox();return t.height=f.height,t.offsetX=0,t.offsetY=0,t.intersect=function(p){return Fi(t,p)},{cluster:n,labelBBox:{}}},"divider"),jM=P0,XM={rect:P0,squareRect:jM,roundedWithTitle:VM,noteGroup:UM,divider:GM,kanbanSection:YM,swimlane:qM},E0=new Map,QM=y(async(e,t)=>{const r=t.shape||"rect",i=await XM[r](e,t);return E0.set(t.id,i),i},"insertCluster"),b8=y(()=>{E0=new Map},"clear");function O0(e,t){return e.intersect(t)}y(O0,"intersectNode");var KM=O0;function D0(e,t,r,i){var a=e.x,s=e.y,n=a-i.x,o=s-i.y,l=Math.sqrt(t*t*o*o+r*r*n*n),c=Math.abs(t*r*n/l);i.x<a&&(c=-c);var h=Math.abs(t*r*o/l);return i.y<s&&(h=-h),{x:a+c,y:s+h}}y(D0,"intersectEllipse");var I0=D0;function $0(e,t,r){return I0(e,t,t,r)}y($0,"intersectCircle");var ZM=$0;function z0(e,t,r,i){{const a=t.y-e.y,s=e.x-t.x,n=t.x*e.y-e.x*t.y,o=a*r.x+s*r.y+n,l=a*i.x+s*i.y+n,c=1e-6;if(o!==0&&l!==0&&Ic(o,l))return;const h=i.y-r.y,u=r.x-i.x,g=i.x*r.y-r.x*i.y,d=h*e.x+u*e.y+g,f=h*t.x+u*t.y+g;if(Math.abs(d)<c&&Math.abs(f)<c&&Ic(d,f))return;const p=a*u-h*s;if(p===0)return;const m=Math.abs(p/2);let b=s*g-u*n;const k=b<0?(b-m)/p:(b+m)/p;b=h*n-a*g;const x=b<0?(b-m)/p:(b+m)/p;return{x:k,y:x}}}y(z0,"intersectLine");function Ic(e,t){return e*t>0}y(Ic,"sameSign");var JM=z0;function R0(e,t,r){let i=e.x,a=e.y,s=[],n=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(h){n=Math.min(n,h.x),o=Math.min(o,h.y)}):(n=Math.min(n,t.x),o=Math.min(o,t.y));let l=i-e.width/2-n,c=a-e.height/2-o;for(let h=0;h<t.length;h++){let u=t[h],g=t[h<t.length-1?h+1:0],d=JM(e,r,{x:l+u.x,y:c+u.y},{x:l+g.x,y:c+g.y});d&&s.push(d)}return s.length?(s.length>1&&s.sort(function(h,u){let g=h.x-r.x,d=h.y-r.y,f=Math.sqrt(g*g+d*d),p=u.x-r.x,m=u.y-r.y,b=Math.sqrt(p*p+m*m);return f<b?-1:f===b?0:1}),s[0]):e}y(R0,"intersectPolygon");var t5=R0,lt={node:KM,circle:ZM,ellipse:I0,polygon:t5,rect:Fi};function N0(e,t){const{labelStyles:r}=ft(t);t.labelStyle=r;const i=Tt(t);let a=i;i||(a="anchor");const s=e.insert("g").attr("class",a).attr("id",t.domId||t.id),n=1,{cssStyles:o}=t,l=dt.svg(s),c=ht(t,{fill:"black",stroke:"none",fillStyle:"solid"});t.look!=="handDrawn"&&(c.roughness=0);const h=l.circle(0,0,n*2,c),u=s.insert(()=>h,":first-child");return u.attr("class","anchor").attr("style",ue(o)),yt(t,u),t.intersect=function(g){return J.info("Circle intersect",t,n,g),lt.circle(t,n,g)},s}y(N0,"anchor");function $c(e,t,r,i,a,s,n){const l=(e+r)/2,c=(t+i)/2,h=Math.atan2(i-t,r-e),u=(r-e)/2,g=(i-t)/2,d=u/a,f=g/s,p=Math.sqrt(d**2+f**2);if(p>1)throw new Error("The given radii are too small to create an arc between the points.");const m=Math.sqrt(1-p**2),b=l+m*s*Math.sin(h)*(n?-1:1),k=c-m*a*Math.cos(h)*(n?-1:1),x=Math.atan2((t-k)/s,(e-b)/a);let T=Math.atan2((i-k)/s,(r-b)/a)-x;n&&T<0&&(T+=2*Math.PI),!n&&T>0&&(T-=2*Math.PI);const w=[];for(let _=0;_<20;_++){const B=_/19,G=x+B*T,z=b+a*Math.cos(G),P=k+s*Math.sin(G);w.push({x:z,y:P})}return w}y($c,"generateArcPoints");function H0(e,t,r){const[i,a]=[t,r].sort((s,n)=>n-s);return a*(1-Math.sqrt(1-(e/i/2)**2))}y(H0,"calculateArcSagitta");async function W0(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?16:a,n=t.look==="neo"?12:a,o=y(G=>G+n,"calcTotalHeight"),l=y(G=>{const z=G/2;return[z/(2.5+G/50),z]},"calcEllipseRadius"),{shapeSvg:c,bbox:h}=await _t(e,t,Tt(t)),u=o(t!=null&&t.height?t==null?void 0:t.height:h.height),[g,d]=l(u),f=H0(u,g,d),m=(t!=null&&t.width?t==null?void 0:t.width:h.width)+s*2+f-f,b=u,{cssStyles:k}=t,x=[{x:m/2,y:-b/2},{x:-m/2,y:-b/2},...$c(-m/2,-b/2,-m/2,b/2,g,d,!1),{x:m/2,y:b/2},...$c(m/2,b/2,m/2,-b/2,g,d,!0)],C=dt.svg(c),T=ht(t,{});t.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");const w=$t(x),_=C.path(w,T),B=c.insert(()=>_,":first-child");return B.attr("class","basic label-container outer-path"),k&&t.look!=="handDrawn"&&B.selectAll("path").attr("style",k),i&&t.look!=="handDrawn"&&B.selectAll("path").attr("style",i),B.attr("transform",`translate(${g/2}, 0)`),yt(t,B),t.intersect=function(G){return lt.polygon(t,x,G)},c}y(W0,"bowTieRect");function Nr(e,t,r,i){return e.insert("polygon",":first-child").attr("points",i.map(function(a){return a.x+","+a.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}y(Nr,"insertPolygonShape");var en=12;async function q0(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?28:a,n=t.look==="neo"?24:a,{shapeSvg:o,bbox:l}=await _t(e,t,Tt(t)),c=((t==null?void 0:t.width)??l.width)+(t.look==="neo"?s*2:s+en),h=((t==null?void 0:t.height)??l.height)+(t.look==="neo"?n*2:n),u=0,g=c,d=-h,f=0,p=[{x:u+en,y:d},{x:g,y:d},{x:g,y:f},{x:u,y:f},{x:u,y:d+en},{x:u+en,y:d}];let m;const{cssStyles:b}=t;if(t.look==="handDrawn"){const k=dt.svg(o),x=ht(t,{}),C=$t(p),T=k.path(C,x);m=o.insert(()=>T,":first-child").attr("transform",`translate(${-c/2}, ${h/2})`),b&&m.attr("style",b)}else m=Nr(o,c,h,p);return i&&m.attr("style",i),yt(t,m),t.intersect=function(k){return lt.polygon(t,p,k)},o}y(q0,"card");function U0(e,t){const{nodeStyles:r}=ft(t);t.label="";const i=e.insert("g").attr("class",Tt(t)).attr("id",t.domId??t.id),{cssStyles:a}=t,s=Math.max(28,t.width??0),n=[{x:0,y:s/2},{x:s/2,y:0},{x:0,y:-s/2},{x:-s/2,y:0}],o=dt.svg(i),l=ht(t,{});t.look!=="handDrawn"&&(l.roughness=0,l.fillStyle="solid");const c=$t(n),h=o.path(c,l),u=i.insert(()=>h,":first-child");return a&&t.look!=="handDrawn"&&u.selectAll("path").attr("style",a),r&&t.look!=="handDrawn"&&u.selectAll("path").attr("style",r),t.width=28,t.height=28,t.intersect=function(g){return lt.polygon(t,n,g)},i}y(U0,"choice");async function tu(e,t,r){const{labelStyles:i,nodeStyles:a}=ft(t);t.labelStyle=i;const{shapeSvg:s,bbox:n,halfPadding:o}=await _t(e,t,Tt(t)),l=16,c=(r==null?void 0:r.padding)??o,h=t.look==="neo"?n.width/2+l*2:n.width/2+c;let u;const{cssStyles:g}=t;if(t.look==="handDrawn"){const d=dt.svg(s),f=ht(t,{}),p=d.circle(0,0,h*2,f);u=s.insert(()=>p,":first-child"),u.attr("class","basic label-container").attr("style",ue(g))}else u=s.insert("circle",":first-child").attr("class","basic label-container").attr("style",a).attr("r",h).attr("cx",0).attr("cy",0);return yt(t,u),t.calcIntersect=function(d,f){const p=d.width/2;return lt.circle(d,p,f)},t.intersect=function(d){return J.info("Circle intersect",t,h,d),lt.circle(t,h,d)},s}y(tu,"circle");function V0(e){const t=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),i=e*2,a={x:i/2*t,y:i/2*r},s={x:-(i/2)*t,y:i/2*r},n={x:-(i/2)*t,y:-(i/2)*r},o={x:i/2*t,y:-(i/2)*r};return`M ${s.x},${s.y} L ${o.x},${o.y} 234 M ${a.x},${a.y} L ${n.x},${n.y}`}y(V0,"createLine");function Y0(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r,t.label="";const a=e.insert("g").attr("class",Tt(t)).attr("id",t.domId??t.id),s=Math.max(30,(t==null?void 0:t.width)??0),{cssStyles:n}=t,o=dt.svg(a),l=ht(t,{});t.look!=="handDrawn"&&(l.roughness=0,l.fillStyle="solid");const c=o.circle(0,0,s*2,l),h=V0(s),u=o.path(h,l),g=a.insert(()=>c,":first-child");return g.insert(()=>u),g.attr("class","outer-path"),n&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",n),i&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",i),yt(t,g),t.intersect=function(d){return J.info("crossedCircle intersect",t,{radius:s,point:d}),lt.circle(t,s,d)},a}y(Y0,"crossedCircle");function Br(e,t,r,i=100,a=0,s=180){const n=[],o=a*Math.PI/180,h=(s*Math.PI/180-o)/(i-1);for(let u=0;u<i;u++){const g=o+u*h,d=e+r*Math.cos(g),f=t+r*Math.sin(g);n.push({x:-d,y:-f})}return n}y(Br,"generateCirclePoints");async function G0(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const{shapeSvg:a,bbox:s,label:n}=await _t(e,t,Tt(t)),o=t.look==="neo"?18:t.padding??0,l=t.look==="neo"?12:t.padding??0,c=s.width+o,h=s.height+l,u=Math.max(5,h*.1),{cssStyles:g}=t,d=[...Br(c/2,-h/2,u,30,-90,0),{x:-c/2-u,y:u},...Br(c/2+u*2,-u,u,20,-180,-270),...Br(c/2+u*2,u,u,20,-90,-180),{x:-c/2-u,y:-h/2},...Br(c/2,h/2,u,20,0,90)],f=[{x:c/2,y:-h/2-u},{x:-c/2,y:-h/2-u},...Br(c/2,-h/2,u,20,-90,0),{x:-c/2-u,y:-u},...Br(c/2+c*.1,-u,u,20,-180,-270),...Br(c/2+c*.1,u,u,20,-90,-180),{x:-c/2-u,y:h/2},...Br(c/2,h/2,u,20,0,90),{x:-c/2,y:h/2+u},{x:c/2,y:h/2+u}],p=dt.svg(a),m=ht(t,{fill:"none"});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const k=$t(d).replace("Z",""),x=p.path(k,m),C=$t(f),T=p.path(C,{...m}),w=a.insert("g",":first-child");return w.insert(()=>T,":first-child").attr("stroke-opacity",0),w.insert(()=>x,":first-child"),w.attr("class","text"),g&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",g),i&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",i),w.attr("transform",`translate(${u}, 0)`),n.attr("transform",`translate(${-c/2+u-(s.x-(s.left??0))},${-h/2+(t.padding??0)/2-(s.y-(s.top??0))})`),yt(t,w),t.intersect=function(_){return lt.polygon(t,f,_)},a}y(G0,"curlyBraceLeft");function Lr(e,t,r,i=100,a=0,s=180){const n=[],o=a*Math.PI/180,h=(s*Math.PI/180-o)/(i-1);for(let u=0;u<i;u++){const g=o+u*h,d=e+r*Math.cos(g),f=t+r*Math.sin(g);n.push({x:d,y:f})}return n}y(Lr,"generateCirclePoints");async function j0(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const{shapeSvg:a,bbox:s,label:n}=await _t(e,t,Tt(t)),o=t.look==="neo"?18:t.padding??0,l=t.look==="neo"?12:t.padding??0,c=s.width+(t.look==="neo"?o*2:o),h=s.height+(t.look==="neo"?l*2:l),u=Math.max(5,h*.1),{cssStyles:g}=t,d=[...Lr(c/2,-h/2,u,20,-90,0),{x:c/2+u,y:-u},...Lr(c/2+u*2,-u,u,20,-180,-270),...Lr(c/2+u*2,u,u,20,-90,-180),{x:c/2+u,y:h/2},...Lr(c/2,h/2,u,20,0,90)],f=[{x:-c/2,y:-h/2-u},{x:c/2,y:-h/2-u},...Lr(c/2,-h/2,u,20,-90,0),{x:c/2+u,y:-u},...Lr(c/2+u*2,-u,u,20,-180,-270),...Lr(c/2+u*2,u,u,20,-90,-180),{x:c/2+u,y:h/2},...Lr(c/2,h/2,u,20,0,90),{x:c/2,y:h/2+u},{x:-c/2,y:h/2+u}],p=dt.svg(a),m=ht(t,{fill:"none"});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const k=$t(d).replace("Z",""),x=p.path(k,m),C=$t(f),T=p.path(C,{...m}),w=a.insert("g",":first-child");return w.insert(()=>T,":first-child").attr("stroke-opacity",0),w.insert(()=>x,":first-child"),w.attr("class","text"),g&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",g),i&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",i),w.attr("transform",`translate(${-u}, 0)`),n.attr("transform",`translate(${-c/2+(t.padding??0)/2-(s.x-(s.left??0))},${-h/2+(t.padding??0)/2-(s.y-(s.top??0))})`),yt(t,w),t.intersect=function(_){return lt.polygon(t,f,_)},a}y(j0,"curlyBraceRight");function pe(e,t,r,i=100,a=0,s=180){const n=[],o=a*Math.PI/180,h=(s*Math.PI/180-o)/(i-1);for(let u=0;u<i;u++){const g=o+u*h,d=e+r*Math.cos(g),f=t+r*Math.sin(g);n.push({x:-d,y:-f})}return n}y(pe,"generateCirclePoints");async function X0(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const{shapeSvg:a,bbox:s,label:n}=await _t(e,t,Tt(t)),o=t.look==="neo"?18:t.padding??0,l=t.look==="neo"?12:t.padding??0,c=s.width+(t.look==="neo"?o*2:o),h=s.height+(t.look==="neo"?l*2:l),u=Math.max(5,h*.1),{cssStyles:g}=t,d=[...pe(c/2,-h/2,u,30,-90,0),{x:-c/2-u,y:u},...pe(c/2+u*2,-u,u,20,-180,-270),...pe(c/2+u*2,u,u,20,-90,-180),{x:-c/2-u,y:-h/2},...pe(c/2,h/2,u,20,0,90)],f=[...pe(-c/2+u+u/2,-h/2,u,20,-90,-180),{x:c/2-u/2,y:u},...pe(-c/2-u/2,-u,u,20,0,90),...pe(-c/2-u/2,u,u,20,-90,0),{x:c/2-u/2,y:-u},...pe(-c/2+u+u/2,h/2,u,30,-180,-270)],p=[{x:c/2,y:-h/2-u},{x:-c/2,y:-h/2-u},...pe(c/2,-h/2,u,20,-90,0),{x:-c/2-u,y:-u},...pe(c/2+u*2,-u,u,20,-180,-270),...pe(c/2+u*2,u,u,20,-90,-180),{x:-c/2-u,y:h/2},...pe(c/2,h/2,u,20,0,90),{x:-c/2,y:h/2+u},{x:c/2-u-u/2,y:h/2+u},...pe(-c/2+u+u/2,-h/2,u,20,-90,-180),{x:c/2-u/2,y:u},...pe(-c/2-u/2,-u,u,20,0,90),...pe(-c/2-u/2,u,u,20,-90,0),{x:c/2-u/2,y:-u},...pe(-c/2+u+u/2,h/2,u,30,-180,-270)],m=dt.svg(a),b=ht(t,{fill:"none"});t.look!=="handDrawn"&&(b.roughness=0,b.fillStyle="solid");const x=$t(d).replace("Z",""),C=m.path(x,b),w=$t(f).replace("Z",""),_=m.path(w,b),B=$t(p),G=m.path(B,{...b}),z=a.insert("g",":first-child");return z.insert(()=>G,":first-child").attr("stroke-opacity",0),z.insert(()=>C,":first-child"),z.insert(()=>_,":first-child"),z.attr("class","text"),g&&t.look!=="handDrawn"&&z.selectAll("path").attr("style",g),i&&t.look!=="handDrawn"&&z.selectAll("path").attr("style",i),z.attr("transform",`translate(${u-u/4}
234, 0)`),n.attr("transform",`translate(${-c/2+(t.padding??0)/2-(s.x-(s.left??0))},${-h/2+(t.padding??0)/2-(s.y-(s.top??0))})`),yt(t,z),t.intersect=function(P){return lt.polygon(t,p,P)},a}y(X0,"curlyBraces");async function Q0(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?16:a,n=t.look==="neo"?12:a,o=20,l=5,{shapeSvg:c,bbox:h}=await _t(e,t,Tt(t)),u=Math.max(o,(h.width+s*2)*1.25,(t==null?void 0:t.width)??0),g=Math.max(l,h.height+n*2,(t==null?void 0:t.height)??0),d=g/2,{cssStyles:f}=t,p=dt.svg(c),m=ht(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const b=u,k=g,x=b-d,C=k/4,T=[{x,y:0},{x:C,y:0},{x:0,y:k/2},{x:C,y:k},{x,y:k},...ks(-x,-k/2,d,50,270,90)],w=$t(T),_=p.path(w,m),B=c.insert(()=>_,":first-child");return B.attr("class","basic label-container outer-path"),f&&t.look!=="handDrawn"&&B.selectChildren("path").attr("style",f),i&&t.look!=="handDrawn"&&B.selectChildren("path").attr("style",i),B.attr("transform",`translate(${-u/2}, ${-g/2})`),yt(t,B),t.intersect=function(G){return lt.polygon(t,T,G)},c}y(Q0,"curvedTrapezoid");var e5=y((e,t,r,i,a,s)=>[`M${e},${t+s}`,`a${a},${s} 0,0,0 ${r},0`,`a${a},${s} 0,0,0 ${-r},0`,`l0,${i}`,`a${a},${s} 0,0,0 ${r},0`,`l0,${-i}`].join(" "),"createCylinderPathD"),r5=y((e,t,r,i,a,s)=>[`M${e},${t+s}`,`M${e+r},${t+s}`,`a${a},${s} 0,0,0 ${-r},0`,`l0,${i}`,`a${a},${s} 0,0,0 ${r},0`,`l0,${-i}`].join(" "),"createOuterCylinderPathD"),i5=y((e,t,r,i,a,s)=>[`M${e-r/2},${-i/2}`,`a${a},${s} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),yg=8,bg=8;async function K0(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?24:a,n=t.look==="neo"?24:a;if(t.width||t.height){const m=t.width??0;t.width=(t.width??0)-n,t.width<bg&&(t.width=bg);const k=m/2/(2.5+m/50);t.height=(t.height??0)-s-k*3,t.height<yg&&(t.height=yg)}const{shapeSvg:o,bbox:l,label:c}=await _t(e,t,Tt(t)),h=(t.width?t.width:l.width)+n,u=h/2,g=u/(2.5+h/50),d=(t.height?t.height:l.height)+s+g;let f;const{cssStyles:p}=t;if(t.look==="handDrawn"){const m=dt.svg(o),b=r5(0,0,h,d,u,g),k=i5(0,g,h,d,u,g),x=ht(t,{}),C=m.path(b,x),T=m.path(k,ht(t,{fill:"none"}));f=o.insert(()=>T,":first-child"),f=o.insert(()=>C,":first-child"),f.attr("class","basic label-container"),p&&f.attr("style",p)}else{const m=e5(0,0,h,d,u,g);f=o.insert("path",":first-child").attr("d",m).attr("class","basic label-container outer-path").attr("style",ue(p)).attr("style",i)}return f.attr("label-offset-y",g),f.attr("transform",`translate(${-h/2}, ${-(d/2+g)})`),yt(t,f),c.attr("transform",`translate(${-(l.width/2)-(l.x-(l.left??0))}, ${-(l.height/2)+(t.padding??0)/1.5-(l.y-(l.top??0))})`),t.intersect=function(m){const b=lt.rect(t,m),k=b.x-(t.x??0);if(u!=0&&(Math.abs(k)<(t.width??0)/2||Math.abs(k)==(t.width??0)/2&&Math.abs(b.y-(t.y??0))>(t.height??0)/2-g)){let x=g*g*(1-k*k/(u*u));x>0&&(x=Math.sqrt(x)),x=g-x,m.y-(t.y??0)>0&&(x=-x),b.y+=x}return b},o}y(K0,"cylinder");async function _a(e,t,r){const{labelStyles:i,nodeStyles:a}=ft(t);t.labelStyle=i;const{shapeSvg:s,bbox:n}=await _t(e,t,Tt(t)),o=Math.max(n.width+r.labelPaddingX*2,(t==null?void 0:t.width)||0),l=Math.max(n.height+r.labelPaddingY*2,(t==null?void 0:t.height)||0),c=-o/2,h=-l/2;let u,{rx:g,ry:d}=t;const{cssStyles:f}=t;if(r!=null&&r.rx&&r.ry&&(g=r.rx,d=r.ry),t.look==="handDrawn"){const p=dt.svg(s),m=ht(t,{}),b=g||d?p.path(ei(c,h,o,l,g||0),m):p.rectangle(c,h,o,l,m);u=s.insert(()=>b,":first-child"),u.attr("class","basic label-container").attr("style",ue(f))}else u=s.insert("rect",":first-child"),u.attr("class","basic label-container").attr("style",a).attr("rx",ue(g)).attr("ry",ue(d)).attr("x",c).attr("y",h).attr("width",o).attr("height",l);return yt(t,u),t.calcIntersect=function(p,m){return lt.rect(p,m)},t.intersect=function(p){return lt.rect(t,p)},s}y(_a,"drawRect");async function Z0(e,t){const{cssClasses:r,labelPaddingX:i,labelPaddingY:a,padding:s,width:n,height:o}=t,l={rx:0,ry:0,labelPaddingX:i??(s??0)*2,labelPaddingY:a??s??0},c=await _a(e,t,l);if(t.look==="handDrawn"){const d=dt.svg(c),f=ht(t,{}),p=c.select(".basic.label-container > path:nth-child(2)"),m=p.node();if(!m)return c;let b=null;if(m instanceof SVGGraphicsElement)b=m.getBBox();else return c;return c.insert(()=>d.line(b.x,b.y,b.x+b.width,b.y,f),".basic.label-container g.label"),c.insert(()=>d.line(b.x,b.y+b.height,b.x+b.width,b.y+b.height,f),".basic.label-container g.label"),p.remove(),c}const h=c.select(".basic.label-container"),u=(Number(h.attr("width"))||n)??0,g=(Number(h.attr("height"))||o)??0;return u>0&&g>0&&h.attr("stroke-dasharray",`${u} ${g}`),c}y(Z0,"datastore");async function J0(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.look==="neo"?16:t.padding??0,s=t.look==="neo"?16:t.padding??0,{shapeSvg:n,bbox:o,label:l}=await _t(e,t,Tt(t)),c=o.width+a,h=o.height+s,u=h*.2,g=-c/2,d=-h/2-u/2,{cssStyles:f}
234=t,p=dt.svg(n),m=ht(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const b=[{x:g,y:d+u},{x:-g,y:d+u},{x:-g,y:-d},{x:g,y:-d},{x:g,y:d},{x:-g,y:d},{x:-g,y:d+u}],k=p.polygon(b.map(C=>[C.x,C.y]),m),x=n.insert(()=>k,":first-child");return x.attr("class","basic label-container outer-path"),f&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",f),i&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",i),l.attr("transform",`translate(${g+(t.padding??0)/2-(o.x-(o.left??0))}, ${d+u+(t.padding??0)/2-(o.y-(o.top??0))})`),yt(t,x),t.intersect=function(C){return lt.rect(t,C)},n}y(J0,"dividedRectangle");async function tb(e,t){var d,f;const{labelStyles:r,nodeStyles:i}=ft(t),a=t.look==="neo"?12:5;t.labelStyle=r;const s=t.padding??0,n=t.look==="neo"?16:s,{shapeSvg:o,bbox:l}=await _t(e,t,Tt(t)),c=(t!=null&&t.width?(t==null?void 0:t.width)/2:l.width/2)+(n??0),h=c-a;let u;const{cssStyles:g}=t;if(t.look==="handDrawn"){const p=dt.svg(o),m=ht(t,{roughness:.2,strokeWidth:2.5}),b=ht(t,{roughness:.2,strokeWidth:1.5}),k=p.circle(0,0,c*2,m),x=p.circle(0,0,h*2,b);u=o.insert("g",":first-child"),u.attr("class",ue(t.cssClasses)).attr("style",ue(g)),(d=u.node())==null||d.appendChild(k),(f=u.node())==null||f.appendChild(x)}else{u=o.insert("g",":first-child");const p=u.insert("circle",":first-child"),m=u.insert("circle");u.attr("class","basic label-container").attr("style",i),p.attr("class","outer-circle").attr("style",i).attr("r",c).attr("cx",0).attr("cy",0),m.attr("class","inner-circle").attr("style",i).attr("r",h).attr("cx",0).attr("cy",0)}return yt(t,u),t.intersect=function(p){return J.info("DoubleCircle intersect",t,c,p),lt.circle(t,c,p)},o}y(tb,"doublecircle");function eb(e,t,{config:{themeVariables:r}}){const{labelStyles:i,nodeStyles:a}=ft(t);t.label="",t.labelStyle=i;const s=e.insert("g").attr("class",Tt(t)).attr("id",t.domId??t.id),n=7,{cssStyles:o}=t,l=dt.svg(s),{nodeBorder:c}=r,h=ht(t,{fillStyle:"solid"});t.look!=="handDrawn"&&(h.roughness=0);const u=l.circle(0,0,n*2,h),g=s.insert(()=>u,":first-child");return g.selectAll("path").attr("style",`fill: ${c} !important;`),o&&o.length>0&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",o),a&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",a),yt(t,g),t.intersect=function(d){return J.info("filledCircle intersect",t,{radius:n,point:d}),lt.circle(t,n,d)},s}y(eb,"filledCircle");var kg=10,vg=10;async function rb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?a*2:a;(t.width||t.height)&&(t.height=(t==null?void 0:t.height)??0,t.height<kg&&(t.height=kg),t.width=((t==null?void 0:t.width)??0)-s-s/2,t.width<vg&&(t.width=vg));const{shapeSvg:n,bbox:o,label:l}=await _t(e,t,Tt(t)),c=(t!=null&&t.width?t==null?void 0:t.width:o.width)+(s??0),h=t!=null&&t.height?t==null?void 0:t.height:c+o.height,u=h,g=[{x:0,y:-h},{x:u,y:-h},{x:u/2,y:0}],{cssStyles:d}=t,f=dt.svg(n),p=ht(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");const m=$t(g),b=f.path(m,p),k=n.insert(()=>b,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`).attr("class","outer-path");return d&&t.look!=="handDrawn"&&k.selectChildren("path").attr("style",d),i&&t.look!=="handDrawn"&&k.selectChildren("path").attr("style",i),t.width=c,t.height=h,yt(t,k),l.attr("transform",`translate(${-o.width/2-(o.x-(o.left??0))}, ${-h/2+(t.padding??0)/2+(o.y-(o.top??0))})`),t.intersect=function(x){return J.info("Triangle intersect",t,g,x),lt.polygon(t,g,x)},n}y(rb,"flippedTriangle");function ib(e,t,{dir:r,config:{state:i,themeVariables:a}}){const{nodeStyles:s}=ft(t);t.label="";const n=e.insert("g").attr("class",Tt(t)).attr("id",t.domId??t.id),{cssStyles:o}=t;let l=Math.max(70,(t==null?void 0:t.width)??0),c=Math.max(10,(t==null?void 0:t.height)??0);r==="LR"&&(l=Math.max(10,(t==null?void 0:t.width)??0),c=Math.max(70,(t==null?void 0:t.height)??0));const h=-1*l/2,u=-1*c/2,g=dt.svg(n),d=ht(t,{stroke:a.lineColor,fill:a.lineColor});t.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");const f=g.rectangle(h,u,l,c,d),p=n.insert(()=>f,":first-child");o&&t.look!=="handDrawn"&&p.selectAll("path").attr("style",o),s&&t.look!=="handDrawn"&&p.selectAll("path").attr("style",s),yt(t,p);const m=(i==null?void 0:i.padding)??0;return t.width&&t.height&&(t.width+=m/2||0,t.height+=m/2||0),t.intersect=function(b){return lt.rect(t,b)},n}y(ib,"forkJoin");async function ab(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=15,s=10,n=t.look==="neo"?16:t.padding??0,o=t.look==="neo"?12:t.padding??0;(t.width||t.height)&&(t.height=((t==null?void 0:t.height)??0)-o*2,t.he
234ight<s&&(t.height=s),t.width=((t==null?void 0:t.width)??0)-n*2,t.width<a&&(t.width=a));const{shapeSvg:l,bbox:c}=await _t(e,t,Tt(t)),h=(t!=null&&t.width?t==null?void 0:t.width:Math.max(a,c.width))+n*2,u=(t!=null&&t.height?t==null?void 0:t.height:Math.max(s,c.height))+o*2,g=u/2,{cssStyles:d}=t,f=dt.svg(l),p=ht(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");const m=[{x:-h/2,y:-u/2},{x:h/2-g,y:-u/2},...ks(-h/2+g,0,g,50,90,270),{x:h/2-g,y:u/2},{x:-h/2,y:u/2}],b=$t(m),k=f.path(b,p),x=l.insert(()=>k,":first-child");return x.attr("class","basic label-container outer-path"),d&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),i&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",i),yt(t,x),t.intersect=function(C){return J.info("Pill intersect",t,{radius:g,point:C}),lt.polygon(t,m,C)},l}y(ab,"halfRoundedRectangle");var a5=y((e,t,r,i,a)=>[`M${e+a},${t}`,`L${e+r-a},${t}`,`L${e+r},${t-i/2}`,`L${e+r-a},${t-i}`,`L${e+a},${t-i}`,`L${e},${t-i/2}`,"Z"].join(" "),"createHexagonPathD");async function sb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t),a=t.look==="neo"?3.5:4;t.labelStyle=r;const s=t.padding??0,n=70,o=32,l=t.look==="neo"?n:s,c=t.look==="neo"?o:s;if(t.width||t.height){const x=(t.height??0)/a;t.width=((t==null?void 0:t.width)??0)-2*x-c,t.height=(t.height??0)-l}const{shapeSvg:h,bbox:u}=await _t(e,t,Tt(t)),g=(t!=null&&t.height?t==null?void 0:t.height:u.height)+l,d=g/a,f=(t!=null&&t.width?t==null?void 0:t.width:u.width)+2*d+c,p=[{x:d,y:0},{x:f-d,y:0},{x:f,y:-g/2},{x:f-d,y:-g},{x:d,y:-g},{x:0,y:-g/2}];let m;const{cssStyles:b}=t;if(t.look==="handDrawn"){const k=dt.svg(h),x=ht(t,{}),C=a5(0,0,f,g,d),T=k.path(C,x);m=h.insert(()=>T,":first-child").attr("transform",`translate(${-f/2}, ${g/2})`),b&&m.attr("style",b)}else m=Nr(h,f,g,p);return i&&m.attr("style",i),t.width=f,t.height=g,yt(t,m),t.intersect=function(k){return lt.polygon(t,p,k)},h}y(sb,"hexagon");async function nb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.label="",t.labelStyle=r;const{shapeSvg:a}=await _t(e,t,Tt(t)),s=Math.max(30,(t==null?void 0:t.width)??0),n=Math.max(30,(t==null?void 0:t.height)??0),{cssStyles:o}=t,l=dt.svg(a),c=ht(t,{});t.look!=="handDrawn"&&(c.roughness=0,c.fillStyle="solid");const h=[{x:0,y:0},{x:s,y:0},{x:0,y:n},{x:s,y:n}],u=$t(h),g=l.path(u,c),d=a.insert(()=>g,":first-child");return d.attr("class","basic label-container outer-path"),o&&t.look!=="handDrawn"&&d.selectChildren("path").attr("style",o),i&&t.look!=="handDrawn"&&d.selectChildren("path").attr("style",i),d.attr("transform",`translate(${-s/2}, ${-n/2})`),yt(t,d),t.intersect=function(f){return J.info("Pill intersect",t,{points:h}),lt.polygon(t,h,f)},a}y(nb,"hourglass");async function ob(e,t,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:a}=ft(t);t.labelStyle=a;const s=t.assetHeight??48,n=t.assetWidth??48,o=Math.max(s,n),l=i==null?void 0:i.wrappingWidth;t.width=Math.max(o,l??0);const{shapeSvg:c,bbox:h,label:u}=await _t(e,t,"icon-shape default"),g=t.pos==="t",d=o,f=o,{nodeBorder:p}=r,{stylesMap:m}=Sa(t),b=-f/2,k=-d/2,x=t.label?8:0,C=dt.svg(c),T=ht(t,{stroke:"none",fill:"none"});t.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");const w=C.rectangle(b,k,f,d,T),_=Math.max(f,h.width),B=d+h.height+x,G=C.rectangle(-_/2,-B/2,_,B,{...T,fill:"transparent",stroke:"none"}),z=c.insert(()=>w,":first-child"),P=c.insert(()=>G);if(t.icon){const R=c.append("g");R.html(`<g>${await Ps(t.icon,{height:o,width:o,fallbackPrefix:""})}</g>`);const D=R.node().getBBox(),L=D.width,F=D.height,A=D.x,$=D.y;R.attr("transform",`translate(${-L/2-A},${g?h.height/2+x/2-F/2-$:-h.height/2-x/2-F/2-$})`),R.attr("style",`color: ${m.get("stroke")??p};`)}return u.attr("transform",`translate(${-h.width/2-(h.x-(h.left??0))},${g?-B/2:B/2-h.height})`),z.attr("transform",`translate(0,${g?h.height/2+x/2:-h.height/2-x/2})`),yt(t,P),t.intersect=function(R){if(J.info("iconSquare intersect",t,R),!t.label)return lt.rect(t,R);const D=t.x??0,L=t.y??0,F=t.height??0;let A=[];return g?A=[{x:D-h.width/2,y:L-F/2},{x:D+h.width/2,y:L-F/2},{x:D+h.width/2,y:L-F/2+h.height+x},{x:D+f/2,y:L-F/2+h.height+x},{x:D+f/2,y:L+F/2},{x:D-f/2,y:L+F/2},{x:D-f/2,y:L-F/2+h.height+x},{x:D-h.width/2,y:L-F/2+h.height+x}]:A=[{x:D-f/2,y:L-F/2},{x:D+f/2,y:L-F/2},{x:D+f/2,y:L-F/2+d},{x:D+h.width/2,y:L-F/2+d},{x:D+h.width/2/2,y:L+F/2},{x:D-h.width/2,y:L+F/2},{x:D-h.width/2,y:L-F/2+d},{x:D-f/2,y:L-F/2+d}],lt.polygon(t,A,R)},c}y(ob,"icon");async function lb(e,t,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:a}=ft(t);t.labelStyle=a;const s=t.assetHeight??48,n=t.assetWidth??48,o=Math.max(s,n),l=i==null?void 0:i.wrappingWidth;t.width=Math.max(o,l??0);const{shapeSvg:c,bbox:h,label:u}=await _t(e,t,"icon-shape default"),g=20,d=t.label?8:0,f=t.pos==="t",{nodeBorder:p,mainBkg:m}=r,{stylesMap:b}=Sa(t),k=dt.svg(c),x=ht(t,{});t.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");const C=b.get("fill");x.stroke=C??m;const T=c.append("g");t.icon&&T.html(`<g>${await Ps(t.icon,{height:o,width:o,fallbackPrefix:""})}</g>`);const w=T.node().getBBox(),_=w.width,B=w.height,G=w.x,z=w.y,P=Math.max(_,B)*Math.SQRT2+g*2,R=k.circle(0,0,P,x),D=Math.max(P,h.width),L=P+h.height+d,F=k.rectangle(-D/2,-L/2,D,L,{...x,fill:"transparent",stroke:"none"}),A=c.insert(()=>R,":first-child"),$=c.insert(()=>F);return T.attr("transform",`translate(${-_/2-G}
234,${f?h.height/2+d/2-B/2-z:-h.height/2-d/2-B/2-z})`),T.attr("style",`color: ${b.get("stroke")??p};`),u.attr("transform",`translate(${-h.width/2-(h.x-(h.left??0))},${f?-L/2:L/2-h.height})`),A.attr("transform",`translate(0,${f?h.height/2+d/2:-h.height/2-d/2})`),yt(t,$),t.intersect=function(E){return J.info("iconSquare intersect",t,E),lt.rect(t,E)},c}y(lb,"iconCircle");async function cb(e,t,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:a}=ft(t);t.labelStyle=a;const s=t.assetHeight??48,n=t.assetWidth??48,o=Math.max(s,n),l=i==null?void 0:i.wrappingWidth;t.width=Math.max(o,l??0);const{shapeSvg:c,bbox:h,halfPadding:u,label:g}=await _t(e,t,"icon-shape default"),d=t.pos==="t",f=o+u*2,p=o+u*2,{nodeBorder:m,mainBkg:b}=r,{stylesMap:k}=Sa(t),x=-p/2,C=-f/2,T=t.label?8:0,w=dt.svg(c),_=ht(t,{});t.look!=="handDrawn"&&(_.roughness=0,_.fillStyle="solid");const B=k.get("fill");_.stroke=B??b;const G=w.path(ei(x,C,p,f,5),_),z=Math.max(p,h.width),P=f+h.height+T,R=w.rectangle(-z/2,-P/2,z,P,{..._,fill:"transparent",stroke:"none"}),D=c.insert(()=>G,":first-child").attr("class","icon-shape2"),L=c.insert(()=>R);if(t.icon){const F=c.append("g");F.html(`<g>${await Ps(t.icon,{height:o,width:o,fallbackPrefix:""})}</g>`);const A=F.node().getBBox(),$=A.width,E=A.height,V=A.x,X=A.y;F.attr("transform",`translate(${-$/2-V},${d?h.height/2+T/2-E/2-X:-h.height/2-T/2-E/2-X})`),F.attr("style",`color: ${k.get("stroke")??m};`)}return g.attr("transform",`translate(${-h.width/2-(h.x-(h.left??0))},${d?-P/2:P/2-h.height})`),D.attr("transform",`translate(0,${d?h.height/2+T/2:-h.height/2-T/2})`),yt(t,L),t.intersect=function(F){if(J.info("iconSquare intersect",t,F),!t.label)return lt.rect(t,F);const A=t.x??0,$=t.y??0,E=t.height??0;let V=[];return d?V=[{x:A-h.width/2,y:$-E/2},{x:A+h.width/2,y:$-E/2},{x:A+h.width/2,y:$-E/2+h.height+T},{x:A+p/2,y:$-E/2+h.height+T},{x:A+p/2,y:$+E/2},{x:A-p/2,y:$+E/2},{x:A-p/2,y:$-E/2+h.height+T},{x:A-h.width/2,y:$-E/2+h.height+T}]:V=[{x:A-p/2,y:$-E/2},{x:A+p/2,y:$-E/2},{x:A+p/2,y:$-E/2+f},{x:A+h.width/2,y:$-E/2+f},{x:A+h.width/2/2,y:$+E/2},{x:A-h.width/2,y:$+E/2},{x:A-h.width/2,y:$-E/2+f},{x:A-p/2,y:$-E/2+f}],lt.polygon(t,V,F)},c}y(cb,"iconRounded");async function hb(e,t,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:a}=ft(t);t.labelStyle=a;const s=t.assetHeight??48,n=t.assetWidth??48,o=Math.max(s,n),l=i==null?void 0:i.wrappingWidth;t.width=Math.max(o,l??0);const{shapeSvg:c,bbox:h,halfPadding:u,label:g}=await _t(e,t,"icon-shape default"),d=t.pos==="t",f=o+u*2,p=o+u*2,{nodeBorder:m,mainBkg:b}=r,{stylesMap:k}=Sa(t),x=-p/2,C=-f/2,T=t.label?8:0,w=dt.svg(c),_=ht(t,{});t.look!=="handDrawn"&&(_.roughness=0,_.fillStyle="solid");const B=k.get("fill");_.stroke=B??b;const G=w.path(ei(x,C,p,f,.1),_),z=Math.max(p,h.width),P=f+h.height+T,R=w.rectangle(-z/2,-P/2,z,P,{..._,fill:"transparent",stroke:"none"}),D=c.insert(()=>G,":first-child"),L=c.insert(()=>R);if(t.icon){const F=c.append("g");F.html(`<g>${await Ps(t.icon,{height:o,width:o,fallbackPrefix:""})}</g>`);const A=F.node().getBBox(),$=A.width,E=A.height,V=A.x,X=A.y;F.attr("transform",`translate(${-$/2-V},${d?h.height/2+T/2-E/2-X:-h.height/2-T/2-E/2-X})`),F.attr("style",`color: ${k.get("stroke")??m};`)}return g.attr("transform",`translate(${-h.width/2-(h.x-(h.left??0))},${d?-P/2:P/2-h.height})`),D.attr("transform",`translate(0,${d?h.height/2+T/2:-h.height/2-T/2})`),yt(t,L),t.intersect=function(F){if(J.info("iconSquare intersect",t,F),!t.label)return lt.rect(t,F);const A=t.x??0,$=t.y??0,E=t.height??0;let V=[];return d?V=[{x:A-h.width/2,y:$-E/2},{x:A+h.width/2,y:$-E/2},{x:A+h.width/2,y:$-E/2+h.height+T},{x:A+p/2,y:$-E/2+h.height+T},{x:A+p/2,y:$+E/2},{x:A-p/2,y:$+E/2},{x:A-p/2,y:$-E/2+h.height+T},{x:A-h.width/2,y:$-E/2+h.height+T}]:V=[{x:A-p/2,y:$-E/2},{x:A+p/2,y:$-E/2},{x:A+p/2,y:$-E/2+f},{x:A+h.width/2,y:$-E/2+f},{x:A+h.width/2/2,y:$+E/2},{x:A-h.width/2,y:$+E/2},{x:A-h.width/2,y:$-E/2+f},{x:A-p/2,y:$-E/2+f}],lt.polygon(t,V,F)},c}y(hb,"iconSquare");async function ub(e,t,{config:{flowchart:r}}){const i=new Image;i.src=(t==null?void 0:t.img)??"",await i.decode();
vendor: 4,568 bytes, line 234
234const a=Number(i.naturalWidth.toString().replace("px","")),s=Number(i.naturalHeight.toString().replace("px",""));t.imageAspectRatio=a/s;const{labelStyles:n}=ft(t);t.labelStyle=n;const o=r==null?void 0:r.wrappingWidth;t.defaultWidth=r==null?void 0:r.wrappingWidth;const l=Math.max(t.label?o??0:0,(t==null?void 0:t.assetWidth)??a),c=t.constraint==="on"&&t!=null&&t.assetHeight?t.assetHeight*t.imageAspectRatio:l,h=t.constraint==="on"?c/t.imageAspectRatio:(t==null?void 0:t.assetHeight)??s;t.width=Math.max(c,o??0);const{shapeSvg:u,bbox:g,label:d}=await _t(e,t,"image-shape default"),f=t.pos==="t",p=-c/2,m=-h/2,b=t.label?8:0,k=dt.svg(u),x=ht(t,{});t.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");const C=k.rectangle(p,m,c,h,x),T=Math.max(c,g.width),w=h+g.height+b,_=k.rectangle(-T/2,-w/2,T,w,{...x,fill:"none",stroke:"none"}),B=u.insert(()=>C,":first-child"),G=u.insert(()=>_);if(t.img){const z=u.append("image");z.attr("href",t.img),z.attr("width",c),z.attr("height",h),z.attr("preserveAspectRatio","none"),z.attr("transform",`translate(${-c/2},${f?w/2-h:-w/2})`)}return d.attr("transform",`translate(${-g.width/2-(g.x-(g.left??0))},${f?-h/2-g.height/2-b/2:h/2-g.height/2+b/2})`),B.attr("transform",`translate(0,${f?g.height/2+b/2:-g.height/2-b/2})`),yt(t,G),t.intersect=function(z){if(J.info("iconSquare intersect",t,z),!t.label)return lt.rect(t,z);const P=t.x??0,R=t.y??0,D=t.height??0;let L=[];return f?L=[{x:P-g.width/2,y:R-D/2},{x:P+g.width/2,y:R-D/2},{x:P+g.width/2,y:R-D/2+g.height+b},{x:P+c/2,y:R-D/2+g.height+b},{x:P+c/2,y:R+D/2},{x:P-c/2,y:R+D/2},{x:P-c/2,y:R-D/2+g.height+b},{x:P-g.width/2,y:R-D/2+g.height+b}]:L=[{x:P-c/2,y:R-D/2},{x:P+c/2,y:R-D/2},{x:P+c/2,y:R-D/2+h},{x:P+g.width/2,y:R-D/2+h},{x:P+g.width/2/2,y:R+D/2},{x:P-g.width/2,y:R+D/2},{x:P-g.width/2,y:R-D/2+h},{x:P-c/2,y:R-D/2+h}],lt.polygon(t,L,z)},u}y(ub,"imageSquare");async function db(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=a,n=t.look==="neo"?a*2:a,{shapeSvg:o,bbox:l}=await _t(e,t,Tt(t)),c=Math.max(l.width+(n??0)*2,(t==null?void 0:t.width)??0),h=Math.max(l.height+(s??0)*2,(t==null?void 0:t.height)??0),u=[{x:0,y:0},{x:c,y:0},{x:c+3*h/6,y:-h},{x:-3*h/6,y:-h}];let g;const{cssStyles:d}=t;if(t.look==="handDrawn"){const f=dt.svg(o),p=ht(t,{}),m=$t(u),b=f.path(m,p);g=o.insert(()=>b,":first-child").attr("transform",`translate(${-c/2}, ${h/2})`),d&&g.attr("style",d)}else g=Nr(o,c,h,u);return i&&g.attr("style",i),t.width=c,t.height=h,yt(t,g),t.intersect=function(f){return lt.polygon(t,u,f)},o}y(db,"inv_trapezoid");async function gb(e,t){const{shapeSvg:r,bbox:i,label:a}=await _t(e,t,"label"),s=r.insert("rect",":first-child");return s.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),a.attr("transform",`translate(${-(i.width/2)-(i.x-(i.left??0))}, ${-(i.height/2)-(i.y-(i.top??0))})`),yt(t,s),t.intersect=function(l){return lt.rect(t,l)},r}y(gb,"labelRect");async function fb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=a,n=t.look==="neo"?a*2:a,{shapeSvg:o,bbox:l}=await _t(e,t,Tt(t)),c=((t==null?void 0:t.height)??l.height)+s,h=((t==null?void 0:t.width)??l.width)+n,u=[{x:0,y:0},{x:h+3*c/6,y:0},{x:h,y:-c},{x:-(3*c)/6,y:-c}];let g;const{cssStyles:d}=t;if(t.look==="handDrawn"){const f=dt.svg(o),p=ht(t,{}),m=$t(u),b=f.path(m,p);g=o.insert(()=>b,":first-child").attr("transform",`translate(${-h/2}, ${c/2})`),d&&g.attr("style",d)}else g=Nr(o,h,c,u);return i&&g.attr("style",i),t.width=h,t.height=c,yt(t,g),t.intersect=function(f){return lt.polygon(t,u,f)},o}y(fb,"lean_left");async function pb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=a,n=t.look==="neo"?a*2:a,{shapeSvg:o,bbox:l}=await _t(e,t,Tt(t)),c=((t==null?void 0:t.height)??l.height)+s,h=((t==null?void 0:t.width)??l.width)+n,u=[{x:-3*c/6,y:0},{x:h,y:0},{x:h+3*c/6,y:-c},{x:0,y:-c}];let g;const{cssStyles:d}=t;if(t.look==="handDrawn"){const f=dt.svg(o),p=ht(t,{}),m=$t(u),b=f.path(m,p);g=o.insert(()=>b,":first-child").attr("transform",`translate(${-h/2}, ${c/2})`),d&&g.attr("style",d)}else g=Nr(o,h,c,u);return i&&g.attr("style",i),t.width=h,t.height=c,yt(t,g),t.intersect=function(f){return lt.polygon(t,u,f)},o}y(pb,"lean_right");function mb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.label="",t.labelStyle=r;const a=e.insert("g").attr("class",Tt(t)).attr("id",t.domId??t.id),{cssStyles:s}=t,n=Math.max(35,(t==null?void 0:t.width)??0),o=Math.max(35,(t==null?void 0:t.height)??0),l=7,c=[{x:n,y:0},{x:0,y:o+l/2},{x:n-2*l,y:o+l/2},{x:0,y:2*o},{x:n,y:o-l/2},{x:2*l,y:o-l/2}
234],h=dt.svg(a),u=ht(t,{});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");const g=$t(c),d=h.path(g,u),f=a.insert(()=>d,":first-child");return f.attr("class","outer-path"),s&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",s),i&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",i),f.attr("transform",`translate(-${n/2},${-o})`),yt(t,f),t.intersect=function(p){return J.info("lightningBolt intersect",t,p),lt.polygon(t,c,p)},a}y(mb,"lightningBolt");var s5=y((e,t,r,i,a,s,n)=>[`M${e},${t+s}`,`a${a},${s} 0,0,0 ${r},0`,`a${a},${s} 0,0,0 ${-r},0`,`l0,${i}`,`a${a},${s} 0,0,0 ${r},0`,`l0,${-i}`,`M${e},${t+s+n}`,`a${a},${s} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),n5=y((e,t,r,i,a,s,n)=>[`M${e},${t+s}`,`M${e+r},${t+s}`,`a${a},${s} 0,0,0 ${-r},0`,`l0,${i}`,`a${a},${s} 0,0,0 ${r},0`,`l0,${-i}`,`M${e},${t+s+n}`,`a${a},${s} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),o5=y((e,t,r,i,a,s)=>[`M${e-r/2},${-i/2}`,`a${a},${s} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),xg=10,Cg=10;async function yb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?16:a,n=t.look==="neo"?24:a;if(t.width||t.height){const b=t.width??0;t.width=(t.width??0)-s,t.width<Cg&&(t.width=Cg);const x=b/2/(2.5+b/50);t.height=(t.height??0)-n-x*3,t.height<xg&&(t.height=xg)}const{shapeSvg:o,bbox:l,label:c}=await _t(e,t,Tt(t)),h=(t!=null&&t.width?t==null?void 0:t.width:l.width)+s*2,u=h/2,g=u/(2.5+h/50),d=(t!=null&&t.height?t==null?void 0:t.height:l.height)+g+n*2,f=d*.1;let p;const{cssStyles:m}=t;if(t.look==="handDrawn"){const b=dt.svg(o),k=n5(0,0,h,d,u,g,f),x=o5(0,g,h,d,u,g),C=ht(t,{}),T=b.path(k,C),w=b.path(x,C);o.insert(()=>w,":first-child").attr("class","line"),p=o.insert(()=>T,":first-child"),p.attr("class","basic label-container"),m&&p.attr("style",m)}else{const b=s5(0,0,h,d,u,g,f);p=o.insert("path",":first-child").attr("d",b).attr("class","basic label-container outer-path").attr("style",ue(m)).attr("style",i)}return p.attr("label-offset-y",g),p.attr("transform",`translate(${-h/2}, ${-(d/2+g)})`),yt(t,p),c.attr("transform",`translate(${-(l.width/2)-(l.x-(l.left??0))}, ${-(l.height/2)+g-(l.y-(l.top??0))})`),t.intersect=function(b){const k=lt.rect(t,b),x=k.x-(t.x??0);if(u!=0&&(Math.abs(x)<(t.width??0)/2||Math.abs(x)==(t.width??0)/2&&Math.abs(k.y-(t.y??0))>(t.height??0)/2-g)){let C=g*g*(1-x*x/(u*u));C>0&&(C=Math.sqrt(C)),C=g-C,b.y-(t.y??0)>0&&(C=-C),k.y+=C}return k},o}y(yb,"linedCylinder");async function bb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?16:a,n=t.look==="neo"?12:a;if(t.width||t.height){const C=t.width;t.width=(C??0)*10/11-s*2,t.width<10&&(t.width=10),t.height=((t==null?void 0:t.height)??0)-n*2,t.height<10&&(t.height=10)}const{shapeSvg:o,bbox:l,label:c}=await _t(e,t,Tt(t)),h=(t!=null&&t.width?t==null?void 0:t.width:l.width)+(s??0)*2,u=(t!=null&&t.height?t==null?void 0:t.height:l.height)+(n??0)*2,g=t.look==="neo"?u/4:u/8,d=u+g,{cssStyles:f}=t,p=dt.svg(o),m=ht(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const b=[{x:-h/2-h/2*.1,y:-d/2},{x:-h/2-h/2*.1,y:d/2},...ti(-h/2-h/2*.1,d/2,h/2+h/2*.1,d/2,g,.8),{x:h/2+h/2*.1,y:-d/2},{x:-h/2-h/2*.1,y:-d/2},{x:-h/2,y:-d/2},{x:-h/2,y:d/2*1.1},{x:-h/2,y:-d/2}],k=p.polygon(b.map(C=>[C.x,C.y]),m),x=o.insert(()=>k,":first-child");return x.attr("class","basic label-container outer-path"),f&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",f),i&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",i),x.attr("transform",`translate(0,${-g/2})`),c.attr("transform",`translate(${-h/2+(t.padding??0)+h/2*.1/2-(l.x-(l.left??0))},${-u/2+(t.padding??0)-g/2-(l.y-(l.top??0))})`),yt(t,x),t.intersect=function(C){return lt.polygon(t,b,C)},o}y(bb,"linedWaveEdgedRect");async function kb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?16:a,n=t.look==="neo"?12:a,o=t.look==="neo"?10:5;(t.width||t.height)&&(t.width=Math.max(((t==null?void 0:t.width)??0)-s*2-2*o,10),t.height=Math.max(((t==null?void 0:t.height)??0)-n*2-2*o,10));const{shapeSvg:l,bbox:c,label:h}=await _t(e,t,Tt(t)),u=(t!=null&&t.width?t==null?void 0:t.width:c.width)+s*2+2*o,g=(t!=null&&t.height?t==null?void 0:t.height:c.height)+n*2+2*o,d=u-2*o,f=g-2*o,p=-d/2,m=-f/2,{cssStyles:b}=t,k=dt.svg(l),x=ht(t,{}),C=[{x:p-o,y:m+o},{x:p-o,y:m+f+o},{x:p+d-o,y:m+f+o},{x:p+d-o,y:m+f},{x:p+d,y:m+f},{x:p+d,y:m+f-o},{x:p+d+o,y:m+f-o},{x:p+d+o,y:m-o},{x:p+o,y:m-o},{x:p+o,y:m},{x:p,y:m},{x:p,y:m+o}],T=[{x:p,y:m+o},{x:p+d-o,y:m+o},{x:p+d-o,y:m+f},{x:p+d,y:m+f},{x:p+d,y:m},{x:p,y:m}];t.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");const w=$t(C);let _=k.path(w,x);const B=$t(T);let G=k.path(B,x);t.look!=="handDrawn"&&(_=Dc(_),G=Dc(G));const z=l.insert("g",":first-child");return z.insert(()=>_),z.insert(()=>G),z.attr("class","basic label-container outer-path"),b&&t.look!=="handDrawn"&&z.selectAll("path").attr("style",b),i&&t.look!=="handDrawn"&&z.selectAll("path").attr("style",i),h.attr("transform",`translate(${-(c.width/2)-o-(c.x-(c.left??0))}, ${-(c.height/2)+o-(c.y-(c.top??0))})`),yt(t,z),t.intersect=function(P){return lt.polygon(t,C,P)},l}y(kb,"multiRect");async function vb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const{shapeSvg:a,bbox:s,label:n}=await _t(e,t,Tt(t)),o=t.padding??0,l=t.look==="neo"?16:o,c=t.look==="neo"?12:o;let h=!0;(t.width||t.height)&&(h=!1,t.width=((t==null?void 0:t.width)??0)-l*2,t.height=((t==null?void 0:t.height)??0)-c*3);const u=Math.max(s.width,(t==null?void 0:t.width)??0)+l*2,g=Math.max(s.height,(t==null?void 0:t.height)??0)+c*3,d=t.look==="neo"?g/4:g/8,f=g+(h?d/2:-d/2),p=-u/2,m=-f/2,b=10,{cssStyles:k}=t,x=ti(p-b,m+f+b,p+u-b,m+f+b,d,.8),C=x==null?void 0:x[x.length-1],T=[{x:p-b,y:m+b},{x:p-b,y:m+f+b},...x,{x:p+u-b,y:C.y-b},{x:p+u,y:C.y-b},{x:p+u,y:C.y-2*b},{x:p+u+b,y:C.y-2*b},{x:p+u+b,y:m-b},{x:p+b,y:m-b},{x:p+b,y:m},{x:p,y:m},{x:p,y:m+b}],w=[{x:p,y:m+b},{x:p+u-b,y:m+b},{x:p+u-b,y:C.y-b},{x:p+u,y:C.y-b},{x:p+u,y:m},{x:p,y:m}],_=dt.svg(a),B=ht(t,{});t.look!=="handDrawn"&&(B.roughness=0,B.fillStyle="solid");const G=$t(T),z=_.path(G,B),P=$t(w),R=_.path(P,B),D=a.insert(()=>z,":first-child");return D.insert(()=>R),D.attr("class","basic label-container outer-path"),k&&t.look!=="handDrawn"&&D.selectAll("path").attr("style",k),i&&t.look!=="handDrawn"&&D.selectAll("path").attr("style",i),D.attr("transform",`translate(0,${-d/2})`),n.attr("transform",`translate(${-(s.width/2)-b-(s.x-(s.left??0))}, ${-(s.height/2)+b-d/2-(s.y-(s.top??0))})`),yt(t,D),t.intersect=function(L){return lt.polygon(t,T,L)},a}y(vb,"multiWaveEdgedRectangle");
vendor: 4,695 bytes, line 234
234async function xb(e,t,{config:{themeVariables:r}}){const{labelStyles:i,nodeStyles:a}=ft(t);t.labelStyle=i,t.useHtmlLabels||Pe(Xt())||(t.centerLabel=!0);const{shapeSvg:n,bbox:o,label:l}=await _t(e,t,Tt(t)),c=Math.max(o.width+(t.padding??0)*2,(t==null?void 0:t.width)??0),h=Math.max(o.height+(t.padding??0)*2,(t==null?void 0:t.height)??0),u=-c/2,g=-h/2,{cssStyles:d}=t,f=dt.svg(n),p=ht(t,{fill:r.noteBkgColor,stroke:r.noteBorderColor});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");const m=f.rectangle(u,g,c,h,p),b=n.insert(()=>m,":first-child");return b.attr("class","basic label-container outer-path"),l.attr("class","label noteLabel"),d&&t.look!=="handDrawn"&&b.selectAll("path").attr("style",d),a&&t.look!=="handDrawn"&&b.selectAll("path").attr("style",a),l.attr("transform",`translate(${-o.width/2-(o.x-(o.left??0))}, ${-(o.height/2)-(o.y-(o.top??0))})`),yt(t,b),t.intersect=function(k){return lt.rect(t,k)},n}y(xb,"note");var l5=y((e,t,r)=>[`M${e+r/2},${t}`,`L${e+r},${t-r/2}`,`L${e+r/2},${t-r}`,`L${e},${t-r/2}`,"Z"].join(" "),"createDecisionBoxPathD");async function Cb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const{shapeSvg:a,bbox:s}=await _t(e,t,Tt(t)),n=s.width+(t.padding??0),o=s.height+(t.padding??0),l=n+o,c=.5,h=[{x:l/2,y:0},{x:l,y:-l/2},{x:l/2,y:-l},{x:0,y:-l/2}];let u;const{cssStyles:g}=t;if(t.look==="handDrawn"){const d=dt.svg(a),f=ht(t,{}),p=l5(0,0,l),m=d.path(p,f);u=a.insert(()=>m,":first-child").attr("transform",`translate(${-l/2+c}, ${l/2})`),g&&u.attr("style",g)}else u=Nr(a,l,l,h),u.attr("transform",`translate(${-l/2+c}, ${l/2})`);return i&&u.attr("style",i),yt(t,u),t.calcIntersect=function(d,f){const p=d.width,m=[{x:p/2,y:0},{x:p,y:-p/2},{x:p/2,y:-p},{x:0,y:-p/2}],b=lt.polygon(d,m,f);return{x:b.x-.5,y:b.y-.5}},t.intersect=function(d){return this.calcIntersect(t,d)},a}y(Cb,"question");async function wb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?21:a??0,n=t.look==="neo"?12:a??0,{shapeSvg:o,bbox:l,label:c}=await _t(e,t,Tt(t)),h=((t==null?void 0:t.width)??l.width)+(t.look==="neo"?s*2:s),u=((t==null?void 0:t.height)??l.height)+(t.look==="neo"?n*2:n),g=-h/2,d=-u/2,f=d/2,p=[{x:g+f,y:d},{x:g,y:0},{x:g+f,y:-d},{x:-g,y:-d},{x:-g,y:d}],{cssStyles:m}=t,b=dt.svg(o),k=ht(t,{});t.look!=="handDrawn"&&(k.roughness=0,k.fillStyle="solid");const x=$t(p),C=b.path(x,k),T=o.insert(()=>C,":first-child");return T.attr("class","basic label-container outer-path"),m&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",m),i&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",i),T.attr("transform",`translate(${-f/2},0)`),c.attr("transform",`translate(${-f/2-l.width/2-(l.x-(l.left??0))}, ${-(l.height/2)-(l.y-(l.top??0))})`),yt(t,T),t.intersect=function(w){return lt.polygon(t,p,w)},o}y(wb,"rect_left_inv_arrow");async function Tb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;let a;t.cssClasses?a="node "+t.cssClasses:a="node default";const s=e.insert("g").attr("class",a).attr("id",t.domId||t.id),n=s.insert("g"),o=s.insert("g").attr("class","label").attr("style",i),l=t.description,c=t.label,h=await Gr(o,c,t.labelStyle,!0,!0);let u={width:0,height:0};if(Pe(Ht())){const B=h.children[0],G=Et(h);u=B.getBoundingClientRect(),G.attr("width",u.width),G.attr("height",u.height)}J.info("Text 2",l);const g=l||[],d=h.getBBox(),f=await Gr(o,Array.isArray(g)?g.join("<br/>"):g,t.labelStyle,!0,!0),p=f.children[0],m=Et(f);u=p.getBoundingClientRect(),m.attr("width",u.width),m.attr("height",u.height);const b=(t.padding||0)/2;Et(f).attr("transform","translate( "+(u.width>d.width?0:(d.width-u.width)/2)+", "+(d.height+b+5)+")"),Et(h).attr("transform","translate( "+(u.width<d.width?0:-(d.width-u.width)/2)+", 0)"),u=o.node().getBBox(),o.attr("transform","translate("+-u.width/2+", "+(-u.height/2-b+3)+")");const k=u.width+(t.padding||0),x=u.height+(t.padding||0),C=-u.width/2-b,T=-u.height/2-b;let w,_;if(t.look==="handDrawn"){const B=dt.svg(s),G=ht(t,{}),z=B.path(ei(C,T,k,x,t.rx||0),G),P=B.line(-u.width/2-b,-u.height/2-b+d.height+b,u.width/2+b,-u.height/2-b+d.height+b,G);_=s.insert(()=>(J.debug("Rough node insert CXC",z),P),":first-child"),w=s.insert(()=>(J.debug("Rough node insert CXC",z),z),":first-child")}else w=n.insert("rect",":first-child"),_=n.insert("line"),w.attr("class","outer title-state").attr("style",i).attr("x",-u.width/2-b).attr("y",-u.height/2-b).attr("width",u.width+(t.padding||0)).attr("height",u.height+(t.padding||0)),_.attr("class","divider").attr("x1",-u.width/2-b).attr("x2",u.width/2+b).attr("y1",-u.height/2-b+d.height+b).attr("y2",-u.height/2-b+d.height+b);return yt(t,w),t.intersect=function(B){return lt.rect(t,B)},s}y(Tb,"rectWithTitle");
234async function Sb(e,t,{config:{themeVariables:r}}){const i=(r==null?void 0:r.radius)??5,a={rx:i,ry:i,labelPaddingX:((t==null?void 0:t.padding)??0)*1,labelPaddingY:((t==null?void 0:t.padding)??0)*1};return _a(e,t,a)}y(Sb,"roundedRect");var oi=8;async function _b(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.look==="neo"?16:t.padding??0,s=t.look==="neo"?12:t.padding??0,{shapeSvg:n,bbox:o,label:l}=await _t(e,t,Tt(t)),c=((t==null?void 0:t.width)??o.width)+a*2+(t.look==="neo"?oi:oi*2),h=((t==null?void 0:t.height)??o.height)+s*2,u=c-oi,g=h,d=oi-c/2,f=-h/2,{cssStyles:p}=t,m=dt.svg(n),b=ht(t,{});t.look!=="handDrawn"&&(b.roughness=0,b.fillStyle="solid");const k=[{x:d,y:f},{x:d+u,y:f},{x:d+u,y:f+g},{x:d-oi,y:f+g},{x:d-oi,y:f},{x:d,y:f},{x:d,y:f+g}],x=m.polygon(k.map(T=>[T.x,T.y]),b),C=n.insert(()=>x,":first-child");return C.attr("class","basic label-container outer-path").attr("style",ue(p)),i&&t.look!=="handDrawn"&&C.selectAll("path").attr("style",i),p&&t.look!=="handDrawn"&&C.selectAll("path").attr("style",i),l.attr("transform",`translate(${oi/2-o.width/2-(o.x-(o.left??0))}, ${-(o.height/2)-(o.y-(o.top??0))})`),yt(t,C),t.intersect=function(T){return lt.rect(t,T)},n}y(_b,"shadedProcess");async function Bb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?16:a,n=t.look==="neo"?12:a;(t.width||t.height)&&(t.width=Math.max(((t==null?void 0:t.width)??0)-s*2,10),t.height=Math.max(((t==null?void 0:t.height)??0)/1.5-n*2,10));const{shapeSvg:o,bbox:l,label:c}=await _t(e,t,Tt(t)),h=(t!=null&&t.width?t==null?void 0:t.width:l.width)+s*2,u=((t!=null&&t.height?t==null?void 0:t.height:l.height)+n*2)*1.5,g=h,d=u/1.5,f=-g/2,p=-d/2,{cssStyles:m}=t,b=dt.svg(o),k=ht(t,{});t.look!=="handDrawn"&&(k.roughness=0,k.fillStyle="solid");const x=[{x:f,y:p},{x:f,y:p+d},{x:f+g,y:p+d},{x:f+g,y:p-d/2}],C=$t(x),T=b.path(C,k),w=o.insert(()=>T,":first-child");return w.attr("class","basic label-container outer-path"),m&&t.look!=="handDrawn"&&w.selectChildren("path").attr("style",m),i&&t.look!=="handDrawn"&&w.selectChildren("path").attr("style",i),w.attr("transform",`translate(0, ${d/4})`),c.attr("transform",`translate(${-g/2+(t.padding??0)-(l.x-(l.left??0))}, ${-d/4+(t.padding??0)-(l.y-(l.top??0))})`),yt(t,w),t.intersect=function(_){return lt.polygon(t,x,_)},o}y(Bb,"slopedRect");
234async function Lb(e,t){const r=t.padding??0,i=t.look==="neo"?16:r*2,a=t.look==="neo"?12:r,s={rx:0,ry:0,labelPaddingX:t.labelPaddingX??i,labelPaddingY:a};return _a(e,t,s)}y(Lb,"squareRect");async function Ab(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?20:a,n=t.look==="neo"?12:a,{shapeSvg:o,bbox:l}=await _t(e,t,Tt(t)),c=l.height+(t.look==="neo"?n*2:n),h=l.width+c/4+(t.look==="neo"?s*2:s),u=c/2,{cssStyles:g}=t,d=dt.svg(o),f=ht(t,{});t.look!=="handDrawn"&&(f.roughness=0,f.fillStyle="solid");const p=[{x:-h/2+u,y:-c/2},{x:h/2-u,y:-c/2},...ks(-h/2+u,0,u,50,90,270),{x:h/2-u,y:c/2},...ks(h/2-u,0,u,50,270,450)],m=$t(p),b=d.path(m,f),k=o.insert(()=>b,":first-child");return k.attr("class","basic label-container outer-path"),g&&t.look!=="handDrawn"&&k.selectChildren("path").attr("style",g),i&&t.look!=="handDrawn"&&k.selectChildren("path").attr("style",i),yt(t,k),t.intersect=function(x){return lt.polygon(t,p,x)},o}y(Ab,"stadium");async function Mb(e,t){const r={rx:t.look==="neo"?3:5,ry:t.look==="neo"?3:5};return _a(e,t,r)}y(Mb,"state");function Fb(e,t,{config:{themeVariables:r}}){var k,x;const{labelStyles:i,nodeStyles:a}=ft(t);t.labelStyle=i;const{cssStyles:s}=t,{lineColor:n,stateBorder:o,nodeBorder:l,nodeShadow:c}=r;(t.width||t.height)&&((t.width??0)<14&&(t.width=14),(t.height??0)<14&&(t.height=14)),t.width||(t.width=14),t.height||(t.height=14);const h=e.insert("g").attr("class","node default").attr("id",t.domId??t.id),u=dt.svg(h),g=ht(t,{});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");const d=u.circle(0,0,t.width,{...g,stroke:n,strokeWidth:2}),f=o??l,p=(t.width??0)*5/14,m=u.circle(0,0,p,{...g,fill:f,stroke:f,strokeWidth:2,fillStyle:"solid"}),b=h.insert(()=>d,":first-child");if(b.insert(()=>m),t.look!=="handDrawn"&&b.attr("class","outer-path"),s&&b.selectAll("path").attr("style",s),a&&b.selectAll("path").attr("style",a),t.width<25&&c&&t.look!=="handDrawn"){const C=((x=(k=e.node())==null?void 0:k.ownerSVGElement)==null?void 0:x.id)??"",T=C?`${C}-drop-shadow-small`:"drop-shadow-small";b.attr("style",`filter:url(#${T})`)}return yt(t,b),t.intersect=function(C){return lt.circle(t,(t.width??0)/2,C)},h}y(Fb,"stateEnd");function Pb(e,t,{config:{themeVariables:r}}){var o,l;const{lineColor:i,nodeShadow:a}=r;(t.width||t.height)&&((t.width??0)<14&&(t.width=14),(t.height??0)<14&&(t.height=14)),t.width||(t.width=14),t.height||(t.height=14);const s=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let n;if(t.look==="handDrawn"){const h=dt.svg(s).circle(0,0,t.width,FL(i));n=s.insert(()=>h),n.attr("class","state-start").attr("r",(t.width??7)/2).attr("width",t.width??14).attr("height",t.height??14)}else n=s.insert("circle",":first-child"),n.attr("class","state-start").attr("r",(t.width??7)/2).attr("width",t.width??14).attr("height",t.height??14);if(t.width<25&&a&&t.look!=="handDrawn"){const c=((l=(o=e.node())==null?void 0:o.ownerSVGElement)==null?void 0:l.id)??"",h=c?`${c}-drop-shadow-small`:"drop-shadow-small";n.attr("style",`filter:url(#${h})`)}return yt(t,n),t.intersect=function(c){return lt.circle(t,(t.width??7)/2,c)},s}y(Pb,"stateStart");var Ni=8;async function Eb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=(t==null?void 0:t.padding)??8,s=t.look==="neo"?28:a,n=t.look==="neo"?12:a,{shapeSvg:o,bbox:l}=await _t(e,t,Tt(t)),c=((t==null?void 0:t.width)??l.width)+2*Ni+s,h=((t==null?void 0:t.height)??l.height)+n,u=c-2*Ni,g=h,d=-c/2,f=-h/2,p=[{x:0,y:0},{x:u,y:0},{x:u,y:-g},{x:0,y:-g},{x:0,y:0},{x:-8,y:0},{x:u+8,y:0},{x:u+8,y:-g},{x:-8,y:-g},{x:-8,y:0}];if(t.look==="handDrawn"){const m=dt.svg(o),b=ht(t,{}),k=m.rectangle(d,f,u+16,g,b),x=m.line(d+Ni,f,d+Ni,f+g,b),C=m.line(d+Ni+u,f,d+Ni+u,f+g,b);o.insert(()=>x,":first-child"),o.insert(()=>C,":first-child");const T=o.insert(()=>k,":first-child"),{cssStyles:w}=t;T.attr("class","basic label-container").attr("style",ue(w)),yt(t,T)}else{const m=Nr(o,u,g,p);i&&m.attr("style",i),yt(t,m)}return t.intersect=function(m){return lt.polygon(t,p,m)},o}y(Eb,"subroutine");var Ol=.2;async function Ob(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?16:a,n=t.look==="neo"?12:a;(t.width||t.height)&&(t.height=Math.max(((t==null?void 0:t.height)??0)-n*2,10),t.width=Math.max(((t==null?void 0:t.width)??0)-s*2-Ol*(t.height+n*2),10));const{shapeSvg:o,bbox:l}=await _t(e,t,Tt(t)),c=(t!=null&&t.height?t==null?void 0:t.height:l.height)+n*2,h=Ol*c,u=Ol*c,d=(t!=null&&t.width?t==null?void 0:t.width:l.width)+s*2+h-h,f=c,p=-d/2,m=-f/2,{cssStyles:b}=t,k=dt.svg(o),x=ht(t,{}),C=[{x:p-h/2,y:m},{x:p+d+h/2,y:m},{x:p+d+h/2,y:m+f},{x:p-h/2,y:m+f}],T=[{x:p+d-h/2,y:m+f},{x:p+d+h/2,y:m+f},{x:p+d+h/2,y:m+f-u}];t.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");const w=$t(C),_=k.path(w,x),B=$t(T),G=k.path(B,{...x,fillStyle:"solid"}),z=o.insert(()=>G,":first-child");return z.insert(()=>_,":first-child"),z.attr("class","basic label-container outer-path"),b&&t.look!=="handDrawn"&&z.selectAll("path").attr("style",b),i&&t.look!=="handDrawn"&&z.selectAll("path").attr("style",i),yt(t,z),t.intersect=function(P){return lt.polygon(t,C,P)},o}y(Ob,"taggedRect");async function Db(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const{shapeSvg:a,bbox:s,label:n}=await _t(e,t,Tt(t)),o=Math.max(s.width+(t.padding??0)*2,(t==null?void 0:t.width)??0),l=Math.max(s.height+(t.padding??0)*2,(t==null?void 0:t.height)??0),c=l/8,h=.2*o,u=.2*l,g=l+c,{cssStyles:d}=t,f=dt.svg(a),p=ht(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");const m=[{x:-o/2-o/2*.1,y:g/2},...ti(-o/2-o/2*.1,g/2,o/2+o/2*.1,g/2,c,.8),{x:o/2+o/2*.1,y:-g/2},{x:-o/2-o/2*.1,y:-g/2}],b=-o/2+o/2*.1,k=-g/2-u*.4,x=[{x:b+o-h,y:(k+l)*1.3},{x:b+o,y:k+l-u},{x:b+o,y:(k+l)*.9},...ti(b+o,(k+l)*1.25,b+o-h,(k+l)*1.3,-l*.02,.5)],C=$t(m),T=f.path(C,p),w=$t(x),_=f.path(w,{...p,fillStyle:"solid"}),B=a.insert(()=>_,":first-child");return B.insert(()=>T,":first-child"),B.attr("class","basic label-container outer-path"),d&&t.look!=="handDrawn"&&B.selectAll("path").attr("style",d),i&&t.look!=="handDrawn"&&B.selectAll("path").attr("style",i),B.attr("transform",`translate(0,${-c/2})`),n.attr("transform",`translate(${-o/2+(t.padding??0)-(s.x-(s.left??0))},${-l/2+(t.padding??0)-c/2-(s.y-(s.top??0))})`),yt(t,B),t.intersect=function(G){return lt.polygon(t,m,G)},a}y(Db,"taggedWaveEdgedRectangle");async function Ib(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const{shapeSvg:a,bbox:s}=await _t(e,t,Tt(t)),n=Math.max(s.width+(t.padding??0),(t==null?void 0:t.width)||0),o=Math.max(s.height+(t.padding??0),(t==null?void 0:t.height)||0),l=-n/2,c=-o/2,h=a.insert("rect",":first-child");return h.attr("class","text").attr("style",i).attr("rx",0).attr("ry",0).attr("x",l).attr("y",c).attr("width",n).attr("height",o),yt(t,h),t.intersect=function(u){return lt.rect(t,u)},a}y(Ib,"text");var c5=y((e,t,r,i,a,s)=>`M${e},${t} 235 a${a},${s} 0,0,1 0,${-i} 236 l${r},0 237 a${a},${s} 0,0,1 0,${i} 238 M${r},${-i} 239 a${a},${s} 0,0,0 0,${i} 240 l${-r},0`,"createCylinderPathD"),h5=y((e,t,r,i,a,s)=>[`M${e},${t}`,`M${e+r},${t}`,`a${a},${s} 0,0,0 0,${-i}`,`l${-r},0`,`a${a}
240,${s} 0,0,0 0,${i}`,`l${r},0`].join(" "),"createOuterCylinderPathD"),u5=y((e,t,r,i,a,s)=>[`M${e+r/2},${-i/2}`,`a${a},${s} 0,0,0 0,${i}`].join(" "),"createInnerCylinderPathD"),wg=5,Tg=10;async function $b(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?12:a/2;if(t.width||t.height){const p=t.height??0;t.height=(t.height??0)-s,t.height<wg&&(t.height=wg);const b=p/2/(2.5+p/50);t.width=(t.width??0)-s-b*3,t.width<Tg&&(t.width=Tg)}const{shapeSvg:n,bbox:o,label:l}=await _t(e,t,Tt(t)),c=(t.height?t.height:o.height)+s,h=c/2,u=h/(2.5+c/50),g=(t.width?t.width:o.width)+u+s,{cssStyles:d}=t;let f;if(t.look==="handDrawn"){const p=dt.svg(n),m=h5(0,0,g,c,u,h),b=u5(0,0,g,c,u,h),k=p.path(m,ht(t,{})),x=p.path(b,ht(t,{fill:"none"}));f=n.insert(()=>x,":first-child"),f=n.insert(()=>k,":first-child"),f.attr("class","basic label-container"),d&&f.attr("style",d)}else{const p=c5(0,0,g,c,u,h);f=n.insert("path",":first-child").attr("d",p).attr("class","basic label-container").attr("style",ue(d)).attr("style",i),f.attr("class","basic label-container outer-path"),d&&f.selectAll("path").attr("style",d),i&&f.selectAll("path").attr("style",i)}return f.attr("label-offset-x",u),f.attr("transform",`translate(${-g/2}, ${c/2} )`),l.attr("transform",`translate(${-(o.width/2)-u-(o.x-(o.left??0))}, ${-(o.height/2)-(o.y-(o.top??0))})`),yt(t,f),t.intersect=function(p){const m=lt.rect(t,p),b=m.y-(t.y??0);if(h!=0&&(Math.abs(b)<(t.height??0)/2||Math.abs(b)==(t.height??0)/2&&Math.abs(m.x-(t.x??0))>(t.width??0)/2-u)){let k=u*u*(1-b*b/(h*h));k!=0&&(k=Math.sqrt(Math.abs(k))),k=u-k,p.x-(t.x??0)>0&&(k=-k),m.x+=k}return m},n}y($b,"tiltedCylinder");async function zb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=(t.look==="neo",a),n=t.look==="neo"?a*2:a,{shapeSvg:o,bbox:l}=await _t(e,t,Tt(t)),c=((t==null?void 0:t.height)??l.height)+s,h=((t==null?void 0:t.width)??l.width)+n,u=[{x:-3*c/6,y:0},{x:h+3*c/6,y:0},{x:h,y:-c},{x:0,y:-c}];let g;const{cssStyles:d}=t;if(t.look==="handDrawn"){const f=dt.svg(o),p=ht(t,{}),m=$t(u),b=f.path(m,p);g=o.insert(()=>b,":first-child").attr("transform",`translate(${-h/2}, ${c/2})`),d&&g.attr("style",d)}else g=Nr(o,h,c,u);return i&&g.attr("style",i),t.width=h,t.height=c,yt(t,g),t.intersect=function(f){return lt.polygon(t,u,f)},o}y(zb,"trapezoid");async function Rb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?16:a,n=t.look==="neo"?12:a,o=15,l=5;(t.width||t.height)&&(t.height=(t.height??0)-n*2,t.height<l&&(t.height=l),t.width=(t.width??0)-s*2,t.width<o&&(t.width=o));const{shapeSvg:c,bbox:h}=await _t(e,t,Tt(t)),u=(t!=null&&t.width?t==null?void 0:t.width:h.width)+s*2,g=(t!=null&&t.height?t==null?void 0:t.height:h.height)+n*2,{cssStyles:d}=t,f=dt.svg(c),p=ht(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");const m=[{x:-u/2*.8,y:-g/2},{x:u/2*.8,y:-g/2},{x:u/2,y:-g/2*.6},{x:u/2,y:g/2},{x:-u/2,y:g/2},{x:-u/2,y:-g/2*.6}],b=$t(m),k=f.path(b,p),x=c.insert(()=>k,":first-child");return x.attr("class","basic label-container outer-path"),d&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),i&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",i),yt(t,x),t.intersect=function(C){return lt.polygon(t,m,C)},c}y(Rb,"trapezoidalPentagon");var Sg=10,_g=10;async function Nb(e,t){var C;const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?a*2:a;(t.width||t.height)&&(t.width=(((t==null?void 0:t.width)??0)-s)/2,t.width<_g&&(t.width=_g),t.height=(t==null?void 0:t.height)??0,t.height<Sg&&(t.height=Sg));const{shapeSvg:n,bbox:o,label:l}=await _t(e,t,Tt(t)),c=xr((C=Ht().flowchart)==null?void 0:C.htmlLabels),h=(t!=null&&t.width?t==null?void 0:t.width:o.width)+s,u=t!=null&&t.height?t==null?void 0:t.height:h+o.height,g=u,d=[{x:0,y:0},{x:g,y:0},{x:g/2,y:-u}],{cssStyles:f}=t,p=dt.svg(n),m=ht(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const b=$t(d),k=p.path(b,m),x=n.insert(()=>k,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`).attr("class","outer-path");return f&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",f),i&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",i),t.width=h,t.height=u,yt(t,x),l.attr("transform",`translate(${-o.width/2-(o.x-(o.left??0))}
240, ${u/2-(o.height+(t.padding??0)/(c?2:1)-(o.y-(o.top??0)))})`),t.intersect=function(T){return J.info("Triangle intersect",t,d,T),lt.polygon(t,d,T)},n}y(Nb,"triangle");async function Hb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?16:a,n=t.look==="neo"?12:a;let o=!0;(t.width||t.height)&&(o=!1,t.width=((t==null?void 0:t.width)??0)-s*2,t.width<10&&(t.width=10),t.height=((t==null?void 0:t.height)??0)-n*2,t.height<10&&(t.height=10));const{shapeSvg:l,bbox:c,label:h}=await _t(e,t,Tt(t)),u=(t!=null&&t.width?t==null?void 0:t.width:c.width)+(s??0)*2,g=(t!=null&&t.height?t==null?void 0:t.height:c.height)+(n??0)*2,d=t.look==="neo"?g/4:g/8,f=g+(o?d:-d),{cssStyles:p}=t,b=14-u,k=b>0?b/2:0,x=dt.svg(l),C=ht(t,{});t.look!=="handDrawn"&&(C.roughness=0,C.fillStyle="solid");const T=[{x:-u/2-k,y:f/2},...ti(-u/2-k,f/2,u/2+k,f/2,d,.8),{x:u/2+k,y:-f/2},{x:-u/2-k,y:-f/2}],w=$t(T),_=x.path(w,C),B=l.insert(()=>_,":first-child");return B.attr("class","basic label-container outer-path"),p&&t.look!=="handDrawn"&&B.selectAll("path").attr("style",p),i&&t.look!=="handDrawn"&&B.selectAll("path").attr("style",i),B.attr("transform",`translate(0,${-d/2})`),h.attr("transform",`translate(${-u/2+(t.padding??0)-(c.x-(c.left??0))},${-g/2+(t.padding??0)-d-(c.y-(c.top??0))})`),yt(t,B),t.intersect=function(G){return lt.polygon(t,T,G)},l}y(Hb,"waveEdgedRectangle");async function Wb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.padding??0,s=t.look==="neo"?16:a,n=t.look==="neo"?20:a;if(t.width||t.height){t.width=(t==null?void 0:t.width)??0,t.width<20&&(t.width=20),t.height=(t==null?void 0:t.height)??0,t.height<10&&(t.height=10);const C=Math.min(t.height*.2,t.height/4);t.height=Math.ceil(t.height-n-C*(20/9)),t.width=t.width-s*2}const{shapeSvg:o,bbox:l}=await _t(e,t,Tt(t)),c=(t!=null&&t.width?t==null?void 0:t.width:l.width)+s*2,h=(t!=null&&t.height?t==null?void 0:t.height:l.height)+n,u=h/8,g=h+u*2,{cssStyles:d}=t,f=dt.svg(o),p=ht(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");const m=[{x:-c/2,y:g/2},...ti(-c/2,g/2,c/2,g/2,u,1),{x:c/2,y:-g/2},...ti(c/2,-g/2,-c/2,-g/2,u,-1)],b=$t(m),k=f.path(b,p),x=o.insert(()=>k,":first-child");return x.attr("class","basic label-container"),d&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",d),i&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",i),yt(t,x),t.intersect=function(C){return lt.polygon(t,m,C)},o}y(Wb,"waveRectangle");var Zt=10;async function qb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t.look==="neo"?16:t.padding??0,s=t.look==="neo"?12:t.padding??0;(t.width||t.height)&&(t.width=Math.max(((t==null?void 0:t.width)??0)-a*2-Zt,10),t.height=Math.max(((t==null?void 0:t.height)??0)-s*2-Zt,10));const{shapeSvg:n,bbox:o,label:l}=await _t(e,t,Tt(t)),c=(t!=null&&t.width?t==null?void 0:t.width:o.width)+a*2+Zt,h=(t!=null&&t.height?t==null?void 0:t.height:o.height)+s*2+Zt,u=c-Zt,g=h-Zt,d=-u/2,f=-g/2,{cssStyles:p}=t,m=dt.svg(n),b=ht(t,{}),k=[{x:d-Zt,y:f-Zt},{x:d-Zt,y:f+g},{x:d+u,y:f+g},{x:d+u,y:f-Zt}],x=`M${d-Zt},${f-Zt} L${d+u},${f-Zt} L${d+u},${f+g} L${d-Zt},${f+g} L${d-Zt},${f-Zt} 241 M${d-Zt},${f} L${d+u},${f} 242 M${d},${f-Zt} L${d},${f+g}`;t.look!=="handDrawn"&&(b.roughness=0,b.fillStyle="solid");const C=m.path(x,b),T=n.insert(()=>C,":first-child");return T.attr("transform",`translate(${Zt/2}, ${Zt/2})`),T.attr("class","basic label-container outer-path"),p&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",p),i&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",i),l.attr("transform",`translate(${-(o.width/2)+Zt/2-(o.x-(o.left??0))}, ${-(o.height/2)+Zt/2-(o.y-(o.top??0))})`),yt(t,T),t.intersect=function(w){return lt.polygon(t,k,w)},n}y(qb,"windowPane");var Bg=new Set(["redux-color","redux-dark-color"]),d5=new Set(["redux","redux-dark","redux-color","redux-dark-color"]);async function eu(e,t){var Ft,Mt,It,rt;const r=t;r.alias&&(t.label=r.alias);const{theme:i,themeVariables:a}=Xt(),{rowEven:s,rowOdd:n,nodeBorder:o,borderColorArray:l}=a;if(t.look==="handDrawn"){const{themeVariables:Z}=Xt(),{background:K}=Z,j={...t,id:t.id+"-background",domId:(t.domId||t.id)+"-background",look:"default",cssStyles:["stroke: none",`fill: ${K}`]};await eu(e,j)}const c=Xt();t.useHtmlLabels=c.htmlLabels;let h=((Ft=c.er)==null?void 0:Ft.diagramPadding)??10,u=((Mt=c.er)==null?void 0:Mt.entityPadding)??6;const{cssStyles:g}=t,{labelStyles:d,nodeStyles:f}=ft(t);if(r.attributes.length===0&&t.label){const Z={rx:0,ry:0,labelPaddingX:h,labelPaddingY:h*1.5};zr(t.label,c)+Z.labelPaddingX*2<c.er.minEntityWidth&&(t.width=c.er.minEntityWidth);const K=await _a(e,t,Z);if(i!=null&&Bg.has(i)){const j=r.colorIndex??0;K.attr("data-color-id",`color-${j%l.length}`)}
242if(!xr(c.htmlLabels)){const j=K.select("text"),nt=(It=j.node())==null?void 0:It.getBBox();j.attr("transform",`translate(${-nt.width/2}, 0)`)}return K}c.htmlLabels||(h*=1.25,u*=1.25);let p=Tt(t);p||(p="node default");const m=e.insert("g").attr("class",p).attr("id",t.domId||t.id),b=await qi(m,t.label??"",c,0,0,["name"],d);b.height+=u;let k=0;const x=[],C=[];let T=0,w=0,_=0,B=0,G=!0,z=!0;for(const Z of r.attributes){const K=await qi(m,Z.type,c,0,k,["attribute-type"],d);T=Math.max(T,K.width+h);const j=await qi(m,Z.name,c,0,k,["attribute-name"],d);w=Math.max(w,j.width+h);const nt=await qi(m,Z.keys.join(),c,0,k,["attribute-keys"],d);_=Math.max(_,nt.width+h);const I=await qi(m,Z.comment,c,0,k,["attribute-comment"],d);B=Math.max(B,I.width+h);const it=Math.max(K.height,j.height,nt.height,I.height)+u;C.push({yOffset:k,rowHeight:it}),k+=it}let P=4;_<=h&&(G=!1,_=0,P--),B<=h&&(z=!1,B=0,P--);const R=m.node().getBBox();if(b.width+h*2-(T+w+_+B)>0){const Z=b.width+h*2-(T+w+_+B);T+=Z/P,w+=Z/P,_>0&&(_+=Z/P),B>0&&(B+=Z/P)}const D=T+w+_+B,L=dt.svg(m),F=ht(t,{});t.look!=="handDrawn"&&(F.roughness=0,F.fillStyle="solid");let A=0;C.length>0&&(A=C.reduce((Z,K)=>Z+((K==null?void 0:K.rowHeight)??0),0));const $=Math.max(R.width+h*2,(t==null?void 0:t.width)||0,D),E=Math.max((A??0)+b.height,(t==null?void 0:t.height)||0),V=-$/2,X=-E/2;if(m.selectAll("g:not(:first-child)").each((Z,K,j)=>{const nt=Et(j[K]),I=nt.attr("transform");let it=0,Qt=0;if(I){const Be=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(I);Be&&(it=parseFloat(Be[1]),Qt=parseFloat(Be[2]),nt.attr("class").includes("attribute-name")?it+=T:nt.attr("class").includes("attribute-keys")?it+=T+w:nt.attr("class").includes("attribute-comment")&&(it+=T+w+_))}nt.attr("transform",`translate(${V+h/2+it}, ${Qt+X+b.height+u/2})`)}),m.select(".name").attr("transform","translate("+-b.width/2+", "+(X+u/2)+")"),i!=null&&Bg.has(i)){const Z=r.colorIndex??0;m.attr("data-color-id",`color-${Z%l.length}`)}const et=L.rectangle(V,X,$,E,F),ot=m.insert(()=>et,":first-child").attr("class","outer-path").attr("style",g.join(""));x.push(0);for(const[Z,K]of C.entries()){const nt=(Z+1)%2===0&&K.yOffset!==0,I=L.rectangle(V,b.height+X+(K==null?void 0:K.yOffset),$,K==null?void 0:K.rowHeight,{...F,fill:nt?s:n,stroke:o});m.insert(()=>I,"g.label").attr("style",g.join("")).attr("class",`row-rect-${nt?"even":"odd"}`)}const bt=1e-4;let pt=Ui(V,b.height+X,$+V,b.height+X,bt),mt=L.polygon(pt.map(Z=>[Z.x,Z.y]),F);if(m.insert(()=>mt).attr("class","divider"),pt=Ui(T+V,b.height+X,T+V,E+X,bt),mt=L.polygon(pt.map(Z=>[Z.x,Z.y]),F),m.insert(()=>mt).attr("class","divider"),G){const Z=T+w+V;pt=Ui(Z,b.height+X,Z,E+X,bt),mt=L.polygon(pt.map(K=>[K.x,K.y]),F),m.insert(()=>mt).attr("class","divider")}if(z){const Z=T+w+_+V;pt=Ui(Z,b.height+X,Z,E+X,bt),mt=L.polygon(pt.map(K=>[K.x,K.y]),F),m.insert(()=>mt).attr("class","divider")}for(const Z of x){const K=b.height+X+Z;pt=Ui(V,K,$+V,K,bt),mt=L.polygon(pt.map(j=>[j.x,j.y]),F),m.insert(()=>mt).attr("class","divider")}if(yt(t,ot),f&&t.look!=="handDrawn")if(i!=null&&d5.has(i))m.selectAll("path").attr("style",f);else{const Z=f.split(";"),K=(rt=Z==null?void 0:Z.filter(j=>j.includes("stroke")))==null?void 0:rt.map(j=>`${j}`).join("; ");m.selectAll("path").attr("style",K??""),m.selectAll(".row-rect-even path").attr("style",f)}return t.intersect=function(Z){return lt.rect(t,Z)},m}y(eu,"erBox");async function qi(e,t,r,i=0,a=0,s=[],n=""){const o=e.insert("g").attr("class",`label ${s.join(" ")}`).attr("transform",`translate(${i}, ${a})`).attr("style",n);t!==Ju(t)&&(t=Ju(t),t=t.replaceAll("<","<").replaceAll(">",">"));const l=o.node().appendChild(await wr(o,t,{width:zr(t,r)+100,style:n,useHtmlLabels:r.htmlLabels},r));if(t.includes("<")||t.includes(">")){let h=l.children[0];for(h.textContent=h.textContent.replaceAll("<","<").replaceAll(">",">");h.childNodes[0];)h=h.childNodes[0],h.textContent=h.textContent.replaceAll("<","<").replaceAll(">",">")}let c=l.getBBox();if(xr(r.htmlLabels)){const h=l.children[0];h.style.textAlign="start";const u=Et(l);c=h.getBoundingClientRect(),u.attr("width",c.width),u.attr("height",c.height)}return c}y(qi,"addText");function Ui(e,t,r,i,a){return e===r?[{x:e-a/2,y:t},{x:e+a/2,y:t},{x:r+a/2,y:i},{x:r-a/2,y:i}]:[{x:e,y:t-a/2},{x:e,y:t+a/2},{x:r,y:i+a/2},{x:r,y:i-a/2}]}y(Ui,"lineToPolygon");async function Ub(e,t,r,i,a=r.class.padding??12){const s=i?0:3,n=e.insert("g").attr("class",Tt(t)).attr("id",t.domId||t.id);let o=null,l=null,c=null,h=null,u=0,g=0,d=0;if(o=n.insert("g").attr("class","annotation-group text"),t.annotations.length>0){const k=t.annotations[0];await Ja(o,{text:`«${k}»`},0),u=o.node().getBBox().height}l=n.insert("g").attr("class","label-group text"),await Ja(l,t,0,["font-weight: bolder"]);const f=l.node().getBBox();g=f.height,c=n.insert("g").attr("class","members-group text");let p=0;for(const k of t.members){const x=await Ja(c,k,p,[k.parseClassifier()]);p+=x+s}d=c.node().getBBox().height,d<=0&&(d=a/2),h=n.insert("g").attr("class","methods-group text");let m=0;for(const k of t.methods){const x=await Ja(h,k,m,[k.parseClassifier()]);m+=x+s}let b=n.node().getBBox();if(o!==null){const k=o.node().getBBox();o.attr("transform",`translate(${-k.width/2})`)}return l.attr("transform",`translate(${-f.width/2}, ${u})`),b=n.node().getBBox(),c.attr("transform",`translate(0, ${u+g+a*2})`),b=n.node().getBBox(),h.attr("transform",`translate(0, ${u+g+(d?d+a*4:a*2)})`),b=n.node().getBBox(),{shapeSvg:n,bbox:b}}y(Ub,"textHelper");async function Ja(e,t,r,i=[]){const a=e.insert("g").attr("class","label").attr("style",i.join("; ")),s=Xt();let n="useHtmlLabels"in t?t.useHtmlLabels:xr(s.htmlLabels)??!0,o="";"text"in t?o=t.text:o=t.label,!n&&o.startsWith("\\")&&(o=o.substring(1)),hs(o)&&(n=!0);const l=await wr(a,ih(wi(o)),{width:zr(o,s)+50,classes:"markdown-node-label",useHtmlLabels:n},s);let c,h=1;if(n){const u=l.children[0],g=Et(l);h=u.innerHTML.split("<br>").length,u.innerHTML.includes("</math>")&&(h+=u.innerHTML.split("<mrow>").length-1);const d=u.getElementsByTagName("img");if(d){const f=o.replace(/<img[^>]*>/g,"").trim()==="";await Promise.all([...d].map(p=>new Promise(m=>{function b(){var k;if(p.style.display="flex",p.style.flexDirection="column",f){const x=((k=s.fontSize)==null?void 0:k.toString())??window.getComputedStyle(document.body).fontSize,T=parseInt(x,10)*5+"px";p.style.minWidth=T,p.style.maxWidth=T}else p.style.width="100%";m(p)}y(b,"setupImage"),setTimeout(()=>{p.complete&&b()}),p.addEventListener("error",b),p.addEventListener("load",b)})))}c=u.getBoundingClientRect(),g.attr("width",c.width),g.attr("height",c.height)}else{i.includes("font-weight: bolder")&&Et(l).selectAll("tspan").attr("font-weight",""),h=l.children.length;const u=l.children[0];(l.textContent===""||l.textContent.includes(">"))&&(u.textContent=o[0]+o.substring(1).replaceAll(">",">").replaceAll("<","<").trim(),o[1]===" "&&(u.textContent=u.textContent[0]+" "+u.textContent.substring(1))),u.textContent==="undefined"&&(u.textContent=""),c=l.getBBox()}return a.attr("transform","translate(0,"+(-c.height/(2*h)+r)+")"),
242c.height}y(Ja,"addText");async function Vb(e,t){var L,F;const r=Ht(),{themeVariables:i}=r,{useGradient:a}=i,s=r.class.padding??12,n=s,o=t.useHtmlLabels??xr(r.htmlLabels)??!0,l=t;l.annotations=l.annotations??[],l.members=l.members??[],l.methods=l.methods??[];const{shapeSvg:c,bbox:h}=await Ub(e,t,r,o,n),{labelStyles:u,nodeStyles:g}=ft(t);t.labelStyle=u,t.cssStyles=l.styles||"";const d=((L=l.styles)==null?void 0:L.join(";"))||g||"";t.cssStyles||(t.cssStyles=d.replaceAll("!important","").split(";"));const f=l.members.length===0&&l.methods.length===0&&!((F=r.class)!=null&&F.hideEmptyMembersBox),p=dt.svg(c),m=ht(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const b=Math.max(t.width??0,h.width);let k=Math.max(t.height??0,h.height);const x=(t.height??0)>h.height;l.members.length===0&&l.methods.length===0?k+=n:l.members.length>0&&l.methods.length===0&&(k+=n*2);const C=-b/2,T=-k/2;let w=f?s*2:l.members.length===0&&l.methods.length===0?-s:0;x&&(w=s*2);const _=p.rectangle(C-s,T-s-(f?s:l.members.length===0&&l.methods.length===0?-s/2:0),b+2*s,k+2*s+w,m),B=c.insert(()=>_,":first-child");B.attr("class","basic label-container outer-path");const G=B.node().getBBox(),z=c.select(".annotation-group").node().getBBox().height-(f?s/2:0)||0,P=c.select(".label-group").node().getBBox().height-(f?s/2:0)||0,R=c.select(".members-group").node().getBBox().height-(f?s/2:0)||0,D=(z+P+T+s-(T-s-(f?s:l.members.length===0&&l.methods.length===0?-s/2:0)))/2;if(c.selectAll(".text").each((A,$,E)=>{var pt,mt;const V=Et(E[$]),X=V.attr("transform");let et=0;if(X){const Mt=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(X);Mt&&(et=parseFloat(Mt[2]))}let ot=et+T+s-(f?s:l.members.length===0&&l.methods.length===0?-s/2:0);if(V.attr("class").includes("methods-group")){const Ft=Math.max(R,n/2);x?ot=Math.max(D,z+P+Ft+T+n*2+s)+n*2:ot=z+P+Ft+T+n*4+s}l.members.length===0&&l.methods.length===0&&((pt=r.class)!=null&&pt.hideEmptyMembersBox)&&(l.annotations.length>0?ot=et-n:ot=et),o||(ot-=4);let bt=C;(V.attr("class").includes("label-group")||V.attr("class").includes("annotation-group"))&&(bt=-((mt=V.node())==null?void 0:mt.getBBox().width)/2||0,c.selectAll("text").each(function(Ft,Mt,It){window.getComputedStyle(It[Mt]).textAnchor==="middle"&&(bt=0)})),V.attr("transform",`translate(${bt}, ${ot})`)}),l.members.length>0||l.methods.length>0||f){const A=z+P+T+s,$=p.line(G.x,A,G.x+G.width,A+.001,m);c.insert(()=>$).attr("class",`divider${t.look==="neo"&&!a?" neo-line":""}`).attr("style",d)}if(f||l.members.length>0||l.methods.length>0){const A=z+P+R+T+n*2+s,$=p.line(G.x,x?Math.max(D,A):A,G.x+G.width,(x?Math.max(D,A):A)+.001,m);c.insert(()=>$).attr("class",`divider${t.look==="neo"&&!a?" neo-line":""}`).attr("style",d)}if(l.look!=="handDrawn"&&c.selectAll("path").attr("style",d),B.select(":nth-child(2)").attr("style",d),c.selectAll(".divider").select("path").attr("style",d),t.labelStyle?c.selectAll("span").attr("style",t.labelStyle):c.selectAll("span").attr("style",d),!o){const A=RegExp(/color\s*:\s*([^;]*)/),$=A.exec(d);if($){const E=$[0].replace("color","fill");c.selectAll("tspan").attr("style",E)}else if(u){const E=A.exec(u);if(E){const V=E[0].replace("color","fill");c.selectAll("tspan").attr("style",V)}}}return yt(t,B),t.intersect=function(A){return lt.rect(t,A)},c}y(Vb,"classBox");async function Yb(e,t){var G,z;const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const a=t,s=t,n=20,o=20,l="verifyMethod"in t,c=Tt(t),{themeVariables:h}=Ht(),{borderColorArray:u,requirementEdgeLabelBackground:g}=h,d=e.insert("g").attr("class",c).attr("id",t.domId??t.id);let f;l?f=await cr(d,`<<${a.type}>>`,0,t.labelStyle):f=await cr(d,"<<Element>>",0,t.labelStyle);let p=f;const m=await cr(d,a.name,p,t.labelStyle+"; font-weight: bold;");if(p+=m+o,l){const P=await cr(d,`${a.requirementId?`ID: ${a.requirementId}`:""}`,p,t.labelStyle);p+=P;const R=await cr(d,`${a.text?`Text: ${a.text}`:""}`,p,t.labelStyle);p+=R;const D=await cr(d,`${a.risk?`Risk: ${a.risk}`:""}`,p,t.labelStyle);p+=D,await cr(d,`${a.verifyMethod?`Verification: ${a.verifyMethod}`:""}`,p,t.labelStyle)}else{const P=await cr(d,`${s.type?`Type: ${s.type}`:""}`,p,t.labelStyle);p+=P,await cr(d,`${s.docRef?`Doc Ref: ${s.docRef}`:""}`,p,t.labelStyle)}const b=(((G=d.node())==null?void 0:G.getBBox().width)??200)+n,k=(((z=d.node())==null?void 0:z.getBBox().height)??200)+n,x=-b/2,C=-k/2,T=dt.svg(d),w=ht(t,{});t.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");const _=T.rectangle(x,C,b,k,w),B=d.insert(()=>_,":first-child");if(B.attr("class","basic label-container outer-path").attr("style",i),u!=null&&u.length){const P=t.colorIndex??0;d.attr("data-color-id",`color-${P%u.length}`)}if(d.selectAll(".label").each((P,R,D)=>{const L=Et(D[R]),F=L.attr("transform");let A=0,$=0;if(F){const et=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(F);et&&(A=parseFloat(et[1]),$=parseFloat(et[2]))}const E=$-k/2;let V=x+n/2;(R===0||R===1)&&(V=A),L.attr("transform",`translate(${V}, ${E+n})`)}
vendor: 7,395 bytes, lines 242-294
242),p>f+m+o){const P=C+f+m+o;let R;if(t.look==="neo"){const F=[[x,P],[x+b,P],[x+b,P+.001],[x,P+.001]];R=T.polygon(F,w)}else R=T.line(x,P,x+b,P,w);d.insert(()=>R).attr("class","divider")}return yt(t,B),t.intersect=function(P){return lt.rect(t,P)},i&&t.look!=="handDrawn"&&(g||u!=null&&u.length)&&d.selectAll("path").attr("style",i),d}y(Yb,"requirementBox");async function cr(e,t,r,i=""){if(t==="")return 0;const a=e.insert("g").attr("class","label").attr("style",i),s=Ht(),n=s.htmlLabels??!0,o=await wr(a,ih(wi(t)),{width:zr(t,s)+50,classes:"markdown-node-label",useHtmlLabels:n,style:i},s);let l;if(n){const c=o.children[0],h=Et(o);l=c.getBoundingClientRect(),h.attr("width",l.width),h.attr("height",l.height)}else{const c=o.children[0];for(const h of c.children)i&&h.setAttribute("style",i);l=o.getBBox(),l.height+=6}return a.attr("transform",`translate(${-l.width/2},${-l.height/2+r})`),l.height}y(cr,"addText");var g5=y(e=>{switch(e){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");async function Gb(e,t,{config:r}){var R,D;const{labelStyles:i,nodeStyles:a}=ft(t);t.labelStyle=i||"";const s=10,n=t.width;t.width=(t.width??200)-10;const{shapeSvg:o,bbox:l,label:c}=await _t(e,t,Tt(t)),h=t.padding||10;let u="",g;"ticket"in t&&t.ticket&&((R=r==null?void 0:r.kanban)!=null&&R.ticketBaseUrl)&&(u=(D=r==null?void 0:r.kanban)==null?void 0:D.ticketBaseUrl.replace("#TICKET#",t.ticket),g=o.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",u).attr("target","_blank"));const d={useHtmlLabels:t.useHtmlLabels,labelStyle:t.labelStyle||"",width:t.width,img:t.img,padding:t.padding||8,centerLabel:!1};let f,p;g?{label:f,bbox:p}=await El(g,"ticket"in t&&t.ticket||"",d):{label:f,bbox:p}=await El(o,"ticket"in t&&t.ticket||"",d);const{label:m,bbox:b}=await El(o,"assigned"in t&&t.assigned||"",d);t.width=n;const k=10,x=(t==null?void 0:t.width)||0,C=Math.max(p.height,b.height)/2,T=Math.max(l.height+k*2,(t==null?void 0:t.height)||0)+C,w=-x/2,_=-T/2;c.attr("transform","translate("+(h-x/2)+", "+(-C-l.height/2)+")"),f.attr("transform","translate("+(h-x/2)+", "+(-C+l.height/2)+")"),m.attr("transform","translate("+(h+x/2-b.width-2*s)+", "+(-C+l.height/2)+")");let B;const{rx:G,ry:z}=t,{cssStyles:P}=t;if(t.look==="handDrawn"){const L=dt.svg(o),F=ht(t,{}),A=G||z?L.path(ei(w,_,x,T,G||0),F):L.rectangle(w,_,x,T,F);B=o.insert(()=>A,":first-child"),B.attr("class","basic label-container").attr("style",P||null)}else{B=o.insert("rect",":first-child"),B.attr("class","basic label-container __APA__").attr("style",a).attr("rx",G??5).attr("ry",z??5).attr("x",w).attr("y",_).attr("width",x).attr("height",T);const L="priority"in t&&t.priority;if(L){const F=o.append("line"),A=w+2,$=_+Math.floor((G??0)/2),E=_+T-Math.floor((G??0)/2);F.attr("x1",A).attr("y1",$).attr("x2",A).attr("y2",E).attr("stroke-width","4").attr("stroke",g5(L))}}return yt(t,B),t.height=T,t.intersect=function(L){return lt.rect(t,L)},o}y(Gb,"kanbanItem");async function jb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const{shapeSvg:a,bbox:s,halfPadding:n,label:o}=await _t(e,t,Tt(t)),l=s.width+10*n,c=s.height+8*n,h=.15*l,{cssStyles:u}=t,g=s.width+20,d=s.height+20,f=Math.max(l,g),p=Math.max(c,d);o.attr("transform",`translate(${-s.width/2}, ${-s.height/2})`);let m;const b=`M0 0 243 a${h},${h} 1 0,0 ${f*.25},${-1*p*.1} 244 a${h},${h} 1 0,0 ${f*.25},0 245 a${h},${h} 1 0,0 ${f*.25},0 246 a${h},${h} 1 0,0 ${f*.25},${p*.1} 247 248 a${h},${h} 1 0,0 ${f*.15},${p*.33} 249 a${h*.8},${h*.8} 1 0,0 0,${p*.34} 250 a${h},${h} 1 0,0 ${-1*f*.15},${p*.33} 251 252 a${h},${h} 1 0,0 ${-1*f*.25},${p*.15} 253 a${h},${h} 1 0,0 ${-1*f*.25},0 254 a${h},${h} 1 0,0 ${-1*f*.25},0 255 a${h},${h} 1 0,0 ${-1*f*.25},${-1*p*.15} 256 257 a${h},${h} 1 0,0 ${-1*f*.1},${-1*p*.33} 258 a${h*.8},${h*.8} 1 0,0 0,${-1*p*.34} 259 a${h},${h} 1 0,0 ${f*.1},${-1*p*.33} 260 H0 V0 Z`;if(t.look==="handDrawn"){const k=dt.svg(a),x=ht(t,{}),C=k.path(b,x);m=a.insert(()=>C,":first-child"),m.attr("class","basic label-container").attr("style",ue(u))}else m=a.insert("path",":first-child").attr("class","basic label-container").attr("style",i).attr("d",b);return m.attr("transform",`translate(${-f/2}, ${-p/2})`),yt(t,m),t.calcIntersect=function(k,x){return lt.rect(k,x)},t.intersect=function(k){return J.info("Bang intersect",t,k),lt.rect(t,k)},a}y(jb,"bang");async function Xb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const{shapeSvg:a,bbox:s,halfPadding:n,label:o}=await _t(e,t,Tt(t)),l=s.width+2*n,c=s.height+2*n,h=.15*l,u=.25*l,g=.35*l,d=.2*l,{cssStyles:f}=t;let p;const m=`M0 0 261 a${h},${h} 0 0,1 ${l*.25},${-1*l*.1} 262 a${g},${g} 1 0,1 ${l*.4},${-1*l*.1} 263 a${u},${u} 1 0,1 ${l*.35},${l*.2} 264 265 a${h},${h} 1 0,1 ${l*.15},${c*.35} 266 a${d},${d} 1 0,1 ${-1*l*.15},${c*.65} 267 268 a${u},${h} 1 0,1 ${-1*l*.25},${l*.15} 269 a${g},${g} 1 0,1 ${-1*l*.5},0 270 a${h},${h} 1 0,1 ${-1*l*.25},${-1*l*.15} 271 272 a${h},${h} 1 0,1 ${-1*l*.1},${-1*c*.35} 273 a${d},${d} 1 0,1 ${l*.1},${-1*c*.65} 274 H0 V0 Z`;if(t.look==="handDrawn"){const b=dt.svg(a),k=ht(t,{}),x=b.path(m,k);p=a.insert(()=>x,":first-child"),p.attr("class","basic label-container").attr("style",ue(f))}else p=a.insert("path",":first-child").attr("class","basic label-container").attr("style",i).attr("d",m);return o.attr("transform",`translate(${-s.width/2}, ${-s.height/2})`),p.attr("transform",`translate(${-l/2}, ${-c/2})`),yt(t,p),t.calcIntersect=function(b,k){return lt.rect(b,k)},t.intersect=function(b){return J.info("Cloud intersect",t,b),lt.rect(t,b)},a}y(Xb,"cloud");async function Qb(e,t){const{labelStyles:r,nodeStyles:i}=ft(t);t.labelStyle=r;const{shapeSvg:a,bbox:s,halfPadding:n,label:o}=await _t(e,t,Tt(t)),l=s.width+8*n,c=s.height+2*n,h=5,u=t.look==="neo"?` 275 M${-l/2} ${c/2-h} 276 v${-c+2*h} 277 q0,-${h} ${h},-${h} 278 h${l-2*h} 279 q${h},0 ${h},${h} 280 v${c-h} 281 H${-l/2} 282 Z 283 `:` 284 M${-l/2} ${c/2-h} 285 v${-c+2*h} 286 q0,-${h} ${h},-${h} 287 h${l-2*h} 288 q${h},0 ${h},${h} 289 v${c-2*h} 290 q0,${h} ${-h},${h} 291 h${-(l-2*h)} 292 q${-h},0 ${-h},${-h} 293 Z 294 `;if(!t.domId)throw new Error(`defaultMindmapNode: node "${t.id}" is missing a domId â was render.ts domId prefixing skipped?`);const g=a.append("path").attr("id",t.domId).attr("class","node-bkg node-"+t.type).attr("style",i).attr("d",u);return a.append("line").attr("class","node-line-").attr("x1",-l/2).attr("y1",c/2).attr("x2",l/2).attr("y2",c/2),o.attr("transform",`translate(${-s.width/2}, ${-s.height/2})`),a.append(()=>o.node()),yt(t,g),t.calcIntersect=function(d,f){return lt.rect(d,f)},t.intersect=function(d){return lt.rect(t,d)},a}y(Qb,"defaultMindmapNode");async function Kb(e,t){const r={padding:t.padding??0};return tu(e,t,r)}y(Kb,"mindmapCircle");var f5=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:Lb},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:Sb},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:Ab},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","
294subproc","framed-rectangle","subroutine"],handler:Eb},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:K0},{semanticName:"Data Store",name:"Data Store",shortName:"datastore",description:"Data flow diagram data store",aliases:["data-store"],handler:Z0},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:tu},{semanticName:"Bang",name:"Bang",shortName:"bang",description:"Bang",aliases:["bang"],handler:jb},{semanticName:"Cloud",name:"Cloud",shortName:"cloud",description:"cloud",aliases:["cloud"],handler:Xb},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:Cb},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:sb},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:pb},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:fb},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:zb},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:db},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:tb},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:Ib}
294,{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:q0},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:_b},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:Pb},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:Fb},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:ib},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:nb},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:G0},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:j0},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:X0},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:mb}
vendor: 14,733 bytes, lines 294-297
294,{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:Hb},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:ab},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:$b},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:yb},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:Q0},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:J0},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:Nb},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:qb},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:eb},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:Rb},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:rb},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:Bb},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:vb},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:kb},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:W0},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:Y0},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:Db},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:Ob},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:Wb},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:wb},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:bb}],p5=y(()=>{const t=[...Object.entries({state:Mb,choice:U0,note:xb,rectWithTitle:Tb,labelRect:gb,iconSquare:hb,iconCircle:lb,icon:ob,iconRounded:cb,imageSquare:ub,anchor:N0,kanbanItem:Gb,mindmapCircle:Kb,defaultMindmapNode:Qb,classBox:Vb,erBox:eu,requirementBox:Yb}),...f5.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(a=>[a,r.handler]))];return Object.fromEntries(t)},"generateShapeMap"),Zb=p5();function m5(e){return e in Zb}y(m5,"isValidShape");var $o=new Map;async function Jb(e,t,r){let i,a;t.shape==="rect"&&(t.rx&&t.ry?t.shape="roundedRect":t.shape="squareRect");const s=t.shape?Zb[t.shape]:void 0;if(!s)throw new Error(`No such shape: ${t.shape}. Please check your syntax.`);if(t.link){let n;r.config.securityLevel==="sandbox"?n="_top":t.linkTarget&&(n=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",n??null),a=await s(i,t,r)}else a=await s(e,t,r),i=a;return i.attr("data-look",ue(t.look)),t.tooltip&&a.attr("title",t.tooltip),$o.set(t.id,i),t.haveCallback&&i.attr("class",i.attr("class")+" clickable"),i}y(Jb,"insertNode");var k8=y((e,t)=>{$o.set(t.id,e)},"setNodeElem"),v8=y(()=>{$o.clear()},"clear"),x8=y(e=>{const t=$o.get(e.id);J.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const r=8,i=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+i-e.width/2)+", "+(e.y-e.height/2-r)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),i},"positionNode"),Va=y((e,t)=>{if(t)return"translate("+-e.width/2+", "+-e.height/2+")";const r=e.x??0,i=e.y??0;return"translate("+-(r+e.width/2)+", "+-(i+e.height/2)+")"},"computeLabelTransform"),we={aggregation:17.25,extension:17.25,composition:17.25,dependency:6,lollipop:13.5,arrow_point:4,arrow_barb:0,arrow_barb_neo:5.5},Lg={arrow_point:4,arrow_cross:12.5,arrow_circle:12.5};function ts(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=jt(e),t=jt(t);const[r,i]=[e.x,e.y],[a,s]=[t.x,t.y],n=a-r,o=s-i;return{angle:Math.atan(o/n),deltaX:n,deltaY:o}}y(ts,"calculateDeltaAndAngle");var jt=y(e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,"pointTransformer"),y5=y(e=>({x:y(function(t,r,i){let a=0;const s=jt(i[0]).x<jt(i[i.length-1]).x?"left":"right";if(r===0&&Object.hasOwn(we,e.arrowTypeStart)){const{angle:d,deltaX:f}=ts(i[0],i[1]);a=we[e.arrowTypeStart]*Math.cos(d)*(f>=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(we,e.arrowTypeEnd)){const{angle:d,deltaX:f}=ts(i[i.length-1],i[i.length-2]);a=we[e.arrowTypeEnd]*Math.cos(d)*(f>=0?1:-1)}const n=Math.abs(jt(t).x-jt(i[i.length-1]).x),o=Math.abs(jt(t).y-jt(i[i.length-1]).y),l=Math.abs(jt(t).x-jt(i[0]).x),c=Math.abs(jt(t).y-jt(i[0]).y),h=we[e.arrowTypeStart],u=we[e.arrowTypeEnd],g=1;if(n<u&&n>0&&o<u){let d=u+g-n;d*=s==="right"?-1:1,a-=d}if(l<h&&l>0&&c<h){let d=h+g-l;d*=s==="right"?-1:1,a+=d}return jt(t).x+a},"x"),y:y(function(t,r,i){let a=0;const s=jt(i[0]).y<jt(i[i.length-1]).y?"down":"up";if(r===0&&Object.hasOwn(we,e.arrowTypeStart)){const{angle:d,deltaY:f}=ts(i[0],i[1]);a=we[e.arrowTypeStart]*Math.abs(Math.sin(d))*(f>=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(we,e.arrowTypeEnd)){const{angle:d,deltaY:f}=ts(i[i.length-1],i[i.length-2]);a=we[e.arrowTypeEnd]*Math.abs(Math.sin(d))*(f>=0?1:-1)}const n=Math.abs(jt(t).y-jt(i[i.length-1]).y),o=Math.abs(jt(t).x-jt(i[i.length-1]).x),l=Math.abs(jt(t).y-jt(i[0]).y),c=Math.abs(jt(t).x-jt(i[0]).x),h=we[e.arrowTypeStart],u=we[e.arrowTypeEnd],g=1;if(n<u&&n>0&&o<u){let d=u+g-n;d*=s==="up"?-1:1,a-=d}if(l<h&&l>0&&c<h){let d=h+g-l;d*=s==="up"?-1:1,a+=d}return jt(t).y+a},"y")}),"getLineFunctionsWithOffset"),b5=y((e,t,r,i,a,s=!1,n)=>{t.arrowTypeStart&&Ag(e,"start",t.arrowTypeStart,r,i,a,s,n),t.arrowTypeEnd&&Ag(e,"end",t.arrowTypeEnd,r,i,a,s,n)},"addEdgeMarkers"),k5={arrow_cross:{type:"cross",fill:!1},arrow_point:{type:"point",fill:!0},arrow_barb:{type:"barb",fill:!0},arrow_barb_neo:{type:"barb",fill:!0},arrow_circle:{type:"circle",fill:!1},aggregation:{type:"aggregation",fill:!1},extension:{type:"extension",fill:!1},composition:{type:"composition",fill:!0},dependency:{type:"dependency",fill:!0},lollipop:{type:"lollipop",fill:!1},only_one:{type:"onlyOne",fill:!1},zero_or_one:{type:"zeroOrOne",fill:!1},one_or_more:{type:"oneOrMore",fill:!1},zero_or_more:{type:"zeroOrMore",fill:!1},requirement_arrow:{type:"requirement_arrow",fill:!1},requirement_contains:{type:"requirement_contains",fill:!1}},v5=["cross","point","circle","lollipop","aggregation","extension","composition","dependency","barb"],Ag=y((e,t,r,i,a,s,n=!1,o)=>{var f;const l=k5[r],c=l&&v5.includes(l.type);if(!l){J.warn(`Unknown arrow type: ${r}`);return}const h=l.type,d=`${a}_${s}-${h}${t==="start"?"Start":"End"}${n&&c?"-margin":""}`;if(o&&o.trim()!==""){const p=o.replace(/[^\dA-Za-z]/g,"_"),m=`${d}_${p}`;if(!document.getElementById(m)){const b=document.getElementById(d);if(b){const k=b.cloneNode(!0);k.id=m,k.querySelectorAll("path, circle, line").forEach(C=>{C.setAttribute("stroke",o),l.fill&&C.setAttribute("fill",o)}),(f=b.parentNode)==null||f.appendChild(k)}}e.attr(`marker-${t}`,`url(${i}#${m})`)}else e.attr(`marker-${t}`,`url(${i}#${d})`)},"addEdgeMarker"),x5=y(e=>{var t,r;return typeof e=="string"?e:(r=(t=Ht())==null?void 0:t.flowchart)==null?void 0:r.curve},"resolveEdgeCurveType"),oo=new Map,me=new Map,C8=y(()=>{oo.clear(),me.clear()},"clear"),Ya=y(e=>e?typeof e=="string"?e:e.reduce((t,r)=>t+";"+r,""):"","getLabelStyles"),C5=y(async(e,t)=>{const r=Ht();let i=Pe(r);const{labelStyles:a}=ft(t);t.labelStyle=a;const s=e.insert("g").attr("class","edgeLabel"),n=s.insert("g").attr("class","label").attr("data-id",t.id),o=t.labelType==="markdown",c=await wr(e,t.label,{style:Ya(t.labelStyle),useHtmlLabels:i,addSvgBackground:!0,isNode:!1,markdown:o,width:o?void 0:void 0},r);n.node().appendChild(c),J.info("abc82",t,t.labelType);let h=c.getBBox(),u=h;if(i){const d=c.children[0],f=Et(c);h=d.getBoundingClientRect(),u=h,f.attr("width",h.width),f.attr("height",h.height)}else{const d=Et(c).select("text").node();d&&typeof d.getBBox=="function"&&(u=d.getBBox())}n.attr("transform",Va(u,i)),oo.set(t.id,s),t.width=h.width,t.height=h.height;let g;if(t.startLabelLeft){const d=e.insert("g").attr("class","edgeTerminals"),f=d.insert("g").attr("class","inner"),p=await Gr(f,t.startLabelLeft,Ya(t.labelStyle)||"",!1,!1);g=p;let m=p.getBBox();if(i){const b=p.children[0],k=Et(p);m=b.getBoundingClientRect(),k.attr("width",m.width),k.attr("height",m.height)}f.attr("transform",Va(m,i)),me.get(t.id)||me.set(t.id,{}),me.get(t.id).startLeft=d,es(g,t.startLabelLeft)}if(t.startLabelRight){const d=e.insert("g").attr("class","edgeTerminals"),f=d.insert("g").attr("class","inner"),p=await Gr(f,t.startLabelRight,Ya(t.labelStyle)||"",!1,!1);g=p;let m=p.getBBox();if(i){const b=p.children[0],k=Et(p);m=b.getBoundingClientRect(),k.attr("width",m.width),k.attr("height",m.height)}f.attr("transform",Va(m,i)),me.get(t.id)||me.set(t.id,{}),me.get(t.id).startRight=d,es(g,t.startLabelRight)}if(t.endLabelLeft){const d=e.insert("g").attr("class","edgeTerminals"),f=d.insert("g").attr("class","inner"),p=await Gr(d,t.endLabelLeft,Ya(t.labelStyle)||"",!1,!1);g=p;let m=p.getBBox();if(i){const b=p.children[0],k=Et(p);m=b.getBoundingClientRect(),k.attr("width",m.width),k.attr("height",m.height)}f.attr("transform",Va(m,i)),me.get(t.id)||me.set(t.id,{}),me.get(t.id).endLeft=d,es(g,t.endLabelLeft)}if(t.endLabelRight){const d=e.insert("g").attr("class","edgeTerminals"),f=d.insert("g").attr("class","inner"),p=await Gr(d,t.endLabelRight,Ya(t.labelStyle)||"",!1,!1);g=p;let m=p.getBBox();if(i){const b=p.children[0],k=Et(p);m=b.getBoundingClientRect(),k.attr("width",m.width),k.attr("height",m.height)}f.attr("transform",Va(m,i)),me.get(t.id)||me.set(t.id,{}),me.get(t.id).endRight=d,es(g,t.endLabelRight)}return c},"insertEdgeLabel");function es(e,t){Pe(Ht())&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}y(es,"setTerminalWidth");var w5=y((e,t)=>{J.debug("Moving label abc88 ",e.id,e.label,oo.get(e.id),t);let r=t.updatedPath?t.updatedPath:t.originalPath;const i=Ht(),{subGraphTitleTotalMargin:a}=Hh(i);if(e.label){const s=oo.get(e.id);let n=e.x,o=e.y;if(r){const l=Qe.calcLabelPosition(r);J.debug("Moving label "+e.label+" from (",n,",",o,") to (",l.x,",",l.y,") abc88"),t.updatedPath&&(n=l.x,o=l.y)}s.attr("transform",`translate(${n}, ${o+a/2})`)}if(e.startLabelLeft){const s=me.get(e.id).startLeft;let n=e.x,o=e.y;if(r){const l=Qe.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",r);n=l.x,o=l.y}s.attr("transform",`translate(${n}, ${o})`)}if(e.startLabelRight){const s=me.get(e.id).startRight;let n=e.x,o=e.y;if(r){const l=Qe.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",r);n=l.x,o=l.y}s.attr("transform",`translate(${n}, ${o})`)}if(e.endLabelLeft){const s=me.get(e.id).endLeft;let n=e.x,o=e.y;if(r){const l=Qe.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",r);n=l.x,o=l.y}s.attr("transform",`translate(${n}, ${o})`)}if(e.endLabelRight){const s=me.get(e.id).endRight;let n=e.x,o=e.y;if(r){const l=Qe.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",r);n=l.x,o=l.y}s.attr("transform",`translate(${n}, ${o})`)}},"positionEdgeLabel"),T5=y((e,t)=>{var n;if(!(e!=null&&e.isLabelEdge)||!((n=e==null?void 0:e.id)!=null&&n.endsWith("-to-label"))||!Array.isArray(t)||t.length!==2)return t;const[r,i]=t,a=Math.abs(i.x-r.x),s=Math.abs(i.y-r.y);return a<.001||s<.001?t:s>=a?[r,{x:r.x,y:i.y},i]:[r,{x:i.x,y:r.y},i]},"orthogonalizeToLabelClippedPoints"),S5=y((e,t)=>{const r=e.x,i=e.y,a=Math.abs(t.x-r),s=Math.abs(t.y-i),n=e.width/2,o=e.height/2;return a>=n||s>=o},"outsideNode"),_5=y((e,t,r)=>{J.debug(`intersection calc abc89: 295 outsidePoint: ${JSON.stringify(t)} 296 insidePoint : ${JSON.stringify(r)} 297 node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const i=e.x,a=e.y,s=Math.abs(i-r.x),n=e.width/2;let o=r.x<t.x?n-s:n+s;const l=e.height/2,c=Math.abs(t.y-r.y),h=Math.abs(t.x-r.x);if(Math.abs(a-t.y)*n>Math.abs(i-t.x)*l){let u=r.y<t.y?t.y-l-a:a-l-t.y;o=h*u/c;const g={x:r.x<t.x?r.x+o:r.x-h+o,y:r.y<t.y?r.y+c-u:r.y-c+u};return o===0&&(g.x=t.x,g.y=t.y),h===0&&(g.x=t.x),c===0&&(g.y=t.y),J.debug(`abc89 top/bottom calc, Q ${c}, q ${u}, R ${h}, r ${o}`,g),g}else{r.x<t.x?o=t.x-n-i:o=i-n-t.x;let u=c*o/h,g=r.x<t.x?r.x+h-o:r.x-h+o,d=r.y<t.y?r.y+u:r.y-u;return J.debug(`sides calc abc89, Q ${c}, q ${u}, R ${h}, r ${o}`,{_x:g,_y:d}),o===0&&(g=t.x,d=t.y),h===0&&(g=t.x),c===0&&(d=t.y),{x:g,y:d}}},"intersection"),Mg=y((e,t)=>{J.warn("abc88 cutPathAtIntersect",e,t);let r=[],i=e[0],a=!1;return e.forEach(s=>{if(J.info("abc88 checking point",s,t),!S5(t,s)&&!a){const n=_5(t,i,s);J.debug("abc88 inside",s,i,n),J.debug("abc88 intersection",n,t);let o=!1;r.forEach(l=>{o=o||l.x===n.x&&l.y===n.y}),r.some(l=>l.x===n.x&&l.y===n.y)?J.warn("abc88 no intersect",n,r):r.push(n),a=!0}else J.warn("abc88 outside",s,i),i=s,a||r.push(s)}),J.debug("returning points",r),r},"cutPathAtIntersect");function tk(e){const t=[],r=[];for(let i=1;i<e.length-1;i++){const a=e[i-1],s=e[i],n=e[i+1];(a.x===s.x&&s.y===n.y&&Math.abs(s.x-n.x)>5&&Math.abs(s.y-a.y)>5||a.y===s.y&&s.x===n.x&&Math.abs(s.x-a.x)>5&&Math.abs(s.y-n.y)>5)&&(t.push(s),r.push(i))}return{cornerPoints:t,cornerPointPositions:r}}y(tk,"extractCornerPoints");var Fg=y(function(e,t,r){const i=t.x-e.x,a=t.y-e.y,s=Math.sqrt(i*i+a*a),n=r/s;return{x:t.x-n*i,y:t.y-n*a}},"findAdjacentPoint"),B5=y(function(e){const{cornerPointPositions:t}=tk(e),r=[];for(let i=0;i<e.length;i++)if(t.includes(i)){const a=e[i-1],s=e[i+1],n=e[i],o=Fg(a,n,5),l=Fg(s,n,5),c=l.x-o.x,h=l.y-o.y;
297r.push(o);const u=Math.sqrt(2)*2;let g={x:n.x,y:n.y};if(Math.abs(s.x-a.x)>10&&Math.abs(s.y-a.y)>=10){J.debug("Corner point fixing",Math.abs(s.x-a.x),Math.abs(s.y-a.y));const d=5;n.x===o.x?g={x:c<0?o.x-d+u:o.x+d-u,y:h<0?o.y-u:o.y+u}:g={x:c<0?o.x-u:o.x+u,y:h<0?o.y-d+u:o.y+d-u}}else J.debug("Corner point skipping fixing",Math.abs(s.x-a.x),Math.abs(s.y-a.y));r.push(g,l)}else r.push(e[i]);return r},"fixCorners"),L5=y((e,t,r)=>{const i=e-t-r,a=2,s=2,n=a+s,o=Math.floor(i/n),l=Array(o).fill(`${a} ${s}`).join(" ");return`0 ${t} ${l} ${r}`},"generateDashArray"),A5=y(function(e,t,r,i,a,s,n,o=!1){var E;if(!n)throw new Error(`insertEdge: missing diagramId for edge "${t.id}" â edge IDs require a diagram prefix for uniqueness`);const{handDrawnSeed:l,layout:c}=Ht();let h=t.points,u=!1;const g=a;var d=s;const f=[];for(const V in t.cssCompiledStyles)xy(V)||f.push(t.cssCompiledStyles[V]);if(c==="swimlane"){if(d.intersect&&g.intersect&&Array.isArray(h)&&h.length>=2)if(h.length===2)h=[g.intersect(h[0]),d.intersect(h[1])];else{const V=h.slice(1,-1),X=V[0],et=V[V.length-1],ot=.5,bt=Math.abs(h[h.length-1].x-et.x)<ot&&Math.abs(h[h.length-1].y-et.y)<ot,pt=g.intersect(X),mt=bt?et:d.intersect(et),Ft=Math.abs(mt.x-et.x)<ot&&Math.abs(mt.y-et.y)<ot,It=Math.abs(pt.x-X.x)<ot&&Math.abs(pt.y-X.y)<ot?[]:[pt],rt=Ft?[]:[mt];h=[...It,...V,...rt]}h=T5(t,h)}else d.intersect&&g.intersect&&!o&&(h=h.slice(1,t.points.length-1),h.unshift(g.intersect(h[0])),h.push(d.intersect(h[h.length-1])));const p=btoa(JSON.stringify(h));t.toCluster&&(J.info("to cluster abc88",r.get(t.toCluster)),h=Mg(t.points,r.get(t.toCluster).node),u=!0),t.fromCluster&&(J.debug("from cluster abc88",r.get(t.fromCluster),JSON.stringify(h,null,2)),h=Mg(h.reverse(),r.get(t.fromCluster).node).reverse(),u=!0);let m=h.filter(V=>!Number.isNaN(V.y));const b=x5(t.curve);b!=="rounded"&&(m=B5(m));let k=ns;switch(b){case"linear":k=ns;break;case"basis":k=lc;break;case"cardinal":k=Sp;break;case"bumpX":k=vp;break;case"bumpY":k=xp;break;case"catmullRom":k=Bp;break;case"monotoneX":k=Ep;break;case"monotoneY":k=Op;break;case"natural":k=Ip;break;case"step":k=$p;break;case"stepAfter":k=Rp;break;case"stepBefore":k=zp;break;case"rounded":k=ns;break;default:k=lc}const{x,y:C}=y5(t),T=dB().x(x).y(C).curve(k);let w;switch(t.thickness){case"normal":w="edge-thickness-normal";break;case"thick":w="edge-thickness-thick";break;case"invisible":w="edge-thickness-invisible";break;default:w="edge-thickness-normal"}switch(t.pattern){case"solid":w+=" edge-pattern-solid";break;case"dotted":w+=" edge-pattern-dotted";break;case"dashed":w+=" edge-pattern-dashed";break;default:w+=" edge-pattern-solid"}let _,B=b==="rounded"?ek(rk(m,t),5):T(m);const G=Array.isArray(t.style)?t.style:[t.style];let z=G.find(V=>V==null?void 0:V.startsWith("stroke:")),P="";t.animate&&(P="edge-animation-fast"),t.animation&&(P="edge-animation-"+t.animation);let R=!1;if(t.look==="handDrawn"){const V=dt.svg(e);Object.assign([],m);const X=V.path(B,{roughness:.3,seed:l});w+=" transition",_=Et(X).select("path").attr("id",`${n}-${t.id}`).attr("class"," "+w+(t.classes?" "+t.classes:"")+(P?" "+P:"")).attr("style",G?G.reduce((ot,bt)=>ot+";"+bt,""):"");let et=_.attr("d");_.attr("d",et),e.node().appendChild(_.node())}else{const V=f.join(";"),X=G?G.reduce((Ft,Mt)=>Ft+Mt+";",""):"",et=(V?V+";"+X+";":X)+";"+(G?G.reduce((Ft,Mt)=>Ft+";"+Mt,""):"");_=e.append("path").attr("d",B).attr("id",`${n}-${t.id}`).attr("class"," "+w+(t.classes?" "+t.classes:"")+(P?" "+P:"")).attr("style",et),z=(E=et.match(/stroke:([^;]+)/))==null?void 0:E[1],R=t.animate===!0||!!t.animation||V.includes("animation");const ot=_.node(),bt=typeof ot.getTotalLength=="function"?ot.getTotalLength():0,pt=Lg[t.arrowTypeStart]||0,mt=Lg[t.arrowTypeEnd]||0;if(t.look==="neo"&&!R){const Mt=`stroke-dasharray: ${t.pattern==="dotted"||t.pattern==="dashed"?L5(bt,pt,mt):`0 ${pt} ${bt-pt-mt} ${mt}`}; stroke-dashoffset: 0;`;_.attr("style",Mt+_.attr("style"))}}_.attr("data-edge",!0),_.attr("data-et","edge"),_.attr("data-id",t.id),_.attr("data-points",p),_.attr("data-look",ue(t.look)),t.showPoints&&m.forEach(V=>{e.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",V.x).attr("cy",V.y)});let D="";(Ht().flowchart.arrowMarkerAbsolute||Ht().state.arrowMarkerAbsolute)&&(D=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,D=D.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),J.info("arrowTypeStart",t.arrowTypeStart),J.info("arrowTypeEnd",t.arrowTypeEnd);const L=!R&&(t==null?void 0:t.look)==="neo";b5(_,t,D,n,i,L,z);const F=Math.floor(h.length/2),A=h[F];Qe.isLabelCoordinateInPath(A,_.attr("d"))||(u=!0);let $={};return u&&($.updatedPath=h),$.originalPath=t.points,$},"insertEdge");function ek(e,t){if(e.length<2)return"";let r="";
vendor: 8,993 bytes, line 297
297const i=e.length,a=1e-5;for(let s=0;s<i;s++){const n=e[s],o=e[s-1],l=e[s+1];if(s===0)r+=`M${n.x},${n.y}`;else if(s===i-1)r+=`L${n.x},${n.y}`;else{const c=n.x-o.x,h=n.y-o.y,u=l.x-n.x,g=l.y-n.y,d=Math.hypot(c,h),f=Math.hypot(u,g);if(d<a||f<a){r+=`L${n.x},${n.y}`;continue}const p=c/d,m=h/d,b=u/f,k=g/f,x=p*b+m*k,C=Math.max(-1,Math.min(1,x)),T=Math.acos(C);if(T<a||Math.abs(Math.PI-T)<a){r+=`L${n.x},${n.y}`;continue}const w=Math.min(t/Math.sin(T/2),d/2,f/2),_=n.x-p*w,B=n.y-m*w,G=n.x+b*w,z=n.y+k*w;r+=`L${_},${B}`,r+=`Q${n.x},${n.y} ${G},${z}`}}return r}y(ek,"generateRoundedPath");function zc(e,t){if(!e||!t)return{angle:0,deltaX:0,deltaY:0};const r=t.x-e.x,i=t.y-e.y;return{angle:Math.atan2(i,r),deltaX:r,deltaY:i}}y(zc,"calculateDeltaAndAngle");function rk(e,t){const r=e.map(a=>({...a}));if(e.length>=2&&we[t.arrowTypeStart]){const a=we[t.arrowTypeStart],s=e[0],n=e[1],{angle:o}=zc(s,n),l=a*Math.cos(o),c=a*Math.sin(o);r[0].x=s.x+l,r[0].y=s.y+c}const i=e.length;if(i>=2&&we[t.arrowTypeEnd]){const a=we[t.arrowTypeEnd],s=e[i-1],n=e[i-2],{angle:o}=zc(n,s),l=a*Math.cos(o),c=a*Math.sin(o);r[i-1].x=s.x-l,r[i-1].y=s.y-c}return r}y(rk,"applyMarkerOffsetsToPoints");var M5=y((e,t,r,i)=>{t.forEach(a=>{J5[a](e,r,i)})},"insertMarkers"),F5=y((e,t,r)=>{J.trace("Making markers for ",r),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),e.append("marker").attr("id",r+"_"+t+"-extensionStart-margin").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").attr("viewBox","0 0 20 14").append("polygon").attr("points","10,7 18,13 18,1").style("stroke-width",2).style("stroke-dasharray","0"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd-margin").attr("class","marker extension "+t).attr("refX",9).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").attr("viewBox","0 0 20 14").append("polygon").attr("points","10,1 10,13 18,7").style("stroke-width",2).style("stroke-dasharray","0")},"extension"),P5=y((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart-margin").attr("class","marker composition "+t).attr("refX",15).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",0).attr("viewBox","0 0 15 15").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd-margin").attr("class","marker composition "+t).attr("refX",3.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",0).attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),E5=y((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart-margin").attr("class","marker aggregation "+t).attr("refX",15).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",2).attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd-margin").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",2).attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),O5=y((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart-margin").attr("class","marker dependency "+t).attr("refX",4).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",0).attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd-margin").attr("class","marker dependency "+t).attr("refX",16).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",0).attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),D5=y((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart-margin").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6).attr("stroke-width",2),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd-margin").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6).attr("stroke-width",2)},"lollipop"),I5=y((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointEnd-margin").attr("class","marker "+t).attr("viewBox","0 0 11.5 14").attr("refX",11.5).attr("refY",7).attr("markerUnits","userSpaceOnUse").attr("markerWidth",10.5).attr("markerHeight",14).attr("orient","auto").append("path").attr("d","M 0 0 L 11.5 7 L 0 14 z").attr("class","arrowMarkerPath").style("stroke-width",0).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart-margin").attr("class","marker "+t).attr("viewBox","0 0 11.5 14").attr("refX",1).attr("refY",7).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11.5).attr("markerHeight",14).attr("orient","auto").append("pol
297ygon").attr("points","0,7 11.5,14 11.5,0").attr("class","arrowMarkerPath").style("stroke-width",0).style("stroke-dasharray","1,0")},"point"),$5=y((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleEnd-margin").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refY",5).attr("refX",12.25).attr("markerUnits","userSpaceOnUse").attr("markerWidth",14).attr("markerHeight",14).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",0).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart-margin").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-2).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",14).attr("markerHeight",14).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",0).style("stroke-dasharray","1,0")},"circle"),z5=y((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossEnd-margin").attr("class","marker cross "+t).attr("viewBox","0 0 15 15").attr("refX",17.7).attr("refY",7.5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 1,1 L 14,14 M 1,14 L 14,1").attr("class","arrowMarkerPath").style("stroke-width",2.5),e.append("marker").attr("id",r+"_"+t+"-crossStart-margin").attr("class","marker cross "+t).attr("viewBox","0 0 15 15").attr("refX",-3.5).attr("refY",7.5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 1,1 L 14,14 M 1,14 L 14,1").attr("class","arrowMarkerPath").style("stroke-width",2.5).style("stroke-dasharray","1,0")},"cross"),R5=y((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),N5=y((e,t,r)=>{const i=Xt(),{themeVariables:a}=i,{transitionColor:s}=a;e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L11,14 L13,7 L11,0 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd-margin").attr("refX",17).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L11,14 L13,7 L11,0 Z").attr("fill",`${s}`)},"barbNeo"),H5=y((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneStart").attr("class","marker onlyOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneEnd").attr("class","marker onlyOne "+t).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),W5=y((e,t,r)=>{const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneStart").attr("class","marker zeroOrOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),i.append("path").attr("d","M9,0 L9,18");const a=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+t).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");a.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),a.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),q5=y((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreStart").attr("class","marker oneOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreEnd").attr("class","marker oneOrMore "+t).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),U5=y((e,t,r)=>{const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),i.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");const a=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+t).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");a.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),a.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),V5=y((e,t,r)=>{const i=Xt(),{themeVariables:a}=i,{strokeWidth:s}=a;e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneStart").attr("class","marker onlyOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").attr("d","M9,0 L9,18 M15,0 L15,18").attr("stroke-width",`${s}`),e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneEnd").attr("class","marker onlyOne "+t).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").attr("d","M3,0 L3,18 M9,0 L9,18").attr("stroke-width",`${s}`)},"only_one_neo"),Y5=y((e,t,r)=>{const i=Xt(),{themeVariables:a}=i,{strokeWidth:s,mainBkg:n}=a,o=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneStart").attr("class","marker zeroOrOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto").attr("markerUnits","userSpaceOnUse");o.append("circle").attr("fill",n??"white").attr("cx",21).attr("cy",9).attr("stroke-width",`${s}`).attr("r",6),o.append("path").attr("d","M9,0 L9,18").attr("stroke-width",`${s}`);const l=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+t).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("markerUnits","userSpaceOnUse").attr("orient","auto");l.append("circle").attr("fill",n??"white").attr("cx",9).attr("cy",9).attr("stroke-width",`${s}`).attr("r",6),l.append("path").attr("d","M21,0 L21,18").attr("stroke-width",`${s}`)},"zero_or_one_neo"),G5=y((e,t,r)=>{const i=Xt(),{themeVariables:a}=i,{strokeWidth:s}=a;e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreStart").attr("class","marker oneOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27").attr("stroke-width",`${s}`),e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreEnd").attr("class","marker oneOrMore "+t).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18").attr("stroke-width",`${s}`)},"one_or_more_neo"),j5=y((e,t,r)=>{const i=Xt(),{themeVariables:a}=i,{strokeWidth:s,mainBkg:n}=a,o=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("markerUnits","userSpaceOnUse").attr("orient","auto");o.append("circle").attr("fill",n??"white").attr("cx",45.5).attr("cy",18).attr("r",6).attr("stroke-width",`${s}`),o.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18").attr("stroke-width",`${s}`);const l=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+t).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto").attr("markerUnits","userSpaceOnUse");l.append("circle").attr("fill",n??"white").attr("cx",11).attr("cy",18).attr("r",6).attr("stroke-width",`${s}`),l.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18").attr("stroke-width",`${s}`)},"zero_or_more_neo"),X5=y((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0 298 L20,10 299 M20,10 300 L0,20`)},"requirement_arrow"),Q5=y((e,t,r)=>{const i=Xt(),{themeVariables:a}=i,{strokeWidth:s}=a;e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").attr("stroke-width",`${s}`).attr("viewBox","0 0 25 20").append("path").attr("d",`M0,0 301 L20,10 302 M20,10 303 L0,20`).attr("stroke-linejoin","miter")}
303,"requirement_arrow_neo"),K5=y((e,t,r)=>{const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");i.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),i.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),i.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),Z5=y((e,t,r)=>{const i=Xt(),{themeVariables:a}=i,{strokeWidth:s}=a,n=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),n.selectAll("*").attr("stroke-width",`${s}`)},"requirement_contains_neo"),J5={extension:F5,composition:P5,aggregation:E5,dependency:O5,lollipop:D5,point:I5,circle:$5,cross:z5,barb:R5,barbNeo:N5,only_one:H5,zero_or_one:W5,one_or_more:q5,zero_or_more:U5,only_one_neo:V5,zero_or_one_neo:Y5,one_or_more_neo:G5,zero_or_more_neo:j5,requirement_arrow:X5,requirement_contains:K5,requirement_arrow_neo:Q5,requirement_contains_neo:Z5},tF=M5,eF={common:Ss,getConfig:Xt,insertCluster:QM,insertEdge:A5,insertEdgeLabel:C5,insertMarkers:tF,insertNode:Jb,interpolateToCurve:Dh,labelHelper:_t,log:J,positionEdgeLabel:w5},vs={},ik=y(e=>{for(const t of e)vs[t.name]=t},"registerLayoutLoaders"),rF=y(()=>{ik([{name:"dagre",loader:y(async()=>await Pt(()=>import("./dagre-VKFMJZFB.js"),__vite__mapDeps([0,1,2,3,4,5])),"loader")},{name:"swimlane",loader:y(async()=>await Pt(()=>import("./swimlanes-5IMT3BWC.js"),__vite__mapDeps([6,5,1,2,3])),"loader")},{name:"cose-bilkent",loader:y(async()=>await Pt(()=>import("./cose-bilkent-JH36ORCC.js"),__vite__mapDeps([7,8,5])),"loader")}])},"registerDefaultLayoutLoaders");rF();var w8=y(async(e,t,r)=>{if(!(e.layoutAlgorithm in vs))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);if(e.diagramId)for(const u of e.nodes){const g=u.domId||u.id;u.domId=`${e.diagramId}-${g}`}const i=vs[e.layoutAlgorithm],a=await i.loader(),{theme:s,themeVariables:n}=e.config,{useGradient:o,gradientStart:l,gradientStop:c}=n,h=t.attr("id");if(t.append("defs").append("filter").attr("id",`${h}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${s!=null&&s.includes("dark")?"#FFFFFF":"#000000"}`),t.append("defs").append("filter").attr("id",`${h}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${s!=null&&s.includes("dark")?"#FFFFFF":"#000000"}`),o){const u=t.append("linearGradient").attr("id",t.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");u.append("svg:stop").attr("offset","0%").attr("stop-color",l).attr("stop-opacity",1),u.append("svg:stop").attr("offset","100%").attr("stop-color",c).attr("stop-opacity",1)}return a.render(e,t,eF,{algorithm:i.algorithm},r)},"render"),T8=y((e="",{fallback:t="dagre"}={})=>{if(e in vs)return e;if(t in vs)return J.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm"),ru="comm",ak="rule",sk="decl",iF="@media",aF="@import",sF="@supports",nF="@namespace",Rc="@keyframes",nk="@layer",oF="@scope",lF=Math.abs,cs=String.fromCharCode;function ok(e){return e.trim()}function Nc(e,t,r){return e.replace(t,r)}function Ji(e,t){return e.charCodeAt(t)|0}function wa(e,t,r){return e.slice(t,r)}function hr(e){return e.length}function lk(e){return e.length}function rn(e,t){return t.push(e),e}
vendor: 11,430 bytes, lines 303-304
303var zo=1,Ta=1,ck=0,We=0,re=0,Ba="";function iu(e,t,r,i,a,s,n,o){return{value:e,root:t,parent:r,type:i,props:a,children:s,line:zo,column:Ta,length:n,return:"",siblings:o}}function cF(){return re}function hF(){return re=We>0?Ji(Ba,--We):0,Ta--,re===10&&(Ta=1,zo--),re}function Ze(){return re=We<ck?Ji(Ba,We++):0,Ta++,re===10&&(Ta=1,zo++),re}function jr(){return Ji(Ba,We)}function bn(){return We}function Ro(e,t){return wa(Ba,e,t)}function xs(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function uF(e){return zo=Ta=1,ck=hr(Ba=e),We=0,[]}function dF(e){return Ba="",e}function Dl(e){return ok(Ro(We-1,Hc(e===91?e+2:e===40?e+1:e)))}function gF(e){for(;(re=jr())&&re<33;)Ze();return xs(e)>2||xs(re)>3?"":" "}function fF(e,t){for(;--t&&Ze()&&!(re<48||re>102||re>57&&re<65||re>70&&re<97););return Ro(e,bn()+(t<6&&jr()==32&&Ze()==32))}function Hc(e){for(;Ze();)switch(re){case e:return We;case 34:case 39:e!==34&&e!==39&&Hc(re);break;case 40:e===41&&Hc(e);break;case 92:Ze();break}return We}function pF(e,t){for(;Ze()&&e+re!==57;)if(e+re===84&&jr()===47)break;return"/*"+Ro(t,We-1)+"*"+cs(e===47?e:Ze())}function mF(e){for(;!xs(jr());)Ze();return Ro(e,We)}function yF(e){return dF(kn("",null,null,null,[""],e=uF(e),0,[0],e))}function kn(e,t,r,i,a,s,n,o,l){for(var c=0,h=0,u=n,g=0,d=0,f=0,p=1,m=1,b=1,k=0,x=0,C="",T=a,w=s,_=i,B=C;m;)switch(f=x,x=Ze()){case 40:f!=108&&Ji(B,u-1)==58?(k++,B+="("):B+=Dl(x);break;case 41:k--,B+=")";break;case 34:case 39:case 91:B+=Dl(x);break;case 9:case 10:case 13:case 32:if(k>0){B+=cs(x);break}B+=gF(f);break;case 92:B+=fF(bn()-1,7);continue;case 47:switch(jr()){case 42:case 47:rn(bF(pF(Ze(),bn()),t,r,l),l),(xs(f||1)==5||xs(jr()||1)==5)&&hr(B)&&wa(B,-1,void 0)!==" "&&(B+=" ");break;default:B+="/"}break;case 123*p:o[c++]=hr(B)*b;case 125*p:case 59:case 0:if(k>0&&x){B+=cs(x);break}switch(x){case 0:case 125:m=0;case 59+h:b==-1&&(B=Nc(B,/\f/g,"")),d>0&&(hr(B)-u||p===0)&&rn(d>32?Eg(B+";",i,r,u-1,l):Eg(Nc(B," ","")+";",i,r,u-2,l),l);break;case 59:B+=";";default:if(rn(_=Pg(B,t,r,c,h,a,o,C,T=[],w=[],u,s),s),x===123)if(h===0)kn(B,t,_,_,T,s,u,o,w);else{switch(g){case 99:if(Ji(B,3)===110)break;case 108:if(Ji(B,2)===97)break;default:h=0;case 100:case 109:case 115:}h?kn(e,_,_,i&&rn(Pg(e,_,_,0,0,a,o,C,a,T=[],u,w),w),a,w,u,o,i?T:w):kn(B,_,_,_,[""],w,0,o,w)}}c=h=d=0,p=b=1,C=B="",u=n;break;case 58:u=1+hr(B),d=f;default:if(p<1){if(x==123)--p;else if(x==125&&p++==0&&hF()==125)continue}switch(B+=cs(x),x*p){case 38:b=h>0?1:(B+="\f",-1);break;case 44:if(k>0)break;o[c++]=(hr(B)-1)*b,b=1;break;case 64:jr()===45&&(B+=Dl(Ze())),g=jr(),h=u=hr(C=B+=mF(bn())),x++;break;case 45:f===45&&hr(B)==2&&(p=0)}}return s}function Pg(e,t,r,i,a,s,n,o,l,c,h,u){for(var g=a-1,d=a===0?s:[""],f=lk(d),p=0,m=0,b=0;p<i;++p)for(var k=0,x=wa(e,g+1,g=lF(m=n[p])),C=e;k<f;++k)(C=ok(m>0?d[k]+" "+x:Nc(x,/&\f/g,d[k])))&&(l[b++]=C);return iu(e,t,r,a===0?ak:o,l,c,h,u)}function bF(e,t,r,i){return iu(e,t,r,ru,cs(cF()),wa(e,2,-2),0,i)}function Eg(e,t,r,i,a){return iu(e,t,r,sk,wa(e,0,i),wa(e,i+1,-1),i,a)}function Wc(e,t){for(var r="",i=0;i<e.length;i++)r+=t(e[i],i,e,t)||"";return r}function kF(e,t,r,i){switch(e.type){case nk:if(e.children.length)break;case aF:case nF:case sk:return e.return=e.return||e.value;case ru:return"";case Rc:return e.return=e.value+"{"+Wc(e.children,i)+"}";case ak:if(!hr(e.value=e.props.join(",")))return""}return hr(r=Wc(e.children,i))?e.return=e.value+"{"+r+"}":""}function vF(e){var t=lk(e);return function(r,i,a,s){for(var n="",o=0;o<t;o++)n+=e[o](r,i,a,s)||"";return n}}var hk="c4",xF=y(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),CF=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./c4Diagram-LMCZKHZV.js");return{diagram:t}},__vite__mapDeps([9,10,5]));return{id:hk,diagram:e}},"loader"),wF={id:hk,detector:xF,loader:CF},TF=wF,uk="flowchart",SF=y((e,t)=>{var r,i;return((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((i=t==null?void 0:t.flowchart)==null?void 0:i.defaultRenderer)==="elk"?!1:/^\s*graph/.test(e)},"detector"),_F=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([11,12,13,14,10]));return{id:uk,diagram:e}},"loader"),BF={id:uk,detector:SF,loader:_F},LF=BF,dk="flowchart-v2",AF=y((e,t)=>{var r,i,a;return((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"?!1:(((i=t==null?void 0:t.flowchart)==null?void 0:i.defaultRenderer)==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&((a=t==null?void 0:t.flowchart)==null?void 0:a.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(e))},"detector"),MF=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([11,12,13,14,10]));return{id:dk,diagram:e}},"loader"),FF={id:dk,detector:AF,loader:MF},PF=FF,gk="swimlane",EF=y(e=>/^\s*swimlane-beta\b/.test(e),"detector"),OF=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./swimlanesDiagram-G3AALYLV.js");return{diagram:t}},__vite__mapDeps([15,11,12,13,14,10,5]));return{id:gk,diagram:e}},"loader"),DF={id:gk,detector:EF,loader:OF},IF=DF,fk="er",$F=y(e=>/^\s*erDiagram/.test(e),"detector"),zF=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./erDiagram-Q63AITRT.js");return{diagram:t}},__vite__mapDeps([16,13,14,5]));return{id:fk,diagram:e}},"loader"),RF={id:fk,detector:$F,loader:zF},NF=RF,pk="gitGraph",HF=y(e=>/^\s*gitGraph/.test(e),"detector"),WF=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./gitGraphDiagram-IHSO6WYX.js");return{diagram:t}},__vite__mapDeps([17,18,19,20,5]));return{id:pk,diagram:e}},"loader"),qF={id:pk,detector:HF,loader:WF},UF=qF,mk="gantt",VF=y(e=>/^\s*gantt/.test(e),"detector"),YF=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./ganttDiagram-NO4QXBWP.js");return{diagram:t}},__vite__mapDeps([21,5]));return{id:mk,diagram:e}},"loader"),GF={id:mk,detector:VF,loader:YF},jF=GF,yk="info",XF=y(e=>/^\s*info/.test(e),"detector"),QF=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./infoDiagram-FWYZ7A6U.js");return{diagram:t}},__vite__mapDeps([22,20,5]));return{id:yk,diagram:e}},"loader"),KF={id:yk,detector:XF,loader:QF},bk="pie",ZF=y(e=>/^\s*pie/.test(e),"detector"),JF=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./pieDiagram-ENE6RG2P.js");return{diagram:t}},__vite__mapDeps([23,19,20,5]));return{id:bk,diagram:e}},"loader"),tP={id:bk,detector:ZF,loader:JF},kk="quadrantChart",eP=y(e=>/^\s*quadrantChart/.test(e),"detector"),rP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./quadrantDiagram-ABIIQ3AL.js");return{diagram:t}},__vite__mapDeps([24,5]));return{id:kk,diagram:e}},"loader"),iP={id:kk,detector:eP,loader:rP},aP=iP,vk="xychart",sP=y(e=>/^\s*xychart(-beta)?/.test(e),"detector"),nP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./xychartDiagram-FW5EYKEG.js");return{diagram:t}},__vite__mapDeps([25,5]));return{id:vk,diagram:e}},"loader"),oP={id:vk,detector:sP,loader:nP},lP=oP,xk="requirement",cP=y(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),hP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./requirementDiagram-TGXJPOKE.js");return{diagram:t}},__vite__mapDeps([26,13,14,5]));return{id:xk,diagram:e}},"loader"),uP={id:xk,detector:cP,loader:hP},dP=uP,Ck="sequence",gP=y(e=>/^\s*sequenceDiagram/.test(e),"detector"),fP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./sequenceDiagram-DBY2YBRQ.js");return{diagram:t}},__vite__mapDeps([27,18,10,5]));return{id:Ck,diagram:e}},"loader"),pP={id:Ck,detector:gP,loader:fP},mP=pP,wk="class",yP=y((e,t)=>{var r;return((r=t==null?void 0:t.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e)},"detector"),bP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./classDiagram-OUVF2IWQ.js");return{diagram:t}},__vite__mapDeps([28,29,12,13,14,10,5]));return{id:wk,diagram:e}},"loader"),kP={id:wk,detector:yP,loader:bP},vP=kP,Tk="classDiagram",xP=y((e,t)=>{var r;return/^\s*classDiagram/.test(e)&&((r=t==null?void 0:t.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e)},"detector"),CP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./classDiagram-v2-EOCWNBFH.js");return{diagram:t}},__vite__mapDeps([30,29,12,13,14,10,5]));return{id:Tk,diagram:e}},"loader"),wP={id:Tk,detector:xP,loader:CP},TP=wP,Sk="state",SP=y((e,t)=>{var r;return((r=t==null?void 0:t.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e)},"detector"),_P=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./stateDiagram-2N3HPSRC.js");return{diagram:t}},__vite__mapDeps([31,32,13,14,10,2,4,3,5]));return{id:Sk,diagram:e}},"loader"),BP={id:Sk,detector:SP,loader:_P},LP=BP,_k="stateDiagram",AP=y((e,t)=>{var r;return!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&((r=t==null?void 0:t.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},"detector"),MP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./stateDiagram-v2-6OUMAXLB.js");return{diagram:t}},__vite__mapDeps([33,32,13,14,10,5]));return{id:_k,diagram:e}},"loader"),FP={id:_k,detector:AP,loader:MP},PP=FP,Bk="journey",EP=y(e=>/^\s*journey/.test(e),"detector"),OP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./journeyDiagram-5HDEW3XC.js");return{diagram:t}},__vite__mapDeps([34,12,10,5]));return{id:Bk,diagram:e}},"loader"),DP={id:Bk,detector:EP,loader:OP},IP=DP,$P=y((e,t,r)=>{J.debug(`rendering svg for syntax error 304`);const i=wB(t),a=i.append("g");i.attr("viewBox","0 0 2412 512"),vf(i,100,512,!0),a.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),a.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),a.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),a.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.
304164-16,16v32c0,8.836 7.156,16 16,16z"),a.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),a.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),a.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),a.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),Lk={draw:$P},zP=Lk,RP={db:{},renderer:Lk,parser:{parse:y(()=>{},"parse")}},NP=RP,Ak="flowchart-elk",HP=y((e,t={})=>{var r;return/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="elk"?(t.layout="elk",!0):!1},"detector"),WP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([11,12,13,14,10]));return{id:Ak,diagram:e}},"loader"),qP={id:Ak,detector:HP,loader:WP},UP=qP,Mk="timeline",VP=y(e=>/^\s*timeline/.test(e),"detector"),YP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./timeline-definition-FHXFAJF6.js");return{diagram:t}},__vite__mapDeps([35,5]));return{id:Mk,diagram:e}},"loader"),GP={id:Mk,detector:VP,loader:YP},jP=GP,Fk="mindmap",XP=y(e=>/^\s*mindmap/.test(e),"detector"),QP=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./mindmap-definition-LN4V7U3C.js");return{diagram:t}},__vite__mapDeps([36,13,14,5]));return{id:Fk,diagram:e}},"loader"),KP={id:Fk,detector:XP,loader:QP},ZP=KP,Pk="kanban",JP=y(e=>/^\s*kanban/.test(e),"detector"),t3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./kanban-definition-HUTT4EX6.js");return{diagram:t}},__vite__mapDeps([37,12,5]));return{id:Pk,diagram:e}},"loader"),e3={id:Pk,detector:JP,loader:t3},r3=e3,Ek="sankey",i3=y(e=>/^\s*sankey(-beta)?/.test(e),"detector"),a3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./sankeyDiagram-HTMAVEWB.js");return{diagram:t}},__vite__mapDeps([38,5]));return{id:Ek,diagram:e}},"loader"),s3={id:Ek,detector:i3,loader:a3},n3=s3,Ok="packet",o3=y(e=>/^\s*packet(-beta)?/.test(e),"detector"),l3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./diagram-NH7WQ7WH.js");return{diagram:t}},__vite__mapDeps([39,19,20,5]));return{id:Ok,diagram:e}},"loader"),c3={id:Ok,detector:o3,loader:l3},Dk="radar",h3=y(e=>/^\s*radar-beta/.test(e),"detector"),u3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./diagram-WEI45ONY.js");return{diagram:t}},__vite__mapDeps([40,19,20,5]));return{id:Dk,diagram:e}},"loader"),d3={id:Dk,detector:h3,loader:u3},Ik="block",g3=y(e=>/^\s*block(-beta)?/.test(e),"detector"),f3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./blockDiagram-677ZJIJ3.js");return{diagram:t}},__vite__mapDeps([41,12,2,5]));return{id:Ik,diagram:e}},"loader"),p3={id:Ik,detector:g3,loader:f3},m3=p3,$k="treeView",y3=y(e=>/^\s*treeView-beta/.test(e),"detector"),b3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./diagram-OA4YK3LP.js");return{diagram:t}},__vite__mapDeps([42,18,19,20,5]));return{id:$k,diagram:e}},"loader"),k3={id:$k,detector:y3,loader:b3},v3=k3,zk="architecture",x3=y(e=>/^\s*architecture/.test(e),"detector"),C3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./architectureDiagram-ZJ3FMSHR.js");return{diagram:t}},__vite__mapDeps([43,19,20,5,8]));return{id:zk,diagram:e}},"loader"),w3={id:zk,detector:x3,loader:C3},T3=w3,Rk="eventmodeling",S3=y(e=>/^\s*eventmodeling/.test(e),"detector"),_3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./diagram-FQU43EPY.js");return{diagram:t}},__vite__mapDeps([44,19,20,5]));return{id:Rk,diagram:e}},"loader"),B3={id:Rk,detector:S3,loader:_3},L3=B3,Nk="ishikawa",A3=y(e=>/^\s*ishikawa(-beta)?\b/i.test(e),"detector"),M3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./ishikawaDiagram-FXEZZL3T.js");return{diagram:t}},__vite__mapDeps([45,5]));return{id:Nk,diagram:e}},"loader"),F3={id:Nk,detector:A3,loader:M3},Hk="venn",P3=y(e=>/^\s*venn-beta/.test(e),"detector"),E3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./vennDiagram-L72KCM5P.js");return{diagram:t}},__vite__mapDeps([46,5]));return{id:Hk,diagram:e}},"loader"),O3={id:Hk,detector:P3,loader:E3},D3=O3,Wk="treemap",I3=y(e=>/^\s*treemap/.test(e),"detector"),$3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./diagram-G47NLZAW.js");return{diagram:t}},__vite__mapDeps([47,19,14,20,5]));return{id:Wk,diagram:e}},"loader"),z3={id:Wk,detector:I3,loader:$3},qk="wardley",R3=y(e=>/^\s*wardley-beta/i.test(e),"detector"),N3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./wardleyDiagram-EHGQE667.js");return{diagram:t}},__vite__mapDeps([48,19,20,5]));return{id:qk,diagram:e}}
vendor: 4,483 bytes, lines 304-308
304,"loader"),H3={id:qk,detector:R3,loader:N3},W3=H3,Uk="cynefin",q3=y(e=>/^\s*cynefin-beta(?:[\s:]|$)/.test(e),"detector"),U3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./cynefinDiagram-TSTJHNR4.js");return{diagram:t}},__vite__mapDeps([49,19,20,5]));return{id:Uk,diagram:e}},"loader"),V3={id:Uk,detector:q3,loader:U3},Vk="railroad",Y3=y(e=>/^\s*railroad-beta/i.test(e),"detector"),G3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./railroadDiagram-RFXS5EU6.js");return{diagram:t}},__vite__mapDeps([50,51,19,20,5]));return{id:Vk,diagram:e}},"loader"),j3={id:Vk,detector:Y3,loader:G3},Yk="railroadEbnf",X3=y(e=>/^\s*railroad-ebnf-beta/i.test(e),"detector"),Q3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./ebnfDiagram-CCIWWBDH.js");return{diagram:t}},__vite__mapDeps([52,51,19,20,5]));return{id:Yk,diagram:e}},"loader"),K3={id:Yk,detector:X3,loader:Q3},Gk="railroadAbnf",Z3=y(e=>/^\s*railroad-abnf-beta/i.test(e),"detector"),J3=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./abnfDiagram-VRR7QNED.js");return{diagram:t}},__vite__mapDeps([53,51,19,20,5]));return{id:Gk,diagram:e}},"loader"),tE={id:Gk,detector:Z3,loader:J3},jk="railroadPeg",eE=y(e=>/^\s*railroad-peg-beta/i.test(e),"detector"),rE=y(async()=>{const{diagram:e}=await Pt(async()=>{const{diagram:t}=await import("./pegDiagram-2B236MQR.js");return{diagram:t}},__vite__mapDeps([54,51,19,20,5]));return{id:jk,diagram:e}},"loader"),iE={id:jk,detector:eE,loader:rE},Og=!1,No=y(()=>{Og||(Og=!0,Sn("error",NP,e=>e.toLowerCase().trim()==="error"),Sn("---",{db:{clear:y(()=>{},"clear")},styles:{},renderer:{draw:y(()=>{},"draw")},parser:{parse:y(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:y(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),ql(UP,ZP,T3),ql(TF,r3,TP,vP,NF,jF,KF,tP,dP,mP,IF,PF,LF,jP,UF,PP,LP,IP,aP,n3,c3,lP,m3,L3,v3,d3,F3,z3,j3,K3,tE,iE,D3,W3,V3))},"addDiagrams"),aE=y(async()=>{J.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(bi).map(async([r,{detector:i,loader:a}])=>{if(a)try{Gl(r)}catch{try{const{diagram:s,id:n}=await a();Sn(n,s,i)}catch(s){throw J.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete bi[r],s}}}))).filter(r=>r.status==="rejected");if(t.length>0){J.error(`Failed to load ${t.length} external diagrams`);for(const r of t)J.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),sE="graphics-document document";function Xk(e,t){e.attr("role",sE),t!==""&&e.attr("aria-roledescription",t)}y(Xk,"setA11yDiagramInfo");function Qk(e,t,r,i){if(e.insert!==void 0){if(r){const a=`chart-desc-${i}`;e.attr("aria-describedby",a),e.insert("desc",":first-child").attr("id",a).text(r)}if(t){const a=`chart-title-${i}`;e.attr("aria-labelledby",a),e.insert("title",":first-child").attr("id",a).text(t)}}}y(Qk,"addSVGa11yTitleDescription");var pi,qc=(pi=class{constructor(t,r,i,a,s){this.type=t,this.text=r,this.db=i,this.parser=a,this.renderer=s}static async fromText(t,r={}){var c,h;const i=Xt(),a=Zc(t,i);t=bA(t)+` 305`;try{Gl(a)}catch{const u=kx(a);if(!u)throw new ff(`Diagram ${a} not found.`);const{id:g,diagram:d}=await u();Sn(g,d)}const{db:s,parser:n,renderer:o,init:l}=Gl(a);return n.parser&&(n.parser.yy=s),(c=s.clear)==null||c.call(s),l==null||l(i),r.title&&((h=s.setDiagramTitle)==null||h.call(s,r.title)),await n.parse(t),new pi(a,t,s,n,o)}async render(t,r){await this.renderer.draw(this.text,t,r,this)}getParser(){return this.parser}getType(){return this.type}},y(pi,"Diagram"),pi),Dg=[],nE=y(()=>{Dg.forEach(e=>{e()}),Dg=[]},"attachFunctions"),oE=y(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function Kk(e){const t=e.match(gf);if(!t)return{text:e,metadata:{}};const r=t[1],i=r?t[2].split(` 306`).map(n=>n.startsWith(r)?n.slice(r.length):n).join(` 307`):t[2];let a=ML(i,{schema:AL})??{};a=typeof a=="object"&&!Array.isArray(a)?a:{};const s={};return a.displayMode&&(s.displayMode=a.displayMode.toString()),a.title&&(s.title=a.title.toString()),a.config&&(s.config=a.config),{text:e.slice(t[0].length),metadata:s}}y(Kk,"extractFrontMatter");var lE=y(e=>e.replace(/\r\n?/g,` 308`).replace(/<(\w+)([^>]*)>/g,(t,r,i)=>
308"<"+r+i.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),cE=y(e=>{const{text:t,metadata:r}=Kk(e),{displayMode:i,title:a,config:s={}}=r;return i&&(s.gantt||(s.gantt={}),s.gantt.displayMode=i),{title:a,config:s,text:t}},"processFrontmatter"),hE=y(e=>{const t=Qe.detectInit(e)??{},r=Qe.detectDirective(e,"wrap");return Array.isArray(r)?t.wrap=r.some(({type:i})=>i==="wrap"):(r==null?void 0:r.type)==="wrap"&&(t.wrap=!0),{text:sA(e),directive:t}},"processDirectives");function au(e){const t=lE(e),r=cE(t),i=hE(r.text),a=Nh(r.config,i.directive);return e=oE(i.text),{code:e,title:r.title,config:a}}y(au,"preprocessDiagram");function Zk(e){const t=new TextEncoder().encode(e),r=Array.from(t,i=>String.fromCodePoint(i)).join("");return btoa(r)}y(Zk,"toBase64");var uE=5e4,dE="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",gE="sandbox",fE="loose",pE="http://www.w3.org/2000/svg",mE="http://www.w3.org/1999/xlink",yE="http://www.w3.org/1999/xhtml",bE="100%",kE="100%",vE="border:0;margin:0;",xE="margin:0",CE="allow-top-navigation-by-user-activation allow-popups",wE='The "iframe" tag is not supported by your browser.',TE=["foreignobject"],SE=["dominant-baseline"];function su(e){const t=au(e);return wn(),mx(t.config??{}),t}y(su,"processAndSetConfigs");async function Jk(e,t){No();try{const{code:r,config:i}=su(e);return{diagramType:(await e1(r)).type,config:i}}catch(r){if(t!=null&&t.suppressErrors)return!1;throw r}}y(Jk,"parse");var Ig=y((e,t,r=[])=>{const i=of(`{ ${r.join(" !important; ")} !important; }`);return`.${e} ${t} ${i}`},"cssImportantStyles"),_E=y((e,t=new Map)=>{const r=new CSSStyleSheet;if(e.fontFamily!==void 0&&r.insertRule(`:root { --mermaid-font-family: ${e.fontFamily}}`,r.cssRules.length),e.altFontFamily!==void 0&&r.insertRule(`:root { --mermaid-alt-font-family: ${e.altFontFamily}}`,r.cssRules.length),t instanceof Map){const o=Pe(e)?["> *","span"]:["rect","polygon","ellipse","circle","path"];t.forEach(l=>{Xd(l.styles)||o.forEach(c=>{r.insertRule(Ig(l.id,c,l.styles),r.cssRules.length)}),Xd(l.textStyles)||r.insertRule(Ig(l.id,"tspan",((l==null?void 0:l.textStyles)||[]).map(c=>c.replace("color","fill"))),r.cssRules.length)})}let i="";if(e.themeCSS!==void 0)if(typeof r.replaceSync=="function"){const a=new CSSStyleSheet;a.replaceSync(e.themeCSS),i=Yl(a)+` 309`}else i+=`${e.themeCSS} 310`;return i+Yl(r)},"createCssStyles"),BE=y((e,t)=>Wc(yF(`${e}{${t}}`),vF([y(function(i,a,s,n){if(i.type==="rule"&&Array.isArray(i.props)){if(i.parent&&i.parent.type===Rc)return;i.props=i.props.map(o=>o.startsWith(e)?o:`${e} ${o}`)}else i.type.startsWith("@")&&([...[iF,sF,nk,oF,"@container","@starting-style"],Rc].includes(i.type)||(J.warn(`Removing unsupported at-rule ${i.type} from CSS`),i.type=ru))},"addNamespace"),kF])),"compileCSS"),LE=y((e,t,r,i)=>{const a=_E(e,r),s=$x(t,a,{...e.themeVariables,theme:e.theme,look:e.look},i);return BE(i,s)},"createUserStyles"),AE=y((e="",t,r)=>{let i=e;return!r&&!t&&(i=i.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),i=wi(i),i=i.replace(/<br>/g,"<br/>"),i},"cleanUpSvgCode"),ME=y((e="",t)=>{var a,s;const r=(s=(a=t==null?void 0:t.viewBox)==null?void 0:a.baseVal)!=null&&s.height?t.viewBox.baseVal.height+"px":kE,i=Zk(`<body style="${xE}">${e}</body>`);return`<iframe style="width:${bE};height:${r};${vE}" src="data:text/html;charset=UTF-8;base64,${i}" sandbox="${CE}"> 311 ${wE} 312</iframe>`},"putIntoIFrame"),$g=y((e,t,r,i,a)=>{const s=e.append("div");s.attr("id",r),i&&s.attr("style",i);const n=s.append("svg").attr("id",t).attr("width","100%").attr("xmlns",pE);return a&&n.attr("xmlns:xlink",a),n.append("g"),e},"appendDivSvgG");function Uc(e,t){return e.append("iframe").attr("id",t).attr("style","width: 100%; height: 100%;").attr("sandbox","")}y(Uc,"sandboxedIframe");var FE=y((e,t,r,i)=>{var a,s,n;(a=e.getElementById(t))==null||a.remove(),(s=e.getElementById(r))==null||s.remove(),(n=e.getElementById(i))==null||n.remove()},"removeExistingElements"),PE=y(async function(e,t,r){var R,D,L,F,A,$;No();const i=su(t);t=i.code;const a=Xt();J.debug(a),t.length>((a==null?void 0:a.maxTextSize)??uE)&&(t=dE);const s=`#${e}`,n="i"+e,o="#"+n,l="d"+e,c="#"+l,h=y(()=>{const V=Et(g?o:c).node();V&&"remove"in V&&V.remove()},"removeTempElements");let u=Et(document.body);const g=a.securityLevel===gE,d=a.securityLevel===fE,f=a.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),g){const E=Uc(Et(r),n);u=Et(E.nodes()[0].contentDocument.body),u.node().style.margin="0"}else u=Et(r);$g(u,e,l,`font-family: ${f}`,mE)}else{if(FE(document,e,l,n),g){const E=Uc(Et(document.body),n);u=Et(E.nodes()[0].contentDocument.body),u.node().style.margin="0"}else u=Et("body");$g(u,e,l)}let p,m;try{p=await qc.fromText(t,{title:i.title})}
vendor: 5,487 bytes, lines 312-314
312catch(E){if(a.suppressErrorRendering)throw h(),E;p=await qc.fromText("error"),m=E}const b=u.select(c).node(),k=p.type,x=b.firstChild,C=x.firstChild,T=(D=(R=p.renderer).getClasses)==null?void 0:D.call(R,t,p),w=LE(a,k,T,s),_=document.createElement("style");_.innerHTML=w,x.insertBefore(_,C);try{await p.renderer.draw(t,e,"11.16.0",p)}catch(E){throw a.suppressErrorRendering?h():zP.draw(t,e,"11.16.0"),E}const B=u.select(`${c} svg`),G=(F=(L=p.db).getAccTitle)==null?void 0:F.call(L),z=($=(A=p.db).getAccDescription)==null?void 0:$.call(A);r1(k,B,G,z),u.select(`[id="${e}"]`).selectAll("foreignobject > *").attr("xmlns",yE);let P=u.select(c).node().innerHTML;if(J.debug("config.arrowMarkerAbsolute",a.arrowMarkerAbsolute),P=AE(P,g,xr(a.arrowMarkerAbsolute)),g){const E=u.select(c+" svg").node();P=ME(P,E)}else d||(P=fa.sanitize(P,{ADD_TAGS:TE,ADD_ATTR:SE,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(nE(),m)throw m;return h(),{diagramType:k,svg:P,bindFunctions:p.db.bindFunctions}},"render");function t1(e={}){var i;const t=se({},e);t!=null&&t.fontFamily&&!((i=t.themeVariables)!=null&&i.fontFamily)&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),fx(t),t!=null&&t.theme&&t.theme in Er?t.themeVariables=Er[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Er.default.getThemeVariables(t.themeVariables));const r=typeof t=="object"?gx(t):lf();Qc(r.logLevel),No()}y(t1,"initialize");var e1=y((e,t={})=>{const{code:r}=au(e);return qc.fromText(r,t)},"getDiagramFromText");function r1(e,t,r,i){Xk(t,e),Qk(t,r,i,t.attr("id"))}y(r1,"addA11yInfo");var Si=Object.freeze({render:PE,parse:Jk,getDiagramFromText:e1,initialize:t1,getConfig:Xt,setConfig:cf,getSiteConfig:lf,updateSiteConfig:px,reset:y(()=>{wn()},"reset"),globalReset:y(()=>{wn(pa)},"globalReset"),defaultConfig:pa});Qc(Xt().logLevel);wn(Xt());var EE=y((e,t,r)=>{J.warn(e),Rh(e)?(r&&r(e.str,e.hash),t.push({...e,message:e.str,error:e})):(r&&r(e),e instanceof Error&&t.push({str:e.message,message:e.message,hash:e.name,error:e}))},"handleError"),i1=y(async function(e={querySelector:".mermaid"}){try{await OE(e)}catch(t){if(Rh(t)&&J.error(t.str),$e.parseError&&$e.parseError(t),!e.suppressErrors)throw J.error("Use the suppressErrors option to suppress these errors"),t}},"run"),OE=y(async function({postRenderCallback:e,querySelector:t,nodes:r}={querySelector:".mermaid"}){const i=Si.getConfig();J.debug(`${e?"":"No "}Callback function found`);let a;if(r)a=r;else if(t)a=document.querySelectorAll(t);else throw new Error("Nodes and querySelector are both undefined");J.debug(`Found ${a.length} diagrams`),(i==null?void 0:i.startOnLoad)!==void 0&&(J.debug("Start On Load: "+(i==null?void 0:i.startOnLoad)),Si.updateSiteConfig({startOnLoad:i==null?void 0:i.startOnLoad}));const s=new Qe.InitIDGenerator(i.deterministicIds,i.deterministicIDSeed);let n;const o=[];for(const l of Array.from(a)){if(J.info("Rendering diagram: "+l.id),l.getAttribute("data-processed"))continue;l.setAttribute("data-processed","true");const c=`mermaid-${s.next()}`;n=l.innerHTML,n=g0(Qe.entityDecode(n)).trim().replace(/<br\s*\/?>/gi,"<br/>");const h=Qe.detectInit(n);h&&J.debug("Detected early reinit: ",h);try{const{svg:u,bindFunctions:g}=await o1(c,n,l);l.innerHTML=u,e&&await e(c),g&&g(l)}catch(u){EE(u,o,$e.parseError)}}if(o.length>0)throw o[0]},"runThrowsErrors"),a1=y(function(e){Si.initialize(e)},"initialize"),DE=y(async function(e,t,r){J.warn("mermaid.init is deprecated. Please use run instead."),e&&a1(e);const i={postRenderCallback:r,querySelector:".mermaid"};typeof t=="string"?i.querySelector=t:t&&(t instanceof HTMLElement?i.nodes=[t]:i.nodes=t),await i1(i)},"init"),IE=y(async(e,{lazyLoad:t=!0}={})=>{No(),ql(...e),t===!1&&await aE()},"registerExternalDiagrams"),s1=y(function(){if($e.startOnLoad){const{startOnLoad:e}=Si.getConfig();e&&$e.run().catch(t=>J.error("Mermaid failed to initialize",t))}},"contentLoaded");typeof document<"u"&&window.addEventListener("load",s1,!1);var $E=y(function(e){$e.parseError=e},"setParseErrorHandler"),lo=[],Il=!1,n1=y(async()=>{if(!Il){for(Il=!0;lo.length>0;){const e=lo.shift();if(e)try{await e()}catch(t){J.error("Error executing queue",t)}}Il=!1}},"executeQueue"),zE=y(async(e,t)=>new Promise((r,i)=>{const a=y(()=>new Promise((s,n)=>{Si.parse(e,t).then(o=>{s(o),r(o)},o=>{var l;J.error("Error parsing",o),(l=$e.parseError)==null||l.call($e,o),n(o),i(o)})}),"performCall");lo.push(a),n1().catch(i)}),"parse"),o1=y((e,t,r)=>new Promise((i,a)=>{const s=y(()=>new Promise((n,o)=>{Si.render(e,t,r).then(l=>{n(l),i(l)},l=>{var c;J.error("Error parsing",l),(c=$e.parseError)==null||c.call($e,l),o(l),a(l)})}),"performCall");lo.push(s),n1().catch(a)}),"render"),RE=y(()=>Object.keys(bi).map(e=>({id:e})),"getRegisteredDiagramsMetadata"),$e={startOnLoad:!0,mermaidAPI:Si,parse:zE,render:o1,init:DE,run:i1,registerExternalDiagrams:IE,registerLayoutLoaders:ik,initialize:a1,parseError:void 0,contentLoaded:s1,setParseErrorHandler:$E,detectType:Zc,registerIconPacks:RA,getRegisteredDiagramsMetadata:RE},co=$e;/*! Check if previously processed *//*! 313 * Wait for document loaded before starting the execution 314 */const NE=async e=>{try{co.registerExternalDiagrams&&await co.registerExternalDiagrams(e)}catch(t){console.error(t)}},HE=async(e,t,r)=>{co.initialize(r);const{svg:i}=await co.render(e,t);return i},WE=["innerHTML"],qE={__name:"Mermaid",props:{graph:{type:String,required:!0},id:{type:String,required:!0},class:{type:String,required:!1,default:"mermaid"}}
314,setup(e){const t=Rt({securityLevel:"loose",startOnLoad:!1,externalDiagrams:[]}),{page:r}=Rr(),{frontmatter:i}=$1(r.value),a=i.mermaidTheme||"",s=e,n=Rt(null);let o=null;br(async()=>{var u;await NE(t.value.externalDiagrams);let c=await Pt(()=>import("./virtual_mermaid-config.js"),[]);c!=null&&c.default&&(t.value=c.default),o=new MutationObserver(async()=>await l()),o.observe(document.documentElement,{attributes:!0}),await l(),((u=/<img([\w\W]+?)>/.exec(decodeURIComponent(s.graph)))==null?void 0:u.length)>0&&setTimeout(()=>{let g=document.getElementsByTagName("img"),d=Array.from(g);d.length&&Promise.all(d.filter(f=>!f.complete).map(f=>new Promise(p=>{f.onload=f.onerror=p}))).then(async()=>{await l()})},100)}),uo(()=>o.disconnect());const l=async()=>{const c=document.documentElement.classList.contains("dark");let h={...t.value};a&&(h.theme=a),c&&(h.theme="dark");let u=await HE(s.id,decodeURIComponent(s.graph),h);const g=Math.random().toString(36).substring(7);n.value=`${u} <span style="display: none">${g}</span>`};return(c,h)=>(M(),Y("div",{innerHTML:n.value,class:qt(s.class)},null,10,WE))}},nu="/docs/";function UE(e){return e==="/docs"||e.startsWith(nu)}function l1(e,t=nu){if(!e||e.target==="_blank"||e.hasAttribute("download"))return!1;const r=e.getAttribute("href");if(!r||r.startsWith("#")||r.startsWith("mailto:")||r.startsWith("tel:"))return!1;let i;try{i=new URL(r,window.location.origin)}catch{return!1}return i.origin!==window.location.origin?!1:!UE(i.pathname)}function VE(e,t){const r=t instanceof HTMLAnchorElement?t:e.target instanceof Element?e.target.closest("a"):null;!r||!l1(r)||e.defaultPrevented||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button!==0||(e.preventDefault(),e.stopImmediatePropagation(),window.location.assign(r.href))}function zg(e=document){e.querySelectorAll('a[href^="pathname://"]').forEach(t=>{const i=(t.getAttribute("href")||"").slice(11)||"/",a=i.startsWith("/")?i:`/${i}`;t.setAttribute("href",a),t.classList.remove("vp-external-link-icon"),t.getAttribute("rel")==="noreferrer"&&t.removeAttribute("rel")})}function YE(e=nu){if(typeof window>"u")return()=>{};zg();const t=i=>{if(!(i.target instanceof Element))return;const a=i.target.closest("a");if(!a)return;const s=a.getAttribute("href")||"";if(s.startsWith("pathname://")){if(i.metaKey||i.ctrlKey||i.shiftKey||i.altKey||i.button!==0)return;const n=s.slice(11)||"/",o=n.startsWith("/")?n:`/${n}`;i.preventDefault(),i.stopImmediatePropagation(),window.location.assign(o);return}l1(a,e)&&(i.metaKey||i.ctrlKey||i.shiftKey||i.altKey||i.button!==0||(i.preventDefault(),i.stopImmediatePropagation(),window.location.assign(a.href)))},r=new MutationObserver(()=>{zg()});return r.observe(document.documentElement,{childList:!0,subtree:!0}),document.addEventListener("click",t,!0),()=>{r.disconnect(),document.removeEventListener("click",t,!0)}}const GE=gt({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(e){return(t,r)=>(M(),Y("span",{class:qt(["VPBadge",e.type])},[Q(t.$slots,"default",{},()=>[pr(xt(e.text),1)])],2))}}),jE={key:0,class:"VPBackdrop"},XE=gt({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,r)=>(M(),wt(jc,{name:"fade"},{default:tt(()=>[e.show?(M(),Y("div",jE)):ct("",!0)]),_:1}))}}),QE=St(XE,[["__scopeId","data-v-b06cdb19"]]),Dt=Rr;function KE(e,t){let r,i=!1;return()=>{r&&clearTimeout(r),i?r=setTimeout(e,t):(e(),(i=!0)&&setTimeout(()=>i=!1,t))}}function Vc(e){return e.startsWith("/")?e:`/${e}`}function ou(e){const{pathname:t,search:r,hash:i,protocol:a}=new URL(e,"http://a.com");if(z1(e)||e.startsWith("#")||!a.startsWith("http")||!R1(t))return e;const{site:s}=Dt(),n=t.endsWith("/")||t.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,s.value.cleanUrls?"":".html")}${r}${i}`);return Cs(n)}function Ds({correspondingLink:e=!1}={}){const{site:t,localeIndex:r,page:i,theme:a,hash:s}=Dt(),n=ut(()=>{var l,c;return{label:(l=t.value.locales[r.value])==null?void 0:l.label,link:((c=t.value.locales[r.value])==null?void 0:c.link)||(r.value==="root"?"/":`/${r.value}/`)}});return{localeLinks:ut(()=>Object.entries(t.value.locales).flatMap(([l,c])=>n.value.label===c.label?[]:{text:c.label,link:ZE(c.link||(l==="root"?"/":`/${l}/`),a.value.i18nRouting!==!1&&e,i.value.relativePath.slice(n.value.link.length-1),!t.value.cleanUrls)+s.value})),currentLang:n}}function ZE(e,t,r,i){return t?e.replace(/\/$/,"")+Vc(r.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,i?".html":"")):e}const JE={class:"NotFound"},tO={class:"code"},eO={class:"title"},rO={class:"quote"},iO={class:"action"},aO=["href","aria-label"],sO=gt({__name:"NotFound",setup(e){const{theme:t}=Dt(),{currentLang:r}=Ds();return(i,a)=>{var s,n,o,l,c;return M(),Y("div",JE,[W("p",tO,xt(((s=H(t).notFound)==null?void 0:s.code)??"404"),1),W("h1",eO,xt(((n=H(t).notFound)==null?void 0:n.title)??"PAGE NOT FOUND"),1),a[0]||(a[0]=W("div",{class:"divider"},null,-1)),W("blockquote",rO,xt(((o=H(t).notFound)==null?void 0:o.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),W("div",iO,[W("a",{class:"link",href:H(Cs)(H(r).link),"aria-label":((l=H(t).notFound)==null?void 0:l.linkLabel)??"go to home"},xt(((c=H(t).notFound)==null?void 0:c.linkText)??"Take me home"),9,aO)])])}}}),nO=St(sO,[["__scopeId","data-v-951cab6c"]]);function c1(e,t){if(Array.isArray(e))return vn(e);if(e==null)return[];t=Vc(t);const r=Object.keys(e).sort((a,s)=>s.split("/").length-a.split("/").length).find(a=>t.startsWith(Vc(a))),i=r?e[r]:[];return Array.isArray(i)?vn(i):vn(i.items,i.base)}function oO(e){const t=[];let r=0;for(const i in e){const a=e[i];if(a.items){r=t.push(a);continue}t[r]||t.push({items:[]}),t[r].items.push(a)}return t}function lO(e){const t=[];function r(i){for(const a of i)a.text&&a.link&&t.push({text:a.text,link:a.link,docFooterText:a.docFooterText}),a.items&&r(a.items)}return r(e),t}function Yc(e,t){return Array.isArray(t)?t.some(r=>Yc(e,r)):mi(e,t.link)?!0:t.items?Yc(e,t.items):!1}function vn(e,t){return[...e].map(r=>{const i={...r},a=i.base||t;return a&&i.link&&(i.link=a+i.link),i.items&&(i.items=vn(i.items,a)),i})}function Hr(){const{frontmatter:e,page:t,theme:r}=Dt(),i=zl("(min-width: 960px)"),a=Rt(!1),s=ut(()=>{const p=r.value.sidebar,m=t.value.relativePath;return p?c1(p,m):[]}),n=Rt(s.value);mr(s,(p,m)=>{JSON.stringify(p)!==JSON.stringify(m)&&(n.value=s.value)});const o=ut(()=>e.value.sidebar!==!1&&n.value.length>0&&e.value.layout!=="home"),l=ut(()=>c?e.value.aside==null?r.value.aside==="left":e.value.aside==="left":!1),c=ut(()=>e.value.layout==="home"?!1:e.value.aside!=null?!!e.value.aside:r.value.aside!==!1),h=ut(()=>
314o.value&&i.value),u=ut(()=>o.value?oO(n.value):[]);function g(){a.value=!0}function d(){a.value=!1}function f(){a.value?d():g()}return{isOpen:a,sidebar:n,sidebarGroups:u,hasSidebar:o,hasAside:c,leftAside:l,isSidebarEnabled:h,open:g,close:d,toggle:f}}function cO(e,t){let r;go(()=>{r=e.value?document.activeElement:void 0}),br(()=>{window.addEventListener("keyup",i)}),uo(()=>{window.removeEventListener("keyup",i)});function i(a){a.key==="Escape"&&e.value&&(t(),r==null||r.focus())}}function hO(e){const{page:t,hash:r}=Dt(),i=Rt(!1),a=ut(()=>e.value.collapsed!=null),s=ut(()=>!!e.value.link),n=Rt(!1),o=()=>{n.value=mi(t.value.relativePath,e.value.link)};mr([t,e,r],o),br(o);const l=ut(()=>n.value?!0:e.value.items?Yc(t.value.relativePath,e.value.items):!1),c=ut(()=>!!(e.value.items&&e.value.items.length));go(()=>{i.value=!!(a.value&&e.value.collapsed)}),Xc(()=>{(n.value||l.value)&&(i.value=!1)});function h(){a.value&&(i.value=!i.value)}return{collapsed:i,collapsible:a,isLink:s,isActiveLink:n,hasActiveLink:l,hasChildren:c,toggle:h}}function uO(){const{hasSidebar:e}=Hr(),t=zl("(min-width: 960px)"),r=zl("(min-width: 1280px)");return{isAsideEnabled:ut(()=>!r.value&&!t.value?!1:e.value?r.value:t.value)}}const dO=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,Gc=[];function h1(e){return typeof e.outline=="object"&&!Array.isArray(e.outline)&&e.outline.label||e.outlineTitle||"On this page"}function lu(e){const t=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(r=>r.id&&r.hasChildNodes()).map(r=>{const i=Number(r.tagName[1]);return{element:r,title:gO(r),link:"#"+r.id,level:i}});return fO(t,e)}function gO(e){let t="";for(const r of e.childNodes)if(r.nodeType===1){if(dO.test(r.className))continue;t+=r.textContent}else r.nodeType===3&&(t+=r.textContent);return t.trim()}function fO(e,t){if(t===!1)return[];const r=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2,[i,a]=typeof r=="number"?[r,r]:r==="deep"?[2,6]:r;return yO(e,i,a)}function pO(e,t){const{isAsideEnabled:r}=uO(),i=KE(s,100);let a=null;br(()=>{requestAnimationFrame(s),window.addEventListener("scroll",i)}),N1(()=>{n(location.hash)}),uo(()=>{window.removeEventListener("scroll",i)});function s(){if(!r.value)return;const o=window.scrollY,l=window.innerHeight,c=document.body.offsetHeight,h=Math.abs(o+l-c)<1,u=Gc.map(({element:d,link:f})=>({link:f,top:mO(d)})).filter(({top:d})=>!Number.isNaN(d)).sort((d,f)=>d.top-f.top);if(!u.length){n(null);return}if(o<1){n(null);return}if(h){n(u[u.length-1].link);return}let g=null;for(const{link:d,top:f}of u){if(f>o+H1()+4)break;g=d}n(g)}function n(o){a&&a.classList.remove("active"),o==null?a=null:a=e.value.querySelector(`a[href="${decodeURIComponent(o)}"]`);const l=a;l?(l.classList.add("active"),t.value.style.top=l.offsetTop+39+"px",t.value.style.opacity="1"):(t.value.style.top="33px",t.value.style.opacity="0")}}function mO(e){let t=0;for(;e!==document.body;){if(e===null)return NaN;t+=e.offsetTop,e=e.offsetParent}return t}function yO(e,t,r){Gc.length=0;const i=[],a=[];return e.forEach(s=>{const n={...s,children:[]};let o=a[a.length-1];for(;o&&o.level>=n.level;)a.pop(),o=a[a.length-1];if(n.element.classList.contains("ignore-header")||o&&"shouldIgnore"in o){a.push({level:n.level,shouldIgnore:!0});return}n.level>r||n.level<t||(Gc.push({element:n.element,link:n.link}),o?o.children.push(n):i.push(n),a.push(n))}),i}const bO=["href","title"],kO=gt({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(e){function t({target:r}){const i=r.href.split("#")[1],a=document.getElementById(decodeURIComponent(i));a==null||a.focus({preventScroll:!0})}return(r,i)=>{const a=_i("VPDocOutlineItem",!0);return M(),Y("ul",{class:qt(["VPDocOutlineItem",e.root?"root":"nested"])},[(M(!0),Y(Wt,null,ie(e.headers,({children:s,link:n,title:o})=>(M(),Y("li",null,[W("a",{class:"outline-link",href:n,onClick:t,title:o},xt(o),9,bO),s!=null&&s.length?(M(),wt(a,{key:0,headers:s},null,8,["headers"])):ct("",!0)]))),256))],2)}}}),u1=St(kO,[["__scopeId","data-v-3f927ebe"]]),vO={class:"content"},xO={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},CO=gt({__name:"VPDocAsideOutline",setup(e){const{frontmatter:t,theme:r}=Dt(),i=Ug([]);fo(()=>{i.value=lu(t.value.outline??r.value.outline)});const a=Rt(),s=Rt();return pO(a,s),(n,o)=>(M(),Y("nav",{"aria-labelledby":"doc-outline-aria-label",class:qt(["VPDocAsideOutline",{"has-outline":i.value.length>0}]),ref_key:"container",ref:a},[W("div",vO,[W("div",{class:"outline-marker",ref_key:"marker",ref:s},null,512),W("div",xO,xt(H(h1)(H(r))),1),Ct(u1,{headers:i.value,root:!0},null,8,["headers"])])],2))}}),wO=St(CO,[["__scopeId","data-v-b38bf2ff"]]),TO={class:"VPDocAsideCarbonAds"},SO=gt({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(e){const t=()=>null;return(r,i)=>(M(),Y("div",TO,[Ct(H(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),_O={class:"VPDocAside"},BO=gt({__name:"VPDocAside",setup(e){const{theme:t}=Dt();return(r,i)=>(M(),Y("div",_O,[Q(r.$slots,"aside-top",{},void 0,!0),Q(r.$slots,"aside-outline-before",{},void 0,!0),Ct(wO),Q(r.$slots,"aside-outline-after",{},void 0,!0),i[0]||(i[0]=W("div",{class:"spacer"},null,-1)),Q(r.$slots,"aside-ads-before",{},void 0,!0),H(t).carbonAds?(M(),wt(SO,{key:0,"carbon-ads":H(t).carbonAds},null,8,["carbon-ads"])):ct("",!0),Q(r.$slots,"aside-ads-after",{},void 0,!0),Q(r.$slots,"aside-bottom",{},void 0,!0)]))}}),LO=St(BO,[["__scopeId","data-v-6d7b3c46"]]);function AO(){const{theme:e,page:t}=Dt();return ut(()=>{const{text:r="Edit this page",pattern:i=""}=e.value.editLink||{};let a;return typeof i=="function"?a=i(t.value):a=i.replace(/:path/g,t.value.filePath),{url:a,text:r}})}function MO(){const{page:e,theme:t,frontmatter:r}=Dt();return ut(()=>{var c,h,u,g,d,f,p,m;const i=c1(t.value.sidebar,e.value.relativePath),a=lO(i),s=FO(a,b=>b.link.replace(/[?#].*$/,"")),n=s.findIndex(b=>mi(e.value.relativePath,b.link)),o=((c=t.value.docFooter)==null?void 0:c.prev)===!1&&!r.value.prev||r.value.prev===!1,l=((h=t.value.docFooter)==null?void 0:h.next)===!1&&!r.value.next||r.value.next===!1;return{prev:o?void 0:{text:(typeof r.value.prev=="string"?r.value.prev:typeof r.value.prev=="object"?r.value.prev.text:void 0)??((u=s[n-1])==null?void 0:u.docFooterText)??((g=s[n-1])==null?void 0:g.text),link:(typeof r.value.prev=="object"?r.value.prev.link:void 0)??((d=s[n-1])==null?void 0:d.link)},next:l?void 0:{text:(typeof r.value.next=="string"?r.value.next:typeof r.value.next=="object"?r.value.next.text:void 0)??((f=s[n+1])==null?void 0:f.docFooterText)??((p=s[n+1]
314)==null?void 0:p.text),link:(typeof r.value.next=="object"?r.value.next.link:void 0)??((m=s[n+1])==null?void 0:m.link)}}})}function FO(e,t){const r=new Set;return e.filter(i=>{const a=t(i);return r.has(a)?!1:r.add(a)})}const fr=gt({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(e){const t=e,r=ut(()=>t.tag??(t.href?"a":"span")),i=ut(()=>t.href&&Vg.test(t.href)||t.target==="_blank");return(a,s)=>(M(),wt(ur(r.value),{class:qt(["VPLink",{link:e.href,"vp-external-link-icon":i.value,"no-icon":e.noIcon}]),href:e.href?H(ou)(e.href):void 0,target:e.target??(i.value?"_blank":void 0),rel:e.rel??(i.value?"noreferrer":void 0)},{default:tt(()=>[Q(a.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),PO={class:"VPLastUpdated"},EO=["datetime"],OO=gt({__name:"VPDocFooterLastUpdated",setup(e){const{theme:t,page:r,lang:i}=Dt(),a=ut(()=>new Date(r.value.lastUpdated)),s=ut(()=>a.value.toISOString()),n=Rt("");return br(()=>{go(()=>{var o,l,c;n.value=new Intl.DateTimeFormat((l=(o=t.value.lastUpdated)==null?void 0:o.formatOptions)!=null&&l.forceLocale?i.value:void 0,((c=t.value.lastUpdated)==null?void 0:c.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(a.value)})}),(o,l)=>{var c;return M(),Y("p",PO,[pr(xt(((c=H(t).lastUpdated)==null?void 0:c.text)||H(t).lastUpdatedText||"Last updated")+": ",1),W("time",{datetime:s.value},xt(n.value),9,EO)])}}}),DO=St(OO,[["__scopeId","data-v-475f71b8"]]),IO={key:0,class:"VPDocFooter"},$O={key:0,class:"edit-info"},zO={key:0,class:"edit-link"},RO={key:1,class:"last-updated"},NO={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},HO={class:"pager"},WO=["innerHTML"],qO=["innerHTML"],UO={class:"pager"},VO=["innerHTML"],YO=["innerHTML"],GO=gt({__name:"VPDocFooter",setup(e){const{theme:t,page:r,frontmatter:i}=Dt(),a=AO(),s=MO(),n=ut(()=>t.value.editLink&&i.value.editLink!==!1),o=ut(()=>r.value.lastUpdated),l=ut(()=>n.value||o.value||s.value.prev||s.value.next);return(c,h)=>{var u,g,d,f;return l.value?(M(),Y("footer",IO,[Q(c.$slots,"doc-footer-before",{},void 0,!0),n.value||o.value?(M(),Y("div",$O,[n.value?(M(),Y("div",zO,[Ct(fr,{class:"edit-link-button",href:H(a).url,"no-icon":!0},{default:tt(()=>[h[0]||(h[0]=W("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),pr(" "+xt(H(a).text),1)]),_:1},8,["href"])])):ct("",!0),o.value?(M(),Y("div",RO,[Ct(DO)])):ct("",!0)])):ct("",!0),(u=H(s).prev)!=null&&u.link||(g=H(s).next)!=null&&g.link?(M(),Y("nav",NO,[h[1]||(h[1]=W("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),W("div",HO,[(d=H(s).prev)!=null&&d.link?(M(),wt(fr,{key:0,class:"pager-link prev",href:H(s).prev.link},{default:tt(()=>{var p;return[W("span",{class:"desc",innerHTML:((p=H(t).docFooter)==null?void 0:p.prev)||"Previous page"},null,8,WO),W("span",{class:"title",innerHTML:H(s).prev.text},null,8,qO)]}),_:1},8,["href"])):ct("",!0)]),W("div",UO,[(f=H(s).next)!=null&&f.link?(M(),wt(fr,{key:0,class:"pager-link next",href:H(s).next.link},{default:tt(()=>{var p;return[W("span",{class:"desc",innerHTML:((p=H(t).docFooter)==null?void 0:p.next)||"Next page"},null,8,VO),W("span",{class:"title",innerHTML:H(s).next.text},null,8,YO)]}),_:1},8,["href"])):ct("",!0)])])):ct("",!0)])):ct("",!0)}}}),jO=St(GO,[["__scopeId","data-v-4f9813fa"]]),XO={class:"container"},QO={class:"aside-container"},KO={class:"aside-content"},ZO={class:"content"},JO={class:"content-container"},tD={class:"main"},eD=gt({__name:"VPDoc",setup(e){const{theme:t}=Dt(),r=ws(),{hasSidebar:i,hasAside:a,leftAside:s}=Hr(),n=ut(()=>r.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(o,l)=>{const c=_i("Content");return M(),Y("div",{class:qt(["VPDoc",{"has-sidebar":H(i),"has-aside":H(a)}])},[Q(o.$slots,"doc-top",{},void 0,!0),W("div",XO,[H(a)?(M(),Y("div",{key:0,class:qt(["aside",{"left-aside":H(s)}])},[l[0]||(l[0]=W("div",{class:"aside-curtain"},null,-1)),W("div",QO,[W("div",KO,[Ct(LO,null,{"aside-top":tt(()=>[Q(o.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":tt(()=>[Q(o.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":tt(()=>[Q(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":tt(()=>[Q(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":tt(()=>[Q(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":tt(()=>[Q(o.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):ct("",!0),W("div",ZO,[W("div",JO,[Q(o.$slots,"doc-before",{},void 0,!0),W("main",tD,[Ct(c,{class:qt(["vp-doc",[n.value,H(t).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),Ct(jO,null,{"doc-footer-before":tt(()=>[Q(o.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),Q(o.$slots,"doc-after",{},void 0,!0)])])]),Q(o.$slots,"doc-bottom",{},void 0,!0)],2)}}}),rD=St(eD,[["__scopeId","data-v-83890dd9"]]),iD=gt({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(e){const t=e,r=ut(()=>t.href&&Vg.test(t.href)),i=ut(()=>t.tag||(t.href?"a":"button"));return(a,s)=>(M(),wt(ur(i.value),{class:qt(["VPButton",[e.size,e.theme]]),href:e.href?H(ou)(e.href):void 0,target:t.target??(r.value?"_blank":void 0),rel:t.rel??(r.value?"noreferrer":void 0)},{default:tt(()=>[pr(xt(e.text),1)]),_:1},8,["class","href","target","rel"]))}}),aD=St(iD,[["__scopeId","data-v-906d7fb4"]]),sD=["src","alt"],nD=gt({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(e){return(t,r)=>{const i=_i("VPImage",!0);return e.image?(M(),Y(Wt,{key:0},[typeof e.image=="string"||"src"in e.image?(M(),Y("img",Pr({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:H(Cs)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,sD)):(M(),Y(Wt,{key:1},[Ct(i,Pr({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),Ct(i,Pr({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):ct("",!0)}}}),ho=St(nD,[["__scopeId","data-v-35a7d0b8"]]),oD={class:"container"},lD={class:"main"},cD={class:"heading"},hD=["innerHTML"],uD=["innerHTML"],dD=["innerHTML"],gD={key:0,class:"actions"},fD={key:0,class:"image"},pD={class:"image-container"},mD=gt({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(e){const t=po("hero-image-slot-exists");return(r,i)=>(M(),Y("div",{class:qt(["VPHero",{"has-image":e.image||H(t)}])},[W("div",oD,[W("div",lD,[Q(r.$slots,"home-hero-info-before",{},void 0,!0),Q(r.$slots,"home-hero-info",{},()=>[W("h1",cD,[e.name?(M(),Y("span",{key:0,innerHTML:e.name,class:"name clip"},null,8,hD)):ct("",!0),e.text?(M(),Y("span",{key:1,innerHTML:e.text,class:"text"},null,8,uD)):ct("",!0)]),e.tagline?(M(),Y("p",{key:0,innerHTML:e.tagline,class:"tagline"},null,8,dD)):ct("",!0)],!0),Q(r.$slots,"home-hero-info-after",{},void 0,!0),e.actions?(M(),Y("div",gD,[(M(!0),Y(Wt,null,ie(e.actions,a=>
314(M(),Y("div",{key:a.link,class:"action"},[Ct(aD,{tag:"a",size:"medium",theme:a.theme,text:a.text,href:a.link,target:a.target,rel:a.rel},null,8,["theme","text","href","target","rel"])]))),128))])):ct("",!0),Q(r.$slots,"home-hero-actions-after",{},void 0,!0)]),e.image||H(t)?(M(),Y("div",fD,[W("div",pD,[i[0]||(i[0]=W("div",{class:"image-bg"},null,-1)),Q(r.$slots,"home-hero-image",{},()=>[e.image?(M(),wt(ho,{key:0,class:"image-src",image:e.image},null,8,["image"])):ct("",!0)],!0)])])):ct("",!0)])],2))}}),yD=St(mD,[["__scopeId","data-v-3d256e5e"]]),bD=gt({__name:"VPHomeHero",setup(e){const{frontmatter:t}=Dt();return(r,i)=>H(t).hero?(M(),wt(yD,{key:0,class:"VPHomeHero",name:H(t).hero.name,text:H(t).hero.text,tagline:H(t).hero.tagline,image:H(t).hero.image,actions:H(t).hero.actions},{"home-hero-info-before":tt(()=>[Q(r.$slots,"home-hero-info-before")]),"home-hero-info":tt(()=>[Q(r.$slots,"home-hero-info")]),"home-hero-info-after":tt(()=>[Q(r.$slots,"home-hero-info-after")]),"home-hero-actions-after":tt(()=>[Q(r.$slots,"home-hero-actions-after")]),"home-hero-image":tt(()=>[Q(r.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):ct("",!0)}}),kD={class:"box"},vD={key:0,class:"icon"},xD=["innerHTML"],CD=["innerHTML"],wD=["innerHTML"],TD={key:4,class:"link-text"},SD={class:"link-text-value"},_D=gt({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(e){return(t,r)=>(M(),wt(fr,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:tt(()=>[W("article",kD,[typeof e.icon=="object"&&e.icon.wrap?(M(),Y("div",vD,[Ct(ho,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(M(),wt(ho,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(M(),Y("div",{key:2,class:"icon",innerHTML:e.icon},null,8,xD)):ct("",!0),W("h2",{class:"title",innerHTML:e.title},null,8,CD),e.details?(M(),Y("p",{key:3,class:"details",innerHTML:e.details},null,8,wD)):ct("",!0),e.linkText?(M(),Y("div",TD,[W("p",SD,[pr(xt(e.linkText)+" ",1),r[0]||(r[0]=W("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):ct("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),BD=St(_D,[["__scopeId","data-v-f5e9645b"]]),LD={key:0,class:"VPFeatures"},AD={class:"container"},MD={class:"items"},FD=gt({__name:"VPFeatures",props:{features:{}},setup(e){const t=e,r=ut(()=>{const i=t.features.length;if(i){if(i===2)return"grid-2";if(i===3)return"grid-3";if(i%3===0)return"grid-6";if(i>3)return"grid-4"}else return});return(i,a)=>e.features?(M(),Y("div",LD,[W("div",AD,[W("div",MD,[(M(!0),Y(Wt,null,ie(e.features,s=>(M(),Y("div",{key:s.title,class:qt(["item",[r.value]])},[Ct(BD,{icon:s.icon,title:s.title,details:s.details,link:s.link,"link-text":s.linkText,rel:s.rel,target:s.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):ct("",!0)}}),PD=St(FD,[["__scopeId","data-v-d0a190d7"]]),ED=gt({__name:"VPHomeFeatures",setup(e){const{frontmatter:t}=Dt();return(r,i)=>H(t).features?(M(),wt(PD,{key:0,class:"VPHomeFeatures",features:H(t).features},null,8,["features"])):ct("",!0)}}),OD=gt({__name:"VPHomeContent",setup(e){const{width:t}=W1({initialWidth:0,includeScrollbar:!1});return(r,i)=>(M(),Y("div",{class:"vp-doc container",style:Yg(H(t)?{"--vp-offset":`calc(50% - ${H(t)/2}px)`}:{})},[Q(r.$slots,"default",{},void 0,!0)],4))}}),DD=St(OD,[["__scopeId","data-v-7a48a447"]]),ID=gt({__name:"VPHome",setup(e){const{frontmatter:t,theme:r}=Dt();return(i,a)=>{const s=_i("Content");return M(),Y("div",{class:qt(["VPHome",{"external-link-icon-enabled":H(r).externalLinkIcon}])},[Q(i.$slots,"home-hero-before",{},void 0,!0),Ct(bD,null,{"home-hero-info-before":tt(()=>[Q(i.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":tt(()=>[Q(i.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":tt(()=>[Q(i.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":tt(()=>[Q(i.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":tt(()=>[Q(i.$slots,"home-hero-image",{},void 0,!0)]),_:3}),Q(i.$slots,"home-hero-after",{},void 0,!0),Q(i.$slots,"home-features-before",{},void 0,!0),Ct(ED),Q(i.$slots,"home-features-after",{},void 0,!0),H(t).markdownStyles!==!1?(M(),wt(DD,{key:0},{default:tt(()=>[Ct(s)]),_:1})):(M(),wt(s,{key:1}))],2)}}}),$D=St(ID,[["__scopeId","data-v-e40e30de"]]),zD={},RD={class:"VPPage"};function ND(e,t){const r=_i("Content");return M(),Y("div",RD,[Q(e.$slots,"page-top"),Ct(r),Q(e.$slots,"page-bottom")])}const HD=St(zD,[["render",ND]]),WD=gt({__name:"VPContent",setup(e){const{page:t,frontmatter:r}=Dt(),{hasSidebar:i}=Hr();return(a,s)=>(M(),Y("div",{class:qt(["VPContent",{"has-sidebar":H(i),"is-home":H(r).layout==="home"}]),id:"VPContent"},[H(t).isNotFound?Q(a.$slots,"not-found",{key:0}
314,()=>[Ct(nO)],!0):H(r).layout==="page"?(M(),wt(HD,{key:1},{"page-top":tt(()=>[Q(a.$slots,"page-top",{},void 0,!0)]),"page-bottom":tt(()=>[Q(a.$slots,"page-bottom",{},void 0,!0)]),_:3})):H(r).layout==="home"?(M(),wt($D,{key:2},{"home-hero-before":tt(()=>[Q(a.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":tt(()=>[Q(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":tt(()=>[Q(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":tt(()=>[Q(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":tt(()=>[Q(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":tt(()=>[Q(a.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":tt(()=>[Q(a.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":tt(()=>[Q(a.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":tt(()=>[Q(a.$slots,"home-features-after",{},void 0,!0)]),_:3})):H(r).layout&&H(r).layout!=="doc"?(M(),wt(ur(H(r).layout),{key:3})):(M(),wt(rD,{key:4},{"doc-top":tt(()=>[Q(a.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":tt(()=>[Q(a.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":tt(()=>[Q(a.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":tt(()=>[Q(a.$slots,"doc-before",{},void 0,!0)]),"doc-after":tt(()=>[Q(a.$slots,"doc-after",{},void 0,!0)]),"aside-top":tt(()=>[Q(a.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":tt(()=>[Q(a.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":tt(()=>[Q(a.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":tt(()=>[Q(a.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":tt(()=>[Q(a.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":tt(()=>[Q(a.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),qD=St(WD,[["__scopeId","data-v-91765379"]]),UD={class:"container"},VD=["innerHTML"],YD=["innerHTML"],GD=gt({__name:"VPFooter",setup(e){const{theme:t,frontmatter:r}=Dt(),{hasSidebar:i}=Hr();return(a,s)=>H(t).footer&&H(r).footer!==!1?(M(),Y("footer",{key:0,class:qt(["VPFooter",{"has-sidebar":H(i)}])},[W("div",UD,[H(t).footer.message?(M(),Y("p",{key:0,class:"message",innerHTML:H(t).footer.message},null,8,VD)):ct("",!0),H(t).footer.copyright?(M(),Y("p",{key:1,class:"copyright",innerHTML:H(t).footer.copyright},null,8,YD)):ct("",!0)])],2)):ct("",!0)}}),jD=St(GD,[["__scopeId","data-v-c970a860"]]);function XD(){const{theme:e,frontmatter:t}=Dt(),r=Ug([]),i=ut(()=>r.value.length>0);return fo(()=>{r.value=lu(t.value.outline??e.value.outline)}),{headers:r,hasLocalNav:i}}const QD={class:"menu-text"},KD={class:"header"},ZD={class:"outline"},JD=gt({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(e){const t=e,{theme:r}=Dt(),i=Rt(!1),a=Rt(0),s=Rt(),n=Rt();function o(u){var g;(g=s.value)!=null&&g.contains(u.target)||(i.value=!1)}mr(i,u=>{if(u){document.addEventListener("click",o);return}document.removeEventListener("click",o)}),Rl("Escape",()=>{i.value=!1}),fo(()=>{i.value=!1});function l(){i.value=!i.value,a.value=window.innerHeight+Math.min(window.scrollY-t.navHeight,0)}function c(u){u.target.classList.contains("outline-link")&&(n.value&&(n.value.style.transition="none"),Gg(()=>{i.value=!1}))}function h(){i.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(u,g)=>(M(),Y("div",{class:"VPLocalNavOutlineDropdown",style:Yg({"--vp-vh":a.value+"px"}),ref_key:"main",ref:s},[e.headers.length>0?(M(),Y("button",{key:0,onClick:l,class:qt({open:i.value})},[W("span",QD,xt(H(h1)(H(r))),1),g[0]||(g[0]=W("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(M(),Y("button",{key:1,onClick:h},xt(H(r).returnToTopLabel||"Return to top"),1)),Ct(jc,{name:"flyout"},{default:tt(()=>[i.value?(M(),Y("div",{key:0,ref_key:"items",ref:n,class:"items",onClick:c},[W("div",KD,[W("a",{class:"top-link",href:"#",onClick:h},xt(H(r).returnToTopLabel||"Return to top"),1)]),W("div",ZD,[Ct(u1,{headers:e.headers},null,8,["headers"])])],512)):ct("",!0)]),_:1})],4))}}),tI=St(JD,[["__scopeId","data-v-168ddf5d"]]),eI={class:"container"},rI=["aria-expanded"],iI={class:"menu-text"},aI=gt({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(e){const{theme:t,frontmatter:r}=Dt(),{hasSidebar:i}=Hr(),{headers:a}=XD(),{y:s}=jg(),n=Rt(0);br(()=>{n.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),fo(()=>{a.value=lu(r.value.outline??t.value.outline)});const o=ut(()=>a.value.length===0),l=ut(()=>
314o.value&&!i.value),c=ut(()=>({VPLocalNav:!0,"has-sidebar":i.value,empty:o.value,fixed:l.value}));return(h,u)=>H(r).layout!=="home"&&(!l.value||H(s)>=n.value)?(M(),Y("div",{key:0,class:qt(c.value)},[W("div",eI,[H(i)?(M(),Y("button",{key:0,class:"menu","aria-expanded":e.open,"aria-controls":"VPSidebarNav",onClick:u[0]||(u[0]=g=>h.$emit("open-menu"))},[u[1]||(u[1]=W("span",{class:"vpi-align-left menu-icon"},null,-1)),W("span",iI,xt(H(t).sidebarMenuLabel||"Menu"),1)],8,rI)):ct("",!0),Ct(tI,{headers:H(a),navHeight:n.value},null,8,["headers","navHeight"])])],2)):ct("",!0)}}),sI=St(aI,[["__scopeId","data-v-070ab83d"]]);function nI(){const e=Rt(!1);function t(){e.value=!0,window.addEventListener("resize",a)}function r(){e.value=!1,window.removeEventListener("resize",a)}function i(){e.value?r():t()}function a(){window.outerWidth>=768&&r()}const s=ws();return mr(()=>s.path,r),{isScreenOpen:e,openScreen:t,closeScreen:r,toggleScreen:i}}const oI={},lI={class:"VPSwitch",type:"button",role:"switch"},cI={class:"check"},hI={key:0,class:"icon"};function uI(e,t){return M(),Y("button",lI,[W("span",cI,[e.$slots.default?(M(),Y("span",hI,[Q(e.$slots,"default",{},void 0,!0)])):ct("",!0)])])}const dI=St(oI,[["render",uI],["__scopeId","data-v-4a1c76db"]]),gI=gt({__name:"VPSwitchAppearance",setup(e){const{isDark:t,theme:r}=Dt(),i=po("toggle-appearance",()=>{t.value=!t.value}),a=Rt("");return Xc(()=>{a.value=t.value?r.value.lightModeSwitchTitle||"Switch to light theme":r.value.darkModeSwitchTitle||"Switch to dark theme"}),(s,n)=>(M(),wt(dI,{title:a.value,class:"VPSwitchAppearance","aria-checked":H(t),onClick:H(i)},{default:tt(()=>[...n[0]||(n[0]=[W("span",{class:"vpi-sun sun"},null,-1),W("span",{class:"vpi-moon moon"},null,-1)])]),_:1},8,["title","aria-checked","onClick"]))}}),cu=St(gI,[["__scopeId","data-v-e40a8bb6"]]),fI={key:0,class:"VPNavBarAppearance"},pI=gt({__name:"VPNavBarAppearance",setup(e){const{site:t}=Dt();return(r,i)=>H(t).appearance&&H(t).appearance!=="force-dark"&&H(t).appearance!=="force-auto"?(M(),Y("div",fI,[Ct(cu)])):ct("",!0)}}),mI=St(pI,[["__scopeId","data-v-af096f4a"]]),hu=Rt();let d1=!1,$l=0;function yI(e){const t=Rt(!1);if(mo){!d1&&bI(),$l++;const r=mr(hu,i=>{var a,s,n;i===e.el.value||(a=e.el.value)!=null&&a.contains(i)?(t.value=!0,(s=e.onFocus)==null||s.call(e)):(t.value=!1,(n=e.onBlur)==null||n.call(e))});uo(()=>{r(),$l--,$l||kI()})}return q1(t)}function bI(){document.addEventListener("focusin",g1),d1=!0,hu.value=document.activeElement}function kI(){document.removeEventListener("focusin",g1)}function g1(){hu.value=document.activeElement}const vI={class:"VPMenuLink"},xI=["innerHTML"],CI=gt({__name:"VPMenuLink",props:{item:{}},setup(e){const{page:t}=Dt();return(r,i)=>(M(),Y("div",vI,[Ct(fr,{class:qt({active:H(mi)(H(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon},{default:tt(()=>[W("span",{innerHTML:e.item.text},null,8,xI)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),Ho=St(CI,[["__scopeId","data-v-acbfed09"]]),wI={class:"VPMenuGroup"},TI={key:0,class:"title"},SI=gt({__name:"VPMenuGroup",props:{text:{},items:{}},setup(e){return(t,r)=>(M(),Y("div",wI,[e.text?(M(),Y("p",TI,xt(e.text),1)):ct("",!0),(M(!0),Y(Wt,null,ie(e.items,i=>(M(),Y(Wt,null,["link"in i?(M(),wt(Ho,{key:0,item:i},null,8,["item"])):ct("",!0)],64))),256))]))}}),_I=St(SI,[["__scopeId","data-v-48c802d0"]]),BI={class:"VPMenu"},LI={key:0,class:"items"},AI=gt({__name:"VPMenu",props:{items:{}},setup(e){return(t,r)=>(M(),Y("div",BI,[e.items?(M(),Y("div",LI,[(M(!0),Y(Wt,null,ie(e.items,i=>(M(),Y(Wt,{key:JSON.stringify(i)},["link"in i?(M(),wt(Ho,{key:0,item:i},null,8,["item"])):"component"in i?(M(),wt(ur(i.component),Pr({key:1,ref_for:!0},i.props),null,16)):(M(),wt(_I,{key:2,text:i.text,items:i.items},null,8,["text","items"]))],64))),128))])):ct("",!0),Q(t.$slots,"default",{},void 0,!0)]))}}),MI=St(AI,[["__scopeId","data-v-7dd3104a"]]),FI=["aria-expanded","aria-label"],PI={key:0,class:"text"},EI=["innerHTML"],OI={key:1,class:"vpi-more-horizontal icon"},DI={class:"menu"},II=gt({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(e){const t=Rt(!1),r=Rt();yI({el:r,onBlur:i});function i(){t.value=!1}return(a,s)=>(M(),Y("div",{class:"VPFlyout",ref_key:"el",ref:r,onMouseenter:s[1]||(s[1]=n=>t.value=!0),onMouseleave:s[2]||(s[2]=n=>t.value=!1)},[W("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:s[0]||(s[0]=n=>t.value=!t.value)},[e.button||e.icon?(M(),Y("span",PI,[e.icon?(M(),Y("span",{key:0,class:qt([e.icon,"option-icon"])},null,2)):ct("",!0),e.button?(M(),Y("span",{key:1,innerHTML:e.button},null,8,EI)):ct("",!0),s[3]||(s[3]=W("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(M(),Y("span",OI))],8,FI),W("div",DI,[Ct(MI,{items:e.items},{default:tt(()=>[Q(a.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),uu=St(II,[["__scopeId","data-v-04f5c5e9"]]),$I=["href","aria-label","innerHTML"],zI=gt({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(e){const t=e,r=Rt();br(async()=>{var s;await Gg();const a=(s=r.value)==null?void 0:s.children[0];a instanceof HTMLElement&&a.className.startsWith("vpi-social-")&&(getComputedStyle(a).maskImage||getComputedStyle(a).webkitMaskImage)==="none"&&a.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${t.icon}.svg')`)});const i=ut(()=>typeof t.icon=="object"?t.icon.svg:`<span class="vpi-social-${t.icon}"></span>`);return(a,s)=>(M(),Y("a",{ref_key:"el",ref:r,class:"VPSocialLink no-icon",href:e.link,"aria-label":e.ariaLabel??(typeof e.icon=="str
314ing"?e.icon:""),target:"_blank",rel:"noopener",innerHTML:i.value},null,8,$I))}}),RI=St(zI,[["__scopeId","data-v-d26d30cb"]]),NI={class:"VPSocialLinks"},HI=gt({__name:"VPSocialLinks",props:{links:{}},setup(e){return(t,r)=>(M(),Y("div",NI,[(M(!0),Y(Wt,null,ie(e.links,({link:i,icon:a,ariaLabel:s})=>(M(),wt(RI,{key:i,icon:a,link:i,ariaLabel:s},null,8,["icon","link","ariaLabel"]))),128))]))}}),du=St(HI,[["__scopeId","data-v-ee7a9424"]]),WI={key:0,class:"group translations"},qI={class:"trans-title"},UI={key:1,class:"group"},VI={class:"item appearance"},YI={class:"label"},GI={class:"appearance-action"},jI={key:2,class:"group"},XI={class:"item social-links"},QI=gt({__name:"VPNavBarExtra",setup(e){const{site:t,theme:r}=Dt(),{localeLinks:i,currentLang:a}=Ds({correspondingLink:!0}),s=ut(()=>i.value.length&&a.value.label||t.value.appearance||r.value.socialLinks);return(n,o)=>s.value?(M(),wt(uu,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:tt(()=>[H(i).length&&H(a).label?(M(),Y("div",WI,[W("p",qI,xt(H(a).label),1),(M(!0),Y(Wt,null,ie(H(i),l=>(M(),wt(Ho,{key:l.link,item:l},null,8,["item"]))),128))])):ct("",!0),H(t).appearance&&H(t).appearance!=="force-dark"&&H(t).appearance!=="force-auto"?(M(),Y("div",UI,[W("div",VI,[W("p",YI,xt(H(r).darkModeSwitchLabel||"Appearance"),1),W("div",GI,[Ct(cu)])])])):ct("",!0),H(r).socialLinks?(M(),Y("div",jI,[W("div",XI,[Ct
314(du,{class:"social-links-list",links:H(r).socialLinks},null,8,["links"])])])):ct("",!0)]),_:1})):ct("",!0)}}),KI=St(QI,[["__scopeId","data-v-925effce"]]),ZI=["aria-expanded"],JI=gt({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(e){return(t,r)=>(M(),Y("button",{type:"button",class:qt(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:r[0]||(r[0]=i=>t.$emit("click"))},[...r[1]||(r[1]=[W("span",{class:"container"},[W("span",{class:"top"}),W("span",{class:"middle"}),W("span",{class:"bottom"})],-1)])],10,ZI))}}),t4=St(JI,[["__scopeId","data-v-5dea55bf"]]),e4=["innerHTML"],r4=gt({__name:"VPNavBarMenuLink",props:{item:{}},setup(e){const{page:t}=Dt();return(r,i)=>(M(),wt(fr,{class:qt({VPNavBarMenuLink:!0,active:H(mi)(H(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,tabindex:"0"},{default:tt(()=>[W("span",{innerHTML:e.item.text},null,8,e4)]),_:1},8,["class","href","target","rel","no-icon"]))}}),i4=St(r4,[["__scopeId","data-v-956ec74c"]]),a4=gt({__name:"VPNavBarMenuGroup",props:{item:{}},setup(e){const t=e,{page:r}=Dt(),i=s=>"component"in s?!1:"link"in s?mi(r.value.relativePath,s.link,!!t.item.activeMatch):s.items.some(i),a=ut(()=>i(t.item));return(s,n)=>(M(),wt(uu,{class:qt({VPNavBarMenuGroup:!0,active:H(mi)(H(r).relativePath,e.item.activeMatch,!!e.item.activeMatch)||a.value}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),s4={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},n4=gt({__name:"VPNavBarMenu",setup(e){const{theme:t}=Dt();return(r,i)=>H(t).nav?(M(),Y("nav",s4,[i[0]||(i[0]=W("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(M(!0),Y(Wt,null,ie(H(t).nav,a=>(M(),Y(Wt,{key:JSON.stringify(a)},["link"in a?(M(),wt(i4,{key:0,item:a},null,8,["item"])):"component"in a?(M(),wt(ur(a.component),Pr({key:1,ref_for:!0},a.props),null,16)):(M(),wt(a4,{key:2,item:a},null,8,["item"]))],64))),128))])):ct("",!0)}}),o4=St(n4,[["__scopeId","data-v-e6d46098"]]);function l4(e){const{localeIndex:t,theme:r}=Dt();function i(a){var f,p,m;const s=a.split("."),n=(f=r.value.search)==null?void 0:f.options,o=n&&typeof n=="object",l=o&&((m=(p=n.locales)==null?void 0:p[t.value])==null?void 0:m.translations)||null,c=o&&n.translations||null;let h=l,u=c,g=e;const d=s.pop();for(const b of s){let k=null;const x=g==null?void 0:g[b];x&&(k=g=x);const C=u==null?void 0:u[b];C&&(k=u=C);const T=h==null?void 0:h[b];T&&(k=h=T),x||(g=k),C||(u=k),T||(h=k)}return(h==null?void 0:h[d])??(u==null?void 0:u[d])??(g==null?void 0:g[d])??""}return i}const c4=["aria-label"],h4={class:"DocSearch-Button-Container"},u4={class:"DocSearch-Button-Placeholder"},Rg=gt({__name:"VPNavBarSearchButton",setup(e){const r=l4({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(i,a)=>(M(),Y("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":H(r)("button.buttonAriaLabel")},[W("span",h4,[a[0]||(a[0]=W("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),W("span",u4,xt(H(r)("button.buttonText")),1)]),a[1]||(a[1]=W("span",{class:"DocSearch-Button-Keys"},[W("kbd",{class:"DocSearch-Button-Key"}),W("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,c4))}}),d4={class:"VPNavBarSearch"},g4={id:"local-search"},f4={key:1,id:"docsearch"},p4=gt({__name:"VPNavBarSearch",setup(e){const t=U1(()=>Pt(()=>import("./VPLocalSearchBox.js"),__vite__mapDeps([55,5]))),r=()=>null,{theme:i}=Dt(),a=Rt(!1),s=Rt(!1);br(()=>{});function n(){a.value||(a.value=!0,setTimeout(o,16))}function o(){const u=new Event("keydown");u.key="k",u.metaKey=!0,window.dispatchEvent(u),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||o()},16)}function l(u){const g=u.target,d=g.tagName;return g.isContentEditable||d==="INPUT"||d==="SELECT"||d==="TEXTAREA"}const c=Rt(!1);Rl("k",u=>{(u.ctrlKey||u.metaKey)&&(u.preventDefault(),c.value=!0)}),Rl("/",u=>{l(u)||(u.preventDefault(),c.value=!0)});const h="local";return(u,g)=>{var d;return M(),Y("div",d4,[H(h)==="local"?(M(),Y(Wt,{key:0},[c.value?(M(),wt(H(t),{key:0,onClose:g[0]||(g[0]=f=>c.value=!1)})):ct("",!0),W("div",g4,[Ct(Rg,{onClick:g[1]||(g[1]=f=>c.value=!0)})])],64)):H(h)==="algolia"?(M(),Y(Wt,{key:1},[a.value?(M(),wt(H(r),{key:0,algolia:((d=H(i).search)==null?void 0:d.options)??H(i).algolia,onVnodeBeforeMount:g[2]||(g[2]=f=>s.value=!0)},null,8,["algolia"])):ct("",!0),s.value?ct("",!0):(M(),Y("div",f4,[Ct(Rg,{onClick:n})]))],64)):ct("",!0)])}}}),m4=gt({__name:"VPNavBarSocialLinks",setup(e){const{theme:t}=Dt();return(r,i)=>H(t).socialLinks?(M(),wt(du,{key:0,class:"VPNavBarSocialLinks",links:H(t).socialLinks},null,8,["links"])):ct("",!0)}}),y4=St(m4,[["__scopeId","data-v-164c457f"]]),b4=["href","rel","target"],k4=["innerHTML"],v4={key:2},x4=gt({__name:"VPNavBarTitle",setup(e){const{site:t,theme:r}=Dt(),{hasSidebar:i}=Hr(),{currentLang:a}=Ds(),s=ut(()=>{var l;
314return typeof r.value.logoLink=="string"?r.value.logoLink:(l=r.value.logoLink)==null?void 0:l.link}),n=ut(()=>{var l;return typeof r.value.logoLink=="string"||(l=r.value.logoLink)==null?void 0:l.rel}),o=ut(()=>{var l;return typeof r.value.logoLink=="string"||(l=r.value.logoLink)==null?void 0:l.target});return(l,c)=>(M(),Y("div",{class:qt(["VPNavBarTitle",{"has-sidebar":H(i)}])},[W("a",{class:"title",href:s.value??H(ou)(H(a).link),rel:n.value,target:o.value},[Q(l.$slots,"nav-bar-title-before",{},void 0,!0),H(r).logo?(M(),wt(ho,{key:0,class:"logo",image:H(r).logo},null,8,["image"])):ct("",!0),H(r).siteTitle?(M(),Y("span",{key:1,innerHTML:H(r).siteTitle},null,8,k4)):H(r).siteTitle===void 0?(M(),Y("span",v4,xt(H(t).title),1)):ct("",!0),Q(l.$slots,"nav-bar-title-after",{},void 0,!0)],8,b4)],2))}}),C4=St(x4,[["__scopeId","data-v-0f4f798b"]]),w4={class:"items"},T4={class:"title"},S4=gt({__name:"VPNavBarTranslations",setup(e){const{theme:t}=Dt(),{localeLinks:r,currentLang:i}=Ds({correspondingLink:!0});return(a,s)=>H(r).length&&H(i).label?(M(),wt(uu,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:H(t).langMenuLabel||"Change language"},{default:tt(()=>[W("div",w4,[W("p",T4,xt(H(i).label),1),(M(!0),Y(Wt,null,ie(H(r),n=>(M(),wt(Ho,{key:n.link,item:n},null,8,["item"]))),128))])]),_:1},8,["label"])):ct("",!0)}}),_4=St(S4,[["__scopeId","data-v-c80d9ad0"]]),B4={class:"wrapper"},L4={class:"container"},A4={class:"title"},M4={class:"content"},F4={class:"content-body"},P4=gt({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(e){const t=e,{y:r}=jg(),{hasSidebar:i}=Hr(),{frontmatter:a}=Dt(),s=Rt({});return Xc(()=>{s.value={"has-sidebar":i.value,home:a.value.layout==="home",top:r.value===0,"screen-open":t.isScreenOpen}}),(n,o)=>(M(),Y("div",{class:qt(["VPNavBar",s.value])},[W("div",B4,[W("div",L4,[W("div",A4,[Ct(C4,null,{"nav-bar-title-before":tt(()=>[Q(n.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":tt(()=>[Q(n.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),W("div",M4,[W("div",F4,[Q(n.$slots,"nav-bar-content-before",{},void 0,!0),Ct(p4,{class:"search"}),Ct(o4,{class:"menu"}),Ct(_4,{class:"translations"}),Ct(mI,{class:"appearance"}),Ct(y4,{class:"social-links"}),Ct(KI,{class:"extra"}),Q(n.$slots,"nav-bar-content-after",{},void 0,!0),Ct(t4,{class:"hamburger",active:e.isScreenOpen,onClick:o[0]||(o[0]=l=>n.$emit("toggle-screen"))},null,8,["active"])])])])]),o[1]||(o[1]=W("div",{class:"divider"},[W("div",{class:"divider-line"})],-1))],2))}}),E4=St(P4,[["__scopeId","data-v-822684d1"]]),O4={key:0,class:"VPNavScreenAppearance"},D4={class:"text"},I4=gt({__name:"VPNavScreenAppearance",setup(e){const{site:t,theme:r}=Dt();return(i,a)=>H(t).appearance&&H(t).appearance!=="force-dark"&&H(t).appearance!=="force-auto"?(M(),Y("div",O4,[W("p",D4,xt(H(r).darkModeSwitchLabel||"Appearance"),1),Ct(cu)])):ct("",!0)}}),$4=St(I4,[["__scopeId","data-v-ffb44008"]]),z4=["innerHTML"],R4=gt({__name:"VPNavScreenMenuLink",props:{item:{}},setup(e){const t=po("close-screen");return(r,i)=>(M(),wt(fr,{class:"VPNavScreenMenuLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:H(t)},{default:tt(()=>[W("span",{innerHTML:e.item.text},null,8,z4)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),N4=St(R4,[["__scopeId","data-v-735512b8"]]),H4=["innerHTML"],W4=gt({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(e){const t=po("close-screen");return(r,i)=>(M(),wt(fr,{class:"VPNavScreenMenuGroupLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:H(t)},{default:tt(()=>[W("span",{innerHTML:e.item.text},null,8,H4)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),f1=St(W4,[["__scopeId","data-v-372ae7c0"]]),q4={class:"VPNavScreenMenuGroupSection"},U4={key:0,class:"title"},V4=gt({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(e){return(t,r)=>(M(),Y("div",q4,[e.text?(M(),Y("p",U4,xt(e.text),1)):ct("",!0),(M(!0),Y(Wt,null,ie(e.items,i=>(M(),wt(f1,{key:i.text,item:i},null,8,["item"]))),128))]))}}),Y4=St(V4,[["__scopeId","data-v-4b8941ac"]]),G4=["aria-controls","aria-expanded"],j4=["innerHTML"],X4=["id"],Q4={key:0,class:"item"},K4={key:1,class:"item"},Z4={key:2,class:"group"},J4=gt({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(e){const t=e,r=Rt(!1),i=ut(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function a(){r.value=!r.value}return(s,n)=>(M(),Y("div",{class:qt(["VPNavScreenMenuGroup",{open:r.value}])},[W("button",{class:"button","aria-controls":i.value,"aria-expanded":r.value,onClick:a},[W("span",{class:"button-text",innerHTML:e.text},null,8,j4),n[0]||(n[0]=W("span",{class:"vpi-plus button-icon"},null,-1))],8,G4),W("div",{id:i.value,class:"items"},[(M(!0),Y(Wt,null,ie(e.items,o=>(M(),Y(Wt,{key:JSON.stringify(o)},["link"in o?(M(),Y("div",Q4,[Ct(f1,{item:o},null,8,["item"])])):"component"in o?(M(),Y("div",K4,[(M(),wt(ur(o.component),Pr({ref_for:!0},o.props,{"screen-menu":""}),null,16))])):(M(),Y("div",Z4,[Ct(Y4,{text:o.text,items:o.items},null,8,["text","items"])]))],64))),128))],8,X4)],2))}}),t$=St(J4,[["__scopeId","data-v-875057a5"]]),e$={key:0,class:"VPNavScreenMenu"},r$=gt({__name:"VPNavScreenMenu",setup(e){const{theme:t}=Dt();return(r,i)=>H(t).nav?(M(),Y("nav",e$,[(M(!0),Y(Wt,null,ie(H(t).nav,a=>(M(),Y(Wt,{key:JSON.stringify(a)},["link"in a?(M(),wt(N4,{key:0,item:a},null,8,["item"])):"component"in a?(M(),wt(ur(a.component),Pr({key:1,ref_for:!0},a.props,{"screen-menu":""}),null,16)):(M(),wt(t$,{key:2,text:a.text||"",items:a.items},null,8,["text","items"]))],64))),128))])):ct("",!0)}}),i$=gt({__name:"VPNavScreenSocialLinks",setup(e){const{theme:t}=Dt();return(r,i)=>H(t).socialLinks?(M(),wt(du,{key:0,class:"VPNavScreenSocialLinks",links:H(t).socialLinks},null,8,["links"])):ct("",!0)}}),a$={class:"list"},s$=gt({__name:"VPNavScreenTranslations",setup(e){const{localeLinks:t,currentLang:r}=Ds({correspondingLink:!0}),i=Rt(!1);function a(){i.value=!i.value}return(s,n)=>H(t).length&&H(r).label?(M(),Y("div",{key:0,class:qt(["VPNavScreenTranslations",{open:i.value}])},[W("button",{class:"title",onClick:a},[n[0]||(n[0]=W("span",{class:"vpi-languages icon lang"},null,-1)),pr(" "+xt(H(r).label)+" ",1),n[1]||(n[1]=W("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),W("ul",a$,[(M(!0),Y(Wt,null,ie(H(t),o=>
314(M(),Y("li",{key:o.link,class:"item"},[Ct(fr,{class:"link",href:o.link},{default:tt(()=>[pr(xt(o.text),1)]),_:2},1032,["href"])]))),128))])],2)):ct("",!0)}}),n$=St(s$,[["__scopeId","data-v-362991c2"]]),o$={class:"container"},l$=gt({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(e){const t=Rt(null),r=Xg(mo?document.body:null);return(i,a)=>(M(),wt(jc,{name:"fade",onEnter:a[0]||(a[0]=s=>r.value=!0),onAfterLeave:a[1]||(a[1]=s=>r.value=!1)},{default:tt(()=>[e.open?(M(),Y("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t,id:"VPNavScreen"},[W("div",o$,[Q(i.$slots,"nav-screen-content-before",{},void 0,!0),Ct(r$,{class:"menu"}),Ct(n$,{class:"translations"}),Ct($4,{class:"appearance"}),Ct(i$,{class:"social-links"}),Q(i.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):ct("",!0)]),_:3}))}}),c$=St(l$,[["__scopeId","data-v-833aabba"]]),h$={key:0,class:"VPNav"},u$=gt({__name:"VPNav",setup(e){const{isScreenOpen:t,closeScreen:r,toggleScreen:i}=nI(),{frontmatter:a}=Dt(),s=ut(()=>a.value.navbar!==!1);return Qg("close-screen",r),go(()=>{mo&&document.documentElement.classList.toggle("hide-nav",!s.value)}),(n,o)=>s.value?(M(),Y("header",h$,[Ct(E4,{"is-screen-open":H(t),onToggleScreen:H(i)},{"nav-bar-title-before":tt(()=>[Q(n.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":tt(()=>[Q(n.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":tt(()=>[Q(n.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":tt(()=>[Q(n.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),Ct(c$,{open:H(t)},{"nav-screen-content-before":tt(()=>[Q(n.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":tt(()=>[Q(n.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):ct("",!0)}}),d$=St(u$,[["__scopeId","data-v-f1e365da"]]),g$=["role","tabindex"],f$={key:1,class:"items"},p$=gt({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(e){const t=e,{collapsed:r,collapsible:i,isLink:a,isActiveLink:s,hasActiveLink:n,hasChildren:o,toggle:l}=hO(ut(()=>t.item)),c=ut(()=>o.value?"section":"div"),h=ut(()=>a.value?"a":"div"),u=ut(()=>o.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),g=ut(()=>a.value?void 0:"button"),d=ut(()=>[[`level-${t.depth}`],{collapsible:i.value},{collapsed:r.value},{"is-link":a.value},{"is-active":s.value},{"has-active":n.value}]);function f(m){"key"in m&&m.key!=="Enter"||!t.item.link&&l()}function p(){t.item.link&&l()}return(m,b)=>{const k=_i("VPSidebarItem",!0);return M(),wt(ur(c.value),{class:qt(["VPSidebarItem",d.value])},{default:tt(()=>[e.item.text?(M(),Y("div",Pr({key:0,class:"item",role:g.value},V1(e.item.items?{click:f,keydown:f}:{},!0),{tabindex:e.item.items&&0}),[b[1]||(b[1]=W("div",{class:"indicator"},null,-1)),e.item.link?(M(),wt(fr,{key:0,tag:h.value,class:"link",href:e.item.link,rel:e.item.rel,target:e.item.target},{default:tt(()=>[(M(),wt(ur(u.value),{class:"text",innerHTML:e.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(M(),wt(ur(u.value),{key:1,class:"text",innerHTML:e.item.text},null,8,["innerHTML"])),e.item.collapsed!=null&&e.item.items&&e.item.items.length?(M(),Y("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:p,onKeydown:Y1(p,["enter"]),tabindex:"0"},[...b[0]||(b[0]=[W("span",{class:"vpi-chevron-right caret-icon"},null,-1)])],32)):ct("",!0)],16,g$)):ct("",!0),e.item.items&&e.item.items.length?(M(),Y("div",f$,[e.depth<5?(M(!0),Y(Wt,{key:0},ie(e.item.items,x=>(M(),wt(k,{key:x.text,item:x,depth:e.depth+1},null,8,["item","depth"]))),128)):ct("",!0)])):ct("",!0)]),_:1},8,["class"])}}}),m$=St(p$,[["__scopeId","data-v-a4b0d9bf"]]),y$=gt({__name:"VPSidebarGroup",props:{items:{}},setup(e){const t=Rt(!0);let r=null;return br(()=>{r=setTimeout(()=>{r=null,t.value=!1},300)}),G1(()=>{r!=null&&(clearTimeout(r),r=null)}),(i,a)=>(M(!0),Y(Wt,null,ie(e.items,s=>(M(),Y("div",{key:s.text,class:qt(["group",{"no-transition":t.value}])},[Ct(m$,{item:s,depth:0},null,8,["item"])],2))),128))}}),b$=St(y$,[["__scopeId","data-v-9e426adc"]]),k$={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},v$=gt({__name:"VPSidebar",props:{open:{type:Boolean}},setup(e){const{sidebarGroups:t,hasSidebar:r}=Hr(),i=e,a=Rt(null),s=Xg(mo?document.body:null);mr([i,a],()=>{var o;i.open?(s.value=!0,(o=a.value)==null||o.focus()):s.value=!1},{immediate:!0,flush:"post"});const n=Rt(0);return mr(t,()=>{n.value+=1},{deep:!0}),(o,l)=>H(r)?(M(),Y("aside",{key:0,class:qt(["VPSidebar",{open:e.open}]),ref_key:"navEl",ref:a,onClick:l[0]||(l[0]=j1(()=>{},["stop"]))},[l[2]||(l[2]=W("div",{class:"curtain"},null,-1)),W("nav",k$,[l[1]||(l[1]=W("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Q(o.$slots,"sidebar-nav-before",{},void 0,!0),(M(),wt(b$,{items:H(t),key:n.value},null,8,["items"])),Q(o.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):ct("",!0)}}),x$=St(v$,[["__scopeId","data-v-18756405"]]),C$=gt({__name:"VPSkipLink",setup(e){const{theme:t}=Dt(),r=ws(),i=Rt();mr(()=>r.path,()=>i.value.focus());function a({target:s}){const n=document.getElementById(decodeURIComponent(s.hash).slice(1));if(n){const o=()=>{n.removeAttribute("tabindex"),n.removeEventListener("blur",o)};n.setAttribute("tabindex","-1"),n.addEventListener("blur",o),n.focus(),window.scrollTo(0,0)}}return(s,n)=>(M(),Y(Wt,null,[W("span",{ref_key:"backToTop",ref:i,tabindex:"-1"},null,512),W("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:a},xt(H(t).skipToContentLabel||"Skip to content"),1)],64))}}),w$=St(C$,[["__scopeId","data-v-492508fc"]]),T$=gt({__name:"Layout",setup(e){const{isOpen:t,open:r,close:i}=Hr(),a=ws();mr(()=>a.path,i),cO(t,i);const{frontmatter:s}=Dt(),n=X1(),o=ut(()=>!!n["home-hero-image"]);return Qg("hero-image-slot-exists",o),(l,c)=>{const h=_i("Content");return H(s).layout!==!1?(M(),Y("div",{key:0,class:qt(["Layout",H(s).pageClass])},[Q(l.$slots,"layout-top",{},void 0,!0),Ct(w$),Ct(QE,{class:"backdrop",show:H(t),onClick:H(i)},null,8,["show","onClick"]),Ct(d$,null,{"nav-bar-title-before":tt(()=>[Q(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":tt(()=>[Q(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":tt(()=>[Q(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":tt(()=>[Q(l.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":tt(()=>[Q(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":tt(()=>[Q(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),Ct(sI,{open:H(t),onOpenMenu:H(r)},null,8,["open","onOpenMenu"]),Ct(x$,{open:H(t)},{"sidebar-nav-before":tt(()=>[Q(l.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":tt(()=>[Q(l.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),Ct(qD,null,{"page-top":tt(()=>[Q(l.$slots,"page-top",{},void 0,!0)]),"page-bottom":tt(()=>[Q(l.$slots,"page-bottom",{},void 0,!0)]),"not-found":tt(()=>[Q(l.$slots,"not-found",{},void 0,!0)]),"home-hero-before":tt(()=>[Q(l.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":tt(()=>[Q(l.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":tt(()=>[Q(l.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":tt(()=>[Q(l.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":tt(()=>[Q(l.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":tt(()=>[Q(l.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":tt(()=>[Q(l.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":tt(()=>[Q(l.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":tt(()=>[Q(l.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":tt(()=>[Q(l.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":tt(()=>[Q(l.$slots,"doc-before",{},void 0,!0)]),"doc-after":tt(()=>[Q(l.$slots,"doc-after",{},void 0,!0)]),"doc-top":tt(()=>[Q(l.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":tt(()=>[Q(l.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":tt(()=>[Q(l.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":tt(()=>[Q(l.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":tt(()=>[Q(l.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":tt(()=>[Q(l.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":tt(()=>[Q(l.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":tt(()=>[Q(l.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),Ct(jD),Q(l.$slots,"layout-bottom",{},void 0,!0)],2)):(M(),wt(h,{key:1}))}}}),S$=St(T$,[["__scopeId","data-v-a9a9e638"]]),Ng={Layout:S$,enhanceApp:({app:e})=>{e.component("Badge",GE)}},_$={class:"brand"},B$={class:"brand-mark"},L$=["src"],A$={class:"brand-text"},M$={class:"brand-name"},F$={class:"brand-slogan"},P$=gt({__name:"DocsBrand",setup(e){const t={zh:{brandAriaLabel:"Databuff é¦é¡µ",brandName:"DataBuff",brandSlogan:"å齿èAPM"},en:{brandAriaLabel:"DataBuff home",brandName:"DataBuff",brandSlogan:"Sabertooth APM"}},{localeIndex:r}=Rr(),i=ut(()=>r.value==="en"?"en":"zh"),a=ut(()=>t[i.value]),s=Cs("/logo-icon.png");function n(){const o=document.querySelector(".VPNavBarTitle a.title");o instanceof HTMLAnchorElement&&o.setAttribute("aria-label",a.value.brandAriaLabel)}return br(n),mr(i,n),(o,l)=>(M(),Y("span",_$,[W("span",B$,[W("img",{src:H(s),alt:"",width:"51",height:"51"},null,8,L$)]),W("span",A$,[W("span",M$,xt(a.value.brandName),1),W("span",F$,xt(a.value.brandSlogan),1)])]))}}),p1={home:"/",docs:()=>"/docs/",docsOpen:e=>`/docs/${e}/product/intro`,docsCommercial:()=>"https://databuff.yuque.com/org-wiki-databuff-spr8e6/enterprise",docsBase:e=>`/docs/${e}/`,blog:e=>`/blog/${e}/`,commercial:"/pricing/02/",commercial02:"/pricing/02/",partners:"/partners/",about:"https://databuff.com/about",github:"https://github.com/databufflabs/databuff",demo:"https://demo.databuff.ai/"},E$=[{id:"openocta-preview-en",slug:"openocta-preview",locale:"en",title:"A Different Way to Handle Everyday Operations: A Preview of OpenOcta",date:"2026-09-14",tags:["OpenOcta","DevOps","AI","Automation"],summary:"Four everyday operations problems and how OpenOcta approaches connected investigation, unified alerts, generated
314workflows, and tailored operations views. Launching September 15 at 19:00 UTC+8.",cover:"/blog/openocta-preview/assets/openocta-reveal-invitation-v1.png",readingMinutes:7,htmlPath:"openocta-preview/en/body.html",altLocale:"openocta-preview-zh",sourceHtml:"packages/blog-site/content/openocta-preview/en.html"},{id:"openocta-preview-zh",slug:"openocta-preview",locale:"zh",title:"è¿ç»´é¢åç«ç¶è¿æè¿ä¹ç¥å¥çç©æ³",date:"2026-09-14",tags:["OpenOcta","è¿ç»´","人工æºè½","èªå¨å"],summary:"ä»å个常è§è¿ç»´éº»ç¦ï¼ç OpenOcta çå¤ç³»ç»æ¥è¯¢ãç»ä¸åè¦ä¸å·¥ä½æµå¤ç½®ã工使µçæåè¿ç»´åºæ¯å®å¶ã9 æ 15 æ¥æ 7 ç¹æ£å¼åå¸ã",cover:"/blog/openocta-preview/assets/openocta-reveal-invitation-v1.png",readingMinutes:7,htmlPath:"openocta-preview/zh/body.html",altLocale:"openocta-preview-en",sourceHtml:"packages/blog-site/content/openocta-preview/zh.html"},{id:"ops-topology-from-traces-en",slug:"ops-topology-from-traces",locale:"en",title:"Where Does an Ops Topology Actually Come From?",date:"2026-09-08",tags:["ops","open-source APM","service topology","OpenTelemetry","DataBuff"],summary:"Which services does a checkout touch? OpenTelemetry records traces and spans. DataBuff turns those records into a global topology and a service flow.",cover:"/blog/ops-topology-from-traces/assets/01-global-topology.png",readingMinutes:8,htmlPath:"ops-topology-from-traces/en/body.html",altLocale:"ops-topology-from-traces-zh",sourceHtml:"packages/blog-site/content/ops-topology-from-traces/en.html"},{id:"ops-topology-from-traces-zh",slug:"ops-topology-from-traces",locale:"zh",title:"è¿ç»´é¢åçææå¾å°åºæ¯æä¹æ¥çï¼",date:"2026-09-08",tags:["è¿ç»´","弿ºAPM","æå¡ææ","OpenTelemetry","DataBuff"],summary:"䏿¬¡ä¸åç»è¿åªäºæå¡ï¼OpenTelemetry è®°æ Trace å SpanãDataBuff æä¹ä»è¿äºè®°å½ç®åºå
¨å±ææåæå¡æµã",cover:"/blog/ops-topology-from-traces/assets/01-global-topology.png",readingMinutes:8,htmlPath:"ops-topology-from-traces/zh/body.html",altLocale:"ops-topology-from-traces-en",sourceHtml:"packages/blog-site/content/ops-topology-from-traces/zh.html"},{id:"databuff-v019-release-en",slug:"databuff-v019-release",locale:"en",title:"DataBuff v0.1.9 Release Notes",date:"2026-09-07",tags:["Release","APM","AIOps","v0.1.9","OpenTelemetry"],summary:"SkyWalking 8.0â8.3 ingest, LLM provider CRUD, credential hardening for config_llm_provider / api_key_cipher, AI brain duplicate-message fix â no schema migration.",cover:"",readingMinutes:4,htmlPath:"databuff-v019-release/en/body.html",altLocale:"databuff-v019-release-zh",sourceHtml:"packages/blog-site/content/databuff-v019-release/en.html"},{id:"databuff-v019-release-zh",slug:"databuff-v019-release",locale:"zh",title:"DataBuff v0.1.9 åçéå",date:"2026-09-07",tags:["åç","APM","AIOps","v0.1.9","OpenTelemetry"],summary:"SkyWalking 8.0â8.3 æ¥å
¥ãLLM ä¾åºå CRUDãåæ®è¡¨è®¿é®å åºãAI 对è¯é夿¶æ¯ä¿®å¤ â æ¬çæ Schema è¿ç§»ã",cover:"",readingMinutes:4,htmlPath:"databuff-v019-release/zh/body.html",altLocale:"databuff-v019-release-en",sourceHtml:"packages/blog-site/content/databuff-v019-release/zh.html"},{id:"ops-fault-localization-databuff-en",slug:"ops-fault-localization-databuff",locale:"en",title:"There's Now an Open-Source Fault Localization Project in Ops",date:"2026-09-03",tags:["ops","open-source APM","fault localization","OpenTelemetry","DataBuff"],summary:"Ops rarely lacks metrics, topology, traces, or logs. What it lacks is lining those four up when something breaks. In the official demo, an inventory shortage was swallowed into a 200.",cover:"/blog/ops-fault-localization-databuff/assets/16-report-verdict.png",readingMinutes:6,htmlPath:"ops-fault-localization-databuff/en/body.html",altLocale:"ops-fault-localization-databuff-zh",sourceHtml:"packages/blog-site/content/ops-fault-localization-databuff/en.html"},{id:"ops-fault-localization-databuff-zh",slug:"ops-fault-localization-databuff",locale:"zh",title:"è¿ç»´é¢åç«ç¶ä¹ææ
éå®ä½ç弿ºé¡¹ç®äº",date:"2026-09-03",tags:["è¿ç»´","弿ºAPM","æ
éå®ä½","OpenTelemetry","DataBuff"],summary:"è¿ç»´è¿è¾¹ Metricãææãè°ç¨é¾ãæ¥å¿é½ä¸ç¼ºãç¼ºçæ¯åºäºäºå¾äººèªå·±æè¿åæ ·å¯¹ä¸ã宿¹ Demo éï¼åºåä¸è¶³è¢«åæäº 200ã",cover:"/blog/ops-fault-localization-databuff/assets/16-report-verdict.png",readingMinutes:6,htmlPath:"ops-fault-localization-databuff/zh/body.html",altLocale:"ops-fault-localization-databuff-en",sourceHtml:"packages/blog-site/content/ops-fault-localization-databuff/zh.html"},{id:"ops-hidden-gem-databuff-en",slug:"ops-hidden-gem-databuff",locale:"en",title:"There's a Hidden Gem in Ops You Probably Missed",date:"2026-08-31",tags:["ops","open-source APM","OpenTelemetry","DataBuff","observability"],summary:"Ops rarely lacks monitoring, APM, logs, or alerts. Asking âwhoâs on fireâ still means
314stitching several stacks yourself. DataBuff takes the data in; dashboards, alerts, and questions share one stack.",cover:"/blog/ops-hidden-gem-databuff/assets/see-topology.png",readingMinutes:6,htmlPath:"ops-hidden-gem-databuff/en/body.html",altLocale:"ops-hidden-gem-databuff-zh",sourceHtml:"packages/blog-site/content/ops-hidden-gem-databuff/en.html"},{id:"ops-hidden-gem-databuff-zh",slug:"ops-hidden-gem-databuff",locale:"zh",title:"è¿ç»´é¢åç«ç¶è¿æè¿ä¸ªå®è项ç®",date:"2026-08-31",tags:["è¿ç»´","弿ºAPM","OpenTelemetry","DataBuff","å¯è§æµæ§"],summary:"æè¿ç»´çå¾å°ç¼ºçæ§ãAPMãæ¥å¿ãåè¦ãæéæ¶é®ãç°å¨è°æé®é¢ãï¼è¿æ¯å¾èªå·±æå å¥ä¸è¥¿ä¸²èµ·æ¥ãDataBuff ææ°æ¶è¿æ¥ï¼çãåè¦ãé®èµ°åä¸å¥ã",cover:"/blog/ops-hidden-gem-databuff/assets/see-topology.png",readingMinutes:6,htmlPath:"ops-hidden-gem-databuff/zh/body.html",altLocale:"ops-hidden-gem-databuff-en",sourceHtml:"packages/blog-site/content/ops-hidden-gem-databuff/zh.html"},{id:"pinpoint-databuff-capability-comparison-en",slug:"pinpoint-databuff-capability-comparison",locale:"en",title:"Open Source APM Compared: Pinpoint vs DataBuff â Full Capability Review",date:"2026-08-27",tags:["APM","Pinpoint","DataBuff","AI","Open Source"],summary:"Side-by-side Pinpoint 3.1.0 vs DataBuff v0.1.4: seven AI capabilities, APM depth gaps, and three live AI demos (Q&A, inspection, root-cause diagnosis).",cover:"/blog/pinpoint-databuff-capability-comparison/assets/cover.png",readingMinutes:10,htmlPath:"pinpoint-databuff-capability-comparison/en/body.html",altLocale:"pinpoint-databuff-capability-comparison-zh",sourceHtml:"packages/blog-site/content/pinpoint-databuff-capability-comparison/en.html"},{id:"pinpoint-databuff-capability-comparison-zh",slug:"pinpoint-databuff-capability-comparison",locale:"zh",title:"弿ºAPMçæ§è½¯ä»¶ Pinpointä¸Databuff è½åå
¨é¢å¯¹æ¯",date:"2026-08-27",tags:["APM","Pinpoint","DataBuff","AI","弿º"],summary:"Pinpoint 3.1.0 ä¸ DataBuff v0.1.4 åæºåè·å®æµï¼å¯¹ç
§ä¸å¤§ AI è½åä¸ APM 纵深差å¼ï¼é䏿¡ AI ç¨ä¾ï¼é®æ° / å·¡æ£ / è¯æï¼ç°åºæ¼ç¤ºã",cover:"/blog/pinpoint-databuff-capability-comparison/assets/cover.png",readingMinutes:10,htmlPath:"pinpoint-databuff-capability-comparison/zh/body.html",altLocale:"pinpoint-databuff-capability-comparison-en",sourceHtml:"packages/blog-site/content/pinpoint-databuff-capability-comparison/zh.html"},{id:"databuff-v018-release-en",slug:"databuff-v018-release",locale:"en",title:"DataBuff v0.1.8 Release Notes",date:"2026-08-26",tags:["Release","APM","AIOps","v0.1.8","OpenTelemetry"],summary:"Log-detail log_id (#73), GenAI Trace unicode decode, Maven product version on login/sidebar, remote MCP in fat-jar, ResourceIgnoreFilter binding, and schema V008 â with upgrade steps.",cover:"",readingMinutes:5,htmlPath:"databuff-v018-release/en/body.html",altLocale:"databuff-v018-release-zh",sourceHtml:"packages/blog-site/content/databuff-v018-release/en.html"},{id:"databuff-v018-release-zh",slug:"databuff-v018-release",locale:"zh",title:"DataBuff v0.1.8 åçéå",date:"2026-08-26",tags:["åç","APM","AIOps","v0.1.8","OpenTelemetry"],summary:"æ¥å¿è¯¦æ
é log_idï¼#73ï¼ãGenAI Trace å¯è¯»ãç»å½/ä¾§æ Maven çæ¬å·ãè¿ç¨ MCP fat-jar SPIãResourceIgnoreFilter çæä¸ Schema V008 â å«å级æå¼ã",cover:"",readingMinutes:5,htmlPath:"databuff-v018-release/zh/body.html",altLocale:"databuff-v018-release-en",sourceHtml:"packages/blog-site/content/databuff-v018-release/zh.html"},{id:"langgraph-multi-agent-orchestration-en",slug:"langgraph-multi-agent-orchestration",locale:"en",title:"LangGraph: Orchestrate a Swarm of AI Agents with One Graph",date:"2026-08-24",tags:["LangGraph","Multi-Agent","AI Agent","Graph Orchestration","Observability"],summary:"LangGraph is, first and foremost, a general-purpose graph execution engine â you draw the graph, it runs it. One 2 a.m. alert case walks through drawing, coding, and the superstep execution model, then compares Dify and Claude Code dynamic workflows.",cover:"/blog/langgraph-multi-agent-orchestration/assets/langgraph-case-diagram.png",readingMinutes:6,htmlPath:"langgraph-multi-agent-orchestration/en/body.html",altLocale:"langgraph-multi-agent-orchestration-zh",sourceHtml:"packages/blog-site/content/langgraph-multi-agent-orchestration/en.html"},{id:"langgraph-multi-agent-orchestration-zh",slug:"langgraph-multi-agent-orchestration",locale:"zh",title:"LangGraphï¼ç¨ä¸å¼ å¾ï¼ç¼æä¸ç¾¤ AI 婿",date:"2026-08-24",tags:["LangGraph","夿ºè½ä½","AI Agent","å¾ç¼æ","å¯è§æµæ§"],summary:"LangGraph é¦å
æ¯ä¸ä¸ªéç¨å¾æ§è¡å¼æââä½ ç»å¾ï¼å®è·å¾ãç¨ä¸ä¸ªåæ¨åè¦æ¡ä¾ï¼ä»ç»å¾ãå代ç å°è¶
æ¥æ§è¡æºå¶è®²éï¼åå DifyãClaude Code 卿工使µå¯¹æ¯ã",cover:"/blog/langgraph-multi-agent-orchestration/assets/langgraph-case-diagram.png",readingMinutes:6,htmlPath:"langgraph-multi-agent-orchestration/zh/body.html",altLocale:"langgraph-multi-agent-orchestration-en",sourceHtml:"packages/blog-site/content/langgraph-multi-agent-orchestration/zh.html"},{id:"skywalking-databuff-trace-practice-en",slug:"skywalking-databuff-trace-practice",locale:"en",title:"Microservice Distributed Tracing in Practice: SkyWalking + DataBuff",date:"2026-08-21",tags:["SkyWalking","DataBuff","Distributed Tracing","APM","OpenTelemetry"],summary:"SkyWalking 10.x positioning and Java Agent quick start, then databuff-proxy dual-write so the same traces land in OAP and DataBuffâcompare services, topology, Trace, and AI Q&A.",cover:"/blog/skywalking-databuff-trace-practice/assets/cover.png",readingMinutes:12,htmlPath:"skywalking-databuff-trace-practice/en
314/body.html",altLocale:"skywalking-databuff-trace-practice-zh",sourceHtml:"packages/blog-site/content/skywalking-databuff-trace-practice/en.html"},{id:"skywalking-databuff-trace-practice-zh",slug:"skywalking-databuff-trace-practice",locale:"zh",title:"å¾®æå¡é¾è·¯è¿½è¸ª Skywalking+databuff 宿",date:"2026-08-21",tags:["SkyWalking","DataBuff","é¾è·¯è¿½è¸ª","APM","OpenTelemetry"],summary:"讲æ¸
SkyWalking 10.x å®ä½ä¸ Agent å¿«éæ¥å
¥ï¼åç¨ databuff-proxy åå让å䏿¹ Trace è¿ OAP ä¸ DataBuffï¼å¯¹ç
§æå¡ãææãTrace ä¸ AI 鮿°ã",cover:"/blog/skywalking-databuff-trace-practice/assets/cover.png",readingMinutes:12,htmlPath:"skywalking-databuff-trace-practice/zh/body.html",altLocale:"skywalking-databuff-trace-practice-en",sourceHtml:"packages/blog-site/content/skywalking-databuff-trace-practice/zh.html"},{id:"grafana-lgtm-vs-databuff-en",slug:"grafana-lgtm-vs-databuff",locale:"en",title:"Grafana's LGTM Stack â Tempo and Loki Are Starting to Feel Dated",date:"2026-08-19",tags:["Grafana","LGTM","Tempo","Loki","DataBuff","APM"],summary:"Same slow checkout: four hops from metrics to Tempo to Loki on Grafana LGTM. DataBuff drills down from the service list, then you can ask the AI and check the platform itself.",cover:"/blog/grafana-lgtm-vs-databuff/assets/gf-service-map.png",readingMinutes:5,htmlPath:"grafana-lgtm-vs-databuff/en/body.html",altLocale:"grafana-lgtm-vs-databuff-zh",sourceHtml:"packages/blog-site/content/grafana-lgtm-vs-databuff/en.html"},{id:"grafana-lgtm-vs-databuff-zh",slug:"grafana-lgtm-vs-databuff",locale:"zh",title:"Grafana çå
¨å®¶æ¡¶ï¼TempoãLoki çèµ·æ¥è¿æ¶äº",date:"2026-08-19",tags:["Grafana","LGTM","Tempo","Loki","DataBuff","APM"],summary:"åä¸ä¸ª checkout åæ
¢ï¼Grafana LGTM 仿æ å° Tempoãåå° Loki è¦å 4 段ï¼DataBuff 仿å¡å表ä¸è·¯ä¸é»ï¼è¿è½é® AIãçå¹³å°ç¶æã",cover:"/blog/grafana-lgtm-vs-databuff/assets/gf-service-map.png",readingMinutes:5,htmlPath:"grafana-lgtm-vs-databuff/zh/body.html",altLocale:"grafana-lgtm-vs-databuff-en",sourceHtml:"packages/blog-site/content/grafana-lgtm-vs-databuff/zh.html"},{id:"deepseek-harness-self-evolution-en",slug:"deepseek-harness-self-evolution",locale:"en",title:"DeepSeek Harness Hit 126k Stars â What Self-Evolution Means for Software (and Observability)",date:"2026-08-16",tags:["DeepSeek","Self-Evolution","AI Agent","Observability","APM"],summary:"deepseek-harness hit 126k GitHub stars in three days. I asked it to add a sidebar item live, then mapped self-ops, self-Q&A, and self-evolution to what DataBuff ships and what observability can safely adopt.",cover:"/blog/deepseek-harness-self-evolution/assets/dsh-github-stars.jpg",readingMinutes:4,htmlPath:"deepseek-harness-self-evolution/en/body.html",altLocale:"deepseek-harness-self-evolution-zh",sourceHtml:"packages/blog-site/content/deepseek-harness-self-evolution/en.html"},{id:"deepseek-harness-self-evolution-zh",slug:"deepseek-harness-self-evolution",locale:"zh",title:"deepseek-harness 太çäºï¼å¼å¯è½¯ä»¶èªè¿åçæ¶ä»£",date:"2026-08-16",tags:["deepseek-harness","èªè¿å","AI Agent","å¯è§æµæ§","APM"],summary:"deepseek-harness å
¬å¼ä¸å¤© star ç ´ 12 ä¸ï¼æè®©å®å½åºç»èªå·±å èå项ï¼åæèªè¿ç»´ / èªçç / èªè¿å对ç
§ DataBuff å·²åçåè§æµé¢åè¿è½æä¹å¦ã",cover:"/blog/deepseek-harness-self-evolution/assets/dsh-github-stars.jpg",readingMinutes:4,htmlPath:"deepseek-harness-self-evolution/zh/body.html",altLocale:"deepseek-harness-self-evolution-en",sourceHtml:"packages/blog-site/content/deepseek-harness-self-evolution/zh.html"},{id:"nginx-opentelemetry-e2e-en",slug:"nginx-opentelemetry-e2e",locale:"en",title:"Troubleshooting Stuck at Nginx? Instrument It with OpenTelemetry Too",date:"2026-08-12",tags:["OpenTelemetry","Nginx","APM","Observability","Tracing"],summary:"Instrument Nginx with the official OTel module and Java with the agent: gRPC 4317 + HTTP 4318 into DataBuff as one Trace across Nginx â Java â Redis. Two install paths plus Doris verification.",cover:"/blog/nginx-opentelemetry-e2e/assets/trace-detail-nginx-java-redis.png",readingMinutes:3,htmlPath:"nginx-opentelemetry-e2e/en/body.html",altLocale:"nginx-opentelemetry-e2e-zh",sourceHtml:"packages/blog-site/content/nginx-opentelemetry-e2e/en.html"},{id:"top10-opensource-apm-tools-2026-en",slug:"top10-opensource-apm-tools-2026",locale:"en",title:"Top 10 Open Source APM Tools",date:"2026-08-12",tags:["APM","OpenTelemetry","Open Source","SkyWalking","2026"],summary:"Ranks ten mainstream open-source APM options by unified observability, OTLP, and deploy complexity â with DataBuff as the #1 all-in-one pick, Apache SkyWalking positioning, a comparison table, and FAQ.",cover:"/blog/top10-opensource-apm-tools-2026/assets/cover-topology.png",readingMinutes:12,htmlPath:"top10-opensource-apm-tools-2026/en/body.html",altLocale:"top10-opensource-apm-tools-2026-zh",sourceHtml:"packages/blog-site/content/top10-opensource-apm-tools-2026/en.html"},{id:"nginx-opentelemetry-e2e-zh",slug:"nginx-opentelemetry-e2e",locale:"zh",title:"æéæ»å¡å¨ Nginxï¼ç»å®ä¹è£
ä¸ OpenTelemetry",date:"2026-08-12",tags:["OpenTelemetry","Nginx","APM","å¯è§æµæ§","Trace"],summary:"ç» Nginx è£
宿¹ OTel 模åãç» Java ææ¢éï¼gRPC 4317 + HTTP 4318 åéé䏿¥ï¼å¨ DataBuff æ¼æ Nginx â
314 Java â Redis 䏿¡å®æ´ Traceãå«éå/åéä¸¤ç§æ¥å
¥ä¸ Doris æ ¸å¯¹ã",cover:"/blog/nginx-opentelemetry-e2e/assets/trace-detail-nginx-java-redis.png",readingMinutes:4,htmlPath:"nginx-opentelemetry-e2e/zh/body.html",altLocale:"nginx-opentelemetry-e2e-en",sourceHtml:"packages/blog-site/content/nginx-opentelemetry-e2e/zh.html"},{id:"top10-opensource-apm-tools-2026-zh",slug:"top10-opensource-apm-tools-2026",locale:"zh",title:"Top 10 弿ºAPMçæ§å·¥å
·",date:"2026-08-12",tags:["APM","OpenTelemetry","弿º","SkyWalking","2026"],summary:"æç»ä¸å¯è§æµãOTLPãé¨ç½²å¤æåº¦æ¢³ç 10 款主æµå¼æº APMï¼æ¦é¦è¯´æ DataBuff 为ä½éååä¸ä½åé¦éï¼å¹¶åæ¸
Apache SkyWalking å®ä½ï¼éå¯¹æ¯æ»è¡¨ä¸ FAQã",cover:"/blog/top10-opensource-apm-tools-2026/assets/cover-topology.png",readingMinutes:12,htmlPath:"top10-opensource-apm-tools-2026/zh/body.html",altLocale:"top10-opensource-apm-tools-2026-en",sourceHtml:"packages/blog-site/content/top10-opensource-apm-tools-2026/zh.html"},{id:"databuff-v017-release-en",slug:"databuff-v017-release",locale:"en",title:"DataBuff v0.1.7 Release Notes",date:"2026-08-10",tags:["Release","APM","AIOps","v0.1.7","Self-Monitoring"],summary:"Platform self-monitoring and self-troubleshooting, AI inspection with self-ops fixes, multi FE/BE host lists, non-HTTP endpoint analysis, and faster span queries â with upgrade steps and two screenshots.",cover:"/blog/databuff-v017-release/assets/01-selfmonitor-overview.png",readingMinutes:6,htmlPath:"databuff-v017-release/en/body.html",altLocale:"databuff-v017-release-zh",sourceHtml:"packages/blog-site/content/databuff-v017-release/en.html"},{id:"databuff-self-monitoring-en",slug:"databuff-self-monitoring",locale:"en",title:"What Does a Self-Caring Software Look Like? â DataBuff Self-Monitoring & Self-Troubleshooting",date:"2026-08-10",tags:["Self-Monitoring","Self-Troubleshooting","AIOps","Observability","APM"],summary:"DataBuff treats itself as a business system being monitored: metrics with built-in tuning params, one-sentence platform inspection, and a full diagnosis-to-fix loop that tunes parameters and restarts on its own. One real data-loss case, end to end.",cover:"/blog/databuff-self-monitoring/assets/overview.png",readingMinutes:6,htmlPath:"databuff-self-monitoring/en/body.html",altLocale:"databuff-self-monitoring-zh",sourceHtml:"packages/blog-site/content/databuff-self-monitoring/en.html"},{id:"databuff-vs-skywalking-en",slug:"databuff-vs-skywalking",locale:"en",title:"DataBuff vs SkyWalking: Same-Host Lab Comparison",date:"2026-08-10",tags:["APM","SkyWalking","AIOps","Comparison","OpenTelemetry"],summary:"Same-host lab: DataBuff v0.1.7 vs SkyWalking 10.4.0 â seven AI capabilities, APM matrix, alerting, and screenshots. Profiling/dashboards favor SW; call analysis/service flow/dedicated pages/smart alerts favor DataBuff.",cover:"/blog/databuff-vs-skywalking/assets/databuff-ai-home.png",readingMinutes:12,htmlPath:"databuff-vs-skywalking/en/body.html",altLocale:"databuff-vs-skywalking-zh",sourceHtml:"packages/blog-site/content/databuff-vs-skywalking/en.html"},{id:"databuff-v017-release-zh",slug:"databuff-v017-release",locale:"zh",title:"DataBuff v0.1.7 åçéå",date:"2026-08-10",tags:["åç","APM","AIOps","v0.1.7","èªçæ§"],summary:"å¹³å°èªçæ§ä¸èªæéä¸çº¿ï¼äº§åççä¸å®¶å¯å·¡æ£å¹¶æå»ºè®®æ¹åæ°ï¼å¦å®åå¤ FE/BEãé HTTP æ¥å£åæä¸é¾è·¯æ¥è¯¢å é â å«å级æå¼ä¸ä¸¤å¼ 宿æªå¾ã",cover:"/blog/databuff-v017-release/assets/01-selfmonitor-overview.png",readingMinutes:6,htmlPath:"databuff-v017-release/zh/body.html",altLocale:"databuff-v017-release-en",sourceHtml:"packages/blog-site/content/databuff-v017-release/zh.html"},{id:"databuff-self-monitoring-zh",slug:"databuff-self-monitoring",locale:"zh",title:"䏿¬¾ä¼ç
§é¡¾èªå·±ç软件é¿ä»ä¹æ ·ï¼ââDataBuff èªçæ§ä¸èªæé",date:"2026-08-10",tags:["èªçæ§","èªæé","AIOps","å¯è§æµæ§","APM"],summary:"DataBuff æèªå·±ä¹å½æè¢«çæ§çä¸å¡ç³»ç»ï¼ææ èªå¸¦åæ°è¯´æãä¸å¥è¯è§¦åå
¨å¹³å°å·¡æ£ãè¿è½æä¸¢æ°ææ¥å°åºãæ¹åæ°éå¯èªå·±ä¿®å¥½ãç¨ä¸ä¸ªçå®ä¸¢æ°æ¡ä¾è®²å®æ´éç¯ã",cover:"/blog/databuff-self-monitoring/assets/overview.png",readingMinutes:5,htmlPath:"databuff-self-monitoring/zh/body.html",altLocale:"databuff-self-monitoring-en",sourceHtml:"packages/blog-site/content/databuff-self-monitoring/zh.html"},{id:"databuff-vs-skywalking-zh",slug:"databuff-vs-skywalking",locale:"zh",title:"两款主æµç弿ºAPMçæ§å¯¹æ¯ï¼skywalking vs databuff",date:"2026-08-10",tags:["APM","SkyWalking","AIOps","éå","OpenTelemetry"],summary:"åæºå®æµï¼DataBuff v0.1.7 vs SkyWalking 10.4.0 â 7 大 AI è½åãAPM 20 项ãåè¦å¯¹ç
§ä¸å
¨é
314æªå¾ãProfiling/仪表çå SWï¼è°ç¨åæ/æå¡æµ/ä¸é¡µ/æºè½åè¦å DataBuffã",cover:"/blog/databuff-vs-skywalking/assets/databuff-ai-home.png",readingMinutes:12,htmlPath:"databuff-vs-skywalking/zh/body.html",altLocale:"databuff-vs-skywalking-en",sourceHtml:"packages/blog-site/content/databuff-vs-skywalking/zh.html"},{id:"databuff-obi-ebpf-traces-en",slug:"databuff-obi-ebpf-traces",locale:"en",title:"The OpenTelemetry Ecosystem Is Strong â DataBuff Can Plug Into Its eBPF Trace Path",date:"2026-08-06",tags:["OpenTelemetry","eBPF","Kubernetes","Observability","APM"],summary:"OpenTelemetry's OBI runs as a DaemonSet with eBPF to capture HTTP calls without touching app Pods. Point it at DataBuff for services, topology, and traces â with reproducible YAML and live screenshots.",cover:"/blog/databuff-obi-ebpf-traces/assets/05-services.png",readingMinutes:4,htmlPath:"databuff-obi-ebpf-traces/en/body.html",altLocale:"databuff-obi-ebpf-traces-zh",sourceHtml:"packages/blog-site/content/databuff-obi-ebpf-traces/en.html"},{id:"databuff-obi-ebpf-traces-zh",slug:"databuff-obi-ebpf-traces",locale:"zh",title:"OpenTelemetry 社åºå¤ªå¼ºå¤§äºï¼DataBuff ä¹å¯ä»¥åä¸å®ç eBPF é¾è·¯äº",date:"2026-08-06",tags:["OpenTelemetry","eBPF","Kubernetes","å¯è§æµæ§","APM"],summary:"OpenTelemetry ç OBI ç¨ DaemonSet + eBPF æè·¯é HTTP é¾è·¯ï¼ä¸å¡ Pod ä¸å¨ï¼æ¨å° DataBuff å³å¯å¨ UI çæå¡ãææå Traceãå« K8s 宿µ YAML ä¸éªæ¶æªå¾ã",cover:"/blog/databuff-obi-ebpf-traces/assets/05-services.png",readingMinutes:4,htmlPath:"databuff-obi-ebpf-traces/zh/body.html",altLocale:"databuff-obi-ebpf-traces-en",sourceHtml:"packages/blog-site/content/databuff-obi-ebpf-traces/zh.html"},{id:"databuff-v016-release-en",slug:"databuff-v016-release",locale:"en",title:"DataBuff v0.1.6 Release Notes",date:"2026-08-03",tags:["Release","APM","AIOps","v0.1.6"],summary:"Faster span list queries, a new self-latency dimension in endpoint breakdown, fixed mutation alarm direction, AI stability testing, and a refined databuff-proxy dual-write migration path so SkyWalking users can run DataBuff in parallel with zero business-side changes â with upgrade steps and two screenshots.",cover:"/blog/databuff-v016-release/assets/01-databuff-proxy-admin.png",readingMinutes:6,htmlPath:"databuff-v016-release/en/body.html",altLocale:"databuff-v016-release-zh",sourceHtml:"packages/blog-site/content/databuff-v016-release/en.html"},{id:"databuff-v016-release-zh",slug:"databuff-v016-release",locale:"zh",title:"DataBuff v0.1.6 åçéå",date:"2026-08-03",tags:["åç","APM","AIOps","v0.1.6"],summary:"Span å表æ¥è¯¢å éãæ¥å£èæ¶åè§£æ°å¢ãæ¥å£èªèº«èæ¶ã维度ãåè¦åç¯æ¯æ£æµä¿®æ£ãAI ç¨³å®æ§æµè¯ï¼å¹¶å®å databuff-proxy ååè¿ç§»è·¯å¾ï¼SkyWalking ç¨æ·ä¸å¡é¶æ¹å¨å³å¯å¹¶è· DataBuff â å«å级æå¼ä¸ä¸¤å¼ 宿æªå¾ã",cover:"/blog/databuff-v016-release/assets/01-databuff-proxy-admin.png",readingMinutes:6,htmlPath:"databuff-v016-release/zh/body.html",altLocale:"databuff-v016-release-en",sourceHtml:"packages/blog-site/content/databuff-v016-release/zh.html"},{id:"skywalking-to-databuff-smooth-migration-en",slug:"skywalking-to-databuff-smooth-migration",locale:"en",title:"How to Smoothly Migrate from SkyWalking to DataBuff",date:"2026-08-02",tags:["APM","SkyWalking","Proxy","Migration","Observability"],summary:"Production on SkyWalking Agents? Try DataBuff first without a hard cutover: databuff-proxy takes over :11800 on the OAP host for dual-write, zero business restart, then turn off SW ingestion once the comparison is satisfactory.",cover:"/blog/skywalking-to-databuff-smooth-migration/assets/databuff-topology.png",readingMinutes:8,htmlPath:"skywalking-to-databuff-smooth-migration/en/body.html",altLocale:"skywalking-to-databuff-smooth-migration-zh",sourceHtml:"packages/blog-site/content/skywalking-to-databuff-smooth-migration/en.html"},{id:"skywalking-to-databuff-smooth-migration-zh",slug:"skywalking-to-databuff-smooth-migration",locale:"zh",title:"SkyWalking å¦ä½å¹³æ»è¿æ¸¡å° DataBuff",date:"2026-08-02",tags:["APM","SkyWalking","Proxy","è¿ç§»","å¯è§æµæ§"],summary:"ç产å
¨æ¯ SkyWalking Agentï¼è½ä¸è½å
è¯ DataBuff å«ä¸æåæ¢ï¼ç¨ databuff-proxy å¨å OAP 宿主æºå ä½ :11800 ååï¼ä¸å¡é¶éå¯ï¼å¯¹ç
§æ»¡æå管ç页å
³ SW åå
¥ã",cover:"/blog/skywalking-to-databuff-smooth-migration/assets/databuff-topology.png",readingMinutes:8,htmlPath:"skywalking-to-databuff-smooth-migration/zh/body.html",altLocale:"skywalking-to-databuff-smooth-migration-en",sourceHtml:"packages/blog-site/content/skywalking-to-databuff-smooth-migration/zh.html"},{id:"apm-ontology-model-en",slug:"apm-ontology-model",locale:"en",title:"Palantir Made Ontology Hot â Can APM Troubleshooting Stop at Ontology Alone?",date:"2026-07-31",tags:["APM","Ontology","Observability","Architecture"],summary:"From four traces to an APM ontology (entities + relations â metric tables), then a connection-pool example showing ontology alone is not enough â troubleshooting needs logic modeling (entry â operation â remote three-part latency).",cover:"/blog/apm-ontology-model/assets/connection-pool-logic.png",readingMinutes:7,htmlPath:"apm-ontology-model/en/body.html",altLocale:"apm-ontology-model-zh",sourceHtml:"packages/blog-site/content/apm-ontology-model/en.html"},{id:"apm-ontology-model-zh",slug:"apm-ontology-model",locale:"zh",title:"Palantir 带ç«äºæ¬ä½ï¼APM æéæäºæ¬ä½å°±å¤åï¼",date:"2026-07-31",tags:["APM","Ontology","å¯è§æµæ§","æ¶æè®¾è®¡","AI"],summary:"ä» 4 æ¡ Trace æåº APM æ¬ä½ï¼å®ä½ + å
³ç³» â metric 表ï¼ï¼åç¨è¿æ¥æ± 说æãå
ææ¬ä½ä¸å¤ãââæéè¿è¦é»è¾å»ºæ¨¡ï¼å
¥å£ â æä½ â è¿ç¨ä¸è¦ç´ ï¼ã",cover:"/blog/apm-ontology-model/assets/connection-pool-logic.png",readingMinutes:7,htmlPath:"apm-ontology-model/zh/body.html",altLocale:"apm-ontology-model-en",sourceHtml:"packages/blog-site/content/apm-ontology-model/zh.html"},{id:"skywalking-stronger-backend-en",slug:"skywalking-stronger-backend",locale:"en",title:"A Stronger Backend for SkyWalking",date:"2026-07-30",tags:["SkyWalking","DataBuff","AI APM","Observability","gRPC","Open Source"],summary:"",cover:"/blog/skywalking-stronger-backend/assets/cover.png",readingMinutes:7,htmlPath:"skywalking-stronger-backend/en/body.html",altLocale:"skywalking-stronger-backend-zh",sourceHtml:"packages/blog-site/content/skywalking-stronger-backend/en.html"},{id:"databuff-proxy-dual-write-stability-en",slug:"databuff-proxy-dual-write-stability",locale:"en",title:"databuff-proxy Dual-Write Stability",date:"2026-07-30",tags:["APM","SkyWalking","Proxy","Migration","Performance"],summary:"SkyWalking Agent dual-write via databuff-proxy under QPS=35: under 1 CPU core, ~47MB RSS, abnormal scenarios isolate cleanly â with 6-hour CPU/mem/network screenshots.",cover:"/blog/databuff-proxy-dual-write-stability/assets/proxy-cpu-6h.png",readingMinutes:6,htmlPath:"databuff-proxy-dual-write-stability/en/body.html",altLocale:"databuff-proxy-dual-write-stability-zh",sourceHtml:"packages/blog-site/content/databuff-proxy-dual-write-stability/en.html"},{id:"skywalking-stronger-backend-zh",slug:"skywalking-stronger-backend",locale:"zh",title:"å¯ä»¥æ¥å
¥skywalkingçæ´å¼ºå¤§ç弿ºå端",date:"2026-07-30",tags:["SkyWalking","DataBuff","AI鮿°","å¯è§æµ","é¾è·¯è¿½è¸ª","弿º"],summary:"",cover:"/blog/skywalking-stronger-backend/assets/cover.png",readingMinutes:7,htmlPath:"skywalking-stronger-backend/zh/body.html",altLocale:"skywalking-stronger-backend-en",sourceHtml:"packages/blog-site/content/skywalking-stronger-backend/zh.html"},{id:"databuff-proxy-dual-write-stability-zh",slug:"databuff-proxy-dual-write-stability",locale:"zh",title:"databuff-proxy ååç¨³å®æ§éªè¯",date:"2026-07-30",tags:["APM","SkyWalking","Proxy","è¿ç§»","æ§è½æµè¯"],summary:"SkyWalking Agent ç» databuff-proxy åååæµï¼QPS=35ï¼ï¼è¿ç¨ä¸å° 1 æ ¸ãå
å约 47MBï¼å¼å¸¸åºæ¯è¡¨ç°æ£å¸¸ â å« 6 å°æ¶ CPU/å
å/ç½ç»æªå¾ã",cover:"/blog/databuff-proxy-dual-write-stability/assets/proxy-cpu-6h.png",readingMinutes:6,htmlPath:"databuff-proxy-dual-write-stability/zh/body.html",altLocale:"databuff-proxy-dual-write-stability-en",sourceHtml:"packages/blog-site/content/databuff-proxy-dual-write-stability/zh.html"},{id:"opensource-datadog-finally-done-en",slug:"opensource-datadog-finally-done",locale:"en",title:"Someone Finally Built an Open-Source Datadog",date:"2026-07-28",tags:["Observability","Datadog","Databuff","AI","OTLP","Open Source"],summary:"",cover:"/blog/opensource-datadog-finally-done/assets/cover.png",readingMinutes:8,htmlPath:"opensource-datadog-finally-done/en/body.html",altLocale:"opensource-datadog-finally-done-zh",sourceHtml:"packages/blog-site/content/opensource-datadog-finally-done/en.html"},{id:"databuff-ops-expert-install-troubleshoot-en",slug:"databuff-ops-expert-install-troubleshoot",locale:"en",title:"Install Failed but the Page Still Opens â Ops Expert Restores Doris",date:"2026-07-28",tags:["Ops Expert","Self-healing","Doris","APM","AI Agent"],summary:"Install exits n
314on-zero but the UI still opens: troubleshooting mode keeps the fix path alive; Ops Expert SSHs in, fixes Doris BE OOM, and validates full-stack health â plus in-product Q&A for OTel ingest and LLM setup.",cover:"/blog/databuff-ops-expert-install-troubleshoot/assets/00-simple-architecture.jpg",readingMinutes:3,htmlPath:"databuff-ops-expert-install-troubleshoot/en/body.html",altLocale:"databuff-ops-expert-install-troubleshoot-zh",sourceHtml:"packages/blog-site/content/databuff-ops-expert-install-troubleshoot/en.html"},{id:"opensource-datadog-finally-done-zh",slug:"opensource-datadog-finally-done",locale:"zh",title:"弿ºç Datadogï¼ç»äºæäººåæäº",date:"2026-07-28",tags:["å¯è§æµ","Datadog","Databuff","AI鮿°","OTLP","弿º"],summary:"",cover:"/blog/opensource-datadog-finally-done/assets/cover.png",readingMinutes:8,htmlPath:"opensource-datadog-finally-done/zh/body.html",altLocale:"opensource-datadog-finally-done-en",sourceHtml:"packages/blog-site/content/opensource-datadog-finally-done/zh.html"},{id:"databuff-ops-expert-install-troubleshoot-zh",slug:"databuff-ops-expert-install-troubleshoot",locale:"zh",title:"èªè¿ç»´ + èªççï¼AI æ¶ä»£è½¯ä»¶çèªæä¿®å
»",date:"2026-07-28",tags:["è¿ç»´ä¸å®¶","Ops Expert","èªè¿ç»´","Doris","APM"],summary:"install å¤±è´¥ä½ Web è½å¼ï¼æé模å¼ä¿çä¿®å¤ééï¼è¿ç»´ä¸å®¶ SSH 䏿ºæ Doris BE OOM ä¿®å°å
¨æ Healthyï¼åä¸å
¥å£äº§åççæ OTel æ¥å
¥ä¸ LLM é
ç½®ã",cover:"/blog/databuff-ops-expert-install-troubleshoot/assets/00-simple-architecture.jpg",readingMinutes:4,htmlPath:"databuff-ops-expert-install-troubleshoot/zh/body.html",altLocale:"databuff-ops-expert-install-troubleshoot-en",sourceHtml:"packages/blog-site/content/databuff-ops-expert-install-troubleshoot/zh.html"},{id:"skywalking-underlying-principles-full-trace-2026-en",slug:"skywalking-underlying-principles-full-trace-2026",locale:"en",title:"SkyWalking Internals and Full-Link Monitoring Explained",date:"2026-07-27",tags:["SkyWalking","APM","OTLP","Distributed Tracing","AI"],summary:"From Google Dapper and OTLP to Trace/Span mechanics, SkyWalking Agent and OAP architecture, plus DataBuff AI Q&A and native gRPC :11800 ingest for intelligent analysis of the same trace data.",cover:"/blog/skywalking-underlying-principles-full-trace-2026/assets/05-sw-topology.png",readingMinutes:13,htmlPath:"skywalking-underlying-principles-full-trace-2026/en/body.html",altLocale:"skywalking-underlying-principles-full-trace-2026-zh",sourceHtml:"packages/blog-site/content/skywalking-underlying-principles-full-trace-2026/en.html"},{id:"skywalking-otel-selection-guide-en",slug:"skywalking-otel-selection-guide",locale:"en",title:"Open-Source APM Selection Guide: SkyWalking or OpenTelemetry",date:"2026-07-27",tags:["SkyWalking","OpenTelemetry","open-source APM","selection","OTLP"],summary:"With OpenTelemetry driving unified ingestion, teams already on SkyWalking can use a five-dimension checklist, three-phase parallel path, and POC acceptance criteria to decide whether to stay the course or validate an OTL",cover:"/blog/skywalking-otel-selection-guide/assets/global-cockpit-a-3.png",readingMinutes:5,htmlPath:"skywalking-otel-selection-guide/en/body.html",altLocale:"skywalking-otel-selection-guide-zh",sourceHtml:"packages/blog-site/content/skywalking-otel-selection-guide/en.html"},{id:"skywalking-vs-databuff-how-to-choose-en",slug:"skywalking-vs-databuff-how-to-choose",locale:"en",title:"SkyWalking vs DataBuff: How to Choose Between Two Open-Source APMs",date:"2026-07-27",tags:["SkyWalking","open-source APM","distributed tracing","application performance monitoring","DataBuff comparison"],summary:"An objective comparison of SkyWalking and the open-source APM DataBuff: OTLP ingestion, three-component architecture, distributed tracing, and AI Q&A. Ten-dimension table plus scenario decision tree for APM selection",cover:"/blog/skywalking-vs-databuff-how-to-choose/assets/global-topology-a-3.png",readingMinutes:8,htmlPath:"skywalking-vs-databuff-how-to-choose/en/body.html",altLocale:"skywalking-vs-databuff-how-to-choose-zh",sourceHtml:"packages/blog-site/content/skywalking-vs-databuff-how-to-choose/en.html"},{id:"skywalking-otel-migration-dual-stack-en",slug:"skywalking-otel-migration-dual-stack",locale:"en",title:"Migrating from SkyWalking to OpenTelemetry: Dual-Stack Coexistence and Distributed Tracing in Practice",date:"2026-07-27",tags:["SkyWalking migration","OpenTelemetry","dual-stack coexistence","open source","APM"],summary:"Practical guide for SkyWalking users migrating gradually to OpenTelemetry: OTLP dual-stack coexistence, Collector dual export, and parallel distributed tracing validation. Open-source APM for new traffic without a big-ba",cover:"/blog/skywalking-otel-migration-dual-stack/assets/service-list-a-3.png",readingMinutes:6,htmlPath:"skywalking-otel-migration-dual-stack/en/body.html",altLocale:"skywalking-otel-migration-dual-stack-zh",sourceHtml:"packages/blog-site/content/skywalking-otel-migration-dual-stack/en.html"}
314,{id:"skywalking-zipkin-pinpoint-databuff-jaeger-comparison-en",slug:"skywalking-zipkin-pinpoint-databuff-jaeger-comparison",locale:"en",title:"Major Open-Source APM: SkyWalking / Zipkin / Pinpoint / DataBuff / Jaeger â Full Comparison",date:"2026-07-27",tags:["SkyWalking","open source APM","distributed tracing","application performance monitoring","Zipkin"],summary:"Summary: Compare SkyWalking, Zipkin, Pinpoint, Jaeger, and DataBuff across five dimensionsâprobe ecosystem, collector scalability, trace analysis, topology, and usabilityâwith emphasis on OpenTelemetry probe advantages.",cover:null,readingMinutes:8,htmlPath:"skywalking-zipkin-pinpoint-databuff-jaeger-comparison/en/body.html",altLocale:"skywalking-zipkin-pinpoint-databuff-jaeger-comparison-zh",sourceHtml:"packages/blog-site/content/skywalking-zipkin-pinpoint-databuff-jaeger-comparison/en.html"},{id:"opensource-apm-beyond-skywalking-2026-en",slug:"opensource-apm-beyond-skywalking-2026",locale:"en",title:"Beyond SkyWalking: Open-Source APM Worth Watching in 2026",date:"2026-07-27",tags:["SkyWalking","open source APM","application performance monitoring","APM recommendations"],summary:"2026 open-source APM recommendations beyond SkyWalking: match OTLP-native, AI Q&A, and three-component deployment paths to your team profile.",cover:"/blog/opensource-apm-beyond-skywalking-2026/assets/service-list-a-3.png",readingMinutes:4,htmlPath:"opensource-apm-beyond-skywalking-2026/en/body.html",altLocale:"opensource-apm-beyond-skywalking-2026-zh",sourceHtml:"packages/blog-site/content/opensource-apm-beyond-skywalking-2026/en.html"},{id:"skywalking-ai-native-agent-monitoring-en",slug:"skywalking-ai-native-agent-monitoring",locale:"en",title:"From Traditional APM to AI Native: An Agent Monitoring Path for SkyWalking Users",date:"2026-07-27",tags:["SkyWalking","agent monitoring","AI Native","APM","distributed tracing"],summary:"Evolution path for SkyWalking users toward AI-native agent monitoring: OTel instrumentation, trace correlation, and conversational APM Q&A.",cover:"/blog/skywalking-ai-native-agent-monitoring/assets/trace-list-a-3.png",readingMinutes:7,htmlPath:"skywalking-ai-native-agent-monitoring/en/body.html",altLocale:"skywalking-ai-native-agent-monitoring-zh",sourceHtml:"packages/blog-site/content/skywalking-ai-native-agent-monitoring/en.html"},{id:"skywalking-trace-troubleshooting-en",slug:"skywalking-trace-troubleshooting",locale:"en",title:"SkyWalking Trace Troubleshooting in Practice: Advanced Distributed Tracing and OTel Supplement Paths",date:"2026-07-27",tags:["SkyWalking","distributed tracing","trace","open-source APM","OpenTelemetry"],summary:"Advanced SkyWalking distributed trace troubleshooting: topology vs Trace cross-check, Jaeger-class boundaries, and OTel supplement validation paths.",cover:"/blog/skywalking-trace-troubleshooting/assets/global-topology-a-3.png",readingMinutes:8,htmlPath:"skywalking-trace-troubleshooting/en/body.html",altLocale:"skywalking-trace-troubleshooting-zh",sourceHtml:"packages/blog-site/content/skywalking-trace-troubleshooting/en.html"},{id:"skywalking-selfbuild-tco-en",slug:"skywalking-selfbuild-tco",locale:"en",title:"Self-Hosted SkyWalking vs Lightweight OTel APM: Application Performance Monitoring TCO Comparison",date:"2026-07-27",tags:["SkyWalking","application performance monitoring","TCO","open-source APM","self-hosted APM"],summary:"Qualitative TCO comparison of self-hosted SkyWalking vs lightweight OTLP three-component APM: hidden ops costs, component count, and parallel transition paths.",cover:"/blog/skywalking-selfbuild-tco/assets/global-topology-a-3.png",readingMinutes:8,htmlPath:"skywalking-selfbuild-tco/en/body.html",altLocale:"skywalking-selfbuild-tco-zh",sourceHtml:"packages/blog-site/content/skywalking-selfbuild-tco/en.html"},{id:"skywalking-otel-unified-selection-en",slug:"skywalking-otel-unified-selection",locale:"en",title:"OTel Unified Observability: An Open-Source APM Selection Guide for SkyWalking Ecosystem Users",date:"2026-07-27",tags:["SkyWalking","OpenTelemetry","open-source APM","distributed tracing","unified observability"],summary:"OTel unified observability path for SkyWalking ecosystem users: OTel ingestion layer, parallel backends, four-phase roadmap, and open-source APM selection criteria.",cover:"/blog/skywalking-otel-unified-selection/assets/global-topology-a-3.png",readingMinutes:6,htmlPath:"skywalking-otel-unified-selection/en/body.html",altLocale:"skywalking-otel-unified-selection-zh",sourceHtml:"packages/blog-site/content/skywalking-otel-unified-selection/en.html"},{id:"skywalking-architecture-databuff-compare-2026-en",slug:"skywalking-architecture-databuff-compare-2026",locale:"en",title:"Open Source SkyWalking Architecture Deep Dive and Competitor Comparison 2026",date:"2026-07-27",tags:["SkyWalking","open source APM","architecture design","OpenTelemetry","DataBuff"],summary:"Apache SkyWalking 10.4 architecture evolution and four-layer stack breakdown; compared with DataBuff OTLP three-component stack and AI-native Q&A/MCP. Official docs highlights and Demo screenshots for 2026 open-sourc",cover:"/blog/skywalking-architecture-databuff-compare-2026/assets/01-ai-platform-home-3.png",readingMinutes:7,htmlPath:"skywalking-architecture-databuff-compare-2026/en/body.html",altLocale:"skywalking-architecture-databuff-compare-2026-zh",sourceHtml:"packages/blog-site/content/skywalking-architecture-databuff-compare-2026/en.html"},{id:"skywalking-intro-deploy-javaagent-2026-en",slug:"skywalking-intro-deploy-javaagent-2026",locale:"en",title:"SkyWalking Overview, Deployment, and Java Agent Installation Guide",date:"2026-07-27",tags:["SkyWalking","Java Agent","deployment","open source APM","OpenTelemetry"],summary:"From SkyWalking four-layer architecture and Docker backend deployment to non-intrusive Java Agent integration, compared with DataBuff OTLP three-component stack and AI Q&A. Copy-paste commands and Demo screenshots in",cover:"/blog/skywalking-intro-deploy-javaagent-2026/assets/architecture_2160x720.png",readingMinutes:8,htmlPath:"skywalking-intro-deploy-javaagent-2026/en/body.html",altLocale:"skywalking-intro-deploy-javaagent-2026-zh",sourceHtml:"packages/blog-site/content/skywalking-intro-deploy-javaagent-2026/en.html"},{id:"skywalking-quickstart-guide-2026-en",slug:"skywalking-quickstart-guide-2026",locale:"en",title:"SkyWalking Quick Start Guide",date:"2026-07-27",tags:["SkyWalking","quick start","Java Agent","Docker deployment","open source APM"],summary:"Get started with Apache SkyWalking from zero: four-layer architecture overview, Docker one-click backend, non-intrusive Java Agent integration, Horizon UI topology/Trace walkthrough with screenshots, plus DataBuff AI-nat",cover:"/blog/skywalking-quickstart-guide-2026/assets/architecture_2160x720.png",readingMinutes:10,htmlPath:"skywalking-quickstart-guide-2026/en/body.html",altLocale:"skywalking-quickstart-guide-2026-zh",sourceHtml:"packages/blog-site/content/skywalking-quickstart-guide-2026/en.html"},{id:"databuff-v015-release-en",slug:"databuff-v015-release",locale:"en",title:"DataBuff v0.1.5 Release Notes",date:"2026-07-27",tags:["Release","APM","OpenTelemetry","v0.1.5"],summary:"Ingest hardening, OTLP compression, log detail drawer, AI Mermaid, resource filters, and Schema V005 â with upgrade steps and links to the SkyWalking write benchmark.",cover:"/blog/databuff-v015-release/assets/05-ai-mermaid-chat.png",readingMinutes:6,htmlPath:"databuff-v015-release/en/body.html",altLocale:"databuff-v015-release-zh",sourceHtml:"packages/blog-site/content/databuff-v015-release/en.html"},{id:"skywalking-underlying-principles-full-trace-2026-zh",slug:"skywalking-underlying-principles-full-trace-2026",locale:"zh",title:"skywalking å
¨é¾è·¯çæ§çåçè§£æä¸databuff çAIè½åä»ç»",date:"2026-07-27",tags:["SkyWalking","APM","OTLP","å
¨é¾è·¯çæ§","AI"],summary:"",cover:"/blog/skywalking-underlying-principles-full-trace-2026/assets/05-sw-topology.png",readingMinutes:16,htmlPath:"skywalking-underlying-principles-full-trace-2026/zh/body.html",altLocale:"skywalking-underlying-principles-full-trace-2026-en",sourceHtml:"packages/blog-site/content/skywalking-underlying-principles-full-trace-2026/zh.html"},{id:"skywalking-otel-selection-guide-zh",slug:"skywalking-otel-selection-guide",locale:"zh",title:"弿ºAPMéåæåï¼skywalking æ opentelemetry",date:"2026-07-27",tags:["SkyWalking","OpenTelemetry","弿ºAPM","éå","OTLP"],summary:"OpenTelemetry ç»ä¸æ¥å
¥èæ¯ä¸ï¼SkyWalking åéå¢éå¦ä½ç¨äºç»´æ¸
åãä¸é¶æ®µå¹¶è¡è·¯å¾ä¸ POC éªæ¶é¡¹çæ§éåââç»§ç»æ·±èè¿æ¯å¹¶è¡éªè¯ OTLP åç
314æ¹æ¡ã",cover:"/blog/skywalking-otel-selection-guide/assets/global-cockpit-a.png",readingMinutes:6,htmlPath:"skywalking-otel-selection-guide/zh/body.html",altLocale:"skywalking-otel-selection-guide-en",sourceHtml:"packages/blog-site/content/skywalking-otel-selection-guide/zh.html"},{id:"skywalking-vs-databuff-how-to-choose-zh",slug:"skywalking-vs-databuff-how-to-choose",locale:"zh",title:"SkyWalking vs Databuffï¼ä¸¤æ¬¾å¼æºAPMæä¹éï¼",date:"2026-07-27",tags:["SkyWalking","弿ºAPM","å
¨é¾è·¯è¿½è¸ª","åºç¨æ§è½çæ§","Databuff对æ¯"],summary:"SkyWalking ä¸å½äº§å¼æº APM Databuff 客è§å¯¹æ¯ï¼OTLP æ¥å
¥ãä¸ç»ä»¶æ¶æãå
¨é¾è·¯è¿½è¸ªä¸ AI 鮿°ãåç»´è¡¨æ ¼ + åºæ¯å³çæ ï¼å¸®å©åºç¨æ§è½çæ§éåã",cover:"/blog/skywalking-vs-databuff-how-to-choose/assets/global-topology-a.png",readingMinutes:8,htmlPath:"skywalking-vs-databuff-how-to-choose/zh/body.html",altLocale:"skywalking-vs-databuff-how-to-choose-en",sourceHtml:"packages/blog-site/content/skywalking-vs-databuff-how-to-choose/zh.html"},{id:"skywalking-otel-migration-dual-stack-zh",slug:"skywalking-otel-migration-dual-stack",locale:"zh",title:"ä» SkyWalking è¿ç§» OpenTelemetryï¼åæ å
±åä¸å
¨é¾è·¯è¿½è¸ªå®æ",date:"2026-07-27",tags:["SkyWalkingè¿ç§»","OpenTelemetry","åæ å
±å","弿º","APM"],summary:"SkyWalking ç¨æ·æ¸è¿è¿ç§» OpenTelemetry 宿ï¼OTLP åæ å
±åãCollector ååºå£ãå
¨é¾è·¯è¿½è¸ªå¹¶è¡éªè¯ã弿º APM æ¿æ¥æ°æµéï¼æ é大çç¸åæµã",cover:"/blog/skywalking-otel-migration-dual-stack/assets/service-list-a.png",readingMinutes:6,htmlPath:"skywalking-otel-migration-dual-stack/zh/body.html",altLocale:"skywalking-otel-migration-dual-stack-en",sourceHtml:"packages/blog-site/content/skywalking-otel-migration-dual-stack/zh.html"},{id:"skywalking-zipkin-pinpoint-databuff-jaeger-comparison-zh",slug:"skywalking-zipkin-pinpoint-databuff-jaeger-comparison",locale:"zh",title:"主æµå¼æºAPMï¼SkyWalking/Zipkin/Pinpoint/Databuff/Jaegerå
¨é¢å¯¹æ¯",date:"2026-07-27",tags:["SkyWalking","弿ºAPM","å
¨é¾è·¯è¿½è¸ª","åºç¨æ§è½çæ§","Zipkin"],summary:"æè¦ï¼ä»æ¢éçæãCollectoræ©å±æ§ãé¾è·¯åæãææã使ç¨å好äºç»´å¯¹æ¯ SkyWalkingãZipkinãPinpointãJaegerãDatabuffï¼çªåº OpenTelemetry æ¢éä¼å¿ã",cover:null,readingMinutes:8,htmlPath:"skywalking-zipkin-pinpoint-databuff-jaeger-comparison/zh/body.html",altLocale:"skywalking-zipkin-pinpoint-databuff-jaeger-comparison-en",sourceHtml:"packages/blog-site/content/skywalking-zipkin-pinpoint-databuff-jaeger-comparison/zh.html"},{id:"opensource-apm-beyond-skywalking-2026-zh",slug:"opensource-apm-beyond-skywalking-2026",locale:"zh",title:"é¤äº SkyWalkingï¼2026 å¹´è¿æåªäºå¼æº APM å¼å¾å
³æ³¨ï¼",date:"2026-07-27",tags:["SkyWalking","弿ºAPM","åºç¨æ§è½çæ§","å½äº§APM","APMæ¨è"],summary:"2026 å½äº§å¼æº APM æ¨èï¼é¤ SkyWalking å¤ï¼æå¢éç»åå¹é
OTLP åçãAI 鮿°ä¸ä¸ç»ä»¶é¨ç½²è·¯å¾ã",cover:"/blog/opensource-apm-beyond-skywalking-2026/assets/service-list-a.png",readingMinutes:4,htmlPath:"opensource-apm-beyond-skywalking-2026/zh/body.html",altLocale:"opensource-apm-beyond-skywalking-2026-en",sourceHtml:"packages/blog-site/content/opensource-apm-beyond-skywalking-2026/zh.html"},{id:"skywalking-ai-native-agent-monitoring-zh",slug:"skywalking-ai-native-agent-monitoring",locale:"zh",title:"ä¼ ç» APM è¿åå° AI Nativeï¼SkyWalking ç¨æ·çæºè½ä½çæ§è·¯å¾",date:"2026-07-27",tags:["SkyWalking","æºè½ä½çæ§","AI Native","APM","å
¨é¾è·¯è¿½è¸ª"],summary:"SkyWalking ç¨æ·å AI Native æºè½ä½çæ§æ¼è¿ï¼OTel åç¹ãTrace å
³èä¸å¯¹è¯å¼ APM 鮿°è·¯å¾ã",cover:"/blog/skywalking-ai-native-agent-monitoring/assets/trace-list-a.png",readingMinutes:7,htmlPath:"skywalking-ai-native-agent-monitoring/zh/body.html",altLocale:"skywalking-ai-native-agent-monitoring-en",sourceHtml:"packages/blog-site/content/skywalking-ai-native-agent-monitoring/zh.html"},{id:"skywalking-trace-troubleshooting-zh",slug:"skywalking-trace-troubleshooting",locale:"zh",title:"SkyWalking è°ç¨é¾æé宿ï¼å
¨é¾è·¯è¿½è¸ªè¿é¶ä¸ OTel è¡¥å
æ¹æ¡",date:"2026-07-27",tags:["SkyWalking","å
¨é¾è·¯è¿½è¸ª","è°ç¨é¾","弿ºAPM","OpenTelemetry"],summary:"SkyWalking å
¨é¾è·¯è¿½è¸ªæéè¿é¶ï¼ææ/Trace 对ç
§ï¼Jaeger ç±»æ¹æ¡è¾¹çï¼OTel è¡¥å
éªè¯è·¯å¾ã",cover:"/blog/skywalking-trace-troubleshooting/assets/global-topology-a.png",readingMinutes:9,htmlPath:"skywalking-trace-troubleshooting/zh/body.html",altLocale:"skywalking-trace-troubleshooting-en",sourceHtml:"packages/blog-site/content/skywalking-trace-troubleshooting/zh.html"},{id:"skywalking-selfbuild-tco-zh",slug:"skywalking-selfbuild-tco",locale:"zh",title:"èªå»º SkyWalking vs è½»é OTel APMï¼åºç¨æ§è½çæ§ TCO 对æ¯",date:"2026-07-27",tags:["SkyWalking","åºç¨æ§è½çæ§","TCO","弿ºAPM","èªå»ºAPM"],summary:"èªå»º SkyWalking ä¸è½»é OTLP ä¸ç»ä»¶ APM ç TCO 宿§å¯¹æ¯ï¼éæ§è¿ç»´ææ¬ãç»ä»¶æ°ä¸å¹¶è¡è¿æ¸¡è·¯å¾ã",cover:"/blog/skywalking-selfbuild-tco/assets/global-topology-a.png",readingMinutes:9,htmlPath:"skywalking-selfbuild-tco/zh/body.html",altLocale:"skywalking-selfbuild-tco-en",sourceHtml:"packages/blog-site/content/skywalking-selfbuild-tco/zh.html"},{id:"skywalking-otel-unified-selection-zh",slug:"skywalking-otel-unified-selection",locale:"zh",title:"OTel ç»ä¸å¯è§æµï¼SkyWalking çæç¨æ·ç弿º APM éåæå",date:"2026-07-27",tags:["SkyWalking","OpenTelemetry","弿ºAPM","å
¨é¾è·¯è¿½è¸ª","ç»ä¸å¯è§æµ"],summary:"SkyWalking çæç¨æ· OTel ç»ä¸å¯è§æµè·¯å¾ï¼ééå± OTel åãå端并åãåé¶æ®µè·¯çº¿å¾ä¸å¼æº APM éåè¦ç¹ã",cover:"/blog/skywalking-otel-unified-selection/assets/global-topology-a.png",readingMinutes:6,htmlPath:"skywalking-otel-unified-selection/zh/body.html",altLocale:"skywalking-otel-unified-selection-en",sourceHtml:"packages/blog-site/content/skywalking-otel-unified-selection/zh.html"},{id:"skywalking-architecture-databuff-compare-2026-zh",slug:"skywalking-architecture-databuff-compare-2026",locale:"zh",title:"弿º SkyWalking ææ°çæ¬æ¶æè§£æä¸ç«åå¯¹æ¯ 2026",date:"2026-07-27",tags:["SkyWalking","弿ºAPM","æ¶æè®¾è®¡","OpenTelemetry","Databuff"],summary:"Apache SkyWalking 10.4 æ¶ææ¼è¿ä¸å屿 æè§£
314ï¼å¯¹æ¯ Databuff OTLP ä¸ç»ä»¶ä¸ AI åç鮿°/MCPãå«å®æ¹ææ¡£è¦ç¹ä¸ Demo ç°åºæªå¾ï¼2026 年弿º APM éååèã",cover:"/blog/skywalking-architecture-databuff-compare-2026/assets/01-ai-platform-home.png",readingMinutes:7,htmlPath:"skywalking-architecture-databuff-compare-2026/zh/body.html",altLocale:"skywalking-architecture-databuff-compare-2026-en",sourceHtml:"packages/blog-site/content/skywalking-architecture-databuff-compare-2026/zh.html"},{id:"skywalking-intro-deploy-javaagent-2026-zh",slug:"skywalking-intro-deploy-javaagent-2026",locale:"zh",title:"skywalking ç®ä»ãé¨ç½²å弿º databuffå·¥å
·å¯¹æ¯",date:"2026-07-27",tags:["SkyWalking","Java Agent","é¨ç½²","弿ºAPM","OpenTelemetry"],summary:"ä» SkyWalking å屿¶æãDocker å端é¨ç½²å° Java Agent æ ä¾µå
¥æ¥å
¥ï¼å¹¶å¯¹æ¯ Databuff OTLP ä¸ç»ä»¶æ ä¸ AI 鮿°è½åãå«å¯å¤å¶å½ä»¤ä¸ Demo ç°åºæªå¾ã",cover:"/blog/skywalking-intro-deploy-javaagent-2026/assets/architecture_2160x720.png",readingMinutes:8,htmlPath:"skywalking-intro-deploy-javaagent-2026/zh/body.html",altLocale:"skywalking-intro-deploy-javaagent-2026-en",sourceHtml:"packages/blog-site/content/skywalking-intro-deploy-javaagent-2026/zh.html"},{id:"skywalking-quickstart-guide-2026-zh",slug:"skywalking-quickstart-guide-2026",locale:"zh",title:"skywalking å
¥é¨ä¸databuff AIè½åä»ç»",date:"2026-07-27",tags:["SkyWalking","å¿«éå
¥é¨","Java Agent","Dockeré¨ç½²","弿ºAPM"],summary:"ä»é¶ä¸æ Apache SkyWalkingï¼å屿¶æéè§ãDocker å端ä¸é®é¨ç½²ãJava Agent æ ä¾µå
¥æ¥å
¥ï¼å¹¶ç»å Horizon UI ææ/Trace ç°åºæªå¾è®²è§£æ§å¶å°ï¼ææ«ä»ç» Databuff AI åçå¯è§æµè½åã",cover:"/blog/skywalking-quickstart-guide-2026/assets/architecture_2160x720.png",readingMinutes:11,htmlPath:"skywalking-quickstart-guide-2026/zh/body.html",altLocale:"skywalking-quickstart-guide-2026-en",sourceHtml:"packages/blog-site/content/skywalking-quickstart-guide-2026/zh.html"},{id:"databuff-v015-release-zh",slug:"databuff-v015-release",locale:"zh",title:"DataBuff v0.1.5 åçéå",date:"2026-07-27",tags:["åç","APM","OpenTelemetry","v0.1.5"],summary:"åå
¥è·¯å¾å åºãOTLP åç¼©ãæ¥å¿æ½å±ãAI Mermaidãèµæºè¿æ»¤ä¸ Schema V005 â å«å级æå¼ï¼æ§è½è¯¦æé¾è³ SkyWalking åå
¥å¯¹æ¯åæã",cover:"/blog/databuff-v015-release/assets/05-ai-mermaid-chat.png",readingMinutes:6,htmlPath:"databuff-v015-release/zh/body.html",altLocale:"databuff-v015-release-en",sourceHtml:"packages/blog-site/content/databuff-v015-release/zh.html"},{id:"multi-expert-orchestration-en",slug:"multi-expert-orchestration",locale:"en",title:"One Entry, Many Experts: How DataBuff Orchestrates Parallel Ops AI",date:"2026-07-26",tags:["AIOps","Multi-Agent","OpenTelemetry","AI Agent"],summary:"Not four chat tabs. How DataBuff uses triage-desk + specialist consults for on-call: why multi-expert, async dispatch, four guardrails, and a live two-expert demo.",cover:"/blog/multi-expert-orchestration/assets/flow-consultation.png",readingMinutes:5,htmlPath:"multi-expert-orchestration/en/body.html",altLocale:"multi-expert-orchestration-zh",sourceHtml:"packages/blog-site/content/multi-expert-orchestration/en.html"},{id:"multi-expert-orchestration-zh",slug:"multi-expert-orchestration",locale:"zh",title:"ä¸ä¸ªå
¥å£ï¼å¤ä¸å®¶æä¹ååï¼",date:"2026-07-26",tags:["AIOps","Multi-Agent","OpenTelemetry","AI Agent","弿º"],summary:"䏿¯å¤å¼è天æ¡ãDataBuff ç¨ãåè¯å° + ä¸ç§ä¼è¯ã讲æ¸
è¿ç»´ä¸ºä½è¦å¤ä¸å®¶ã大èå¦ä½å¼æ¥æ´¾æ´»å¹¶è¡æ±æ»ï¼é宿ºä¸å¥è¯åä¸å®¶ Demoã",cover:"/blog/multi-expert-orchestration/assets/flow-consultation.png",readingMinutes:11,htmlPath:"multi-expert-orchestration/zh/body.html",altLocale:"multi-expert-orchestration-en",sourceHtml:"packages/blog-site/content/multi-expert-orchestration/zh.html"},{id:"databuff-vs-skywalking-write-perf-en",slug:"databuff-vs-skywalking-write-perf",locale:"en",title:"DataBuff vs SkyWalking Write Performance Comparison",date:"2026-07-25",tags:["APM","SkyWalking","Performance","Benchmark","OpenTelemetry"],summary:"Under matched business load, write throughput on par with SkyWalking; DataBuff uses less CPU, SkyWalking uses less memory â with host, component, and 40-minute trend charts.",cover:"/blog/databuff-vs-skywalking/assets/databuff-topology.png",readingMinutes:8,htmlPath:"databuff-vs-skywalking-write-perf/en/body.html",altLocale:"databuff-vs-skywalking-write-perf-zh",sourceHtml:"packages/blog-site/content/databuff-vs-skywalking-write-perf/en.html"},{id:"databuff-vs-skywalking-write-perf-zh",slug:"databuff-vs-skywalking-write-perf",locale:"zh",title:"DataBuff vs SkyWalking åå
¥æ§è½å¯¹æ¯",date:"2026-07-25",tags:["APM","SkyWalking","æ§è½æµè¯","Benchmark","OpenTelemetry"],summary:"åæ¡£ä¸å¡è´è½½ä¸ï¼åå
¥ååä¸ SkyWalking åºæ¬æå¹³ï¼DataBuff CPU æ´ä½ï¼SkyWalking å
åæ´ä½ â å«ä¸»æºãç»ä»¶å ç¨ä¸ 40 åéç¨³å®æ¶æ®µè¶å¿å¾ã",cover:"/blog/databuff-vs-skywalking/assets/databuff-topology.png",readingMinutes:8,htmlPath:"databuff-vs-skywalking-write-perf/zh/body.html",altLocale:"databuff-vs-skywalking-write-perf-en",sourceHtml:"packages/blog-site/content/databuff-vs-skywalking-write-perf/zh.html"},{id:"trace-metrics-data-quality-en",slug:"trace-metrics-data-quality",locale:"en",title:"Is Your Data Quality Good Enough for the AI Era?",date:"2026-07-23",tags:["APM","Trace","Metrics","Data Quality","AI"],summary:"When AI troubleshooting fails, people blame the Prompt, then the model. More often the problem is upstream: telemetry is not good enough â APIs, SQL, entrypoints, and hops donât line up.",cover:"/blog/trace-metrics-data-quality/assets/05-global-topology.png",readingMinutes:8,htmlPath:"trace-metrics-data-quality/en/body.html",altLocale:"trace-metrics-data-quality-zh",sourceHtml:"packages/blog-site/content/trace-metrics-data-quality/en.html"},{id:"trace-metrics-data-quality-zh",slug:"trace-metrics-data-quality",locale:"zh",title:"AI æ¶ä»£ä¸ï¼ä½ çæ°æ®è´¨éåæ ¼äºåï¼",date:"2026-07-23",tags:["APM","Trace","Metrics","æ°æ®è´¨é","AI"],summary:"AI æéçä¸ä¸æ¥ï¼å¾å¤äººå
æª Promptãåæªæ¨¡åãæ´å¸¸è§çåå å¨ä¸æ¸¸ï¼çæ§æ°æ®ä¸åæ ¼ââæ¥å£ãSQLãå
¥å£ãè·³æ°å¯¹ä¸ä¸ï¼æ¨¡åå强ä¹åªè½è®©ä½ èªå·±å»ç¿»è°ç¨é¾ã",cover:"/blog/trace-metrics-data-quality/assets/05-global-topology.png",readingMinutes:9,htmlPath:"trace-metrics-data-quality/zh/body.html",altLocale:"trace-metrics-data-quality-en",sourceHtml:"packages/blog-site/content/trace-metrics-data-quality/zh.html"},{id:"databuff-vs-openobserve-en",slug:"databuff-vs-openobserve",locale:"en",title:"DataBuff vs OpenObserve: Same-Host Lab Comparison",date:"2026-07-22",tags:["APM","OpenObserve","AIOps","Comparison","OpenTelemetry"],summary:"Same-host lab: DataBuff v0.1.7 vs OpenObserve v0.91.0-rc1 â seven AI capabilities, APM matrix (incl. Pipelines/Reports/RUM), alerting, and screenshots. Log c
314ost/dashboards/pipelines favor OO; topology/call analysis/service flow/dedicated pages/smart alerts favor DataBuff.",cover:"/blog/databuff-vs-openobserve/assets/databuff-ai-home.png",readingMinutes:10,htmlPath:"databuff-vs-openobserve/en/body.html",altLocale:"databuff-vs-openobserve-zh",sourceHtml:"packages/blog-site/content/databuff-vs-openobserve/en.html"},{id:"databuff-vs-jaeger-en",slug:"databuff-vs-jaeger",locale:"en",title:"DataBuff vs Jaeger: Same-Host Lab Comparison",date:"2026-07-22",tags:["APM","Jaeger","AIOps","Comparison","OpenTelemetry"],summary:"Same-host lab: DataBuff v0.1.7 vs Jaeger v1.76.0 â seven AI capabilities, APM rows 1â18, and alerting matrices plus screenshots. Trace search/waterfall favor Jaeger; AI / call analysis / service flow / dedicated pages / logs / alerts favor DataBuff.",cover:"/blog/databuff-vs-jaeger/assets/databuff-ai-home.png",readingMinutes:8,htmlPath:"databuff-vs-jaeger/en/body.html",altLocale:"databuff-vs-jaeger-zh",sourceHtml:"packages/blog-site/content/databuff-vs-jaeger/en.html"},{id:"databuff-vs-signoz-en",slug:"databuff-vs-signoz",locale:"en",title:"DataBuff vs SigNoz: Same-Host Lab Comparison",date:"2026-07-22",tags:["APM","SigNoz","AIOps","Comparison","OpenTelemetry"],summary:"Same-host lab: DataBuff v0.1.7 vs SigNoz v0.133.0 â seven AI, APM matrix, alerting + screenshots. Dashboards favor SigNoz; call analysis/service flow/dedicated pages/smart alerts favor DataBuff.",cover:"/blog/databuff-vs-signoz/assets/databuff-ai-home.png",readingMinutes:10,htmlPath:"databuff-vs-signoz/en/body.html",altLocale:"databuff-vs-signoz-zh",sourceHtml:"packages/blog-site/content/databuff-vs-signoz/en.html"},{id:"databuff-vs-openobserve-zh",slug:"databuff-vs-openobserve",locale:"zh",title:"DataBuff vs OpenObserveï¼åç¯å¢å®æµå¯¹æ¯",date:"2026-07-22",tags:["APM","OpenObserve","AIOps","éå","OpenTelemetry"],summary:"åæºå®æµï¼DataBuff v0.1.7 vs OpenObserve v0.91.0-rc1 â 7 大 AIãAPM å
¨è¡¨ï¼å« Pipelines/Reports/RUMï¼ä¸åè¦å¯¹ç
§ + æªå¾ãæ¥å¿ææ¬/大ç/æµæ°´çº¿å OOï¼ææ/è°ç¨åæ/æå¡æµ/ä¸é¡µ/æºè½åè¦å DataBuffã",cover:"/blog/databuff-vs-openobserve/assets/databuff-ai-home.png",readingMinutes:10,htmlPath:"databuff-vs-openobserve/zh/body.html",altLocale:"databuff-vs-openobserve-en",sourceHtml:"packages/blog-site/content/databuff-vs-openobserve/zh.html"},{id:"databuff-vs-jaeger-zh",slug:"databuff-vs-jaeger",locale:"zh",title:"DataBuff vs Jaegerï¼åç¯å¢å®æµå¯¹æ¯",date:"2026-07-22",tags:["APM","Jaeger","AIOps","éå","OpenTelemetry"],summary:"åæºå®æµï¼DataBuff v0.1.7 vs Jaeger v1.76.0 â 7 大 AIãAPM 1â18 è¡ä¸åè¦å¯¹ç
§ + æªå¾ãTrace æ£ç´¢/çå¸å¾å Jaegerï¼AI / è°ç¨åæ / æå¡æµ / ä¸é¡µ / æ¥å¿ / åè¦å DataBuffã",cover:"/blog/databuff-vs-jaeger/assets/databuff-ai-home.png",readingMinutes:8,htmlPath:"databuff-vs-jaeger/zh/body.html",altLocale:"databuff-vs-jaeger-en",sourceHtml:"packages/blog-site/content/databuff-vs-jaeger/zh.html"},{id:"databuff-vs-signoz-zh",slug:"databuff-vs-signoz",locale:"zh",title:"DataBuff vs SigNozï¼åç¯å¢å®æµå¯¹æ¯",date:"2026-07-22",tags:["APM","SigNoz","AIOps","éå","OpenTelemetry"],summary:"åæºå®æµï¼DataBuff v0.1.7 vs SigNoz v0.133.0 â 7 大 AIãAPM 19 项ä¸åè¦å¯¹ç
§ + æªå¾ã仪表çå SigNozï¼è°ç¨åæ/æå¡æµ/ä¸é¡µ/æºè½åè¦å DataBuffã",cover:"/blog/databuff-vs-signoz/assets/databuff-ai-home.png",readingMinutes:10,htmlPath:"databuff-vs-signoz/zh/body.html",altLocale:"databuff-vs-signoz-en",sourceHtml:"packages/blog-site/content/databuff-vs-signoz/zh.html"},{id:"open-source-aiops-en",slug:"open-source-aiops",locale:"en",title:"Open-Source AIOps, Finally Someone Built It",date:"2026-07-20",tags:["AIOps","APM","OpenTelemetry","AI Agent"],summary:"AIOps has been a decade of hype â seven live scenarios show open-source DataBuff actually runs: plain-language queries, multi-agent squads, HTML inspection reports, RCA, Ops Expert repairs, capacity judgment, and in-product Q&A.",cover:"/blog/open-source-aiops/assets/01-simple-architecture.jpg",readingMinutes:9,htmlPath:"open-source-aiops/en/body.html",altLocale:"open-source-aiops-zh",sourceHtml:"packages/blog-site/content/open-source-aiops/en.html"},{id:"open-source-aiops-zh",slug:"open-source-aiops",locale:"zh",title:"弿ºAIOpsï¼ç»äºæäººååºæ¥äº",date:"2026-07-20",tags:["AIOps","APM","OpenTelemetry","AI Agent","弿º"],summary:"AIOps åäºå年夿¯ç»é¥¼ï¼7 ä¸ªå®æµåºæ¯è¯´æå¼æº DataBuff è½è·èµ·æ¥ï¼èªç¶è¯è¨é®æ°ãå¤ Agent åå¢ãHTML å·¡æ£æ¥åãæ ¹å åæãè¿ç»´ä¸å®¶ä¸æºä¿®å¤ã容é夿ãççä¸å®¶ã",cover:"/blog/open-source-aiops/assets/01-simple-architecture.jpg",readingMinutes:12,htmlPath:"open-source-aiops/zh/body.html",altLocale:"open-source-aiops-en",sourceHtml:"packages/blog-site/content/open-source-aiops/zh.html"},{id:"databuff-ops-expert-runtime-troubleshoot-en",slug:"databuff-ops-expert-runtime-troubleshoot",locale:"en",title:"5 Ops Tasks That Take Half an Hour â Ops Expert Finishes in 3 Minutes",date:"2026-07-16",tags:["Ops Expert","OpenTelemetry","APM","AI Agent"],summary:"Five test-env ops chores: OTel blank, CrashLoop, JVM flags, port conflicts, flame graphs â DIY SSH often 15â40 minutes; Ops Expert lands conclusions in 1â3 minutes, with three screenshots per scenario.",cover:"/blog/databuff-ops-expert-runtime-troubleshoot/assets/scene-01-otel-prompt.png",readingMinutes:3,htmlPath:"databuff-ops-expert-runtime-troubleshoot/en/body.html",altLocale:"databuff-ops-expert-runtime-troubleshoot-zh",sourceHtml:"packages/blog-site/content/databuff-ops-expert-runtime-troubleshoot/en.html"},{id:"databuff-ops-expert-runtime-troubleshoot-zh",slug:"databuff-ops-expert-runtime-troubleshoot",locale:"zh",title:"è¿ 5 ä»¶æéæ´»ï¼èªå·±å¹²åå°æ¶ï¼è¿ç»´ä¸å®¶ 3 åéåºç»è®º",date:"2026-07-16",tags:["è¿ç»´ä¸å®¶","Ops Expert","OpenTelemetry","APM","AI Agent"],summary:"æµè¯ç¯å¢äºç±»æéï¼OTel æ²¡æ°æ®ã容å¨éå¯ãJVM åæ°ã端å£å ç¨ãç«ç°å¾ââèªå·±ç»æºå¨å¸¸è§ 15ï½40 åéï¼è¿ç»´ä¸å®¶å®æµ 1ï½3 åéåºç»è®ºï¼æ¯åºæ¯ä¸å¼ æªå¾ï¼
314è¾å
¥Â·è¿ç¨Â·ç»è®ºï¼ã",cover:"/blog/databuff-ops-expert-runtime-troubleshoot/assets/scene-01-otel-prompt.png",readingMinutes:3,htmlPath:"databuff-ops-expert-runtime-troubleshoot/zh/body.html",altLocale:"databuff-ops-expert-runtime-troubleshoot-en",sourceHtml:"packages/blog-site/content/databuff-ops-expert-runtime-troubleshoot/zh.html"},{id:"databuff-v014-release-en",slug:"databuff-v014-release",locale:"en",title:"DataBuff v0.1.4 Release Notes",date:"2026-07-15",tags:["Release","APM","AIOps","v0.1.4"],summary:"Seven AI ops entry points, multi-agent collaboration, deep inspection HTML reports, MQ virtual services, and Doris runtime recovery â with nine screenshots.",cover:"/blog/databuff-v014-release/assets/01-ai-home.png",readingMinutes:7,htmlPath:"databuff-v014-release/en/body.html",altLocale:"databuff-v014-release-zh",sourceHtml:"packages/blog-site/content/databuff-v014-release/en.html"},{id:"databuff-v014-release-zh",slug:"databuff-v014-release",locale:"zh",title:"DataBuff v0.1.4 åçéå",date:"2026-07-15",tags:["åç","APM","AIOps","v0.1.4"],summary:"7 大 AI è¿ç»´è½åé¦é¡µãå¤ Agent ååãæ·±åº¦å·¡æ£ HTML æ¥åãMQ èææå¡ä¸ Doris è¿è¡æ¶æ¢å¤ â å« 9 å¼ å®ææªå¾ã",cover:"/blog/databuff-v014-release/assets/01-ai-home.png",readingMinutes:7,htmlPath:"databuff-v014-release/zh/body.html",altLocale:"databuff-v014-release-en",sourceHtml:"packages/blog-site/content/databuff-v014-release/zh.html"},{id:"databuff-skywalking-native-ingest-en",slug:"databuff-skywalking-native-ingest",locale:"en",title:"SkyWalking Meets AI-Native Troubleshooting",date:"2026-07-13",tags:["SkyWalking","APM","AI Agent","OpenTelemetry"],summary:"Teams on SkyWalking need not swap Agents â v0.1.3 listens on :11800 natively; ask AI why checkout is slow and get traceId + bottleneck span, logs link to traces, same Segment data.",cover:"/blog/databuff-skywalking-native-ingest/assets/01-skywalking-ui-services.png",readingMinutes:5,htmlPath:"databuff-skywalking-native-ingest/en/body.html",altLocale:"databuff-skywalking-native-ingest-zh",sourceHtml:"packages/blog-site/content/databuff-skywalking-native-ingest/en.html"},{id:"databuff-v013-release-en",slug:"databuff-v013-release",locale:"en",title:"DataBuff v0.1.3 Release Notes",date:"2026-07-13",tags:["Release","APM","SkyWalking","v0.1.3"],summary:"Native SkyWalking ingest on :11800, Ops Expert install recovery and read-only SSH troubleshooting â eleven screenshots from demo and test env.",cover:"/blog/databuff-v013-release/assets/01-skywalking-topology.png",readingMinutes:7,htmlPath:"databuff-v013-release/en/body.html",altLocale:"databuff-v013-release-zh",sourceHtml:"packages/blog-site/content/databuff-v013-release/en.html"},{id:"databuff-skywalking-native-ingest-zh",slug:"databuff-skywalking-native-ingest",locale:"zh",title:"skywalking çæ°æ®ä¹è½AIæºè½åäº",date:"2026-07-13",tags:["SkyWalking","APM","AI Agent","OpenTelemetry"],summary:"线ä¸è·ç SkyWalking çå¢éä¸å¿
æ¢ Agentââv0.1.3 åççå¬ :11800ï¼checkout æ
¢æ¥å£ç¨ AI é®ä¸å¥å³åº traceId ä¸ç¶é¢ Spanï¼æ¥å¿å¯è·³é¾è·¯ï¼Segment æ°æ®å®å
¨åæºã",cover:"/blog/databuff-skywalking-native-ingest/assets/01-skywalking-ui-services.png",readingMinutes:6,htmlPath:"databuff-skywalking-native-ingest/zh/body.html",altLocale:"databuff-skywalking-native-ingest-en",sourceHtml:"packages/blog-site/content/databuff-skywalking-native-ingest/zh.html"},{id:"databuff-v013-release-zh",slug:"databuff-v013-release",locale:"zh",title:"DataBuff v0.1.3 åçéå",date:"2026-07-13",tags:["åç","APM","SkyWalking","v0.1.3"],summary:"SkyWalking åç :11800 æ¥å
¥ãè¿ç»´ä¸å®¶å®è£
æéä¸ SSH åªè¯»ææ¥ â å« 11 å¼ Demo / æµè¯ç¯å¢å®ææªå¾ã",cover:"/blog/databuff-v013-release/assets/01-skywalking-topology.png",readingMinutes:7,htmlPath:"databuff-v013-release/zh/body.html",altLocale:"databuff-v013-release-en",sourceHtml:"packages/blog-site/content/databuff-v013-release/zh.html"},{id:"openclaw-mcp-inspect-en",slug:"openclaw-mcp-inspect",locale:"en",title:"OpenClaw Finally Understands OpenTelemetry APM",date:"2026-07-09",tags:["OpenClaw","MCP","DataBuff","OpenTelemetry"],summary:"OpenClaw can now understand OpenTelemetry APM. MCP + Skills integration lets agents query real data from Doris â inspect your cluster in one sentence.",cover:"/blog/openclaw-mcp-inspect/assets/simple-architecture.jpg",readingMinutes:5,htmlPath:"openclaw-mcp-inspect/en/body.html",altLocale:"openclaw-mcp-inspect-zh",sourceHtml:"packages/blog-site/content/openclaw-mcp-inspect/en.html"},{id:"openclaw-mcp-inspect-zh",slug:"openclaw-mcp-inspect",locale:"zh",title:"OpenClaw ç»äºå¯ä»¥è¯»æ OpenTelemetry APM äº",date:"2026-07-09",tags:["OpenClaw","MCP","DataBuff","OpenTelemetry"],summary:"OpenClaw ç»äºå¯ä»¥è¯»æ OpenTelemetry APM äºãMCP + Skills æ¥å
¥ï¼5 åé让 Agent æ¥ Doris ç宿°æ®ï¼ä¸å¥è¯å·¡æ£å
¨é群ã",cover:"/blog/openclaw-mcp-inspect/assets/simple-architecture.jpg",readingMinutes:6,htmlPath:"openclaw-mcp-inspect/zh/body.html",altLocale:"openclaw-mcp-inspect-en",sourceHtml:"packages/blog-site/content/openclaw-mcp-inspect/zh.html"},{id:"ai-ops-logs-capability-en",slug:"ai-ops-logs-capability",locale:"en",title:"AI Ops Squad Evolves Again: Log Analysis Gets a Rescue",date:"2026-07-07",tags:["APM","Logs","OpenTelemetry","AI Agent","Trace"],summary:"After AI on traces, ERROR logs get the same treatment â real checkout inventory failure: UI search, flame-graph hops, and natural-language queries in three paths.",cover:"/blog/ai-ops-logs-capability/assets/scene-a2-error-service-b.png",readingMinutes:3,htmlPath:"ai-ops-logs-capability/en/body.html",altLocale:"ai-ops-logs-capability-zh",sourceHtml:"packages/blog-site/content/ai-ops-logs-capability/en.html"},{id:"databuff-apm-5min-deploy-en",slug:"databuff-apm-5min-deploy",locale:"en",title:"Deploy Open-Source APM Databuff in 5 Minutes: OpenTelemetry Distributed Tracing Quick Start",date:"2026-07-07",tags:["APM","OpenTelemetry","Trace","Deploy"],summary:"For backend and DevOps engineers new to open-source APM â spin up the platform with one curl command, configure standard OTLP ingestion, and see your first distributed trace in the Web UI.",cover:"/blog/databuff-apm-5min-deploy/assets/02-service-list.png",readingMinutes:5,htmlPath:"databuff-apm-5min-deploy/en/body.html",altLocale:"databuff-apm-5min-deploy-zh",sourceHtml:"packages/blog-site/content/databuff-apm-5min-deploy/en.html"},{id:"geo-article-b-full-link-monitoring-en",slug:"geo-article-b-full-link-monitoring",locale:"en",title:"Full-Link Monitoring Tools: OTLP Ingest and Unified APM in Practice",date:"2026-07-07",tags:["APM","OpenTelemetry","Trace","Monitoring"],summary:"When evaluating full-link monitoring tools, teams often ask: Is Jaeger enough? Do we need SkyWalking? This guide maps trace-only to unified APM and demos OTLP ingest with a four-layer drill-down on DataBuff Demo.",cover:"/blog/geo-article-b-full-link-monitoring/assets/9653cf5e10b443398a35c30d67e39a59.png",readingMinutes:3,htmlPath:"geo-article-b-full-link-monitoring/en/body.html",altLocale:"geo-article-b-full-link-monitoring-zh",sourceHtml:"packages/blog-site/content/geo-article-b-full-link-monitoring/en.html"},{id:"distributed-tracing-landing-databuff-apm-2026-en",slug:"distributed-tracing-landing-databuff-apm-2026",locale:"en",title:"How to Land Distributed Tracing in Production",date:"2026-07-07",tags:["APM","OpenTelemetry","Trace","SkyWalking"],summary:"Distributed tracing adoption starts with understanding how agents weave Spans at the bytecode layer and propagate TraceId through gateways and MQ â then a five-step rollout checklist with DataBuff Demo walkthrough.",cover:"/blog/distributed-tracing-landing-databuff-apm-2026/assets/a66f25dc880d4e2d8c0946ba6bc38e30.png",readingMinutes:5,htmlPath:"distributed-tracing-landing-databuff-apm-2026/en/body.html",altLocale:"distributed-tracing-landing-databuff-apm-2026-zh",sourceHtml:"packages/blog-site/content/distributed-tracing-landing-databuff-apm-2026/en.html"},{id:"why-it-systems-need-observability-en",slug:"why-it-systems-need-observability",locale:"en",title:"Why Do IT Systems Need Observability?",date:"2026-07-07",tags:["Observability","OpenTelemetry","APM","Trace"],summary:'In the microservices era, "the server is still alive" cannot explain why the business failed or which segment is slow â Metrics, Logs, and Traces, plus an OTel rollout path with DataBuff Demo screenshots.',cover:"/blog/why-it-systems-need-observability/assets/a66f25dc880d4e2d8c0946ba6bc38e30.png",readingMinutes:5,htmlPath:"why-it-systems-need-observability/en/body.html",altLocale:"why-it-systems-need-observability-zh",sourceHtml:"packages/blog-site/content/why-it-systems-need-observability/en.html"}
314,{id:"skywalking-databuff-apm-comparison-en",slug:"skywalking-databuff-apm-comparison",locale:"en",title:"Open Source APM Feature Comparison: SkyWalking vs Databuff",date:"2026-07-07",tags:["APM","SkyWalking","OpenTelemetry","Comparison"],summary:"When evaluating open-source APM, feature checklists look alike â the real gap is troubleshooting paths and onboarding cost. Side-by-side SkyWalking vs Databuff Demo screenshots across services, traces, topology, alerts, and AI queries.",cover:"/blog/skywalking-databuff-apm-comparison/assets/6523ab77daba4b879481b955782129d2.png",readingMinutes:11,htmlPath:"skywalking-databuff-apm-comparison/en/body.html",altLocale:"skywalking-databuff-apm-comparison-zh",sourceHtml:"packages/blog-site/content/skywalking-databuff-apm-comparison/en.html"},{id:"geo-observability-platform-en",slug:"geo-observability-platform",locale:"en",title:"How to Choose an Open-Source Observability Platform: LGTM vs All-in-One APM",date:"2026-07-07",tags:["Observability","OpenTelemetry","APM","LGTM"],summary:'"Open-source observability" and "APM tools" are often conflated â this article clarifies the three pillars, compares LGTM assembly vs all-in-one APM, and uses DataBuff Demo dashboards as acceptance samples.',cover:"/blog/geo-observability-platform/assets/b16f9ee6415c4d5c9a2a1501b2efea2c.png",readingMinutes:3,htmlPath:"geo-observability-platform/en/body.html",altLocale:"geo-observability-platform-zh",sourceHtml:"packages/blog-site/content/geo-observability-platform/en.html"},{id:"databuff-skywalking-pinpoint-comparison-en",slug:"databuff-skywalking-pinpoint-comparison",locale:"en",title:"Open Source APM Compared: SkyWalking vs Databuff vs Pinpoint Selection Guide",date:"2026-07-07",tags:["APM","SkyWalking","Pinpoint","Comparison"],summary:"For engineering leaders evaluating open-source APM, SkyWalking, Databuff, and Pinpoint differ in architecture and ops cost â with Databuff centering on AI Native APM as a key differentiator.",cover:"/blog/databuff-skywalking-pinpoint-comparison/assets/231944dfc5024c30a31dab2b699f4382.png",readingMinutes:7,htmlPath:"databuff-skywalking-pinpoint-comparison/en/body.html",altLocale:"databuff-skywalking-pinpoint-comparison-zh",sourceHtml:"packages/blog-site/content/databuff-skywalking-pinpoint-comparison/en.html"},{id:"geo-apm-selection-2026-en",slug:"geo-apm-selection-2026",locale:"en",title:"How to Choose an OpenTelemetry-Native Open Source APM in 2026",date:"2026-07-07",tags:["APM","OpenTelemetry","Selection","2026"],summary:"When teams evaluate open-source APM, a common question is SkyWalking vs OTel-native stack â a five-dimension checklist with DataBuff Demo RED metrics and topology as acceptance samples.",cover:"/blog/geo-apm-selection-2026/assets/a66f25dc880d4e2d8c0946ba6bc38e30.png",readingMinutes:4,htmlPath:"geo-apm-selection-2026/en/body.html",altLocale:"geo-apm-selection-2026-zh",sourceHtml:"packages/blog-site/content/geo-apm-selection-2026/en.html"},{id:"top10-oss-apm-tools-2026-en",slug:"top10-oss-apm-tools-2026",locale:"en",title:"Top 10 Open Source APM Tools in 2026: A Practical Guide",date:"2026-07-07",tags:["APM","OpenTelemetry","Open Source","2026"],summary:"When evaluating open-source APM tools in 2026, first clarify whether you need an instrumentation standard, trace backend, assembled observability stack, or unified platform. This guide walks through ten common names â OpenTelemetry, Jaeger, DataBuff, SkyWalking, Zipkin, Grafana, Elastic APM, Pinpoint, SigNoz, ClickHouse â with UI screenshots and a comparison table.",cover:"/blog/top10-oss-apm-tools-2026/assets/otel-data-flow.webp",readingMinutes:9,htmlPath:"top10-oss-apm-tools-2026/en/body.html",altLocale:"top10-oss-apm-tools-2026-zh",sourceHtml:"packages/blog-site/content/top10-oss-apm-tools-2026/en.html"},{id:"top5-oss-apm-tools-2026-en",slug:"top5-oss-apm-tools-2026",locale:"en",title:"Top 5 Open Source APM Tools in 2026: Comparison Guide",date:"2026-07-07",tags:["APM","OpenTelemetry","Open Source","2026"],summary:"Choosing open-source APM in 2026 is less about copying rankings and more about matching OpenTelemetry strategy, on-call workflows, and ops capacity. This guide compares Jaeger, SkyWalking, DataBuff, Grafana Tempo, and Pinpoint with selection criteria, UI screenshots, and pros/cons.",cover:"/blog/top5-oss-apm-tools-2026/assets/ss_search.png",readingMinutes:8,htmlPath:"top5-oss-apm-tools-2026/en/body.html",altLocale:"top5-oss-apm-tools-2026-zh",sourceHtml:"packages/blog-site/content/top5-oss-apm-tools-2026/en.html"},{id:"ai-ops-logs-capability-zh",slug:"ai-ops-logs-capability",locale:"zh",title:"AI è¿ç»´åå¢åè¿åï¼æ¥å¿åæææäº",date:"2026-07-07",tags:["APM","Logs","OpenTelemetry","AI Agent","Trace"],summary:"Trace è½é® AI ä¹åï¼ERROR æ¥å¿ä¹è½å§æç»æºè½é®æ° ââ checkout åºåä¸è¶³å®æºï¼ç颿ãç«ç°å¾äºè·³ãAI é®ï¼ä¸æ¡è·¯èµ°ä¸éã",cover:"/blog/ai-ops-logs-capability/assets/scene-a2-error-service-b.png",readingMinutes:3,htmlPath:"ai-ops-logs-capability/zh/body.html",altLocale:"ai-ops-logs-capability-en",sourceHtml:"packages/blog-site/content/ai-ops-logs-capability/zh.html"},{id:"databuff-apm-5min-deploy-zh",slug:"databuff-apm-5min-deploy",locale:"zh",title:"5 åéé¨ç½²å¼æº APM Databuffï¼ OpenTelemetry å
¨é¾è·¯è¿½è¸ªå
¥é¨å®æ",date:"2026-07-07",tags:["APM","OpenTelemetry","Trace","é¨ç½²"],summary:"é¢å馿¬¡æ¥è§¦å¼æº APM çåç«¯ä¸ DevOps å·¥ç¨å¸ââ䏿¡ curl å½ä»¤è·èµ·å¹³å°ï¼
314é
ç½®æ å OTLP æ¥å
¥ï¼å¨ Web UI éçå°ç¬¬ä¸æ¡åå¸å¼è¿½è¸ªã",cover:"/blog/databuff-apm-5min-deploy/assets/02-service-list.png",readingMinutes:5,htmlPath:"databuff-apm-5min-deploy/zh/body.html",altLocale:"databuff-apm-5min-deploy-en",sourceHtml:"packages/blog-site/content/databuff-apm-5min-deploy/zh.html"},{id:"geo-article-b-full-link-monitoring-zh",slug:"geo-article-b-full-link-monitoring",locale:"zh",title:"å
¨é¾è·¯çæ§å·¥å
·æ¨èï¼OTLP æ¥å
¥ä¸ä¸ä½å APM å®è·µ",date:"2026-07-07",tags:["APM","OpenTelemetry","Trace","å
¨é¾è·¯çæ§"],summary:"è¯ä¼°å
¨é¾è·¯çæ§å·¥å
·æ¶ï¼å¢é常é®ï¼Jaeger å¤ç¨åï¼è¦ä¸è¦ SkyWalkingï¼æ¬ææã纯 Trace â ä¸ä½å APMãå
è°±å¯¹æ¯æ¹æ¡ï¼å¹¶ä»¥ DataBuff Demo checkout é¾è·¯æ¼ç¤º OTLP åå±ä¸é»éç¯ã",cover:"/blog/geo-article-b-full-link-monitoring/assets/9653cf5e10b443398a35c30d67e39a59.png",readingMinutes:3,htmlPath:"geo-article-b-full-link-monitoring/zh/body.html",altLocale:"geo-article-b-full-link-monitoring-en",sourceHtml:"packages/blog-site/content/geo-article-b-full-link-monitoring/zh.html"},{id:"distributed-tracing-landing-databuff-apm-2026-zh",slug:"distributed-tracing-landing-databuff-apm-2026",locale:"zh",title:"åå¸å¼é¾è·¯è¿½è¸ªææ¯æä¹è½å°ï¼",date:"2026-07-07",tags:["APM","OpenTelemetry","Trace","SkyWalking"],summary:"é¾è·¯è¿½è¸ªè½å°è¦å
çè§£æ ä¾µå
¥ Agent å¦ä½å¨åèç å±ç»å
¥ Spanãå¦ä½æ TraceId ä¼ è¿ç½å
³ä¸ MQãæ¬æä»åç讲å°äºæ¥è½å°æ¸
åï¼å¹¶ç¨ Databuff Demo æ¼ç¤º REDãææä¸ Span çå¸å¾ã",cover:"/blog/distributed-tracing-landing-databuff-apm-2026/assets/a66f25dc880d4e2d8c0946ba6bc38e30.png",readingMinutes:6,htmlPath:"distributed-tracing-landing-databuff-apm-2026/zh/body.html",altLocale:"distributed-tracing-landing-databuff-apm-2026-en",sourceHtml:"packages/blog-site/content/distributed-tracing-landing-databuff-apm-2026/zh.html"},{id:"why-it-systems-need-observability-zh",slug:"why-it-systems-need-observability",locale:"zh",title:"ITç³»ç»ä¸ºä»ä¹éè¦å¯è§æµæ§ï¼",date:"2026-07-07",tags:["å¯è§æµæ§","OpenTelemetry","APM","Trace"],summary:"å¾®æå¡ä¸äºåçæ¶ä»£ï¼ãæå¡å¨è¿æ´»çãæ æ³åçä¸å¡ä¸ºä½å¤±è´¥ãæ
¢å¨åªä¸æ®µãæ¬æä» Metrics / Logs / Traces ä¸ç±»ä¿¡å·åºåï¼è¯´æå¯è§æµæ§ä¸ä¼ ç»çæ§çå·®å¼å OTel è½å°è·¯å¾ã",cover:"/blog/why-it-systems-need-observability/assets/a66f25dc880d4e2d8c0946ba6bc38e30.png",readingMinutes:6,htmlPath:"why-it-systems-need-observability/zh/body.html",altLocale:"why-it-systems-need-observability-en",sourceHtml:"packages/blog-site/content/why-it-systems-need-observability/zh.html"},{id:"skywalking-databuff-apm-comparison-zh",slug:"skywalking-databuff-apm-comparison",locale:"zh",title:"弿º APM 详ç»åè½å¯¹æ¯ï¼SkyWalking vs Databuff",date:"2026-07-07",tags:["APM","SkyWalking","OpenTelemetry","éå"],summary:"éå弿º APMï¼åè½æ¸
åå¾å¾åå¾å·®ä¸å¤ï¼çæ£æå¼å·®è·çå´æ¯æéè·¯å¾ä¸ä¸æææ¬ãæ¬æç¨ SkyWalking ä¸ Databuff 宿¹ Demo ç°åºæªå¾éé¡¹å¯¹æ¯æå¡çæ§ãé¾è·¯è¿½è¸ªãææãåè¦ä¸ AI 鮿°ã",cover:"/blog/skywalking-databuff-apm-comparison/assets/6523ab77daba4b879481b955782129d2.png",readingMinutes:12,htmlPath:"skywalking-databuff-apm-comparison/zh/body.html",altLocale:"skywalking-databuff-apm-comparison-en",sourceHtml:"packages/blog-site/content/skywalking-databuff-apm-comparison/zh.html"},{id:"geo-observability-platform-zh",slug:"geo-observability-platform",locale:"zh",title:"弿ºå¯è§æµæ§å¹³å°æä¹éï¼ä» LGTM å°ä¸ä½å APM",date:"2026-07-07",tags:["å¯è§æµæ§","OpenTelemetry","APM","LGTM"],summary:"ã弿ºå¯è§æµãä¸ãAPM å·¥å
·ã常被混ç¨ãæ¬æåæ¸
Metrics / Trace / Logs 䏿¯æ±ï¼å¯¹æ¯ LGTM æ¼è£
æ ãSkyWalking ä¸ä½å APM ä¸ DataBuff ç OTel åçå¹³å°ï¼å¹¶ä»¥ Demo å
¨å±å¤§çä¸ AI 鮿°ä¸ºéªæ¶æ ·ä¾ã",cover:"/blog/geo-observability-platform/assets/b16f9ee6415c4d5c9a2a1501b2efea2c.png",readingMinutes:4,htmlPath:"geo-observability-platform/zh/body.html",altLocale:"geo-observability-platform-en",sourceHtml:"packages/blog-site/content/geo-observability-platform/zh.html"},{id:"databuff-skywalking-pinpoint-comparison-zh",slug:"databuff-skywalking-pinpoint-comparison",locale:"zh",title:"主æµå¼æºAPMå
¨é¢å¯¹æ¯ï¼SkyWalkingä¸DatabuffãPinpointéåæå",date:"2026-07-07",tags:["APM","SkyWalking","Pinpoint","éå"],summary:"é¢åæ£å¨è¯ä¼°å¼æº APM çææ¯è´è´£äººââSkyWalkingãDatabuffãPinpoint 䏿¬¾æ¹æ¡å¨æ¶æä¸è¿ç»´ææ¬ä¸åæå
314èï¼å
¶ä¸ Databuff 以 AI åç APM ä¸ºæ ¸å¿è½åï¼æ¯æºè½åè¿ç»´éåæå¼å¾ä¼å
è¯ä¼°ç维度ä¹ä¸ã",cover:"/blog/databuff-skywalking-pinpoint-comparison/assets/231944dfc5024c30a31dab2b699f4382.png",readingMinutes:7,htmlPath:"databuff-skywalking-pinpoint-comparison/zh/body.html",altLocale:"databuff-skywalking-pinpoint-comparison-en",sourceHtml:"packages/blog-site/content/databuff-skywalking-pinpoint-comparison/zh.html"},{id:"geo-apm-selection-2026-zh",slug:"geo-apm-selection-2026",locale:"zh",title:"2026 弿º APM éåæåï¼OpenTelemetry åçæ¹æ¡æä¹é",date:"2026-07-07",tags:["APM","OpenTelemetry","éå","2026"],summary:"å¢éå¨è¯ä¼°å¼æº APM æ¶ï¼å¸¸è§å°ææ¯ï¼ç»§ç» SkyWalking è¿æ¯æ¥æ± OTel åçæ ï¼æ¬æç¨äºç»´æ¸
åå¯¹æ¯æçç¤¾åºæ¹æ¡ä¸ä¸ä½å OpenTelemetry APMï¼å¹¶ä»¥ DataBuff Demo çå® RED ææ ä¸ææä¸ºéªæ¶æ ·ä¾ã",cover:"/blog/geo-apm-selection-2026/assets/a66f25dc880d4e2d8c0946ba6bc38e30.png",readingMinutes:4,htmlPath:"geo-apm-selection-2026/zh/body.html",altLocale:"geo-apm-selection-2026-en",sourceHtml:"packages/blog-site/content/geo-apm-selection-2026/zh.html"},{id:"top10-oss-apm-tools-2026-zh",slug:"top10-oss-apm-tools-2026",locale:"zh",title:"2026 å¹´ Top 10 弿º APM å·¥å
·æå",date:"2026-07-07",tags:["APM","OpenTelemetry","弿º","2026"],summary:"2026 å¹´æé弿º APM å·¥å
·ï¼é¦å
è¦åæ¸
ï¼ä½ éçæ¯åç¹æ åãé¾è·¯å端ãç»åå¼å¯è§æµæ ï¼è¿æ¯ä¸ä½åå¹³å°ï¼æ¬æéä¸ä»ç» OpenTelemetryãJaegerãDataBuffãSkyWalking çå个常è§ååï¼éç颿ªå¾ä¸å¯¹æ¯æ»è¡¨ã",cover:"/blog/top10-oss-apm-tools-2026/assets/otel-data-flow.webp",readingMinutes:9,htmlPath:"top10-oss-apm-tools-2026/zh/body.html",altLocale:"top10-oss-apm-tools-2026-en",sourceHtml:"packages/blog-site/content/top10-oss-apm-tools-2026/zh.html"},{id:"top5-oss-apm-tools-2026-zh",slug:"top5-oss-apm-tools-2026",locale:"zh",title:"2026 å¹´ Top 5 弿º APM å·¥å
·å¯¹æ¯æå",date:"2026-07-07",tags:["APM","OpenTelemetry","弿º","2026"],summary:"2026 å¹´æé弿º APM å·¥å
·ï¼å
³é®ä¸å¨ææ¦åï¼èå¨ OTel çç¥ãå¼çæµç¨ä¸è¿ç»´äººåæ¯å¦å¹é
ãæ¬æå¯¹æ¯ JaegerãSkyWalkingãDataBuffãGrafana TempoãPinpoint äºæ¬¾æ¹æ¡ï¼ééå维度表ä¸ç颿ªå¾ã",cover:"/blog/top5-oss-apm-tools-2026/assets/ss_search.png",readingMinutes:8,htmlPath:"top5-oss-apm-tools-2026/zh/body.html",altLocale:"top5-oss-apm-tools-2026-en",sourceHtml:"packages/blog-site/content/top5-oss-apm-tools-2026/zh.html"},{id:"otel-apm-backend-guide-2026-en",slug:"otel-apm-backend-guide-2026",locale:"en",title:"How to Pick an OpenTelemetry APM Backend in 2026",date:"2026-07-06",tags:["OpenTelemetry","APM","Observability","Selection"],summary:"A practical guide to choosing an OpenTelemetry APM backend â evaluation criteria, common open-source patterns, and a hands-on look at a three-component stack.",cover:"/blog/otel-apm-backend-guide-2026/assets/03-otel-vendors.png",readingMinutes:3,htmlPath:"otel-apm-backend-guide-2026/en/body.html",altLocale:"otel-apm-backend-guide-2026-zh",sourceHtml:"packages/blog-site/content/otel-apm-backend-guide-2026/en.html"},{id:"otel-apm-backend-guide-2026-zh",slug:"otel-apm-backend-guide-2026",locale:"zh",title:"2026 å¹´å¦ä½æé OpenTelemetry APM å端",date:"2026-07-06",tags:["OpenTelemetry","APM","å¯è§æµæ§","éå"],summary:"ä¸ä»½å®ç¨ç OpenTelemetry APM å端éåæåââè¯ä¼°ç»´åº¦ã常è§å¼æºæ¶ææ¨¡å¼ï¼ä»¥åä¸ç»ä»¶æ ç卿éªè¯æ¹æ³ã",cover:"/blog/otel-apm-backend-guide-2026/assets/03-otel-vendors.png",readingMinutes:3,htmlPath:"otel-apm-backend-guide-2026/zh/body.html",altLocale:"otel-apm-backend-guide-2026-en",sourceHtml:"packages/blog-site/content/otel-apm-backend-guide-2026/zh.html"},{id:"databuff-joins-opentelemetry-en",slug:"databuff-joins-opentelemetry",locale:"en",title:"Celebrating! This Open-Source CN Project Is Now an Official OpenTelemetry Vendor",date:"2026-07-03",tags:["OpenTelemetry","APM","Observability","Open Source"],summary:"DataBuff is the second China-built open-source professional APM on the OpenTelemetry Vendors page (Native OTLP). Standards, architecture, and AI troubleshooting in one article.",cover:"/blog/databuff-joins-opentelemetry/assets/img-01.jpg",readingMinutes:3,htmlPath:"databuff-joins-opentelemetry/en/body.html",altLocale:"databuff-joins-opentelemetry-zh",sourceHtml:"packages/blog-site/content/databuff-joins-opentelemetry/en.html"},{id:"databuff-joins-opentelemetry-zh",slug:"databuff-joins-opentelemetry",locale:"zh",title:"å¯åå¯è´ºï¼è¿æ¬¾å½äº§å¼æºæä¸º CNCF 顶级项ç®å®å®£Vendor",date:"2026-07-03",tags:["OpenTelemetry","APM","å¯è§æµæ§","弿º"],summary:"DataBuff æä¸º SkyWalking ä¹åç¬¬äºæ¬¾ç»ä¸ OpenTelemetry å®ç½ Vendors çå½äº§å¼æºä¸ä¸ APMï¼æ 注 Native OTLPã仿 åãæ¶æå° AI æé䏿¡çº¿è¯´æ¸
ã",cover:"/blog/databuff-joins-opentelemetry/assets/img-01.jpg",readingMinutes:3,htmlPath:"databuff-joins-opentelemetry/zh/body.html",altLocale:"databuff-joins-opentelemetry-en",sourceHtml:"packages/blog-site/content/databuff-joins-opentelemetry/zh.html"},{id:"apm-quick-start-ai-agents-en",slug:"apm-quick-start-ai-agents",locale:"en",title:"AI Agent Squad for Ops: One Complex Request, Multiple Agents in Action",date:"2026-06-26",tags:["APM","OpenTelemetry","Multi-Agent","AI Agent"],summary:"How multiple agents collaborate on one complex incident: from finding slow traces to a joint AI squad analysis.",cover:"/blog/apm-quick-start-ai-agents/assets/trace-list-overview.png",readingMinutes:2,htmlPath:"apm-quick-start-ai-agents/en/body.html",altLocale:"apm-quick-start-ai-agents-zh",sourceHtml:"packages/blog-site/content/apm-quick-start-ai-agents/en.html"},{id:"apm-quick-start-ai-agents-zh",slug:"apm-quick-start-ai-agents",locale:"zh",title:"è¿ç»´é¢åç AI å墿¥äºï¼ä¸ä¸ªå¤æè¯·æ±ï¼å¤ä¸ª Agent èå使",date:"2026-06-26",tags:["APM","OpenTelemetry","Multi-Agent","AI Agent"],summary:"ä¸ä¸ªå¤ææé请æ±å¦ä½ç±å¤ä¸ª Agent åå宿ï¼ä» Trace åç°æ
¢è¯·æ±å° AI åå¢èååæã",cover:"/blog/apm-quick-start-ai-agents/assets/trace-list-overview.png",readingMinutes:2,htmlPath:"apm-quick-start-ai-agents/zh/body.html",altLocale:"apm-quick-start-ai-agents-en",sourceHtml:"packages/blog-site/content/apm-quick-start-ai-agents/zh.html"}],O$={articles:E$},D$={key:0,class:"docs-home-extras"},I$={class:"docs-home-cards"},$$=["href"],z$={class:"docs-home-card__eyebrow"},R$={key:0,class:"docs-home-blog"},N$={class:"docs-home-blog__list"},H$=["href"],W$=["datetime"],q$=["href"],U$=gt({__name:"DocsHomeExtras",setup(e){const t={zh:{cardsTitle:"æä¸»é¢æµè§",cards:[{eyebrow:"äºè§£äº§å",title:"产åä»ç»ä¸ Roadmap",desc:"ä¸å¥è¯å®ä½ãAPM ä¸ AI è½åãéç¨åºæ¯ã",path:"/zh/product/intro"},{eyebrow:"å¿«éå
¥é¨",title:"å®è£
ä¸ OTLP æ¥å
¥",desc:"Docker / K8s é¨ç½²ï¼æ å饿µæ°æ®æ¥å
¥ã",path:"/zh/guide/docker"},{eyebrow:"ä½¿ç¨æå",title:"AI å¹³å°ä¸åè¦",desc:"æ°åä¸å®¶ãMCP éæãåºç¨æ§è½ä¸åè¦é
ç½®ã",path:"/zh/manual/ai-platform"},{eyebrow:"è¿ç»´åè",title:"Docker / K8s è¿ç»´",desc:"å®è£
ç®å½ãå¯åã端å£ãå级å¸è½½ä¸ç¦»çº¿å®è£
ã",path:"/zh/operations/docker"}
314,{eyebrow:"æ¶æè®¾è®¡",title:"饿µæ°æ®æµ",desc:"OTLP â Ingest â Doris â Webï¼ä¸ä¿¡å·å¦ä½å
³èã",path:"/zh/architecture/telemetry-pipeline"}],blogTitle:"ææ°å客",blogMore:"æ¥çå
¨é¨æç« â"},en:{cardsTitle:"Browse by topic",cards:[{eyebrow:"Product",title:"Introduction & Roadmap",desc:"Positioning, APM + AI capabilities, and use cases.",path:"/en/product/intro"},{eyebrow:"Get started",title:"Install & OTLP ingestion",desc:"Docker / Kubernetes deployment and telemetry setup.",path:"/en/guide/docker"},{eyebrow:"Manual",title:"AI platform & alerting",desc:"Experts, MCP integration, APM and alerts.",path:"/en/manual/ai-platform"},{eyebrow:"Operations",title:"Docker / K8s ops",desc:"Install paths, start/stop, ports, upgrade, offline install.",path:"/en/operations/docker"},{eyebrow:"Architecture",title:"Telemetry pipeline",desc:"OTLP â Ingest â Doris â Web and how signals relate.",path:"/en/architecture/telemetry-pipeline"}],blogTitle:"Latest from the blog",blogMore:"View all posts â"}},{localeIndex:r,page:i}=Rr(),a=ut(()=>r.value==="en"?"en":"zh"),s=ut(()=>t[a.value]),n=ut(()=>s.value.cards.map(u=>({...u,href:Cs(u.path)}))),o=ut(()=>{const u=i.value.relativePath;return u==="zh/index.md"||u==="en/index.md"}),l=ut(()=>O$.articles.filter(u=>u.locale===a.value).sort((u,g)=>g.date.localeCompare(u.date)).slice(0,3));function c(u){return`/blog/${a.value}/${u}/`}function h(u){VE(u)}return(u,g)=>o.value?(M(),Y("section",D$,[W("h2",null,xt(s.value.cardsTitle),1),W("div",I$,[(M(!0),Y(Wt,null,ie(n.value,d=>(M(),Y("a",{key:d.path,class:"docs-home-card",href:d.href},[W("span",z$,xt(d.eyebrow),1),W("h3",null,xt(d.title),1),W("p",null,xt(d.desc),1)],8,$$))),128))]),l.value.length?(M(),Y("div",R$,[W("h2",null,xt(s.value.blogTitle),1),W("ul",N$,[(M(!0),Y(Wt,null,ie(l.value,d=>(M(),Y("li",{key:d.id},[W("a",{href:c(d.slug),onClick:h},[W("span",null,xt(d.title),1),W("time",{datetime:d.date},xt(d.date),9,W$)],8,H$)]))),128))]),W("a",{class:"docs-home-blog__more",href:H(p1).blog(a.value),onClick:h},xt(s.value.blogMore),9,q$)])):ct("",!0)])):ct("",!0)}}),V$="databuff-locale",Y$="databuff-locale";function G$(e){if(!(e!=="zh"&&e!=="en")){try{localStorage.setItem(V$,e)}catch{}document.cookie=`${Y$}=${e}; Path=/; Max-Age=31536000; SameSite=Lax`,document.documentElement.lang=e==="zh"?"zh-CN":"en"}}const j$=1,X$="E:\\05openocta\\databuff\\docs",Q$=!1,K$=["readme","product-intro","roadmap","guide-docker","guide-k8s","otel-otlp","guide-spring-boot-otlp","ops-docker","ops-k8s","ops-upgrade","ops-offline","ops-param-config","ops-performance","ops-faq","manual-ai-platform","manual-custom-experts","manual-mcp","manual-apm","manual-alerting","manual-agent","manual-skywalking","manual-ebpf","manual-nginx","arch-pipeline","arch-ai-platform","arch-apm","arch-alerting","arch-logs","compare-vs-skywalking","compare-vs-jaeger","compare-vs-pinpoint","compare-vs-signoz","compare-vs-openobserve","migrate-from-skywalking","migrate-proxy-dual-write-stability","migrate-from-jaeger","migrate-from-pinpoint","migrate-from-signoz","migrate-from-openobserve","version-compare"],Z$=[{id:"readme",section:"product",sidebar:{zh:"ææ¡£é¦é¡µ",en:"Documentation Home"},zh:{source:"README.md",dest:"zh/index.md",route:"/docs/zh"},en:{source:"README_en.md",dest:"en/index.md",route:"/docs/en"}},{id:"product-intro",section:"product",sidebar:{zh:"产åä»ç»",en:"Product Overview"},zh:{source:"产åä»ç».md",dest:"zh/product/intro.md",route:"/docs/zh/product/intro"},en:{source:"产åä»ç»_en.md",dest:"en/product/intro.md",route:"/docs/en/product/intro"}},{id:"roadmap",section:"product",sidebar:{zh:"Roadmap",en:"Roadmap"},zh:{source:"Roadmap.md",dest:"zh/product/roadmap.md",route:"/docs/zh/product/roadmap"},en:{source:"Roadmap_en.md",dest:"en/product/roadmap.md",route:"/docs/en/product/roadmap"}},{id:"version-compare",section:"product",sidebar:{zh:"çæ¬å¯¹æ¯",en:"Edition Comparison"},zh:{source:"site-local:version-compare",dest:"zh/product/version-compare.md",route:"/docs/zh/product/version-compare"},en:{source:"site-local:version-compare",dest:"en/product/version-compare.md",route:"/docs/en/product/version-compare"}},{id:"guide-docker",section:"guide",sidebar:{zh:"Docker å®è£
é¨ç½²",en:"Docker Installation"},zh:{source:"å¿«éå
¥é¨/dockerå®è£
é¨ç½².md",dest:"zh/guide/docker.md",route:"/docs/zh/guide/docker"},en:{source:"å¿«éå
¥é¨/dockerå®è£
é¨ç½²_en.md",dest:"en/guide/docker.md",route:"/docs/en/guide/docker"}},{id:"guide-k8s",section:"guide",sidebar:{zh:"K8s å®è£
é¨ç½²",en:"Kubernetes Installation"},zh:{source:"å¿«éå
¥é¨/k8så®è£
é¨ç½².md",dest:"zh/guide/kubernetes.md",route:"/docs/zh/guide/kubernetes"},en:{source:"å¿«éå
¥é¨/k8så®è£
é¨ç½²_en.md",dest:"en/guide/kubernetes.md",route:"/docs/en/guide/kubernetes"}},{id:"otel-otlp",section:"guide",sidebar:{zh:"OpenTelemetry æ¥å
¥",en:"OpenTelemetry Ingestion"},zh:{source:"opentelemetry-otlp-ingestion.md",dest:"zh/guide/otel-otlp-ingestion.md",route:"/docs/zh/guide/otel-otlp-ingestion"},en:{source:"opentelemetry-otlp-ingestion_en.md",dest:"en/guide/otel-otlp-ingestion.md",route:"/docs/en/guide/otel-otlp-ingestion"}},{id:"guide-spring-boot-otlp",section:"guide",sidebar:{zh:"Spring Boot OTLP æ¥å
¥",en:"Spring Boot OTLP Integration"},zh:{source:"å¿«éå
¥é¨/spring-boot-otlp-integration.md",dest:"zh/guide/spring-boot-otlp.md",route:"/docs/zh/guide/spring-boot-otlp"},en:{source:"å¿«éå
¥é¨/spring-boot-otlp-integration_en.md",dest:"en/guide/spring-boot-otlp.md",route:"/docs/en/guide/spring-boot-otlp"}},{id:"ops-docker",section:"operations",sidebar:{zh:"Docker è¿ç»´",en:"Docker Operations"},zh:{source:"è¿ç»´åè/Dockerè¿ç»´.md",dest:"zh/operations/docker.md",route:"/docs/zh/operations/docker"},en:{source:"è¿ç»´åè/Dockerè¿ç»´_en.md",dest:"en/operations/docker.md",route:"/docs/en/operations/docker"}},{id:"ops-k8s",section:"operations",sidebar:{zh:"Kubernetes è¿ç»´",en:"Kubernetes Operations"},zh:{source:"è¿ç»´åè/K8sè¿ç»´.md",dest:"zh/operations/kubernetes.md",route:"/docs/zh/operations/kubernetes"},en:{source:"è¿ç»´åè/K8sè¿ç»´_en.md",dest:"en/operations/kubernetes.md",route:"/docs/en/operations/kubernetes"}},{id:"ops-upgrade",section:"operations",sidebar:{zh:"å级ä¸å¸è½½",en:"Upgrade and Uninstall"},zh:{source:"è¿ç»´åè/å级ä¸å¸è½½.md",dest:"zh/operations/upgrade-uninstall.md",route:"/docs/zh/operations/upgrade-uninstall"},en:{source:"è¿ç»´åè/å级ä¸å¸è½½_en.md",dest:"en/operations/upgrade-uninstall.md",route:"/docs/en/operations/upgrade-uninstall"}},{id:"ops-offline",section:"operations",sidebar:{zh:"离线å®è£
",en:"Offline Installation"},zh:{source:"è¿ç»´åè/离线å®è£
.md",dest:"zh/operations/offline-install.md",route:"/docs/zh/operations/offline-install"},en:{source:"è¿ç»´åè/离线å®è£
_en.md",dest:"en/operations/offline-install.md",route:"/docs/en/operations/offline-install"}}
314,{id:"ops-param-config",section:"operations",sidebar:{zh:"åæ°é
ç½®",en:"Parameter Configuration"},zh:{source:"è¿ç»´åè/åæ°é
ç½®.md",dest:"zh/operations/param-config.md",route:"/docs/zh/operations/param-config"},en:{source:"è¿ç»´åè/åæ°é
ç½®_en.md",dest:"en/operations/param-config.md",route:"/docs/en/operations/param-config"}},{id:"ops-performance",section:"operations",sidebar:{zh:"æ§è½ä¼åä¸å®¹éè§å",en:"Performance & Capacity"},zh:{source:"è¿ç»´åè/æ§è½ä¼å.md",dest:"zh/operations/performance.md",route:"/docs/zh/operations/performance"},en:{source:"è¿ç»´åè/æ§è½ä¼å_en.md",dest:"en/operations/performance.md",route:"/docs/en/operations/performance"}},{id:"ops-self-monitoring",section:"operations",sidebar:{zh:"å¹³å°èªçæ§ä¸èªæé",en:"Self-Monitoring & Troubleshooting"},zh:{source:"è¿ç»´åè/å¹³å°èªçæ§ä¸èªæé.md",dest:"zh/operations/self-monitoring.md",route:"/docs/zh/operations/self-monitoring"},en:{source:"è¿ç»´åè/å¹³å°èªçæ§ä¸èªæé_en.md",dest:"en/operations/self-monitoring.md",route:"/docs/en/operations/self-monitoring"}},{id:"ops-self-monitoring-metrics",section:"operations",sidebar:{zh:"èªçæ§ææ æ¸
å",en:"Self-Monitoring Metrics"},zh:{source:"è¿ç»´åè/èªçæ§ææ æ¸
å.md",dest:"zh/operations/self-monitoring-metrics.md",route:"/docs/zh/operations/self-monitoring-metrics"},en:{source:"è¿ç»´åè/èªçæ§ææ æ¸
å_en.md",dest:"en/operations/self-monitoring-metrics.md",route:"/docs/en/operations/self-monitoring-metrics"}},{id:"ops-faq",section:"operations",sidebar:{zh:"常è§é®é¢",en:"FAQ"},zh:{source:"è¿ç»´åè/常è§é®é¢.md",dest:"zh/operations/faq.md",route:"/docs/zh/operations/faq"},en:{source:"è¿ç»´åè/常è§é®é¢_en.md",dest:"en/operations/faq.md",route:"/docs/en/operations/faq"}},{id:"manual-ai-platform",section:"manual",sidebar:{zh:"AI å¹³å°",en:"AI Platform"},zh:{source:"ä½¿ç¨æå/AIå¹³å°.md",dest:"zh/manual/ai-platform.md",route:"/docs/zh/manual/ai-platform"},en:{source:"ä½¿ç¨æå/AIå¹³å°_en.md",dest:"en/manual/ai-platform.md",route:"/docs/en/manual/ai-platform"}},{id:"manual-custom-experts",section:"manual",sidebar:{zh:"èªå®ä¹æ°åä¸å®¶",en:"Custom Digital Experts"},zh:{source:"ä½¿ç¨æå/èªå®ä¹æ°åä¸å®¶.md",dest:"zh/manual/custom-experts.md",route:"/docs/zh/manual/custom-experts"},en:{source:"ä½¿ç¨æå/èªå®ä¹æ°åä¸å®¶_en.md",dest:"en/manual/custom-experts.md",route:"/docs/en/manual/custom-experts"}},{id:"manual-mcp",section:"manual",sidebar:{zh:"å¤é¨ MCP éæ",en:"External MCP Integration"},zh:{source:"ä½¿ç¨æå/å¤é¨MCPéæ.md",dest:"zh/manual/mcp-integration.md",route:"/docs/zh/manual/mcp-integration"},en:{source:"ä½¿ç¨æå/å¤é¨MCPéæ_en.md",dest:"en/manual/mcp-integration.md",route:"/docs/en/manual/mcp-integration"}},{id:"manual-apm",section:"manual",sidebar:{zh:"åºç¨æ§è½",en:"Application Performance"},zh:{source:"ä½¿ç¨æå/åºç¨æ§è½.md",dest:"zh/manual/application-performance.md",route:"/docs/zh/manual/application-performance"},en:{source:"ä½¿ç¨æå/åºç¨æ§è½_en.md",dest:"en/manual/application-performance.md",route:"/docs/en/manual/application-performance"}},{id:"manual-alerting",section:"manual",sidebar:{zh:"åè¦",en:"Alerting"},zh:{source:"ä½¿ç¨æå/åè¦.md",dest:"zh/manual/alerting.md",route:"/docs/zh/manual/alerting"},en:{source:"ä½¿ç¨æå/åè¦_en.md",dest:"en/manual/alerting.md",route:"/docs/en/manual/alerting"}},{id:"manual-agent",section:"manual",sidebar:{zh:"Agent éæ",en:"Agent Integration"},zh:{source:"ä½¿ç¨æå/Agentéæ.md",dest:"zh/manual/agent-integration.md",route:"/docs/zh/manual/agent-integration"},en:{source:"ä½¿ç¨æå/Agentéæ_en.md",dest:"en/manual/agent-integration.md",route:"/docs/en/manual/agent-integration"}},{id:"manual-skywalking",section:"manual",sidebar:{zh:"SkyWalking æ¥å
¥",en:"SkyWalking Ingestion"},zh:{source:"ä½¿ç¨æå/SkyWalkingæ¥å
¥.md",dest:"zh/manual/skywalking-ingestion.md",route:"/docs/zh/manual/skywalking-ingestion"},en:{source:"ä½¿ç¨æå/SkyWalkingæ¥å
¥_en.md",dest:"en/manual/skywalking-ingestion.md",route:"/docs/en/manual/skywalking-ingestion"}},{id:"manual-ebpf",section:"manual",sidebar:{zh:"eBPF æ¥å
¥",en:"eBPF Ingestion"},zh:{source:"ä½¿ç¨æå/eBPFæ¥å
¥.md",dest:"zh/manual/ebpf-ingestion.md",route:"/docs/zh/manual/ebpf-ingestion"},en:{source:"ä½¿ç¨æå/eBPFæ¥å
¥_en.md",dest:"en/manual/ebpf-ingestion.md",route:"/docs/en/manual/ebpf-ingestion"}},{id:"manual-nginx",section:"manual",sidebar:{zh:"Nginx æ¥å
¥",en:"Nginx Ingestion"},zh:{source:"ä½¿ç¨æå/Nginxæ¥å
¥.md",dest:"zh/manual/nginx-ingestion.md",route:"/docs/zh/manual/nginx-ingestion"},en:{source:"ä½¿ç¨æå/Nginxæ¥å
¥_en.md",dest:"en/manual/nginx-ingestion.md",route:"/docs/en/manual/nginx-ingestion"}}
314,{id:"arch-pipeline",section:"architecture",sidebar:{zh:"饿µæ°æ®æµä¸åå¨",en:"Telemetry Pipeline"},zh:{source:"æ¶æè®¾è®¡/饿µæ°æ®æµ.md",dest:"zh/architecture/telemetry-pipeline.md",route:"/docs/zh/architecture/telemetry-pipeline"},en:{source:"æ¶æè®¾è®¡/饿µæ°æ®æµ_en.md",dest:"en/architecture/telemetry-pipeline.md",route:"/docs/en/architecture/telemetry-pipeline"}},{id:"arch-ai-platform",section:"architecture",sidebar:{zh:"AI å¹³å°",en:"AI Platform"},zh:{source:"æ¶æè®¾è®¡/AIå¹³å°.md",dest:"zh/architecture/ai-platform.md",route:"/docs/zh/architecture/ai-platform"},en:{source:"æ¶æè®¾è®¡/AIå¹³å°_en.md",dest:"en/architecture/ai-platform.md",route:"/docs/en/architecture/ai-platform"}},{id:"arch-apm",section:"architecture",sidebar:{zh:"åºç¨æ§è½",en:"Application Performance"},zh:{source:"æ¶æè®¾è®¡/åºç¨æ§è½.md",dest:"zh/architecture/application-performance.md",route:"/docs/zh/architecture/application-performance"},en:{source:"æ¶æè®¾è®¡/åºç¨æ§è½_en.md",dest:"en/architecture/application-performance.md",route:"/docs/en/architecture/application-performance"}},{id:"arch-alerting",section:"architecture",sidebar:{zh:"åè¦",en:"Alerting"},zh:{source:"æ¶æè®¾è®¡/åè¦.md",dest:"zh/architecture/alerting.md",route:"/docs/zh/architecture/alerting"},en:{source:"æ¶æè®¾è®¡/åè¦_en.md",dest:"en/architecture/alerting.md",route:"/docs/en/architecture/alerting"}},{id:"arch-logs",section:"architecture",sidebar:{zh:"æ¥å¿åæ",en:"Log Analytics"},zh:{source:"æ¶æè®¾è®¡/æ¥å¿åæ.md",dest:"zh/architecture/log-analytics.md",route:"/docs/zh/architecture/log-analytics"},en:{source:"æ¶æè®¾è®¡/æ¥å¿åæ_en.md",dest:"en/architecture/log-analytics.md",route:"/docs/en/architecture/log-analytics"}},{id:"compare-vs-skywalking",section:"comparison",sidebar:{zh:"å¯¹æ¯ SkyWalking",en:"vs SkyWalking"},zh:{source:"ä¸ç对æ¯/vs-skywalking.md",dest:"zh/comparison/databuff-vs-skywalking.md",route:"/docs/zh/comparison/databuff-vs-skywalking"},en:{source:"ä¸ç对æ¯/vs-skywalking_en.md",dest:"en/comparison/databuff-vs-skywalking.md",route:"/docs/en/comparison/databuff-vs-skywalking"}},{id:"compare-vs-jaeger",section:"comparison",sidebar:{zh:"å¯¹æ¯ Jaeger",en:"vs Jaeger"},zh:{source:"ä¸ç对æ¯/vs-jaeger.md",dest:"zh/comparison/databuff-vs-jaeger.md",route:"/docs/zh/comparison/databuff-vs-jaeger"},en:{source:"ä¸ç对æ¯/vs-jaeger_en.md",dest:"en/comparison/databuff-vs-jaeger.md",route:"/docs/en/comparison/databuff-vs-jaeger"}},{id:"compare-vs-pinpoint",section:"comparison",sidebar:{zh:"å¯¹æ¯ Pinpoint",en:"vs Pinpoint"},zh:{source:"ä¸ç对æ¯/vs-pinpoint.md",dest:"zh/comparison/databuff-vs-pinpoint.md",route:"/docs/zh/comparison/databuff-vs-pinpoint"},en:{source:"ä¸ç对æ¯/vs-pinpoint_en.md",dest:"en/comparison/databuff-vs-pinpoint.md",route:"/docs/en/comparison/databuff-vs-pinpoint"}},{id:"compare-vs-signoz",section:"comparison",sidebar:{zh:"å¯¹æ¯ SigNoz",en:"vs SigNoz"},zh:{source:"ä¸ç对æ¯/vs-signoz.md",dest:"zh/comparison/databuff-vs-signoz.md",route:"/docs/zh/comparison/databuff-vs-signoz"},en:{source:"ä¸ç对æ¯/vs-signoz_en.md",dest:"en/comparison/databuff-vs-signoz.md",route:"/docs/en/comparison/databuff-vs-signoz"}},{id:"compare-vs-openobserve",section:"comparison",sidebar:{zh:"å¯¹æ¯ OpenObserve",en:"vs OpenObserve"},zh:{source:"ä¸ç对æ¯/vs-openobserve.md",dest:"zh/comparison/databuff-vs-openobserve.md",route:"/docs/zh/comparison/databuff-vs-openobserve"},en:{source:"ä¸ç对æ¯/vs-openobserve_en.md",dest:"en/comparison/databuff-vs-openobserve.md",route:"/docs/en/comparison/databuff-vs-openobserve"}},{id:"migrate-from-skywalking",section:"migration",sidebar:{zh:"ä» SkyWalking è¿ç§»",en:"From SkyWalking"},zh:{source:"è¿ç§»æå/from-skywalking-to-databuff.md",dest:"zh/migration/from-skywalking-to-databuff.md",route:"/docs/zh/migration/from-skywalking-to-databuff"},en:{source:"è¿ç§»æå/from-skywalking-to-databuff_en.md",dest:"en/migration/from-skywalking-to-databuff.md",route:"/docs/en/migration/from-skywalking-to-databuff"}},{id:"migrate-proxy-dual-write-stability",section:"migration",sidebar:{zh:"proxy ååç¨³å®æ§",en:"Proxy Dual-Write Stability"},zh:{source:"è¿ç§»æå/proxy-dual-write-stability.md",dest:"zh/migration/proxy-dual-write-stability.md",route:"/docs/zh/migration/proxy-dual-write-stability"},en:{source:"è¿ç§»æå/proxy-dual-write-stability_en.md",dest:"en/migration/proxy-dual-write-stability.md",route:"/docs/en/migration/proxy-dual-write-stability"}},{id:"migrate-from-jaeger",section:"migration",sidebar:{zh:"ä» Jaeger è¿ç§»",en:"From Jaeger"},zh:{source:"è¿ç§»æå/from-jaeger-to-databuff.md",dest:"zh/migration/from-jaeger-to-databuff.md",route:"/docs/zh/migration/from-jaeger-to-databuff"},en:{source:"è¿ç§»æå/from-jaeger-to-databuff_en.md",dest:"en/migration/from-jaeger-to-databuff.md",route:"/docs/en/migration/from-jaeger-to-databuff"}},{id:"migrate-from-pinpoint",section:"migration",sidebar:{zh:"ä» Pinpoint è¿ç§»",en:"From Pinpoint"},zh:{source:"è¿ç§»æå/from-pinpoint-to-databuff.md",dest:"zh/migration/from-pinpoint-to-databuff.md",route:"/docs/zh/migration/from-pinpoint-to-databuff"},en:{source:"è¿ç§»æå/from-pinpoint-to-databuff_en.md",dest:"en/migration/from-pinpoint-to-databuff.md",route:"/docs/en/migration/from-pinpoint-to-databuff"}},{id:"migrate-from-signoz",section:"migration",sidebar:{zh:"ä» SigNoz è¿ç§»",en:"From SigNoz"},zh:{source:"è¿ç§»æå/from-signoz-to-databuff.md",dest:"zh/migration/from-signoz-to-databuff.md",route:"/docs/zh/migration/from-signoz-to-databuff"},en:{source:"è¿ç§»æå/from-signoz-to-databuff_en.md",dest:"en/migration/from-signoz-to-databuff.md",route:"/docs/en/migration/from-signoz-to-databuff"}},{id:"migrate-from-openobserve",section:"migration",sidebar:{zh:"ä» OpenObserve è¿ç§»",en:"From OpenObserve"},zh:{source:"è¿ç§»æå/from-openobserve-to-databuff.md",dest:"zh/migration/from-openobserve-to-databuff.md",route:"/docs/zh/migration/from-openobserve-to-databuff"},en:{source:"è¿ç§»æå/from-openobserve-to-databuff_en.md",dest:"en/migration/from-openobserve-to-databuff.md",route:"/docs/en/migration/from-openobserve-to-databuff"}}],m1={version:j$,docsRoot:X$,pilotMode:Q$,syncedPairIds:K$,pairs:Z$};function Hg(e){return e.replace(/^\/docs/,"").replace(/\/$/,"")||"/"}function J$(e,t=m1){const r=Hg(e);for(const i of t.pairs)for(const a of["zh","en"]){const s=Hg(i[a].route);if(r===s)return i[a==="zh"?"en":"zh"].route}return null}function t6(e,t=m1){const r=new Set(t.syncedPairIds??t.pairs.map(s=>s.id)),i=t.pairs.find(s=>s.id==="product-intro"&&r.has(s.id));if(i)return i[e].route;const a=t.pairs.find(s=>s.id==="readme"&&r.has(s.id));return a?a[e].route:`/docs/${e}/`}const e6={class:"docs-nav-extras"},r6=["aria-label"],i6=["href","aria-label"],Wg=gt({__name:"DocsLangSwitch",setup(e){const t={zh:{langSwitch:"忢è¯è¨",langLabel:{zh:"䏿",en:"EN"},githubAria:"æå¼ DataBuff GitHub ä»åº"},en:{langSwitch:"Switch language",langLabel:{zh:"䏿",en:"EN"},githubAria:"Open DataBuff GitHub repository"}},{localeIndex:r}=Rr(),i=ws(),a=ut(()=>r.value==="en"?"en":"zh"),s=ut(()=>a.value==="zh"?"en":"zh"),n=ut(()=>t[a.value]),o=p1.github;function l(){G$(s.value);const h=J$(i.path)??t6(s.value);window.location.href=h}return(c,h)=>(M(),Y("div",e6,[W("button",{class:"docs-lang-switch",type:"button","aria-label":n.value.langSwitch,onClick:l},[h[0]||(h[0]=W("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[W("circle",{cx:"12",cy:"12",r:"10"}),W("path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}),W("path",{d:"M2 12h20"})],-1)),pr(" "+xt(n.value.langLabel[s.value]),1)],8,r6),W("a",{class:"docs-github-link",href:H(o),target:"_blank",rel:"noopener noreferrer","aria-label":n.value.githubAria},[...h[1]||(h[1]=[W("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"
314currentColor","aria-hidden":"true"},[W("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.3 3.44 9.8 8.21 11.39.6.11.82-.26.82-.58 0-.28-.01-1.02-.02-2-3.34.73-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.09-.75.08-.73.08-.73 1.21.08 1.85 1.24 1.85 1.24 1.07 1.84 2.81 1.31 3.5 1 .11-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.12-.3-.54-1.52.12-3.18 0 0 1.01-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.29-1.55 3.3-1.23 3.3-1.23.66 1.66.24 2.88.12 3.18.77.84 1.24 1.91 1.24 3.22 0 4.61-2.81 5.62-5.48 5.92.43.37.81 1.1.81 2.22 0 1.61-.01 2.91-.01 3.3 0 .32.22.7.82.58A12.01 12.01 0 0 0 24 12c0-6.63-5.37-12-12-12z"})],-1)])],8,i6)]))}});const a6=gt({__name:"DocsMermaid",props:{graph:{},id:{},class:{}},setup(e){return(r,i)=>(M(),wt(qE,Q1(Pr({key:1},r.$props)),null,16))}}),s6={"0.1.9":{zh:`<div class="release-note-body">\r 315<p class="release-lead">DataBuff <strong>v0.1.9</strong> 已就绪ï¼SkyWalking 8.0â8.3 Agent è½ç´æ¥æè¿ç°æ ingest 端å£ï¼é ç½®éæ LLM ä¾åºåç®¡å®æ´ï¼Agent Shell ååªè¯» SQL æ¸ä¸å°å¯é¥è¡¨ãç¸å¯¹ v0.1.8ï¼<strong>10 commitsï¼æ Schema è¿ç§»</strong>ã</p>\r 316<h2>æ¬ç亮ç¹</h2>\r 317<ul>\r 318 <li><strong>SkyWalking 8.0â8.3</strong>ï¼8.x Agent 注åçç gRPC æå¡åï¼Trace / JVM / Managementï¼å¨ç°æ ingest 端å£ä¸è½å¯¹ä¸ï¼ä¸ç¨æ¹æå¡ç«¯ååã</li>\r 319 <li><strong>LLM ä¾åºå CRUD</strong>ï¼é 置管çéå¯å¢å æ¹æ¥ä¾åºåï¼æè¯¦æ 页ã</li>\r 320 <li><strong>åæ®è®¿é®å åº</strong>ï¼AI Agent Shell å Doris åªè¯»æ¥è¯¢é½ä¸è½ç¢° <code>config_llm_provider</code> / <code>api_key_cipher</code>ã</li>\r 321 <li><strong>AI 对è¯</strong>ï¼ä¿®äºæµå¼åå¤éå䏿¡æ¶æ¯éå¤åºç°çé®é¢ã</li>\r 322 <li><strong>Doris æ éæ¶é Key</strong>ï¼é ç½®åå¨ä¸å¯ç¨æ¶ï¼å åéç LLM ä¾åºåä»ç¶çæã</li>\r 323 <li><strong>æå¡å·¡æ£</strong>ï¼<code>inspectService</code> æ¹æ <code>LIMIT 1</code> æ¢æ´»ï¼å¹¶å¤ç¨ HTTP <code>componentTypes</code>ã</li>\r 324 <li><strong>ææ¡£</strong>ï¼è¡¥äº Python åºç¨ OTLP æ¥å ¥æåï¼GitHub #75ï¼ã</li>\r 325</ul>\r 326\r 327<h2>å®è£ ä¸å级</h2>\r 328<p>æ°è£ 请æ <a href="/docs/zh/guide/docker">Docker å®è£ é¨ç½²</a>ï¼å·²æç¯å¢æ¢çæ¬è¯·æ <a href="/docs/zh/operations/upgrade-uninstall">å级ä¸å¸è½½</a>ãæ¬ç<strong>æ Schema è¿ç§»</strong>ï¼<code>schema_version</code> ä»ä¸º 8ï¼ãK8s æ¬ç䏿¯æåå°å级ï¼éå¸è½½åéè£ ã</p>\r 329<pre><code># æ°ç¨æ·å®è£ ï¼å ¨æ°å®è£ ï¼ä¼æ¸ çæ§å®è£ ç®å½ä¸ data/ï¼\r 330curl -fsSL https://databuff.ai/databuff/ai-apm-install.sh | bash\r 331\r 332# ç°æç¨æ·å级ï¼å°±å°å级ï¼ä¿ç data/ è§æµæ°æ®ï¼\r 333curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash</code></pre>\r 334\r 335<h2>ä½éªä¸åé¦</h2>\r 336<p><a href="https://github.com/databufflabs/databuff/releases/tag/v0.1.9">GitHub Release v0.1.9</a> · <a href="https://github.com/databufflabs/databuff">ä»åº</a></p>\r 337</div>\r 338`,en:`<div class="release-note-body">\r 339<p class="release-lead">DataBuff <strong>v0.1.9</strong> is ready: SkyWalking 8.0â8.3 agents can hit the existing ingest port; LLM providers have full CRUD; agent shell and read-only SQL cannot reach credential tables. Versus v0.1.8: <strong>10 commits, no schema migration</strong>.</p>\r 340<h2>Highlights</h2>\r 341<ul>\r 342 <li><strong>SkyWalking 8.0â8.3</strong>: unqualified gRPC service names for Trace / JVM / Management are accepted on the existing ingest port.</li>\r 343 <li><strong>LLM provider CRUD</strong>: create, update, delete, and detail views in config management.</li>\r 344 <li><strong>Credential access hardening</strong>: AI agent shell and read-only Doris queries cannot reach <code>config_llm_provider</code> / <code>api_key_cipher</code>.</li>\r 345 <li><strong>AI brain</strong>: duplicated streaming messages are fixed.</li>\r 346 <li><strong>Doris-down LLM key</strong>: an in-memory LLM provider still takes effect when the config store is unavailable.</li>\r 347 <li><strong>Service inspect</strong>: <code>inspectService</code> uses <code>LIMIT 1</code> existence probes and reuses HTTP <code>componentTypes</code>.</li>\r 348 <li><strong>Docs</strong>: Python OTLP integration quick-start (GitHub #75).</li>\r 349</ul>\r 350\r 351<h2>Install & upgrade</h2>\r 352<p>Fresh install: <a href="/docs/en/guide/docker">Docker install</a>. Existing installs: <a href="/docs/en/operations/upgrade-uninstall">upgrade & uninstall</a>. <strong>No schema migration</strong> this release (<code>schema_version</code> stays 8). Kubernetes does not support in-place upgrade; uninstall then reinstall.</p>\r 353<pre><code># Fresh install (wipes install dir and data/)\r 354curl -fsSL https://databuff.ai/databuff/ai-apm-install.sh | bash\r 355\r 356# In-place upgrade (keeps observational data/)\r 357curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash</code></pre>\r 358\r 359<h2>Try it</h2>\r 360<p><a href="https://github.com/databufflabs/databuff/releases/tag/v0.1.9">GitHub Release v0.1.9</a> · <a href="https://github.com/databufflabs/databuff">Repository</a></p>\r 361</div>\r 362`},"0.1.8":{zh:`<div class="release-note-body">\r 363<p class="release-lead">DataBuff <strong>v0.1.8</strong> å·²å°±ç»ªï¼æ¥å¿è¯¦æ éæ» ingest çæç <code>log_id</code>ï¼GitHub #73ï¼ï¼LLM Trace éç prompt / completion ä¸åæ¯ <code>\\uXXXX</code>ï¼ç»å½é¡µåä¾§æ è½çå° Maven æè¿å»ççå®çæ¬å·ãè¿ç¨ MCP å·¥å ·å¨ fat-jar éä¹è½è·ãç¸å¯¹ v0.1.7ï¼<strong>32 commitsï¼Schema è¿ç§» V008ï¼log_idï¼</strong>ã</p>\r 364<h2>æ¬ç亮ç¹</h2>\r 365<ul>\r 366 <li><strong>æ¥å¿è¯¦æ é log_id</strong>ï¼#73ï¼ï¼ingest ä¸ºæ¯æ¡æ¥å¿çæ 32 ä½ hex åå ¥ <code>log_dc_record.log_id</code>ï¼è¯¦æ æè¿æ¡ id åè¡ãåå <code>time_ns</code> å¨ DUPLICATE KEY 表ä¸ä¸å¯ä¸ï¼é«ååæ¶ä¼ç¹å°å«äººçè¡ãèæ°æ®ç©º id 仿 <code>time_ns</code>ï¼ææå¡æ¶å <code>service_id</code>ï¼æ¥ã</li>\r 367 <li><strong>GenAI / LLM Trace å¯è¯»</strong>ï¼å±æ§å以 <code>gen_ai.</code> / <code>gen.ai.</code> / <code>llm.</code> å¼å¤´ç spanï¼æ¥è¯¢æ¶è§£ç unicode 转ä¹ãæ è¿äºåç¼çæ®é span ä¸å¨ã</li>\r 368 <li><strong>产åçæ¬å·</strong>ï¼ç»å½é¡µèåä¾§æ ç¨æ·èå读å Maven build-infoã</li>\r 369 <li><strong>è¿ç¨ MCP</strong>ï¼fat-jar éè¡¥ä¸ MCP JSON SPIï¼è¿ç¨ SSE / Streamable HTTP å·¥å ·è½è¢« LLM 对è¯çæ£è°å°ã</li>\r 370 <li><strong>ResourceIgnoreFilter</strong>ï¼<code>ingest.trace.ignore-resources</code> / <code>ignore-resource-regex</code> çæ£ç»å°è¿æ»¤ Beanã</li>\r 371 <li><strong>SkyWalking SQL æ åå</strong>ï¼ingest ä¾§æ SW SQL ææ¢æè§åå½ä¸ï¼å OTel è·¯å¾å£å¾ä¸è´ã</li>\r 372 <li><strong>æå¡å®ä¾ Top 5</strong>ï¼æè¡æ <code>service_instance</code> åç»ã</li>\r 373 <li><strong>Trace / æ¥å¿æ±ç¶å¾çé</strong>ï¼ç¹æ±çéå¯å¼å ³ãå¯éç½®ã</li>\r 374 <li><strong>ææ¡£</strong>ï¼è¡¥äº Nginx / eBPF æ¥å ¥æåï¼æåï¼ä¸æ¯æ¬çæ°åæ¢æ´»äº§åæèªç eBPF Agentï¼ã</li>\r 375</ul>\r 376\r 377<h2>æä¹ç¨ï¼æ¥å¿è¯¦æ </h2>\r 378<p>åå° v0.1.8 åæ°åå ¥çæ¥å¿å¸¦ <code>log_id</code>ãå表ç¹è¿è¯¦æ æè¿æ¡ id åè¡ï¼åç¨æ¶é´çªå£è£åªãå级æ¶å è·å® V008 åæ» web / ingestï¼æ° Web ä¼ <code>SELECT log_id</code>ã</p>\r 379<figure class="figure">\r 380<img src="/blog/databuff-v018-release/assets/04-logs-charts.png" alt="æ¥å¿åæåè¡¨ï¼æ°éç»è®¡ãç¶æåå¸åæ¥å¿è¡¨æ ¼">\r 381<div class="caption">å¾ 1 · æ¥å¿åæå表页ï¼å°æªç¹è¿è¯¦æ ï¼</div>\r 382</figure>\r 383<figure class="figure">\r 384<img src="/blog/databuff-v018-release/assets/05-logs-detail.png" alt="æ¥å¿è¯¦æ æ½å±ä¸å表å½åè¡ä¸è´">\r 385<div class="caption">å¾ 2 · ç¹å¼æ½å±åæ£æãå®ä¾ãTrace ID è·å表é£ä¸è¡ä¸è´ï¼æ¥è¯¢æ log_id åè¡ï¼é¡µé¢ä¸åç¬å±ç¤ºè¿ä¸ª id</div>\r 386</figure>\r 387\r 388<h2>æä¹ç¨ï¼LLM Trace</h2>\r 389<p>æ¢éæ OpenTelemetry GenAI è¯ä¹çº¦å®æäº <code>gen_ai.*</code>ï¼æ <code>gen.ai.*</code> / <code>llm.*</code>ï¼æ¶ï¼æå¼ Trace ä¼å¨æ¥è¯¢é¶æ®µè§£å¼ <code>\\uXXXX</code>ãæ¬çæ²¡æåç¬ç LLM åæé¡µï¼å°±æ¯é¾è·¯è¯¦æ éè½æ prompt / completion è¯»åºæ¥ã</p>\r 390<figure class="figure">\r 391<img src="/blog/databuff-v018-release/assets/09-trace-llm-detail.png" alt="è°ç¨é¾è¯¦æ é gen_ai.prompt æ¾ç¤ºä¸æåæ">\r 392<div class="caption">å¾ 3 · LLM Traceï¼gen_ai.prompt / completion æåææ¾ç¤ºï¼ä¸åæ¯ unicode 转ä¹ä¸²</div>\r 393</figure>\r 394\r 395<h2>æä¹ç¨ï¼ç¡®è®¤çæ¬ä¸å®ä¾</h2>\r 396<p>ç»å½é¡µèåä¾§æ ç¨æ·èå读å Maven build-infoãæå¡è¯¦æ ãåºç¡ä¿¡æ¯ãåå°ãæå®ä¾æè¡Top5ãæ¶ï¼æè¡æ <code>service_instance</code> åç»ã</p>\r 397<figure class="figure">\r 398<img src="/blog/databuff-v018-release/assets/01-login-version.png" alt="ç»å½é¡µèæ¾ç¤ºäº§åçæ¬ 0.1.8">\r 399<div class="caption">å¾ 4 · ç»å½é¡µèç 0.1.8 æ¥èª Maven build-info</div>\r 400</figure>\r 401<figure class="figure">\r 402<img src="/blog/databuff-v018-release/assets/02-home-sidebar-version.png" alt="ä¾§æ æ¾ç¤ºçæ¬ 0.1.8">\r 403<div class="caption">å¾ 5 · ç»å½åä¾§æ åä¸ä¸²çæ¬å·</div>\r 404</figure>\r 405<figure class="figure">\r 406<img src="/blog/databuff-v018-release/assets/14-service-instance-top5.png" alt="æå¡è¯¦æ åºç¡ä¿¡æ¯æå®ä¾æè¡Top5">\r 407<div class="caption">å¾ 6 · åºç¡ä¿¡æ¯ â æå®ä¾æè¡Top5ï¼service-a-1 / 2 / 3 åå¼å±ç¤º</div>\r 408</figure>\r 409\r 410<h2>å®è£ ä¸å级</h2>\r 411<p>æ°è£ 请æ <a href="/docs/zh/guide/docker">Docker å®è£ é¨ç½²</a>ï¼å·²æç¯å¢æ¢çæ¬è¯·æ <a href="/docs/zh/operations/upgrade-uninstall">å级ä¸å¸è½½</a>ãæ¬çå« Schema è¿ç§» <strong>V008</strong>ï¼<code>log_id</code> + åè¦ç»æååï¼<code>schema_version</code> â 8ï¼ï¼åçº§èæ¬ä¼èªå¨è·è¿ç§»ï¼K8s æ¬ç䏿¯æåå°å级ï¼éå¸è½½åéè£ ã</p>\r 412<pre><code># æ°ç¨æ·å®è£ ï¼å ¨æ°å®è£ ï¼ä¼æ¸ çæ§å®è£ ç®å½ä¸ data/ï¼\r 413curl -fsSL https://databuff.ai/databuff/ai-apm-install.sh | bash\r 414\r 415# ç°æç¨æ·å级ï¼å°±å°å级ï¼ä¿ç data/ è§æµæ°æ®ï¼\r 416curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash</code></pre>\r 417\r 418<h2>ä½éªä¸åé¦</h2>\r 419<p><a href="https://github.com/databufflabs/databuff/releases/tag/v0.1.8">GitHub Release v0.1.8</a> · <a href="https://github.com/databufflabs/databuff">ä»åº</a></p>\r 420</div>\r 421`,en:`<div class="release-note-body">\r 422<p class="release-lead">DataBuff <strong>v0.1.8</strong> is ready: log detail is pinned to an ingest-generated <code>log_id</code> (GitHub #73); LLM Trace prompt / completion is no longer a string of <code>\\uXXXX</code>; the login footer and sidebar show the Maven build-info version. Remote MCP tools run inside the fat-jar. Versus v0.1.7: <strong>32 commits, schema migration V008 (log_id)</strong>.</p>\r 423<h2>Highlights</h2>\r 424<ul>\r 425 <li><strong>Log detail pinned to log_id</strong> (#73): ingest writes a 32-hex id on every log row; detail queries pin that row. <code>time_ns</code> is not unique on a DUPLICATE KEY table, so high-QPS <code>LIMIT 1</code> could open someone else's row. Existing rows with empty id still use <code>time_ns</code> (+ <code>service_id</code>).</li>\r 426 <li><strong>GenAI / LLM traces readable</strong>: spans whose attributes start with <code>gen_ai.</code> / <code>gen.ai.</code> / <code>llm.</code> decode unicode escapes at query time. Other spans are untouched.</li>\r 427 <li><strong>Product version</strong>: Maven build-info on the login footer and sidebar user menu.</li>\r 428 <li><strong>Remote MCP</strong>: MCP JSON SPI warmed so remote SSE / Streamable HTTP tools actually run from LLM chat in the fat-jar.</li>\r 429 <li><strong>ResourceIgnoreFilter</strong>: <code>ingest.trace.ignore-resources</code> / <code>ignore-resource-regex</code> now bind to the filter bean.</li>\r 430 <li><strong>SkyWalking SQL normalize</strong>: ingest-side SQL standardization aligned with the OTel path.</li>\r 431 <li><strong>Instance Top 5</strong>: rankings group by <code>service_instance</code>.</li>\r 432 <li><strong>Trace / Logs bar filter</strong>: click-to-filter can toggle and reset.</li>\r 433 <li><strong>Docs</strong>: Nginx and eBPF ingest how-tos (how-tos, not new product surfaces).</li>\r 434</ul>\r 435\r 436<h2>How to use: log detail</h2>\r 437<p>After upgrading to v0.1.8, newly ingested logs carry <code>log_id</code>. Opening a row pins that id, then prunes by a time window. Apply V008 before rolling web / ingest â new Web <code>SELECT</code>s <code>log_id</code>.</p>\r 438<figure class="figure">\r 439<img src="/blog/databuff-v018-release/assets/04-logs-charts.png" alt="Logs analysis list: volume, status charts and table">\r 440<div class="caption">Fig 1 · Logs analysis list (detail drawer not open yet)</div>\r 441</figure>\r 442<figure class="figure">\r 443<img src="/blog/databuff-v018-release/assets/05-logs-detail.png" alt="Log detail drawer matches the selected list row">\r 444<div class="caption">Fig 2 · Drawer body, instance and Trace ID match the clicked row; lookup uses log_id, which is not shown as a column</div>\r 445</figure>\r 446\r 447<h2>How to use: LLM traces</h2>\r 448<p>If the probe follows the OpenTelemetry GenAI semantic conventions (<code>gen_ai.*</code> / <code>gen.ai.*</code> / <code>llm.*</code>), opening the Trace decodes <code>\\uXXXX</code> at query time. There is no separate LLM analysis page in this release.</p>\r 449<figure class="figure">\r 450<img src="/blog/databuff-v018-release/assets/09-trace-llm-detail.png" alt="Trace detail shows gen_ai.prompt in plain text">\r 451<div class="caption">Fig 3 · LLM Trace: gen_ai.prompt / completion as original text, not unicode escapes</div>\r 452</figure>\r 453\r 454<h2>How to use: version and instances</h2>\r 455<p>Login footer and sidebar user menu read Maven build-info. On service detail â Basic info â Top 5 by instance, rankings group by <code>service_instance</code>.</p>\r 456<figure class="figure">\r 457<img src="/blog/databuff-v018-release/assets/01-login-version.png" alt="Login footer shows product version 0.1.8">\r 458<div class="caption">Fig 4 · Login footer 0.1.8 comes from Maven build-info</div>\r 459</figure>\r 460<figure class="figure">\r 461<img src="/blog/databuff-v018-release/assets/02-home-sidebar-version.png" alt="Sidebar shows version 0.1.8">\r 462<div class="caption">Fig 5 · Same version string in the sidebar after login</div>\r 463</figure>\r 464<figure class="figure">\r 465<img src="/blog/databuff-v018-release/assets/14-service-instance-top5.png" alt="Service detail Basic info Top 5 by instance">\r 466<div class="caption">Fig 6 · Basic info â Top 5 by instance; series are service-a-1 / 2 / 3</div>\r 467</figure>\r 468\r 469<h2>Install & upgrade</h2>\r 470<p>Fresh install: <a href="/docs/en/guide/docker">Docker install</a>. Existing installs: <a href="/docs/en/operations/upgrade-uninstall">upgrade & uninstall</a>. Schema migration <strong>V008</strong> (<code>log_id</code> + structured alert columns, <code>schema_version</code> â 8) runs automatically. Kubernetes does not support in-place upgrade this release; uninstall then reinstall.</p>\r 471<pre><code># Fresh install (wipes install dir and data/)\r 472curl -fsSL https://databuff.ai/databuff/ai-apm-install.sh | bash\r 473\r 474# In-place upgrade (keeps observational data/)\r 475curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash</code></pre>\r 476\r 477<h2>Try it</h2>\r 478<p><a href="https://github.com/databufflabs/databuff/releases/tag/v0.1.8">GitHub Release v0.1.8</a> · <a href="https://github.com/databufflabs/databuff">Repository</a></p>\r 479</div>\r 480`},"0.1.7":{zh:`<div class="release-note-body">\r 481<p class="release-lead">DataBuff <strong>v0.1.7</strong> 已就绪ï¼å¹³å°èªçæ§ä¸èªæéä¸çº¿ï¼é¨ç½²ç¶æé¡µç¯ ingest / web / Dorisï¼äº§åççä¸å®¶å¯å·¡æ£ãè¯æå¹¶æå»ºè®®æ¹åæ°ãå¦å®åé HTTP æ¥å£åæãå ¨å±ææå¤ç«æå¡å±ç¤ºãå¤ FE/BE å°åé ç½®ä¸é¾è·¯æ¥è¯¢å éãç¸å¯¹ v0.1.6ï¼<strong>31 commitsï¼Schema è¿ç§» V007ï¼metric_platformï¼</strong>ã</p>\r 482<h2>æ¬ç亮ç¹</h2>\r 483<ul>\r 484 <li><strong>å¹³å°èªçæ§ä¸èªæé</strong>ï¼æ°å¢é¨ç½²ç¶æé¡µï¼å®è£ é¨ç½² â é¨ç½²ç¶æï¼ï¼æ»è§å ¥ç« TPSãååºå¤±è´¥ãDoris ç£çãæ¥è¯¢å¤±è´¥ï¼ingest / web / Doris å tab çå¾ï¼æ¯ä¸ªææ æ é¢å¯ç¹å¼ç计ç®å£å¾ä¸å¯è°ç¯å¢åéã</li>\r 485 <li><strong>AI ä¸é®å·¡æ
485£ä¸ä¿®å¤</strong>ï¼äº§åççä¸å®¶å¯è¯»ææ æ¸ åãæ¥å¹³å°èªçæ§æ°æ®ï¼è¾åº HTML å·¡æ£æ¥åï¼åç°ååºä¸¢å¼çé®é¢å¯æ²¿é¾è·¯è¯æï¼å¹¶æå»ºè®®ç»å½å¤ä»½é ç½®ãæ¹åæ°ãéå¯ ingestã夿¥å½é¶ï¼v0.1.7 æ°å¢èªè¿ç»´ä¿®å¤è½åï¼ã</li>\r 486 <li><strong>ççä¸å®¶ Doris åªè¯»æ¥è¯¢</strong>ï¼<code>POST /webapi/api/v1/ai/doris/query</code> ä¸å ç½®å·¥å · <code>platform.queryDoris</code>ï¼å¹³å°é ç½®ä¸é¥æµåªè¯»æ ¸éªï¼æ éæå·¥è¿åºã</li>\r 487 <li><strong>é HTTP æ¥å£åæå®å</strong>ï¼<code>resourceInfo</code> / <code>resourceRelation</code> æ¯æé HTTP <code>componentTypes</code>ï¼æ¥å£ä¸é»çèµæºçéãæ ¢è°ç¨ä¸é误路å¾è¦ç DB / MQ / RPC çã</li>\r 488 <li><strong>æå¡åç±»ä¸ææ</strong>ï¼åºç¨æå¡æ span/componentId è¯å« web ä¸èæä¸é´ä»¶ç±»åï¼å ¨å±ææå¨æ è°ç¨è¾¹æ¶ä»å±ç¤ºå¤ç«æå¡ï¼æå¡æµå¡çæå¡åæå¤ä¸¤è¡ã</li>\r 489 <li><strong>å¤ FE / å¤ BE</strong>ï¼<code>DORIS_FE_HOST</code> / <code>DORIS_BE_HTTP_HOST</code> æ¯æéå·åéå°åå表ï¼å¥åº·è½®è¯¢å¤±è´¥èªå¨æ¢èç¹ï¼è¯¦è§ä¸æ¹ä¸èï¼ã</li>\r 490 <li><strong>é¾è·¯æ¥è¯¢å é</strong>ï¼span æ¥è¯¢æåéé®è£åªå¹¶è·³è¿ <code>call_spans</code> COUNTï¼æ TraceID è¿æ»¤æ¶ Trace å¾ä» span èåã</li>\r 491 <li><strong>åè¦ä¸ MCP</strong>ï¼çæ§è§åè¯ä¼°æ¯æ <code>lt</code> / <code>lte</code> / <code>gte</code> æ¯è¾ç¬¦ä¸ warning éå¼ï¼è¿ç¨ MCP å¨ transport ä¹åæ£ç¡®åºç¨ headersï¼AI å¯¹è¯ Mermaid æèç¹æ¸²æå¹¶å¸¦è¯æ³ä¿®å¤å åºã</li>\r 492 <li><strong>ä½éªä¿®å¤</strong>ï¼æ¥å¿åè¡¨ææ¶é´ååºï¼AI å夿¶ç¨æ·ç¿»ç䏿ä¸å被èªå¨æ»å°åºï¼è天æ¶é´èå´ <code>end</code> å¤çä¿®æ£ã</li>\r 493</ul>\r 494\r 495<h2>æä¹ç¨ï¼å¹³å°èªçæ§ï¼é¨ç½²ç¶æé¡µï¼</h2>\r 496<p>è·¯å¾ï¼<strong>å®è£ é¨ç½² â é¨ç½²ç¶æ</strong>ï¼<code>/deploy/status</code>ï¼ãæå¼å çæ»è§åå¼ å¡çï¼å ¥ç« TPSãååºå¤±è´¥ãDoris ç£çå ç¨ãæ¥è¯¢å¤±è´¥ãååºå¤±è´¥æ Pipeline 䏢弿ç»é 0 å°±è¦å¤çã</p>\r 497<ul>\r 498 <li><strong>ingest 页ç¾</strong>ï¼trace / metric / log åè·¯ä¿¡å·æ¶è¿æ¥ãæä¹å¤çãæä¹ååºï¼ææ²¡æä¸¢ã</li>\r 499 <li><strong>web 页ç¾</strong>ï¼å¹³å°æ¥è¯¢æ¥å£èæ¶ä¸é误ã</li>\r 500 <li><strong>Doris 页ç¾</strong>ï¼åå¨èç¹åæ´»ãç£çä¸ CPUã</li>\r 501 <li><strong>ææ è¯´æä¹¦</strong>ï¼ç¹ä»»æå¾æ é¢ï¼å³ä¾§æ½å±è¯´ææä¹ç®ã使¶å¼å¸¸ã该è°åªä¸ªç¯å¢åéã</li>\r 502</ul>\r 503\r 504<figure class="figure">\r 505<img src="/blog/databuff-v017-release/assets/01-selfmonitor-overview.png" alt="é¨ç½²ç¶ææ»è§ï¼å ¥ç« TPSãååºå¤±è´¥ãDoris ç£çå ç¨ãæ¥è¯¢å¤±è´¥åå¼ å¡ç">\r 506<div class="caption">å¾ 1 · é¨ç½²ç¶ææ»è§ï¼åå¼ å¡çå ç»å¹³å°å¥åº·ç»è®ºï¼åä¸é» ingest / web / Doris å tab</div>\r 507</figure>\r 508\r 509<h2>æä¹ç¨ï¼AI å·¡æ£ä¸èªæé</h2>\r 510<p>䏿³ä¸é¡µé¡µç¿»å¾ï¼å¨ <strong>AI å¹³å°</strong> 对产åççä¸å®¶è¯´ï¼ã对 DataBuff å¹³å°è¿è¡å·¡æ£ï¼å¹¶åºä¸ä»½ html å·¡æ£æ¥åããä¸å®¶ä¼è¯»ææ æ¸ åãæ¥å¹³å°ææ ï¼æå¼å¸¸æåºæ¥çæå¯è½¬åç HTML æ¥åãçå°ååºä¸¢å¼åï¼å¯ç»§ç»è®©å®é¡ºçãææ¹ â ååºéå â Dorisãé¾è·¯æ¥æ ¹å ï¼å¹¶ç»åºè¯¥è°çåæ°ï¼å¦ <code>INGEST_DORIS_MAX_READY_BATCHES</code>ï¼ãv0.1.7 èµ·ä¸å®¶è¿å¯æå»ºè®®æ§è¡ç»å½ãå¤ä»½é ç½®ãæ¹åæ°ãéå¯ ingest 并夿¥ã</p>\r 511\r 512<figure class="figure">\r 513<img src="/blog/databuff-v017-release/assets/02-selfmonitor-inspection.png" alt="产åççä¸å®¶ä¸å¥è¯è§¦åçå¹³å° HTML å·¡æ£æ¥å">\r 514<div class="caption">å¾ 2 · ä¸å¥è¯è§¦åçå¹³å°å·¡æ£æ¥åï¼å¼å¸¸é¡¹ãè¯æ®ä¸å»ºè®®éä¸å¨ä¸é¡µï¼å¯ç´æ¥è½¬åç»å¢é</div>\r 515</figure>\r 516\r 517<p>宿´æä½æ¡ä¾ä¸ææ å ¨è¡¨è§ <a href="/docs/zh/operations/self-monitoring">å¹³å°èªçæ§ä¸èªæé</a> · <a href="/docs/zh/operations/self-monitoring-metrics">èªçæ§ææ æ¸ å</a>ã</p>\r 518\r 519<h2>æ¥å£åæä¸ææï¼ç®è¦ï¼</h2>\r 520<p>é¤äºèªçæ§ï¼v0.1.7 è¿æ<strong>é HTTP æ¥å£</strong>ï¼DBãMQãRPC çï¼çåºç¡ä¿¡æ¯ãè°ç¨åå²ãæ ¢è°ç¨ä¸é误ä¸é»è¡¥é½äºï¼ä»æå¡è¯¦æ è·³å°æ¥å£åææ¶ <code>componentType</code> 伿£ç¡®å¸¦ä¸ï¼ä¸ä¼åæ MQ æ¥å£å½æ HTTP 廿¥ãå ¨å±ææå¨ãåªæå¤ç«æå¡ã没æè°ç¨è¾¹ãæ¶ä¹
520伿è¿äºæå¡ç»åºæ¥ï¼é¿å 空å¾è¯¯å¤å¹³å°æ²¡æ°æ®ãé¾è·¯æ¥è¯¢ç»§ç»æ¶ç´§ï¼span å表æåéé®è£åªå¹¶è·³è¿å¤ä½ç <code>call_spans</code> COUNTï¼TraceID è¿æ»¤æ¶å¾è¡¨ç´æ¥ä» span èåã</p>\r 521\r 522<h2>æä¹ç¨ï¼é ç½®å¤ FE / å¤ BE</h2>\r 523<p>ç产è¥å·²æ Doris å¤èç¹é群ï¼v0.1.7 èµ· DataBuff ç Web / Ingest å¯ä»¥ç´æ¥å¡«<strong>éå·åéå°åå表</strong>ï¼æ¥è¯¢èµ°å¤ FEï¼åå ¥ Stream Load èµ°å¤ BEï¼èç¹ä¸å¥åº·æ¶èªå¨æ¢ä¸ä¸ä¸ªï¼å¹¶å®æ <code>/api/health</code> æ¢æ´»æ¢å¤ãåèç¹ä¸é®å®è£ åæ³ä¸åã</p>\r 524<ul>\r 525 <li><strong>æ¥è¯¢</strong>ï¼WebãIngest é½é <code>DORIS_FE_HOST</code>ï¼JDBCï¼é»è®¤ç«¯å£ 9030ï¼ãå¤ FE æ¶ JDBC èªå¨åæ <code>jdbc:mysql:loadbalance://...</code>ã</li>\r 526 <li><strong>åå ¥ï¼æ¨èï¼</strong>ï¼ä» Ingest é <code>DORIS_BE_HTTP_HOST</code>ï¼Stream Load <strong>ç´è¿ BE:8040</strong>ï¼å¤ BE å¥åº·è½®è¯¢ãä¸é®å®è£ é»è®¤å·²é BEï¼è¯·ä¿æé ä¸ã</li>\r 527 <li><strong>ä¸é BE æ¶</strong>ï¼åå ¥å æ FE:8030 å 307 å° BEï¼å离é¨ç½²ä¸å¦ç´è¿ BE 稳ã</li>\r 528</ul>\r 529<p><strong>å°ååæ³</strong>ï¼FE / BE ç¸åè§åï¼ï¼åä¸»æº <code>fe1</code> / <code>be1</code>ï¼å¤ä¸»æºå ±äº«ç«¯å£ <code>fe1,fe2</code> / <code>be1,be2</code>ï¼æ¯æ¡èªå¸¦ç«¯å£ <code>fe1:19030,fe2:19031</code> / <code>be1:8040,be2:8041</code>ã</p>\r 530<pre><code># Dockerï¼å¤ç½® Doris ææ¹å°åæ¶åå ¥ docker-compose.override.yml\r 531services:\r 532 ai-apm-web:\r 533 environment:\r 534 DORIS_FE_HOST: "192.168.1.10,192.168.1.11"\r 535 DORIS_FE_QUERY_PORT: "9030"\r 536 ai-apm-ingest:\r 537 environment:\r 538 DORIS_FE_HOST: "192.168.1.10,192.168.1.11"\r 539 DORIS_FE_QUERY_PORT: "9030"\r 540 DORIS_BE_HTTP_HOST: "192.168.1.20,192.168.1.21"\r 541 DORIS_BE_HTTP_PORT: "8040"</code></pre>\r 542<p>æ¹å®å <code>docker compose up -d ai-apm-web ai-apm-ingest</code>ãK8s åå¨ ConfigMap <code>ai-apm-config</code> åå ¥åæ ·åéå¹¶ rollout restart web / ingestã表å¤å¯æ¬ï¼<code>replication_num ⥠2</code>ï¼æ¯é群å åä½ï¼ååºç¨ä¾§å°åå表äºè¡¥ã宿´ç«¯å£è¯´æè§ <a href="/docs/zh/operations/param-config">åæ°é ç½®</a> §3ã</p>\r 543\r 544<h2>å®è£ ä¸å级</h2>\r 545<p>æ°è£ 请æ <a href="/docs/zh/guide/docker">Docker å®è£ é¨ç½²</a>ï¼å·²æç¯å¢æ¢çæ¬è¯·æ <a href="/docs/zh/operations/upgrade-uninstall">å级ä¸å¸è½½</a>ãæ¬çå« Schema è¿ç§» <strong>V007</strong>ï¼æ°å¢ <code>metric_platform</code>ï¼<code>schema_version</code> â 7ï¼ï¼åçº§èæ¬ä¼èªå¨è·è¿ç§»ï¼K8s æ¬ç䏿¯æåå°å级ï¼éå¸è½½åéè£ ã</p>\r 546<pre><code># æ°ç¨æ·å®è£ ï¼å ¨æ°å®è£ ï¼ä¼æ¸ çæ§å®è£ ç®å½ä¸ data/ï¼\r 547curl -fsSL https://databuff.ai/databuff/ai-apm-install.sh | bash\r 548\r 549# ç°æç¨æ·å级ï¼å°±å°å级ï¼ä¿ç data/ è§æµæ°æ®ï¼\r 550curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash</code></pre>\r 551\r 552<h2>ä½éªä¸åé¦</h2>\r 553<p><a href="https://github.com/databufflabs/databuff/releases/tag/v0.1.7">GitHub Release v0.1.7</a> · <a href="https://demo.databuff.ai">å¨çº¿ Demo</a> · <a href="https://github.com/databufflabs/databuff">ç»é¡¹ç® Star</a></p>\r 554</div>\r 555`,en:`<div class="release-note-body">\r 556<p class="release-lead">DataBuff <strong>v0.1.7</strong> is ready: platform self-monitoring and self-troubleshooting landâthe Deploy Status page watches ingest / web / Doris, and the product Q&A expert can inspect, diagnose, and apply fixes. Also improved non-HTTP endpoint analysis, isolated services on the global topology, multi FE/BE host lists, and faster span queries. Versus v0.1.6: <strong>31 commits, schema migration V007 (metric_platform)</strong>.</p>\r 557<h2>Highlights</h2>\r 558<ul>\r 559 <li><strong>Platform self-monitoring & self-troubleshooting</strong>: new Deploy Status page (Install â Deploy Status) with inbound TPS, write failures, Doris disk, and query errors; ingest / web / Doris tabs; metric title drawers explain computation and env knobs.</li>\r 560 <li><strong>AI inspection & self-ops fixes</strong>: the product Q&A expert reads the metric catalog, queries platform telemetry, outputs HTML inspection reports, traces drop chains, and in v0.1.7 can apply fixes (login, backup config, tune env, restart ingest, verify).</li>\r 561 <li><strong>QA Doris read-only query</strong>: <code>POST /webapi/api/v1/ai/doris/query</code> and built-in <code>platform.queryDoris</code> for read-only platform config/data checks without ad-hoc DB connections.</li>\r 562 <li><strong>Non-HTTP endpoint analysis</strong>: <code>resourceInfo</code> / <code>resourceRelation</code> support non-HTTP <code>componentTypes</code>;
562 drill-down filters and slow/error paths for DB / MQ / RPC bases expanded.</li>\r 563 <li><strong>Service classification & topology</strong>: web vs virtual middleware types from span/componentId recognition; global topology shows isolated services when no call edges; service-flow cards allow two-line service names.</li>\r 564 <li><strong>Multi FE / multi BE</strong>: <code>DORIS_FE_HOST</code> / <code>DORIS_BE_HTTP_HOST</code> accept comma-separated host lists with health round-robin failover (see section below).</li>\r 565 <li><strong>Faster span queries</strong>: span queries prune with a minute key and skip <code>call_spans</code> COUNT; trace charts aggregate from spans when filtering by TraceID.</li>\r 566 <li><strong>Alarms & MCP</strong>: monitor rules honor <code>lt</code> / <code>lte</code> / <code>gte</code> comparators and warning thresholds; remote MCP headers applied after transport; AI chat Mermaid renders per-node with syntax-repair fallback.</li>\r 567 <li><strong>UX fixes</strong>: log list descending time order; chat stops auto-scroll while the user reads earlier messages; <code>getCurrentTimeRange</code> end handling fixed.</li>\r 568</ul>\r 569\r 570<h2>How to use: platform self-monitoring (Deploy Status)</h2>\r 571<p>Path: <strong>Install â Deploy Status</strong> (<code>/deploy/status</code>). Start with the four overview cards: inbound TPS, write failures, Doris disk, query errors. Sustained non-zero write failures or pipeline drops need attention.</p>\r 572<ul>\r 573 <li><strong>ingest tab</strong>: how each signal (trace / metric / log) is received, processed, and writtenâand whether anything is dropped.</li>\r 574 <li><strong>web tab</strong>: platform query latency and errors.</li>\r 575 <li><strong>Doris tab</strong>: storage node liveness, disk, and CPU.</li>\r 576 <li><strong>Metric help drawers</strong>: click any chart title for computation, when to worry, and which env var to tune.</li>\r 577</ul>\r 578\r 579<figure class="figure">\r 580<img src="/blog/databuff-v017-release/assets/01-selfmonitor-overview.png" alt="Deploy Status overview: inbound TPS, write failures, Doris disk, query errors">\r 581<div class="caption">Fig 1 · Deploy Status overview: four cards give a health summary, then drill into ingest / web / Doris tabs</div>\r 582</figure>\r 583\r 584<h2>How to use: AI inspection & self-troubleshooting</h2>\r 585<p>In the <strong>AI Platform</strong>, tell the product Q&A expert: âInspect the DataBuff platform and produce an HTML inspection report.â It reads the metric catalog, queries platform metrics, and produces a shareable HTML report. On write drops it can walk the batch â write queue â Doris chain and suggest knobs such as <code>INGEST_DORIS_MAX_READY_BATCHES</code>. In v0.1.7 it can also apply the fix (login, backup, change config, restart ingest, recheck).</p>\r 586\r 587<figure class="figure">\r 588<img src="/blog/databuff-v017-release/assets/02-selfmonitor-inspection.png" alt="HTML platform inspection report triggered by one sentence">\r 589<div class="caption">Fig 2 · One-sentence platform inspection report: anomalies, evidence, and recommendations on one page</div>\r 590</figure>\r 591\r 592<p>Full walkthrough and metric tables: <a href="/docs/en/operations/self-monitoring">Platform self-monitoring</a> · <a href="/docs/en/operations/self-monitoring-metrics">Self-monitoring metric catalog</a>.</p>\r 593\r 594<h2>Endpoint analysis & topology (brief)</h2>\r 595<p>v0.1.7 also completes <strong>non-HTTP endpoint</strong> (DB / MQ / RPC) base info, call history, slow, and error drill-downsânavigating from service detail now carries the correct <code>componentType</code>. The global topology still draws isolated services when there are no call edges. Span lists prune by minute key and skip extra <code>call_spans</code> COUNT; TraceID-filtered charts aggregate from spans.</p>\r 596\r 597<h2>How to use: multi FE / multi BE</h2>\r 598<p>For a multi-node Doris cluster, Web / Ingest accept <strong>comma-separated host lists</strong>: queries use multi FE, Stream Load uses multi BE, with health failover and periodic <code>/api/health</code> probes. Single-node one-line installs are unchanged.</p>\r 599<ul>\r 600 <li><strong>Query</strong>: set <code>DORIS_FE_HOST</code> on both Web and Ingest (JDBC, default port 9030). Multi FE automatically uses <code>jdbc:mysql:loadbalance://...</code>.</li>\r 601 <li><strong>Write (recommended)</strong>: set <code>DORIS_BE_HTTP_HOST</code> on Ingest only for direct Stream Load to <strong>BE:8040</strong> with multi-BE health round-robin. Keep BE configured (Docker default).</li>\r 602 <li><strong>Without BE</strong>: writes hit FE:8030 then 307 to BEâless stable for split deployments.</li>\r 603</ul>\r 604<p><strong>Address forms</strong> (same rules for FE / BE): single host <code>fe1</code> / <code>be1</code>; multi-host shared port <code>fe1,fe2</code> / <code>be1,be2</code>; per-entry ports <code>fe1:19030,fe2:19031</code> / <code>be1:8040,be2:8041</code>.</p>\r 605<pre><code># Docker: write docker-compose.override.yml for external Doris / address changes\r 606services:\r 607 ai-apm-web:\r 608 environment:\r 609 DORIS_FE_HOST: "192.168.1.10,192.168.1.11"\r 610 DORIS_FE_QUERY_PORT: "9030"\r 611 ai-apm-ingest:\r 612 environment:\r 613 DORIS_FE_HOST: "192.168.1.10,192.168.1.11"\r 614 DORIS_FE_QUERY_PORT: "9030"\r 615 DORIS_BE_HTTP_HOST: "192.168.1.20,192.168.1.21"\r 616 DORIS_BE_HTTP_PORT: "8040"</code></pre>\r 617<p>Then <code>docker compose up -d ai-apm-web ai-apm-ingest</code>. On Kubernetes, put the same vars in ConfigMap <code>ai-apm-config</code> and rollout restart. Table replicas (<code>replication_num ⥠2</code>) complement the app-side host list. Full port guide: <a href="/docs/en/operations/param-config">Parameter configuration</a> §3.</p>\r 618\r 619<h2>Install & upgrade</h2>\r 620<p>Fresh install: <a href="/docs/en/guide/docker">Docker deployment</a>. Existing setups: <a href="/docs/en/operations/upgrade-uninstall">Upgrade & uninstall</a>. This release includes schema migration <strong>V007</strong> (adds <code>metric_platform</code>, <code>schema_version</code> â 7); the upgrade script runs it automatically. Kubernetes does not support in-place upgrade this releaseâuninstall then reinstall.</p>\r 621<pre><code># New install (clears old install dir and data/)\r 622curl -fsSL https://databuff.ai/databuff/ai-apm-install.sh | bash\r 623\r 624# Existing users upgrade (keeps data/)\r 625curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash</code></pre>\r 626\r 627<h2>Try it & feedback</h2>\r 628<p><a href="https://github.com/databufflabs/databuff/releases/tag/v0.1.7">GitHub Release v0.1.7</a> · <a href="https://demo.databuff.ai">Online Demo</a> · <a href="https://github.com/databufflabs/databuff">Star the project</a></p>\r 629</div>\r 630`},"0.1.6":{zh:`<div class="release-note-body">\r 631<p class="release-lead">DataBuff <strong>v0.1.6</strong> 已就绪ï¼Span å表æ¥è¯¢å éãæ¥å£èæ¶åè§£æ°å¢ãæ¥å£èªèº«èæ¶ã维度ãåè¦åç¯æ¯æ£æµä¿®æ£ãAI ç¨³å®æ§ãå·¥ä½åºæä»¶é¢è§æ©å±ï¼å¹¶å®å databuff-proxy ååè¿ç§»è·¯å¾ï¼SkyWalking ç¨æ·ä¸å¡é¶æ¹å¨å³å¯å¹¶è· DataBuffãç¸å¯¹ v0.1.5ï¼<strong>20 commitsï¼æ¬çæ Schema è¿ç§»</strong>ã</p>\r 632<h2>æ¬ç亮ç¹</h2>\r 633<ul>\r 634 <li><strong>databuff-proxy ååè¿ç§»</strong>ï¼v0.1.6 å®åäº SkyWalkingâDataBuff ååè¿ç§»è·¯å¾ä¸ç¨³å®æ§éªè¯ï¼ä¸å¡é¶æ¹å¨ï¼Agent 䏿¢ãé ç½®ä¸æ¹ãPod ä¸éå¯ï¼ï¼å¹³å°ä¾§æ¥ <code>databuff-proxy</code> å³å¯è®©å䏿¹ Trace åæ¶è¿ OAP å DataBuff Ingestã</li>\r 635 <li><strong>æ¥å£èæ¶åè§£</strong>ï¼æ¥å£åææ°å¢ãæ¥å£èªèº«èæ¶ãç»´åº¦ï¼ææ¥å£èªèº«èæ¶ä»ä¸æ¸¸è°ç¨ï¼DB / Redis / MQ / HTTP / RPCï¼æåºæ¥ï¼æ ¢å¨èªèº«é»è¾è¿æ¯ä¸æ¸¸ä¾èµä¸ç¼è½åã</li>\r 636 <li><strong>Span å表æ¥è¯¢å é</strong>
636ï¼æ¥å£åæ / é¾è·¯è¿½è¸ªç span å表æ¹ç¨ exact URL 精确å¹é ãä¸ååç¬ count æ»æ°ã并对 <code>startTime</code> å 30 åéååºè£åªï¼å表ååºæ´å¿«ã</li>\r 637 <li><strong>åè¦åç¯æ¯æ£æµä¿®æ£</strong>ï¼mutationï¼åç¯æ¯ï¼åè¦å°é <code>comparePeriod</code> ä¸ <code>fluctuate</code> æ¹åï¼valUp / valDown / yoyUp / yoyDownï¼ï¼ä¸åè¯¯å¤æ¹åã</li>\r 638 <li><strong>åè¦åå¼ä¸è¡¨è¾¾å¼</strong>ï¼<code>listTagValues</code> è·³è¿æªç¥ metric tagï¼eval SQL è¦ç filter operatorsã</li>\r 639 <li><strong>AI ç¨³å®æ§</strong>ï¼brain 夿¥ handoff æç¤ºæ¹è¿ãå¥ç¦» protocol coachingï¼session å表/è®¡æ° DB-firstï¼Doris éè¯¯æ¶ fail-closed å°å åï¼model failure 䏿ç»ç¨æ·ï¼ä¿®å¤ brain dispatch bugï¼æ´æ° brain routing æç¤ºè¯ã</li>\r 640 <li><strong>AI ç¨³å®æ§æµè¯</strong>ï¼5 å¥ AI éææµè¯å ¨é¨å¹¶è¡ï¼chat/formats/memory/brain + æ°å¢ modelfailï¼ï¼æ°å¢ä¸å®¶äº¤äºå¥çº¦æµè¯ï¼ä¿®å¤è®°å¿éç¦»ãæ¨¡åå¤±è´¥ä¸æãbrain è°åº¦ç缺é·ã</li>\r 641 <li><strong>å·¥ä½åºæä»¶é¢è§</strong>ï¼AI 对è¯å·¥ä½åºå¨çº¿é¢è§æ©å±å°ææéäºè¿å¶æä»¶ï¼ä¸åéäº txt/log/csv/jsonï¼ã</li>\r 642 <li><strong>é¨ç½²ä¸æå»º</strong>ï¼compose health wait è¶ æ¶æåè³ 300sï¼æ°å¢ <code>ai-apm-web-base</code> éåï¼web release è·³è¿ apt éè£ ã</li>\r 643</ul>\r 644\r 645<h2>æä¹ç¨ï¼databuff-proxy ååï¼SkyWalking å¹³æ»è¿æ¸¡ï¼</h2>\r 646<p>å·²æ SkyWalking çå¢éæ³è¯ DataBuffï¼<strong>ä¸å¡ä¾§é¶æ¹å¨</strong>å°±è½å¹¶è·ï¼åªå¨å OAP 宿主æºé¨ç½² <code>databuff-proxy</code> å ä½ <code>:11800</code>ï¼å䏿¹æµé对称æé两路å端ã</p>\r 647<ul>\r 648 <li><strong>ä¸å¡é¶æ¹å¨</strong>ï¼Agent 䏿¢ã䏿¥å°å䏿¹ãPod ä¸éå¯ã</li>\r 649 <li><strong>对称åå</strong>ï¼å䏿¹ Trace / JVM / Log åæ¶è¿ OAP å DataBuff Ingestï¼ä¸åå议转æ¢ã</li>\r 650 <li><strong>å¯¹ç §æå¯åæ»</strong>ï¼ä¸¤è·¯ UI å¹¶æçï¼æ»¡æäºç®¡çé¡µå ³ SkyWalking åå ¥å³å¯ã</li>\r 651 <li><strong>v0.1.6 å®å</strong>ï¼è¿ç§»æåæ°å¢æ¹æ¡ Bãæ°å¢ååç¨³å®æ§éªè¯ææ¡£ã</li>\r 652 <li><strong>proxy ç¬ç«ä»åº</strong>ï¼<a href="https://github.com/databufflabs/databuff-proxy">github.com/databufflabs/databuff-proxy</a>ï¼åç¬åå¸ï¼ä¸å¨ v0.1.6 主ä»ä»£ç å ã</li>\r 653</ul>\r 654\r 655<figure class="figure">\r 656<img src="/blog/databuff-v016-release/assets/01-databuff-proxy-admin.png" alt="databuff-proxy 转åçæ§ç®¡ç页ï¼å ¥ç« 5.7k req/sï¼å¯¹ç§°ååè³ DataBuff ä¸ SkyWalkingï¼åéæå 11.4k req/sï¼ä¸¢å¼ 0">\r 657<div class="caption">å¾ 1 · databuff-proxy 管ç页ï¼å䏿¹æµé对称åå两路å端ï¼åéæåçº¦ä¸ºå ¥ç«ç两åã丢å¼ä¸º 0ï¼å¯éæ¶å¼å ³æè·¯åå ¥</div>\r 658</figure>\r 659\r 660<p>è¿ç§»æ¥éª¤è§ <a href="/docs/zh/migration/from-skywalking-to-databuff">ä» SkyWalking è¿ç§»</a>ï¼æ¹æ¡ Bï¼ï¼ååç¨³å®æ§ç»è®ºè§ <a href="/docs/zh/migration/proxy-dual-write-stability">proxy ååç¨³å®æ§éªè¯</a>ã</p>\r 661\r 662<h2>æä¹ç¨ï¼æ¥å£èæ¶åè§£</h2>\r 663<p>è·¯å¾ï¼<strong>åºç¨æ§è½ â æ¥å£åæ</strong>ãéä¸ä¸ä¸ª HTTP / RPC / MQ æ¥å£ï¼<strong>èæ¶åè§£</strong>徿æ¶é´æ¡¶æèæ¶ææãæ¥å£èªèº«èæ¶ãä¸å䏿¸¸ç»ä»¶ï¼DB / Redis / MQ / HTTP / RPC / è¿ç¨è°ç¨ï¼ï¼ä¸æ¸¸åæå¯¹ç«¯ service ç»åã</p>\r 664<ul>\r 665 <li><strong>æ¥å£èªèº«èæ¶</strong>ï¼æ¥å£æ»èæ¶å廿æä¸æ¸¸è°ç¨èæ¶ä¹åã</li>\r 666 <li><strong>䏿¸¸æç»ä»¶ + 对端 service æ</strong>ï¼ä¾å¦ <code>HTTP service-b</code>ã<code>DB [mysql]demo_apm</code>ã<code>Redis [redis]redis:6379</code>ã<code>MQ [kafka]order-events</code>ã</li>\r 667 <li><strong>å®ä½ç¶é¢æ´ç´æ¥</strong>ï¼ååºæ¶é´æ¶¨ï¼çæ¯èªèº«æ¶¨è¿æ¯æä¸ªä¸æ¸¸æ¶¨ï¼æ ééæ¡ç¿» Traceã</li>\r 668</ul>\r 669\r 670<figure class="figure">\r 671<img src="/blog/databuff-v016-release/assets/02-endpoint-latency-breakdown.png" alt="æ¥å£åæèæ¶åè§£å¾ï¼ååºæ¶é´ 240msï¼ææ¶é´æ¡¶æä¸ºæ¥å£èªèº«èæ¶ä¸ä¸æ¸¸ HTTP/RPC/DB[mysql]/DB[elasticsearch]/Redis/MQ[kafka] åç»ä»¶èæ¶">\r 672<div class="caption">å¾ 2 · æ¥å£èæ¶åè§£ï¼ååºæ¶é´ 240msï¼ææ¶é´æ¡¶æåºæ¥å£èªèº«èæ¶ä¸ä¸æ¸¸åç»ä»¶ï¼HTTP / RPC / MySQL / Elasticsearch / Redis / Kafkaï¼ï¼èªèº«é»è¾å䏿¸¸ä¾èµåå å¤å°çå¾å³ç¥</div>\r 673</figure>\r 674\r 675<h2>æä¹ç¨ï¼å·¥ä½åºæä»¶å¨çº¿é¢è§æ©å±</h2>\r 676<p>è·¯å¾ï¼<strong>AI å¹³å° â AI 对è¯</strong>ãä¸å®¶æ§è¡å·¥å ·æ¶äº§åºçä¸é´æä»¶ä¼è½å°å·¥ä½åºï¼ç¹å»å³å¯å¨å³ä¾§å¨çº¿é¢è§ï¼ä¸ç¨ä¸è½½å°æ¬å°ã</p>\r 677<p>v0.1.6 æå¯é¢è§çåç¼æ¾å¼äºï¼é¤äºè¿å¶ï¼å¾çãå缩å ã<code>.class</code>ã<code>.parquet</code> çï¼å¤ï¼<code>.py</code>ã<code>.sh</code>ã<code>.yml</code>ã<code>.sql</code>ã<code>
677Dockerfile</code>ã<code>.md</code> çææ¬/代ç ç±»æä»¶é½è½ç´æ¥çï¼<code>.md</code> æ markdown 渲æã交äºå v0.1.5 䏿 ·ï¼å级å³çæã</p>\r 678\r 679<h2>éç¹ï¼AI ç¨³å®æ§æµè¯</h2>\r 680<p>v0.1.6 强å AI ç¨³å®æ§æµè¯ï¼æ°å¢ã模å失败å¯è§æ§ãå¥ä»¶ä¸ä¸å®¶äº¤äºå¥çº¦æµè¯ï¼ä¿®å¤è®°å¿éç¦»ãæ¨¡åå¤±è´¥ä¸æãbrain è°åº¦ç缺é·ã<strong>5 å¥å ¨é¨å¹¶è¡</strong>ï¼</p>\r 681<ul>\r 682 <li><strong>chat å·¥å ·åæ°æ ¡éª</strong>ï¼4 é¢ï¼è¦çæå¡/ææ/æ ¢è¯·æ± trace/åè¦åç±»å·¥å ·è°ç¨ï¼æ ¡éªéå·¥å ·ä¸åæ°ã</li>\r 683 <li><strong>formats æ¥å ¥æ ¼å¼</strong>ï¼OpenAI Completions + Anthropic Messages ä¸¤ç§æ¥å ¥æ ¼å¼ï¼3 é¢ï¼éªè¯æ¥å ¥ä¸è´ã</li>\r 684 <li><strong>memory ä¼è¯è®°å¿</strong>ï¼5 ç¨ä¾ï¼å·¡æ£å¤è½®è®°å¿/åä¼è¯è·¨ä¸å®¶é离/鮿°å¤è½®è®°å¿/大èå¤è½®è®°å¿/å·¡æ£è¿½é®çæã</li>\r 685 <li><strong>brain 大è弿¥è·¯ç±</strong>ï¼10 ç¨ä¾ï¼åä¸å®¶è°åº¦/å¹¶è¡è°åº¦/ä¸å®¶å¤±è´¥/è·¨ä¼è¯é离/å¤è½®è°åº¦/夿¥å·¡æ£-æ¥å/夿¥å»¶è¿å·¡æ£-æ¥å/å¹¶è¡å·¡æ£+è¿ç»´/æ°æ®âè¿ç»´/æ°æ®+é®çã</li>\r 686 <li><strong>modelfail 模å失败å¯è§æ§</strong>ï¼v0.1.6 æ°å¢ï¼ï¼3 ç¨ä¾ï¼åä¸å®¶è¿ç»´/åä¸å®¶æ°æ®/å¤ä¸å®¶çº§èï¼å¤±è´¥ä¸æç»ç¨æ·èééé»åæã</li>\r 687</ul>\r 688<p>Java ä¾§æ°å¢ä¸å®¶äº¤äºå¥çº¦æµè¯ï¼<code>BuiltInExpertInteractionContractIntegrationTest</code> 486 è¡ã<code>ExpertMessageContractTest</code> 183 è¡ï¼ã</p>\r 689\r 690<h2>å®è£ ä¸å级</h2>\r 691<p>æ°è£ 请æ <a href="/docs/zh/guide/docker">Docker å®è£ é¨ç½²</a>ï¼å·²æç¯å¢æ¢çæ¬è¯·æ <a href="/docs/zh/operations/upgrade-uninstall">å级ä¸å¸è½½</a>ãæ¬çæ Schema è¿ç§»ï¼åçº§å³æ¿æ¢éåå¹¶éå¯ï¼K8s æ¬ç䏿¯æåå°å级ï¼éå¸è½½åéè£ ã</p>\r 692<pre><code># æ°ç¨æ·å®è£ ï¼å ¨æ°å®è£ ï¼ä¼æ¸ çæ§å®è£ ç®å½ä¸ data/ï¼\r 693curl -fsSL https://databuff.ai/databuff/ai-apm-install.sh | bash\r 694\r 695# ç°æç¨æ·å级ï¼å°±å°å级ï¼ä¿ç data/ è§æµæ°æ®ï¼\r 696curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash</code></pre>\r 697\r 698<h2>ä½éªä¸åé¦</h2>\r 699<p><a href="https://github.com/databufflabs/databuff/releases/tag/0.1.6">GitHub Release v0.1.6</a> · <a href="https://demo.databuff.ai">å¨çº¿ Demo</a> · <a href="https://github.com/databufflabs/databuff">ç»é¡¹ç® Star</a></p>\r 700</div>\r 701`,en:`<div class="release-note-body">\r 702<p class="release-lead">DataBuff <strong>v0.1.6</strong> is ready: faster span list queries, a new "self-latency" dimension in endpoint latency breakdown, fixed mutation (YoY/MoM) alarm direction, AI stability, workspace file preview expansion, and a refined databuff-proxy dual-write migration path so SkyWalking users can run DataBuff in parallel with zero business-side changes. Versus v0.1.5: <strong>20 commits, no schema migration</strong>.</p>\r 703<h2>Highlights</h2>\r 704<ul>\r 705 <li><strong>databuff-proxy dual-write migration</strong>: v0.1.6 refines the SkyWalkingâDataBuff dual-write path and stability verification. Zero business-side changes (no Agent swap, no config change, no pod restart); just deploy <code>databuff-proxy</code> on the platform side and the same traces flow to both OAP and DataBuff Ingest.</li>\r 706 <li><strong>Endpoint latency breakdown</strong>: a new "self-latency" dimension in endpoint analysis separates the endpoint's own time from downstream calls (DB / Redis / MQ / HTTP / RPC), so you can tell at a glance whether slowness is in your own logic or a downstream dependency.</li>\r 707 <li><strong>Faster span list queries</strong>: span lists in endpoint analysis / trace search now use exact-URL matching, drop the separate count query, and prune by a 30-minute <code>startTime</code> window for faster list responses.</li>\r 708 <li><strong>Mutation alarm direction fixed</strong>: mutation (YoY/MoM) alarms now respect <code>comparePeriod</code> and <code>fluctuate</code> direction (valUp / valDown / yoyUp / yoyDown) instead of misjudging direction.</li>\r 709 <li><strong>Alarm values & expressions</strong>: <code>listTagValues</code> skips unknown metric tags; eval SQL covers filter operators.</li>\r 710 <li><strong>AI stability</strong>: improved brain multi-step handoff prompts with protocol coaching stripped out; session list/count is DB-first and fails closed to memory on Doris errors; model failures surface to the user; fixed a brain dispatch bug; updated brain routing prompts.</li>\r 711 <li><strong>AI stability testing</strong>: 5 AI integration suites all run in parallel (chat/formats/memory/brain + new modelfail), plus new expert-interaction contract tests, covering memory isolation, model-failure surfacing, and brain dispatch.</li>\r 712 <li><strong>Workspace file preview</strong>: the AI-chat workspace now previews all non-binary files online (no longer limited to txt/log/csv/json).</li>\r 713 <li><strong>Build & deploy</strong>: compose health-wait timeout raised to 300s; new <code>ai-apm-web-base</code> image so web releases skip apt reinstalls.</li>\r 714</ul>\r 715\r 716<h2>How to use: databuff-proxy dual-write (smooth SkyWalking transition)</h2>\r 717<p>Teams already on SkyWalking who want to try DataBuff can run both in parallel with <strong>zero business-side changes</strong>: just deploy <code>databuff-proxy</code> on the original OAP host to hold port <code>:11800</code>, and the same traffic is mirrored to both backends.</p>\r 718<ul>\r 719 <li><strong>Zero business-side change</strong>: no Agent swap, no endpoint change, no pod restart.</li>\r 720 <li><strong>Symmetric dual-write</strong>: the same Trace / JVM / Log stream goes to both OAP and DataBuff Ingest with no protocol conversion.</li>\r 721 <li><strong>Reversible during the comparison window</strong>: watch both UIs side by side; once you're satisfied, turn off SkyWalking writes from the admin page.</li>\r 722 <li><strong>Refined in v0.1.6</strong>: migration guide adds Plan B and a new dual-write stability verification doc.</li>\r 723 <li><strong>Proxy is a separate repo</strong>: <a href="https://github.com/databufflabs/databuff-proxy">github.com/databufflabs/databuff-proxy</a>, released independently, not part of the v0.1.6 main repo.</li>\r 724</ul>\r 725\r 726<figure class="figure">\r 727<img src="/blog/databuff-v016-release/assets/01-databuff-proxy-admin.png" alt="databuff-proxy forwarding monitor admin page: 5.7k req/s inbou
727nd, symmetric dual-write to DataBuff and SkyWalking, 11.4k req/s sent successfully, 0 dropped">\r 728<div class="caption">Fig 1 · databuff-proxy admin page: the same traffic is dual-written to both backends; successful sends are about 2x inbound with 0 drops, and either sink can be toggled off at any time</div>\r 729</figure>\r 730\r 731<p>For migration steps see <a href="/docs/en/migration/from-skywalking-to-databuff">Migrating from SkyWalking</a> (Plan B); for dual-write stability results see <a href="/docs/en/migration/proxy-dual-write-stability">proxy dual-write stability verification</a>.</p>\r 732\r 733<h2>How to use: endpoint latency breakdown</h2>\r 734<p>Path: <strong>Application Performance â Endpoint Analysis</strong>. Select an HTTP / RPC / MQ endpoint; the <strong>latency breakdown</strong> chart splits each time bucket into "self-latency" and downstream components (DB / Redis / MQ / HTTP / RPC / remote calls), with downstream further split by peer service.</p>\r 735<ul>\r 736 <li><strong>Self-latency</strong>: total endpoint duration minus the sum of all downstream call durations.</li>\r 737 <li><strong>Downstream by component + peer service</strong>: e.g. <code>HTTP service-b</code>, <code>DB [mysql]demo_apm</code>, <code>Redis [redis]redis:6379</code>, <code>MQ [kafka]order-events</code>.</li>\r 738 <li><strong>Pinpoint bottlenecks faster</strong>: when response time rises, see whether it's your own logic or a specific downstreamâno need to page through traces one by one.</li>\r 739</ul>\r 740\r 741<figure class="figure">\r 742<img src="/blog/databuff-v016-release/assets/02-endpoint-latency-breakdown.png" alt="endpoint latency breakdown chart: response time 240ms, split per time bucket into self-latency and downstream HTTP/RPC/DB[mysql]/DB[elasticsearch]/Redis/MQ[kafka] components">\r 743<div class="caption">Fig 2 · Endpoint latency breakdown: response time 240ms, split per time bucket into self-latency and downstream components (HTTP / RPC / MySQL / Elasticsearch / Redis / Kafka); how much is your own logic vs a dependency is clear from the chart</div>\r 744</figure>\r 745\r 746<h2>How to use: workspace file preview expansion</h2>\r 747<p>Path: <strong>AI Platform â AI Chat</strong>. Intermediate files produced by an expert while running tools land in the workspace; click one to preview it inline on the right, without downloading locally.</p>\r 748<p>v0.1.6 widens the previewable extensions: apart from binaries (images, archives, <code>.class</code>, <code>.parquet</code>, etc.), text/code files like <code>.py</code>, <code>.sh</code>, <code>.yml</code>, <code>.sql</code>, <code>Dockerfile</code>, <code>.md</code> can all be viewed inline, with <code>.md</code> rendered as markdown. The interaction is unchanged from v0.1.5âjust upgrade and it takes effect.</p>\r 749\r 750<h2>Focus: AI stability testing</h2>\r 751<p>v0.1.6 strengthens AI stability testing: a new "model-failure visibility" suite and expert-interaction contract tests, plus fixes for memory isolation, model-failure surfacing, and brain dispatch. <strong>5 suites, all parallel</strong>:</p>\r 752<ul>\r 753 <li><strong>chat tool-parameter validation</strong>: 4 cases covering service list / topology / slow-request trace / alarmâfour tool-call typesâvalidating tool selection and parameters.</li>\r 754 <li><strong>formats provider formats</strong>: OpenAI Completions + Anthropic Messages, 3 cases, validating consistent integration across providers.</li>\r 755 <li><strong>memory session memory</strong>: 5 cases: inspection multi-turn memory / same-session cross-expert isolation / data-query multi-turn memory / brain multi-turn memory / inspection follow-up generation.</li>\r 756 <li><strong>brain async routing</strong>: 10 cases: single-expert dispatch / parallel dispatch / expert failure / cross-session isolation / multi-round dispatch / multi-step inspect-report / multi-step latency inspect-report / parallel inspect+ops / dataâops / data+qa.</li>\r 757 <li><strong>modelfail model-failure visibility</strong> (new in v0.1.6): 3 cases: single-expert ops / single-expert data / multi-expert cascadeâfailures surface to the user instead of being silently swallowed.</li>\r 758</ul>\r 759<p>On the Java side, new expert-interaction contract tests were added (<code>BuiltInExpertInteractionContractIntegrationTest</code>, 486 lines; <code>ExpertMessageContractTest</code>, 183 lines).</p>\r 760\r 761<h2>Install & upgrade</h2>\r 762<p>For a fresh install see <a href="/docs/en/guide/docker">Docker deployment</a>; to switch an existing setup see <a href="/docs/en/operations/upgrade-uninstall">Upgrade & uninstall</a>. This release has no schema migrationâupgrade is just swapping images and restarting; K8s does not support in-place upgrade this release and must be reinstalled.</p>\r 763<pre><code># New install (fresh install; clears the old install dir and data/)\r 764curl -fsSL https://databuff.ai/databuff/ai-apm-install.sh | bash\r 765\r 766# Existing users upgrade (in-place; keeps data/)\r 767curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash</code></pre>\r 768\r 769<h2>Try it & feedback</h2>\r 770<p><a href="https://github.com/databufflabs/databuff/releases/tag/0.1.6">GitHub Release v0.1.6</a> · <a href="https://demo.databuff.ai">Online Demo</a> · <a href="https://github.com/databufflabs/databuff">Star the project</a></p>\r 771</div>\r 772`},"0.1.5":{zh:`<div class="release-note-body">\r 773<p class="release-lead">DataBuff <strong>v0.1.5</strong> 已就绪ï¼åå ¥è·¯å¾å åºãOTLP åç¼©å ¨éæ¥å ¥ãæ¥å¿æéæ¥çãAI å¯¹è¯ Mermaid ææï¼ä»¥å ingest ä¾§èµæºè¿æ»¤ãç¸å¯¹ v0.1.4ï¼<strong>25 commits / 394 files</strong>ã</p>\r 774<h2>æ¬ç亮ç¹</h2>\r 775<ul>\r 776 <li><strong>åå ¥æ§è½</strong>ï¼åæ¡£ä¸å¡è´è½½ä¸ï¼åå ¥ååä¸ SkyWalking åºæ¬æå¹³ãDataBuff CPU å ç¨æ´ä½ï¼SkyWalking å åå ç¨æ´ä½ã<a href="/blog/zh/databuff-vs-skywalking-write-perf/">宿´å¯¹æ¯æ¥å â</a></li>\r 777 <li><strong>OTLP å缩</strong>ï¼gRPC / HTTP ä¾§è¡¥é½ gzipãsnappyãzstd çï¼Collector é»è®¤ gzip å¯ç´æ¥å¯¹æ¥ã</li>\r 778 <li><strong>èµæºå¿½ç¥è¿æ»¤</strong>ï¼ingest å¨ enrich / è½åºåæ resource ç²¾ç¡®åææ£åä¸¢å¼ Spanã</li>\r 779 <li><strong>æ¥å¿è¯¦æ æ½å±</strong>ï¼å表轻éå±ç¤ºï¼ç¹å»è¡åå³ä¾§æéå è½½å ¨åæ®µã</li>\r 780 <li><strong>AI Mermaid ææ</strong>ï¼å¯¹è¯å ç¨³å®æ¸²æ Mermaidï¼ä¸å®¶æç¤ºè¯å¼å¯¼ç¨å¾è¡¨è¾¾ä¾èµã</li>\r 781 <li><strong>Schema V005</strong>ï¼å¨æååºè¡¨ buckets 16â3ï¼ä» å æ°æ®ï¼ä¸éåå岿°æ®ï¼ã</li>\r 782</ul>\r 783\r 784<h2>æä¹ç¨ï¼æ¥å¿è¯¦æ æ½å±</h2>\r 785<p>è·¯å¾ï¼<strong>åºç¨æ§è½ â æ¥å¿åæ</strong>ãå表åªå±ç¤ºè½»éåï¼<strong>ç¹å»ä»»æä¸è¡</strong>ï¼å³ä¾§æ»åºè¯¦æ æ½å±ï¼æéæåå ¨åæ®µã</p>\r 786<ol>\r 787 <li>æå¼ãæ¥å¿åæãï¼ç¨å ³é®åãTrace ID æå·¦ä¾§å¿«æ·çé缩å°èå´ã</li>\r 788 <li>å¨å表ä¸<strong>ç¹å»ç®æ æ¥å¿è¡</strong>ã</li>\r 789 <li>æ½å±ãæ¦è§ã页æ¥çæ£æãæå¡/å®ä¾/主æºãTrace IDï¼å¯è·³è½¬é¾è·¯ï¼ã</li>\r 790 <li>åå°ãJSONã页å¤å¶å®æ´ç»æååæ®µã</li>\r 791</ol>\r 792\r 793<figure class="figure">\r 794<img src="/blog/databuff-v015-release/assets/02-log-detail-drawer-overview.png" alt="æ¥å¿è¯¦æ æ½å±æ¦è§é¡µ">\r 795<div class="caption">å¾ 1 · æ¦è§é¡µï¼æ£æ + åºç¡ä¿¡æ¯ + Trace 跳转</div>\r 796</figure>\r 797\r 798<figure class="figure">\r 799<img src="/blog/databuff-v015-release/assets/03-log-detail-drawer-json.png" alt="æ¥å¿è¯¦æ æ½å± JSON 页">\r 800<div class="caption">å¾ 2 · JSON 页ï¼å®æ´ç»æååæ®µ</div>\r 801</figure>\r 802\r 803<h2>
803æä¹ç¨ï¼AI å¯¹è¯ Mermaid ææ</h2>\r 804<p>è·¯å¾ï¼<strong>AI å¹³å° â AI 对è¯</strong>ãä¸å®¶åçæ¶åææãè°ç¨å ³ç³»ãæµç¨å¾æ¶ï¼è¾åº <code>\`\`\`mermaid</code> 代ç åï¼å端èªå¨æ¸²æä¸º SVGã</p>\r 805\r 806<figure class="figure">\r 807<img src="/blog/databuff-v015-release/assets/05-ai-mermaid-chat.png" alt="AI å¯¹è¯ Mermaid æææ¸²æ">\r 808<div class="caption">å¾ 3 · Mermaid flowchart èªå¨æ¸²æ</div>\r 809</figure>\r 810\r 811<h2>æä¹ç¨ï¼èµæºå¿½ç¥è¿æ»¤</h2>\r 812<p>å¨ ingest ç <code>application.yml</code> æ Docker Compose ç¯å¢åéä¸é ç½®ãæ¯æç²¾ç¡®å¹é 䏿£åå ¨ä¸²å¹é ï¼</p>\r 813<pre><code>ingest:\r 814 trace:\r 815 ignore-resources:\r 816 - PING\r 817 - /actuator/prometheus\r 818 ignore-resource-regex:\r 819 - ^/actuator(/.*)?$\r 820 - ^SELECT 1$</code></pre>\r 821<p>æ¹å®å <code>docker compose up -d ai-apm-ingest</code>ãæ¥å¿åºç° <code>Span resource ignore filter enabled</code> 表示è§åå·²å è½½ã</p>\r 822\r 823<h2>æä¹ç¨ï¼OTLP å缩</h2>\r 824<p>OTel Collector / SDK é»è®¤å·²å¼ <code>gzip</code>ãv0.1.5 èµ· ingest 宿´æ¯æ gzipãsnappyãzstdï¼HTTP å¦å« zlib / deflate / lz4ï¼ï¼<strong>æ éåå¼ºå¶ compression: none</strong>ãè¯¦è§ <a href="/docs/zh/guide/otel-otlp-ingestion">OpenTelemetry OTLP æ¥å ¥</a>ã</p>\r 825\r 826<h2>å®è£ ä¸å级</h2>\r 827<p>æ°è£ 请æ <a href="/docs/zh/guide/docker">Docker å®è£ é¨ç½²</a>ï¼å·²æç¯å¢æ¢çæ¬è¯·æ <a href="/docs/zh/operations/upgrade-uninstall">å级ä¸å¸è½½</a>ã</p>\r 828\r 829<h2>ä½éªä¸åé¦</h2>\r 830<p><a href="https://github.com/databufflabs/databuff/releases/tag/0.1.5">GitHub Release v0.1.5</a> · <a href="https://demo.databuff.ai">å¨çº¿ Demo</a> · <a href="https://github.com/databufflabs/databuff">ç»é¡¹ç® Star</a></p>\r 831</div>\r 832`,en:`<div class="release-note-body">\r 833<p class="release-lead">DataBuff <strong>v0.1.5</strong> is ready: ingest hardening, full OTLP compression, on-demand log detail drawer, Mermaid in AI chat, and resource-based span filters. Relative to v0.1.4: <strong>25 commits / 394 files</strong>.</p>\r 834<h2>Highlights</h2>\r 835<ul>\r 836 <li><strong>Write throughput</strong>: Under matched business load, write throughput is on par with SkyWalking. DataBuff uses less CPU; SkyWalking uses less memory. <a href="/blog/en/databuff-vs-skywalking-write-perf/">Full benchmark report â</a></li>\r 837 <li><strong>OTLP compression</strong>: gzip, snappy, zstd on gRPC/HTTP; default Collector gzip works out of the box.</li>\r 838 <li><strong>Resource ignore filters</strong>: drop spans by exact resource name or regex before enrich/persist.</li>\r 839 <li><strong>Log detail drawer</strong>: lightweight list; click a row to load full fields on the right.</li>\r 840 <li><strong>AI Mermaid</strong>: stable topology/flow rendering in chat.</li>\r 841 <li><strong>Schema V005</strong>: dynamic-partition buckets 16â3 (metadata only, no historical rewrite).</li>\r 842</ul>\r 843\r 844<h2>Log detail drawer</h2>\r 845<p>Go to <strong>Application Performance â Log Analytics</strong>. Click any row to open the right-side drawer with full fields on demand.</p>\r 846\r 847<figure class="figure">\r 848<img src="/blog/databuff-v015-release/assets/02-log-detail-drawer-overview.png" alt="Log detail drawer overview">\r 849<div class="caption">Fig. 1 · Overview: body, metadata, Trace link</div>\r 850</figure>\r 851\r 852<figure class="figure">\r 853<img src="/blog/databuff-v015-release/assets/03-log-detail-drawer-json.png" alt="Log detail drawer JSON tab">\r 854<div class="caption">Fig. 2 · JSON tab: full structured fields</div>\r 855</figure>\r 856\r 857<h2>Mermaid in AI chat</h2>\r 858<p>Experts can answer with <code>\`\`\`mermaid</code> blocks; the UI renders SVG topology/flowcharts automatically.</p>\r 859\r 860<figure class="figure">\r 861<img src="/blog/databuff-v015-release/assets/05-ai-mermaid-chat.png" alt="Mermaid rendering in AI chat">\r 862<div class="caption">Fig. 3 · Mermaid flowchart in chat</div>\r 863</figure>\r 864\r 865<h2>Resource ignore filters</h2>\r 866<pre><code>ingest:\r 867 trace:\r 868 ignore-resources:\r 869 - PING\r 870 - /actuator/prometheus\r 871 ignore-resource-regex:\r 872 - ^/actuator(/.*)?$\r 873 - ^SELECT 1$</code></pre>\r 874<p>Then <code>docker compose up -d ai-apm-ingest</code>. Look for <code>Span resource ignore filter enabled</code> in logs.</p>\r 875\r 876<h2>
876OTLP compression</h2>\r 877<p>Ingest now accepts gzip, snappy, zstd (HTTP also zlib/deflate/lz4). See <a href="/docs/en/guide/otel-otlp-ingestion">OpenTelemetry OTLP ingestion</a>.</p>\r 878\r 879<h2>Install & upgrade</h2>\r 880<p>New install: <a href="/docs/en/guide/docker">Docker installation</a>. Upgrade an existing deployment: <a href="/docs/en/operations/upgrade-uninstall">Upgrade and uninstall</a>.</p>\r 881\r 882<h2>Try it</h2>\r 883<p><a href="https://github.com/databufflabs/databuff/releases/tag/0.1.5">GitHub Release v0.1.5</a> · <a href="https://demo.databuff.ai">Live demo</a> · <a href="https://github.com/databufflabs/databuff">Star on GitHub</a></p>\r 884</div>\r 885`},"0.1.4":{zh:`<div class="release-note-body">\r 886<p class="release-lead">DataBuff <strong>v0.1.4</strong> å·²åå¸ï¼7 大 AI è¿ç»´è½åé¦é¡µå¯é ç½®ä¸çº¿ãå¤ Agent åå䏿·±åº¦å·¡æ£äº¤ä»é¾ï¼ä»¥å SkyWalking / Trace æ°æ®å£å¾ä¸ Doris / å级åºåº§å åºãç¸å¯¹ v0.1.3ï¼<strong>45 commits / 274 files</strong>ã</p>\r 887<h2>æ¬ç亮ç¹</h2>\r 888<ul>\r 889 <li><strong>7 大 AI è¿ç»´è½åé¦é¡µ</strong>ï¼çå¾è§ãåå¢ååãä¼å·¡æ£ãä¼è¯æãä¼ä¿®å¤ãä¼é¢æµãä¼ççââåç§°ãæ¨èé®é¢ãç»å®ä¸å®¶å¯é ç½®ã</li>\r 890 <li><strong>å¤ Agent åå</strong>ï¼ä¸åä¸å®¶å¹¶è¡åè¯ãåä¸ä¸å®¶ä¸²è¡ï¼HTML / Markdown / SVG æ¥åå¯å¨å·¥ä½åºé¢è§ä¸è½½ã</li>\r 891 <li><strong>深度æå¡å·¡æ£</strong>
891ï¼ç»¼åææ ãæ¥å¿ãåè¦ãä¾èµãé误 Traceãå®ä¾ä¸ JVM ä¿¡å·ï¼è¾åºå¸¦è¯æ®ç HTML æ¥åã</li>\r 892 <li><strong>产åççä¸å®¶</strong>ï¼æ£ç´¢éåå ææ¡£ä¸ä»£ç åçé¨ç½² / æ¥å ¥ / é ç½®é®é¢ã</li>\r 893 <li><strong>SkyWalking MQ èææå¡</strong>ï¼MQ Producer å½ä¸ä¸ºèææå¡ï¼RPC / å ¥å£ç»è®¡ä¸ Trace æ¶é´å£å¾ä¿®æ£ã</li>\r 894 <li><strong>Doris è¿è¡æ¶æ¢å¤</strong>ï¼æ éæ¶ä¿ç AI æéå ¥å£ï¼æ¢å¤åèªå¨æ¢æµå¹¶ hydrateï¼æ ééå¯ Webã</li>\r 895 <li><strong>åçº§å ¼å®¹</strong>ï¼æ§ç Docker Compose èªå¨éä¸ legacy æä»¶ï¼å级åå¤ä»½ <code>data/</code>ï¼å¤±è´¥å¯åæ»éè¯ã</li>\r 896</ul>\r 897\r 898<h2>æä¹ç¨ï¼7 大 AI è¿ç»´è½åé¦é¡µ</h2>\r 899<p>è·¯å¾ï¼<strong>AI å¹³å° â AI 对è¯</strong>ãæå¼é¦é¡µå³å¯æåºæ¯éä¸å®¶ï¼è½ååç§°ãæ¨èé®é¢ä¸ç»å®ä¸å®¶å¯å¨ç®¡ç页å¯åææ¢å¤é»è®¤ã</p>\r 900\r 901<figure class="figure">\r 902<img src="/blog/databuff-v014-release/assets/01-ai-home.png" alt="AI 对è¯é¦é¡µä¸ 7 大è½åå ¥å£">\r 903<div class="caption">å¾ 1 · AI 对è¯é¦é¡µä¸ 7 大è½åå ¥å£ï¼demo.databuff.ai 宿ï¼</div>\r 904</figure>\r 905\r 906<h2>æä¹ç¨ï¼å¤ Agent åå</h2>\r 907<p>夿任å¡äº¤ç» <strong>AI 大è</strong>
907ï¼ç±å®æä¸å®¶å表派åââä¾å¦åæ¶æ´¾æºè½é®æ°æ¥å»¶è¿ / é误ç / æ ¢ Traceï¼æ´¾æºè½å·¡æ£åå级å¥åº·æ£æ¥ï¼æåæ±æ»æå¯è½¬åçæ éæ¥åã</p>\r 908\r 909<figure class="figure">\r 910<img src="/blog/databuff-v014-release/assets/02-multi-agent-process.png" alt="AI 大èå¹¶åæ´¾åæºè½é®æ°ä¸æºè½å·¡æ£">\r 911<div class="caption">å¾ 2 · AI 大èè¿ç»è°ç¨ dispatchExpertTaskï¼å¹¶åæ´¾ç»æºè½é®æ°ä¸æºè½å·¡æ£</div>\r 912</figure>\r 913\r 914<figure class="figure">\r 915<img src="/blog/databuff-v014-release/assets/03-multi-agent-report.png" alt="å¤ Agent èåè¯ææ¥å">\r 916<div class="caption">å¾ 3 · æ±æ»ç»è®ºï¼P0 / P1 å级 + è¯æ®é¾ï¼æ¥åå¯é¢è§è½¬å</div>\r 917</figure>\r 918\r 919<h2>æä¹ç¨ï¼æ·±åº¦æå¡å·¡æ£</h2>\r 920<p>è·¯å¾ï¼<strong>AI å¹³å° â æºè½å·¡æ£</strong>ãä¸å¥è¯åèµ·åæå¡å·¡æ£ï¼è¾åºæç宿´ç HTML æ¥åââå ¥å£ææ ãé误æ¥å¿ã䏿¸¸ä¾èµä¸å级ç»è®ºä¸é¡µçæ¸ ã</p>\r 921\r 922<figure class="figure">\r 923<img src="/blog/databuff-v014-release/assets/04-inspect-trigger.png" alt="æºè½å·¡æ£è§¦å">\r 924<div class="caption">å¾ 4 · åå°æºè½å·¡æ£ï¼æå®æå¡å¹¶è¦æ±è¾åº HTML æ¥å</div>\r 925</figure>\r 926\r 927<figure class="figure">\r 928<img src="/blog/databuff-v014-release/assets/05-inspect-report.png" alt="HTML å·¡æ£æ¥å">\r 929<div class="caption">å¾ 5 · HTML æ¥åï¼å¥åº·åå¡ + å ¥å£ææ + é误æ¥å¿ä¸ä¸æ¸¸ä¾èµ</div>\r 930</figure>\r 931\r 932<h2>æä¹ç¨ï¼äº§åççä¸å®¶</h2>\r 933<p>éå°é¨ç½²ãæ¥å ¥ãç«¯å£æåè¦é ç½®é®é¢ï¼ççä¸å®¶æ£ç´¢éåå DataBuff ææ¡£ä¸ä»£ç åç»ç»åçï¼è䏿¯åªå模åè®°å¿çæµã</p>\r 934\r 935<figure class="figure">\r 936<img src="/blog/databuff-v014-release/assets/06-qa-expert.png" alt="产åççä¸å®¶">\r 937<div class="caption">å¾ 6 · 产åççä¸å®¶ï¼åºäºéåå ææ¡£ä¸ä»£ç åçé ç½®é®é¢</div>\r 938</figure>\r 939\r 940<h2>æ°æ®å£å¾ï¼MQ èææå¡ä¸ææ</h2>\r 941<p>v0.1.4 å° SkyWalking / OTel MQ Producer å½ä¸ä¸ºèææå¡ï¼messaging æ ç¾ + producer outboundï¼ï¼å¹¶ä¿®æ£ RPC CLIENT / outbound ä¸ peer å ³ç³»ãæå¡å ¥å£ç»è®¡ä¸ Trace ç»ææ¶é´å£å¾ã</p>\r 942\r 943<figure class="figure">\r 944<img src="/blog/databuff-v014-release/assets/07-mq-virtual-service.png" alt="MQ ä¸é´ä»¶ä¸é¡µ">\r 945<div class="caption">å¾ 7 · MQ ä¸é´ä»¶ä¸é¡µï¼Producer / Consumer åå¼ç»è®¡ï¼ä¸åæ··å¨ HTTP æ¥å£é</div>\r 946</figure>\r 947\r 948<figure class="figure">\r 949<img src="/blog/databuff-v014-release/assets/08-global-topology.png" alt="å ¨å±ææ">\r 950<div class="caption">å¾ 8 · å ¨å±ææï¼checkout ä¸ä¸æ¸¸ä¾èµä¸å¾çæ¸ </div>\r 951</figure>\r 952\r 953<figure class="figure">\r 954<img src="/blog/databuff-v014-release/assets/09-service-flow.png" alt="æå¡æµ">\r 955<div class="caption">å¾ 9 · æå¡æµï¼å䏿¸¸è´¡ç®åº¦å¯å±å¼ï¼æ¯æ AI æ ¹å åæ</div>\r 956</figure>\r 957\r 958<h2>å®è£ ä¸å级</h2>\r 959<p>æ°è£ 请æ <a href="/docs/zh/guide/docker">Docker å®è£ é¨ç½²</a>ï¼å·²æç¯å¢æ¢çæ¬è¯·æ <a href="/docs/zh/operations/upgrade-uninstall">å级ä¸å¸è½½</a>ã</p>\r 960\r 961<h2>ä½éªä¸åé¦</h2>\r 962<p><a href="https://github.com/databufflabs/databuff/releases/tag/0.1.4">GitHub Release v0.1.4</a> · <a href="https://demo.databuff.ai">å¨çº¿ Demo</a> · <a href="https://github.com/databufflabs/databuff">ç»é¡¹ç® Star</a></p>\r 963</div>\r 964`,en:`<div class="release-note-body">\r 965<p class="release-lead">DataBuff <strong>v0.1.4</strong> is out: configurable seven AI ops entry points, multi-agent collaboration and deep inspection reports, plus SkyWalking/Trace data fidelity and Doris/upgrade hardening. Relative to v0.1.3: <strong>45 commits / 274 files</strong>.</p>\r 966<h2>Highlights</h2>\r 967<ul>\r 968 <li><strong>Seven AI ops entry points</strong>: See, Squad, Inspect, Diagnose, Repair, Predict, Answer â names, suggested prompts, and expert bindings are configurable.</li>\r 969 <li><strong>Multi-agent collaboration</strong>: parallel across experts, serial within one expert; HTML / Markdown / SVG reports previewable in the workspace.</li>\r 970 <li><strong>Deep service inspection</strong>: synthesizes metrics, logs, alerts, dependencies, error traces, instances, and JVM signals into an evidence-backed HTML report.</li>\r 971 <li><strong>Product Q&A expert</strong>: answers deploy/ingest/config questions from in-image docs and code.</li>\r 972 <li><strong>SkyWalking MQ virtual services</strong>: MQ producers normalized; RPC/entry stats and Trace time alignment fixed.</li>\r 973 <li><strong>Doris runtime recovery</strong>: AI troubleshooting entry stays available during outages; auto-hydrate after recovery without restarting Web.</li>\r 974 <li><strong>Upgrade compatibility</strong>: legacy Docker Compose auto-selected; backs up <code>data/</code> before upgrade with rollback on failure.</li>\r 975</ul>\r 976\r 977<h2>Seven AI ops entry points</h2>\r 978<p>Go to <strong>AI Platform â AI Chat</strong>. Pick a capability from the home surface;
978 configure names, prompts, and expert bindings in the admin page.</p>\r 979\r 980<figure class="figure">\r 981<img src="/blog/databuff-v014-release/assets/01-ai-home.png" alt="AI chat home with seven capability entry points">\r 982<div class="caption">Fig. 1 · AI chat home with seven configurable entry points</div>\r 983</figure>\r 984\r 985<h2>Multi-agent collaboration</h2>\r 986<p>Hand complex tasks to the <strong>AI brain</strong> â it dispatches specialists in parallel (e.g. data queries + health inspection) and merges an actionable report.</p>\r 987\r 988<figure class="figure">\r 989<img src="/blog/databuff-v014-release/assets/02-multi-agent-process.png" alt="AI brain dispatching data and inspection experts">\r 990<div class="caption">Fig. 2 · Parallel dispatchExpertTask calls to data and inspection experts</div>\r 991</figure>\r 992\r 993<figure class="figure">\r 994<img src="/blog/databuff-v014-release/assets/03-multi-agent-report.png" alt="Multi-agent joint diagnosis report">\r 995<div class="caption">Fig. 3 · P0/P1 summary with evidence chain, previewable in chat</div>\r 996</figure>\r 997\r 998<h2>Deep service inspection</h2>\r 999<p>Go to <strong>AI Platform â Smart Inspection</strong>. One sentence triggers a full HTML report â entry metrics, error logs, downstream health, and graded conclusions.</p>\r 1000\r 1001<figure class="figure">\r 1002<img src="/blog/databuff-v014-release/assets/04-inspect-trigger.png" alt="Smart inspection trigger">\r 1003<div class="caption">Fig. 4 · Trigger inspection and request an HTML report</div>\r 1004</figure>\r 1005\r 1006<figure class="figure">\r 1007<img src="/blog/databuff-v014-release/assets/05-inspect-report.png" alt="HTML inspection report">\r 1008<div class="caption">Fig. 5 · HTML report: health scores, entry metrics, errors, downstream deps</div>\r 1009</figure>\r 1010\r 1011<h2>Product Q&A expert</h2>\r 1012<p>Deployment, ingest, port, and alert questions are answered from in-image DataBuff docs and code â not model memory alone.</p>\r 1013\r 1014<figure class="figure">\r 1015<img src="/blog/databuff-v014-release/assets/06-qa-expert.png" alt="Product Q&A expert">\r 1016<div class="caption">Fig. 6 · Product Q&A expert grounded in in-image docs</div>\r 1017</figure>\r 1018\r 1019<h2>Data fidelity: MQ virtual services & topology</h2>\r 1020<p>v0.1.4 normalizes SkyWalking/OTel MQ producers into virtual services and fixes RPC CLIENT/outbound peer mapping, entry stats, and Trace end-time alignment.</p>\r 1021\r 1022<figure class="figure">\r 1023<img src="/blog/databuff-v014-release/assets/07-mq-virtual-service.png" alt="MQ dedicated page">\r 1024<div class="caption">Fig. 7 · MQ page: producers and consumers tracked separately</div>\r 1025</figure>\r 1026\r 1027<figure class="figure">\r 1028<img src="/blog/databuff-v014-release/assets/08-global-topology.png" alt="Global topology">\r 1029<div class="caption">Fig. 8 · Global topology: checkout dependencies at a glance</div>\r 1030</figure>\r 1031\r 1032<figure class="figure">\r 1033<img src="/blog/databuff-v014-release/assets/09-service-flow.png" alt="Service flow">\r 1034<div class="caption">Fig. 9 · Service flow: per-downstream contribution for RCA</div>\r 1035</figure>\r 1036\r 1037<h2>Install & upgrade</h2>\r 1038<p>New install: <a href="/docs/en/guide/docker">Docker installation</a>. Upgrade an existing deployment: <a href="/docs/en/operations/upgrade-uninstall">Upgrade and uninstall</a>.</p>\r 1039\r 1040<h2>Try it</h2>\r 1041<p><a href="https://github.com/databufflabs/databuff/releases/tag/0.1.4">GitHub Release v0.1.4</a> · <a href="https://demo.databuff.ai">Live demo</a> · <a href="https://github.com/databufflabs/databuff">Star on GitHub</a></p>\r 1042</div>\r 1043`},"0.1.3":{zh:`<div class="release-note-body">\r 1044<p class="release-lead">DataBuff <strong>v0.1.3</strong> èç¦ä¸ä»¶äºï¼<strong>SkyWalking åç gRPC æ¥å ¥</strong>ï¼ä¸ç¨æ¢ Agentï¼ã<strong>è¿ç»´ä¸å®¶å®è£ æéä¸ SSH åªè¯»ææ¥</strong>ï¼ä»¥å<strong>åå°å级éªè¯</strong>ãé¢åãç产已æ SkyWalkingãä¸ãinstall é 0 éåºä½é¡µé¢è½å¼ã两类çå®åºæ¯ã</p>\r 1045<h2>æ¬ç亮ç¹</h2>\r 1046<ul>\r 1047 <li><strong>SkyWalking åçæ¥å ¥</strong>ï¼ingest çå¬ <strong>11800</strong>ï¼ä¸ OAP 宿¹é»è®¤å端å£ï¼ï¼Java åªæ¹ <code>collector.backend_service</code>ã</li>\r 1048 <li><strong>AI 鮿 ¢å </strong>ï¼checkout åæ ¢æ¶èªç¶è¯è¨æé®ï¼èªå¨è¿å traceId ä¸ç¶é¢ Spanï¼æ éå ç¿» Trace å表ã</li>\r 1049 <li><strong>æ¥å¿è·³é¾è·¯</strong>ï¼æ¥å¿è¡ãTrace · æ¥çãä¸é®å°è°ç¨é¾ï¼æ ¢è¯·æ±ä¸ ERROR å¨åä¸ä¸ä¸æã</li>\r 1050 <li><strong>è¿ç»´ä¸å®¶ · æé模å¼</strong>ï¼install é 0 éåºæ¶ Web ä»å¯è¿å ¥ï¼é 好 LLM åç±è¿ç»´ä¸å®¶ SSH åªè¯»æ¢å¤ Dorisã</li>\r 1051 <li><strong>è¿ç»´ä¸å®¶ · 䏿ºææ¥</strong>ï¼æå®¹å¨èµæºä¸ Trace æ ¢ Span 对é½ï¼è¡¥å 饿µå¤ä¸å°ç宿主æºè¯æ®ã</li>\r 1052 <li><strong>åå°å级</strong>ï¼åçº§èæ¬ä¿ç <code>data/</code> è§æµæ°æ®ï¼amd64 / arm64 离线å åæ¥è³ 0.1.3ã</li>\r 1053</ul>\r 1054\r 1055<h2>SkyWalking Agent ä¸ç¨æ¢</h2>\r 1056<p>ingest å±çå¬ SkyWalking gRPC ç«¯å£ <strong>11800</strong>
1056ãJava ä¾§æ éæ´æ¢ Agent jarï¼Segment è¿å¹³å°åææãTraceãJVM 䏿¥å¿å ³èä¸ OTLP è·¯å¾ä¸è´ã</p>\r 1057\r 1058<figure class="figure">\r 1059<img src="/blog/databuff-v013-release/assets/01-skywalking-topology.png" alt="SkyWalking åè®® checkout å ¨å±ææ">\r 1060<div class="caption">å¾ 1 · SW åè®® demoï¼checkout ä¾èµé¾è¿ DataBuff ææ</div>\r 1061</figure>\r 1062\r 1063<figure class="figure">\r 1064<img src="/blog/databuff-v013-release/assets/07-ingest-port.png" alt="ingest ç«¯å£ 4317/4318/11800">\r 1065<div class="caption">å¾ 2 · ingest 忶弿¾ OTLPï¼4317/4318ï¼ä¸ SkyWalkingï¼11800ï¼</div>\r 1066</figure>\r 1067\r 1068<h2>亮ç¼ä¸å»ï¼checkout æ ¢äºï¼é®ä¸å¥å°±åºç»è®º</h2>\r 1069<p>æ¼ç¤ºåºæ¯ï¼<code>GET /demo/checkout</code> P99 约 <strong>240ms</strong>ãæ¥å ¥åä»ãç¿» Trace å表ãåæãé® AIãã</p>\r 1070\r 1071<figure class="figure">\r 1072<img src="/blog/databuff-v013-release/assets/03-checkout-p99.png" alt="checkout P99 240ms">\r 1073<div class="caption">å¾ 3 · service-a checkout å¹³å 240ms · 触å AI ä¸è¿ç»´ä¸å®¶ææ¥</div>\r 1074</figure>\r 1075\r 1076<figure class="figure">\r 1077<img src="/blog/databuff-v013-release/assets/04-ai-question.png" alt="å AI æé® checkout æ ¢å ">\r 1078<div class="caption">å¾ 4 · èªç¶è¯è¨æé®ï¼åå°è¯»å SkyWalking Agent 䏿¥ç Segment æ°æ®</div>\r 1079</figure>\r 1080\r 1081<figure class="figure">\r 1082<img src="/blog/databuff-v013-release/assets/05-trace-breakdown.png" alt="AI è¿å Trace èæ¶åè§£">\r 1083<div class="caption">å¾ 5 · 240ms è¯·æ±æå°åæå¡ä¸ä¸é´ä»¶æ®µï¼ç¶é¢ Span ä¸ç®äºç¶</div>\r 1084</figure>\r 1085\r 1086<figure class="figure">\r 1087<img src="/blog/databuff-v013-release/assets/06-trace-flame.png" alt="checkout Trace ç«ç°å¾å¤æ ¸">\r 1088<div class="caption">å¾ 6 · æ¿ traceId 跳转ç«ç°å¾ï¼DB / Cache / MQ / RPC å ¨é¾å¯å±å¼</div>\r 1089</figure>\r 1090\r 1091<figure class="figure">\r 1092<img src="/blog/databuff-v013-release/assets/08-log-trace-linked.png" alt="æ¥å¿ä¸ Trace å ³è">\r 1093<div class="caption">å¾ 7 · æ¥å¿åæï¼æ¯è¡å¯è·³è½¬è°ç¨é¾</div>\r 1094</figure>\r 1095\r 1096<h2>è¿ç»´ä¸å®¶ï¼å®è£ 失败ï¼é¡µé¢ä»è½å¼</h2>\r 1097<p>å½ <code>install.sh</code> / <code>start.sh</code> é 0 éåºãDoris FE/BE æªå°±ç»ªæ¶ï¼Web è¿å ¥<strong>æé模å¼</strong>ï¼å é 置大模å API Keyï¼åéæ©å ç½®<strong>è¿ç»´ä¸å®¶</strong>ï¼éè¿ SSH åªè¯»å½ä»¤æå®¹å¨æå healthyã</p>\r 1098\r 1099<figure class="figure">\r 1100<img src="/blog/databuff-v013-release/assets/02-troubleshooting-mode.png" alt="Web æéæ¨¡å¼æ¨ªå¹ ">\r 1101<div class="caption">å¾ 8 · start å¤±è´¥ä»æå°æéæå¼ · ä¸ç Doris 就绪ä¹è½é LLM</div>\r 1102</figure>\r 1103\r 1104<h2>è¿ç»´ä¸å®¶ï¼OTel æ²¡æ°æ®ï¼3 åéåºç»è®º</h2>\r 1105<p>APM æ¾ç¤ºææå¡ä½ OTel æ²¡æ°æ®ã容å¨éå¯ã端å£å ç¨çåºæ¯ï¼è¿ç»´ä¸å®¶åªè¯» Bash + SSH 对é½å®¿ä¸»æºè¯æ®ââä¸ãAI 读 Traceãäºè¡¥ã</p>\r 1106\r 1107<figure class="figure">\r 1108<img src="/blog/databuff-v013-release/assets/09-ops-expert-prompt.png" alt="è¿ç»´ä¸å®¶æé®">\r 1109<div class="caption">å¾ 9 · åè¿ç»´ä¸å®¶æè¿° OTel æ æ°æ®ç°è±¡</div>\r 1110</figure>\r 1111\r 1112<figure class="figure">\r 1113<img src="/blog/databuff-v013-release/assets/10-ops-expert-process.png" alt="è¿ç»´ä¸å®¶ SSH ææ¥è¿ç¨">\r 1114<div class="caption">å¾ 10 · ä¸å®¶æ§è¡åªè¯» Bashï¼æ¥ç容å¨ä¸ç«¯å£ç¶æ</div>\r 1115</figure>\r 1116\r 1117<figure class="figure">\r 1118<img src="/blog/databuff-v013-release/assets/11-ops-expert-conclusion.png" alt="è¿ç»´ä¸å®¶ç»è®º">\r 1119<div class="caption">å¾ 11 · ç»è®ºå¸¦è¯æ®ä¸å¤ç½®å»ºè®®ï¼å¯ç´æ¥åæ¥æ é群</div>\r 1120</figure>\r 1121\r 1122<p>æ´å®æ´ç SkyWalking æ¥å ¥è·ç»è§ <a href="/blog/zh/databuff-skywalking-native-ingest/">SkyWalking åçæ¥å ¥è¯¦è§£</a>ï¼è¿ç»´ä¸å®¶äºåºæ¯å®æµè§ <a href="/blog/zh/databuff-ops-expert-runtime-troubleshoot/">è¿ç»´ä¸å®¶æéå®å½</a>ã</p>\r 1123\r 1124<h2>å®è£ ä¸å级</h2>\r 1125<p>æ°è£ 请æ <a href="/docs/zh/guide/docker">Docker å®è£ é¨ç½²</a>ï¼å·²æç¯å¢æ¢çæ¬è¯·æ <a href="/docs/zh/operations/upgrade-uninstall">å级ä¸å¸è½½</a>ã</p>\r 1126\r 1127<h2>ä½éªä¸åé¦</h2>\r 1128<p><a href="https://github.com/databufflabs/databuff/releases/tag/0.1.3">GitHub Release v0.1.3</a>
1128 · <a href="https://demo.databuff.ai">å¨çº¿ Demo</a> · <a href="https://github.com/databufflabs/databuff">ç»é¡¹ç® Star</a></p>\r 1129</div>\r 1130`,en:`<div class="release-note-body">\r 1131<p class="release-lead">DataBuff <strong>v0.1.3</strong> focuses on three things: <strong>native SkyWalking gRPC ingest</strong> (no Agent swap), <strong>Ops Expert install recovery and read-only SSH troubleshooting</strong>, and <strong>verified in-place upgrades</strong> â built for teams already on SkyWalking and for installs that exit non-zero while the UI still opens.</p>\r 1132<h2>Highlights</h2>\r 1133<ul>\r 1134 <li><strong>Native SkyWalking ingest</strong>: ingest listens on <strong>11800</strong> (OAP default); Java only changes <code>collector.backend_service</code>.</li>\r 1135 <li><strong>Ask why checkout is slow</strong>: natural-language questions return traceId and bottleneck spans without browsing the Trace list first.</li>\r 1136 <li><strong>Logs link to traces</strong>: one click from a log row to the full call chain.</li>\r 1137 <li><strong>Ops Expert · troubleshooting mode</strong>
1137: when install exits non-zero, Web still opens; configure an LLM and let Ops Expert recover Doris over read-only SSH.</li>\r 1138 <li><strong>Ops Expert · on-host checks</strong>: align container/host evidence with slow spans â complements telemetry-only AI.</li>\r 1139 <li><strong>In-place upgrade</strong>: upgrade scripts keep <code>data/</code> intact; amd64/arm64 offline packages ship for 0.1.3.</li>\r 1140</ul>\r 1141\r 1142<h2>Keep your SkyWalking Agent</h2>\r 1143<p>Ingest listens on SkyWalking gRPC port <strong>11800</strong>. No Agent jar swap â topology, traces, JVM metrics, and log correlation work the same as the OTLP path.</p>\r 1144\r 1145<figure class="figure">\r 1146<img src="/blog/databuff-v013-release/assets/01-skywalking-topology.png" alt="SkyWalking protocol checkout topology">\r 1147<div class="caption">Fig. 1 · SW protocol demo: checkout dependencies in DataBuff topology</div>\r 1148</figure>\r 1149\r 1150<figure class="figure">\r 1151<img src="/blog/databuff-v013-release/assets/07-ingest-port.png" alt="ingest ports 4317/4318/11800">\r 1152<div class="caption">Fig. 2 · Ingest exposes OTLP (4317/4318) and SkyWalking (11800)</div>\r 1153</figure>\r 1154\r 1155<h2>Checkout latency: ask once, get an answer</h2>\r 1156<p>Demo scenario: <code>GET /demo/checkout</code> P99 around <strong>240ms</strong>. After ingest, troubleshooting shifts from browsing traces to asking AI.</p>\r 1157\r 1158<figure class="figure">\r 1159<img src="/blog/databuff-v013-release/assets/03-checkout-p99.png" alt="checkout P99 240ms">\r 1160<div class="caption">Fig. 3 · service-a checkout ~240ms avg â triggers AI and Ops Expert</div>\r 1161</figure>\r 1162\r 1163<figure class="figure">\r 1164<img src="/blog/databuff-v013-release/assets/04-ai-question.png" alt="Ask AI why checkout is slow">\r 1165<div class="caption">Fig. 4 · Natural-language question over SkyWalking Agent segments</div>\r 1166</figure>\r 1167\r 1168<figure class="figure">\r 1169<img src="/blog/databuff-v013-release/assets/05-trace-breakdown.png" alt="AI trace breakdown">\r 1170<div class="caption">Fig. 5 · 240ms request split by service/middleware; bottleneck span highlighted</div>\r 1171</figure>\r 1172\r 1173<figure class="figure">\r 1174<img src="/blog/databuff-v013-release/assets/06-trace-flame.png" alt="checkout trace flame graph">\r 1175<div class="caption">Fig. 6 · Jump to flame graph by traceId â DB/Cache/MQ/RPC expandable</div>\r 1176</figure>\r 1177\r 1178<figure class="figure">\r 1179<img src="/blog/databuff-v013-release/assets/08-log-trace-linked.png" alt="Logs linked to traces">\r 1180<div class="caption">Fig. 7 · Log analytics: each row links to the call chain</div>\r 1181</figure>\r 1182\r 1183<h2>Ops Expert: install failed, UI still opens</h2>\r 1184<p>When <code>install.sh</code> / <code>start.sh</code> exits non-zero and Doris FE/BE are not ready, Web enters <strong>troubleshooting mode</strong>: configure an LLM API key, pick the built-in <strong>Ops Expert</strong>, and recover containers over read-only SSH.</p>\r 1185\r 1186<figure class="figure">\r 1187<img src="/blog/databuff-v013-release/assets/02-troubleshooting-mode.png" alt="Web troubleshooting mode banner">\r 1188<div class="caption">Fig. 8 · Start failed but troubleshooting guidance prints â configure LLM before Doris is healthy</div>\r 1189</figure>\r 1190\r 1191<h2>Ops Expert: no OTel data â conclusion in minutes</h2>\r 1192<p>For missing OTel data, container restarts, port conflicts, and similar chores, Ops Expert runs read-only Bash + SSH to align host evidence with what APM shows.</p>\r 1193\r 1194<figure class="figure">\r 1195<img src="/blog/databuff-v013-release/assets/09-ops-expert-prompt.png" alt="Ops Expert prompt">\r 1196<div class="caption">Fig. 9 · Describe missing OTel data to Ops Expert</div>\r 1197</figure>\r 1198\r 1199<figure class="figure">\r 1200<img src="/blog/databuff-v013-release/assets/10-ops-expert-process.png" alt="Ops Expert SSH investigation">\r 1201<div class="caption">Fig. 10 · Read-only Bash checks containers and ports</div>\r 1202</figure>\r 1203\r 1204<figure class="figure">\r 1205<img src="/blog/databuff-v013-release/assets/11-ops-expert-conclusion.png" alt="Ops Expert conclusion">\r 1206<div class="caption">Fig. 11 · Evidence-backed conclusion ready for the incident channel</div>\r 1207</figure>\r 1208\r 1209<p>Full SkyWalking walkthrough: <a href="/blog/en/databuff-skywalking-native-ingest/">native ingest deep dive</a>. Five Ops Expert scenarios: <a href="/blog/en/databuff-ops-expert-runtime-troubleshoot/">runtime troubleshooting playbook</a>.</p>\r 1210\r 1211<h2>Install & upgrade</h2>\r 1212<p>New install: <a href="/docs/en/guide/docker">Docker installation</a>. Upgrade an existing deployment: <a href="/docs/en/operations/upgrade-uninstall">Upgrade and uninstall</a>.</p>\r 1213\r 1214<h2>Try it</h2>\r 1215<p><a href="https://github.com/databufflabs/databuff/releases/tag/0.1.3">GitHub Release v0.1.3</a>
1215 · <a href="https://demo.databuff.ai">Live demo</a> · <a href="https://github.com/databufflabs/databuff">Star on GitHub</a></p>\r 1216</div>\r 1217`}},n6=["0.1.9","0.1.8","0.1.7","0.1.6","0.1.5","0.1.4","0.1.3"],o6=n6,qg=o6,l6={"0.1.4":{version:"0.1.4",date:"2026-07-15",tagline:"7 大 AI è¿ç»´è½åé¦é¡µ · æ°æ®å£å¾ä¸åºåº§å åº",summary:"æé模å¼ä»ãè½è¿ãå°ãè½åºãï¼SkyWalking ææè¡¥ä¸ MQ èææå¡ï¼è Docker Compose ä¸ Doris æ°æ®å±ä¸å¹¶å åºãåäºç»æåèåçéåï¼ææ¯ç¹å¯¹é½ CHANGELOGã",groups:[{title:"AI è½å",items:["7 大 AI è¿ç»´è½åé¦é¡µï¼è½ååç§°ãæ¨èé®é¢ãç»å®ä¸å®¶å¯é ç½®ï¼ç®¡ç页å¯å¯åææ¢å¤é»è®¤ã","å¤ Agent ååï¼ä¸åä¸å®¶å¹¶è¡åè¯ãåä¸ä¸å®¶ä¸²è¡ï¼æ¥åï¼HTML / Markdown / SVGï¼å¯å¨å·¥ä½åºé¢è§ä¸è½½ã","å¾ççè§£ä¸æä»¶å·¥ä½åºï¼ä¸ä¼ æªå¾åä¸åæï¼å½¢æãæªå¾âåæâæ¥åã交ä»é¾ã","产åççä¸å®¶ï¼æ£ç´¢éåå ææ¡£ä¸ä»£ç åçé¨ç½² / æ¥å ¥ / é ç½®é®é¢ã","深度æå¡å·¡æ£ï¼ç»¼åææ ãæ¥å¿ãåè¦ãä¾è
1217µãé误 Traceãå®ä¾ä¸ JVM ä¿¡å·ï¼è¾åºå¸¦è¯æ®ç HTML æ¥åã"]},{title:"æ°æ®å£å¾ä¸æ¥å ¥",items:["SkyWalking / OTel MQ Producer å½ä¸ä¸ºèææå¡ï¼messaging æ ç¾ + producer outboundï¼ã","Span ä¸ Resource 屿§åå¹¶ï¼ç»ä¸å±æ§è®¿é®ï¼RPC / å ¥å£ç»è®¡ / æå¤§å»¶è¿ä¸ Trace æ¶é´å£å¾ä¿®æ£ã","é»è®¤å ¥å£åè¦ï¼å¹³åèæ¶ / é误ç / å¼å¸¸æ°ï¼ï¼ç¬æ¶åè¦è®¡æ°ä¿®å¤ã","é¿ææ¬åå ¥é¾è·¯å åºï¼VARCHAR æ©å®¹ä¸æ¥å ¥ä¾§æªæï¼é¿å schema è¿è§ã"]},{title:"è¿è¡åºåº§ä¸å级",items:["Doris è¿è¡æ¶æ éæ¶ä¿ç AI æéå ¥å£ï¼æ¢å¤åèªå¨æ¢æµå¹¶ hydrateï¼æ ééå¯ Webã","åå²ååºè¿ç§»å®åï¼ææ åå¡«ä¸åå 缺ååºå¤±è´¥ï¼å¯ç¨æ§çæ§æ´å¿«æç¥æ é䏿¢å¤ã","å ¼å®¹æ§ç Docker Composeï¼legacy æä»¶èªå¨éä¸ï¼ï¼å级åå¤ä»½ data/ï¼å¤±è´¥å¯åæ»éè¯ã","AI Shell å±é©å½ä»¤ denylistï¼ä¼è¯ TTL / æ¡æ°ä¸éï¼é¿å 空é²ä¼è¯æ éå 积ã"]}],upgradeHint:`å·²æ Docker é¨ç½²å¯å°±å°å级ï¼ä¿ç data/ï¼ï¼ 1218curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash`},"0.1.3":{version:"0.1.3",date:"2026-07-13",tagline:"SkyWalking åçæ¥å ¥ · è¿ç»´ä¸å®¶ä¸æºæé",summary:"é¢åãç产已æ SkyWalkingã䏿³æ¢ Agentãä¸ãå®è£ èæ¬é 0 éåºä½é¡µé¢è½å¼ã两类çå®åºæ¯ï¼åçåè®®æ¥å ¥ + è¿ç»´ä¸å®¶ï¼å®è£ æé / SSH åªè¯»ææ¥ï¼+ åå°å级éªè¯ã",groups:[{title:"SkyWalking ä¸ç¨æ¢ Agent",items:["Ingest çå¬ 11800ï¼ä¸ OAP 宿¹é»è®¤å端å£ï¼ã","Java ä¾§åªéæ collector.backend_service æå DataBuffï¼Trace / JVM / æ¥å¿è¿å ¥åä¸å¥ AI çé¢ã","ä¸ OTLP è·¯å¾å¹¶åï¼ä¾¿äºæ··åæ æç°åº¦è¯ç¨ã"]},{title:"è¿ç»´ä¸å®¶",items:["install é 0 éåºæ¶ Web è¿å ¥æé模å¼ï¼é 好大模ååå¯ç±è¿ç»´ä¸å®¶å婿 Doris æåå¥åº·ã","åªè¯» Bash + SSHï¼æå®¹å¨èµæºä¸ Trace æ ¢ Span 对é½ï¼è¡¥å ãåªè¯»é¥æµãå¤ä¸å°ç宿主æºè¯æ®ã","å ¸ååºæ¯ï¼checkout åæ ¢æ¶ï¼å¨å åéå å¯¹é½ JVM / å®¿ä¸»æº / 䏿¸¸æ ¢ç¹ã"]},{title:"å级ä¸äº¤ä»",items:["æ¯æå°±å°åçº§èæ¬ï¼ä¸æ¦é¤ data/ è§æµæ°æ®ã","amd64 / arm64 离线å åæ¥å° 0.1.3ã"]}],upgradeHint:`å·²æ Docker é¨ç½²å¯å°±å°å级ï¼ä¿ç data/ï¼ï¼ 1219curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash`}},c6={"0.1.4":{version:"0.1.4",date:"2026-07-15",tagline:"Seven AI ops entry points · data fidelity & platform hardening",summary:"Troubleshooting mode moves from âyou can enterâ to âyou can recoverâ; SkyWalking topology gains MQ virtual services; legacy Docker Compose and Doris data paths are hardened. Narrative follows the release note style; technical points align with the CHANGELOG.",groups:[{title:"AI capabilities",items:["Seven AI ops capabilities on the home chat surfaceânames, suggested prompts, and expert bindings are configurable.","Multi-agent collaboration: parallel across experts, serial within one expert; HTML / Markdown / SVG reports previewable in the workspace.","Image understanding & file workspace: upload screenshots into the analysis loop.","Product Q&A expert: answers deploy/ingest/config questions from in-image docs and code.","Deep service inspection: synthesizes metrics, logs, alerts, dependencies, error traces, instances, and JVM signals into an evidence-backed HTML report."]},{title:"Data fidelity & ingest",items:["SkyWalking / OTel MQ producers normalized into virtual services (messaging tags + producer outbound).","Span and resource attributes merged for unified access; RPC / entry stats / max latency and Trace time alignment fixed.","Three default entry alerts (avg latency / error rate / exception count); instantaneous alert counting fixed.","Long-text write path hardened: wider VARCHAR limits and ingest-side truncation to avoid schema violations."]},{title:"Runtime & upgrades",items:["During Doris outages the AI troubleshooting entry stays available; after recovery, auto-detect and hydrate without restarting Web.","Historical partitions created so metric backfill no longer fails; faster availability monitoring.","Legacy Docker Compose compatibility; upgrade backs up data/ and can roll back on failure.","AI Shell dangerous-command denyl
1219ist; session TTL and size limits to bound idle memory sessions."]}],upgradeHint:`In-place Docker upgrade (keeps data/): 1220curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash`},"0.1.3":{version:"0.1.3",date:"2026-07-13",tagline:"Native SkyWalking ingest · Ops Expert on the host",summary:"Built for two real situations: production already on SkyWalking (no Agent swap), and install scripts exiting non-zero while the UI still opensânative protocol ingest + Ops Expert (install recovery / read-only SSH) + verified in-place upgrades.",groups:[{title:"Keep your SkyWalking Agent",items:["Ingest listens on 11800 (same default as OAP).","Point Java collector.backend_service at DataBuffâtraces, JVM, and logs land in the same AI UI.","Coexists with OTLP for mixed stacks or gradual trials."]},{title:"Ops Expert",items:["When install exits non-zero, Web enters troubleshooting mode: configure an LLM and let Ops Expert help bring Doris back healthy.","Read-only Bash + SSH aligns host/container evidence with slow spansâcomplements telemetry-only AI.","Typical path: checkout latency spikes correlated across JVM, host, and downstream in minutes."]},{title:"Upgrade & delivery",items:["In-place upgrade scripts keep observational data/ intact.","amd64 / arm64 offline packages shipped for 0.1.3."]}],upgradeHint:`In-place Docker upgrade (keeps data/): 1221curl -fsSL https://databuff.ai/databuff/ai-apm-update.sh | bash`}};function h6(e,t){return(e==="en"?c6:l6)[t]??null}const gu={zh:{intro:"产åä»ç»",releases:"çæ¬åå¸",versionsLabel:"éæ©çæ¬",latest:"ææ°",upgrade:"å级æå¼"},en:{intro:"Overview",releases:"Release Notes",versionsLabel:"Version",latest:"Latest",upgrade:"Upgrade"}},u6=["innerHTML"],d6={key:1,class:"db-release-notes__panel"},g6={class:"db-release-notes__head"},f6={class:"db-release-notes__meta"},p6={class:"db-release-notes__version"},m6=["datetime"],y6={class:"db-release-notes__tagline"},b6={class:"db-release-notes__summary"},k6={class:"db-release-notes__group-title"},v6={key:0,class:"db-release-notes__group-link"},x6=["href"],C6={class:"db-release-notes__list"},w6=["href"],T6={key:0},S6={key:0,class:"db-release-notes__upgrade"},_6={class:"db-release-notes__group-title"},B6={class:"db-release-notes__code"},L6={key:2,class:"db-release-notes__missing"},y1=gt({__name:"ReleaseNote",props:{version:{}},setup(e){const t=e;function r(l){return typeof l=="object"&&l!==null&&"href"in l}const{localeIndex:i}=Rr(),a=ut(()=>i.value==="en"?"en":"zh"),s=ut(()=>gu[a.value]),n=ut(()=>{const l=s6[t.version];return(l==null?void 0:l[a.value])??null}),o=ut(()=>n.value?null:h6(a.value,t.version));return(l,c)=>n.value?(M(),Y("div",{key:0,class:"blog-article db-release-blog-body",innerHTML:n.value},null,8,u6)):o.value?(M(),Y("article",d6,[W("header",g6,[W("div",f6,[W("span",p6,"v"+xt(o.value.version),1),W("time",{class:"db-release-notes__date",datetime:o.value.date},xt(o.value.date),9,m6)]),W("h2",y6,xt(o.value.tagline),1),W("p",b6,xt(o.value.summary),1)]),(M(!0),Y(Wt,null,ie(o.value.groups,h=>(M(),Y("section",{key:h.title,class:"db-release-notes__group"},[W("h3",k6,xt(h.title),1),h.link?(M(),Y("p",v6,[W("a",{href:h.link.href},xt(h.link.label),9,x6)])):ct("",!0),W("ul",C6,[(M(!0),Y(Wt,null,ie(h.items,(u,g)=>(M(),Y("li",{key:g},[r(u)?(M(),Y(Wt,{key:0},[W("a",{href:u.href},xt(u.label),9,w6),u.text?(M(),Y("span",T6," â "+xt(u.text),1)):ct("",!0)],64)):(M(),Y(Wt,{key:1},[pr(xt(u),1)],64))]))),128))])]))),128)),o.value.upgradeHint?(M(),Y("section",S6,[W("h3",_6,xt(s.value.upgrade),1),W("pre",B6,[W("code",null,xt(o.value.upgradeHint),1)])])):ct("",!0)])):(M(),Y("p",L6,xt(a.value==="zh"?"è¯¥çæ¬ææ åå¸è¯´æã":"No release notes for this version yet."),1))}}),A6={class:"db-release-notes"},M6=["aria-label"],F6=["aria-selected","onClick"],P6={class:"db-release-notes__ver-id"},b1=gt({__name:"ReleaseNotes",setup(e){const{localeIndex:t}=Rr(),r=ut(()=>t.value==="en"?"en":"zh"),i=ut(()=>gu[r.value]),a=qg[0],s=Rt(a);return(n,o)=>(M(),Y("div",A6,[W("div",{class:"db-release-notes__versions",role:"tablist","aria-label":i.value.versionsLabel},[(M(!0),Y(Wt,null,ie(H(qg),l=>(M(),Y("button",{key:l,type:"button",role:"tab",class:qt(["db-release-notes__ver",{"is-active":s.value===l}]),"aria-selected":s.value===l,onClick:c=>s.value=l},[W("span",P6,"v"+xt(l),1)],10,F6))),128))],8,M6),(M(),wt(y1,{version:s.value,key:s.value},null,8,["version"]))]))}}),E6={class:"db-intro-tabs"},O6={class:"db-intro-tabs__bar",role:"tablist"},D6=["aria-selected"],I6=["aria-selected"],$6={class:"db-intro-tabs__panel",role:"tabpanel"},z6={class:"db-intro-tabs__panel db-intro-tabs__panel--releases",role:"tabpanel"},R6=gt({__name:"ProductIntroTabs",setup(e){const{localeIndex:t}=Rr(),r=ut(()=>t.value==="en"?"en":"zh"),i=ut(()=>gu[r.value]),a=Rt("intro");return(s,n)=>(M(),Y("div",E6,[W("div",O6,[W("button",{type:"button",role:"tab",class:qt(["db-intro-tabs__tab",{"is-active":a.value==="intro"}]),"aria-selected":a.value==="intro",onClick:n[0]||(n[0]=o=>a.value="intro")},xt(i.value.intro),11,D6),W("button",{type:"button",role:"tab",class:qt(["db-intro-tabs__tab",{"is-active":a.value==="releases"}]),"aria-selected":a.value==="releases",onClick:n[1]||(n[1]=o=>a.value="releases")},xt(i.value.releases),11,I6)]),Du(W("div",$6,[Q(s.$slots,"default")],512),[[Iu,a.value==="intro"]]),Du(W("div",z6,[Ct(b1)],512),[[Iu,a.value==="releases"]])]))}}),N6=`<!-- Detailed edition matrix. Independent of the pricing summary at /pricing/02/#compare. Do not regenerate from pricing-body.html. -->\r 1222<div class="compare-table-wrap">\r 1223 <table class="compare-table">\r 1224 <thead>\r 1225 <tr>\r 1226 <th scope="col" class="col-module">åè½æ¨¡å</th>\r 1227 <th scope="col" class="col-desc">åè½æè¿°</th>\r 1228 <th scope="col" class="col-plan">弿ºç <span class="plan-abbr">Open</span></th>\r 1229 <th scope="col" class="col-plan is-highlight">ä¸ä¸ç <span class="plan-abbr">Pro</span></th>\r 1230 <th scope="col" class="col-plan">æè°ç <span class="plan-abbr">Ultra</span></th>\r 1231 </tr>\r 1232 </thead>\r 1233 <tbody>\r 1234 <tr class="group-row"><td colspan="5">ææä¸é¨ç½²</td></tr>\r 1235 <tr>\r 1236 <th scope="row" class="col-module">使ç¨è´¹ç¨</th>\r 1237 <td class="col-desc">软件ææè´¹ç¨</td>\r 1238 <td class="feature-value cell-text">å è´¹</td>\r 1239 \r 1240 <td class="feature-value is-highlight cell-text">Â¥4.98ä¸ /å¥/å¹´</td>\r 1241 <td class="feature-value cell-text">èç³»å°å©æ</td>\r 1242 </tr>\r 1243 <tr>\r 1244 <th scope="row" class="col-module">åè½èå´</th>\r 1245 <td class="col-desc">åºç¡è½åä¸é«çº§è½å</td>\r 1246 <td class="feature-value cell-text">弿ºå·²äº¤ä»è½å</td>\r 1247 \r 1248 <td class="feature-value is-highlight cell-text">30+é«çº§åè½</td>\r 1249 <td class="feature-value cell-text">40+é«çº§åè½</td>\r 1250 </tr>\r 1251 <tr>\r 1252 <th scope="row" class="col-module">åºç¨æ¢éæ°é</th>\r 1253 <td class="col-desc">åºç¨æ¢é / Agent è§æ¨¡</td>\r 1254 <td class="feature-value cell-text">èªè¡è¿ç»´</td>\r 1255 \r 1256 <td class="feature-value is-highlight cell-text">ä¸éå¶</td>\r 1257 <td class="feature-value cell-text">æé</td>\r 1258 </tr>\r 1259 <tr>\r 1260 <th scope="row" class="col-module">\r 1261 OneAgentææ¯\r
1262 <span class="feature-like" title="æ¨è" aria-label="æ¨è">\r 1263 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 1264 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 1265 </svg>\r 1266 </span>\r 1267 </th>\r 1268 <td class="col-desc">ä¸ä½åæ¢éè½å</td>\r 1269 <td class="feature-value cell-no">â</td>\r 1270 \r 1271 <td class="feature-value is-highlight cell-yes">â</td>\r 1272 <td class="feature-value cell-yes">â</td>\r 1273 </tr>\r 1274 <tr>\r 1275 <th scope="row" class="col-module">æ¶ææ¯æ</th>\r 1276 <td class="col-desc">å®è£ å CPU æ¶æ</td>\r 1277 <td class="feature-value cell-text">x86 / ARM</td>\r 1278 \r 1279 <td class="feature-value is-highlight cell-text">x86 / ARM</td>\r 1280 <td class="feature-value cell-text">x86 / ARM</td>\r 1281 </tr>\r 1282 <tr>\r 1283 <th scope="row" class="col-module">é¨ç½²æ¹å¼</th>\r 1284 <td class="col-desc">ç产å¯ç¨æ§å½¢æ</td>\r 1285 <td class="feature-value cell-text">èªè¡é¨ç½²</td>\r 1286 \r 1287 <td class="feature-value is-highlight cell-text">åæº/ä¸èç¹é群ï¼èç¹èµæºä¸éå¶ï¼</td>\r 1288 <td class="feature-value cell-text">åæº/å¤èç¹éç¾¤ï¼æéæ©å±ï¼</td>\r 1289 </tr>\r 1290 <tr>\r 1291 <th scope="row" class="col-module">\r 1292 ææ¯æ¯æ\r 1293 <span class="feature-like" title="æ¨è" aria-label="æ¨è">\r 1294 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 1295 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 1296 </svg>\r 1297 </span>\r 1298 </th>\r 1299 <td class="col-desc">ååºçº§å«ä¸æå¡å 容</td>\r 1300 <td class="feature-value cell-text">GitHub ä»åºæ¯æ</td>\r 1301 \r 1302 <td class="feature-value is-highlight cell-text">åºç¡çº§ 5Ã8</td>\r 1303 <td class="feature-value cell-text">å¢å¼ºçº§ 7Ã24</td>\r 1304 </tr>\r 1305\r 1306<!-- MATRIX_FROM_PRICING_V1_START -->\r 1307 <tr class="group-row"><td colspan="5">è§æµä¸å¹³å°</td></tr>\r 1308 <tr>\r 1309 <th scope="row" class="col-module">OpenTelemetry æ¥å ¥</th>\r 1310 <td class="col-desc">OTLP Trace / Metrics ééãç»è£ ãåå¨ä¸æ¥è¯¢</td>\r 1311 <td class="feature-value cell-yes">â</td>\r 1312 \r 1313 <td class="feature-value is-highlight cell-yes">â</td>\r 1314 <td class="feature-value cell-yes">â</td>\r 1315 </tr>\r 1316 <tr>\r 1317 <th scope="row" class="col-module">æå¡ææä¸åè¦</th>\r 1318 <td class="col-desc">æå¡çº¢ç»¿ç¯ãææãéå¼/çªååè¦ãWebhook</td>\r 1319 <td class="feature-value cell-yes">â</td>\r 1320 \r 1321 <td class="feature-value is-highlight cell-yes">â</td>\r 1322 <td class="feature-value cell-yes">â</td>\r 1323 </tr>\r 1324 <tr>\r 1325 <th scope="row" class="col-module">宿´æé UI</th>\r 1326 <td class="col-desc">ç产级é¾è·¯è¿½è¸ªãé误åæãJVM 䏿 ¹å æéä½éª</td>\r 1327 <td class="feature-value cell-yes">â</td>\r 1328 \r 1329 <td class="feature-value is-highlight cell-yes">â</td>\r 1330 <td class="feature-value cell-yes">â</td>\r 1331 </tr>\r 1332 <tr>\r 1333 <th scope="row" class="col-module">DataHub</th>\r 1334 <td class="col-desc">ç¬¬ä¸æ¹å·¥å ·çææ /é¾è·¯æ°æ®æ¥å ¥</td>\r 1335 <td class="feature-value cell-no">â</td>\r 1336 \r 1337 <td class="feature-value is-highlight cell-no">â</td>\r 1338 <td class="feature-value cell-yes">â</td>\r 1339 </tr>\r 1340 <tr>\r 1341 <th scope="row" class="col-module">IM Webhook åè¦</th>\r 1342 <td class="col-desc">é£ä¹¦ / ééçä¼ä¸æ¶æ¯ééåè¦æ¨é</td>\r 1343 <td class="feature-value cell-no">â</td>\r 1344 \r 1345 <td class="feature-value is-highlight cell-yes">â</td>\r 1346 <td class="feature-value cell-yes">â</td>\r 1347 </tr>\r 1348 <tr>\r 1349 <th scope="row" class="col-module">åéè¯æä¸ä¸æ</th>\r 1350 <td class="col-desc">å åµ SW / Prometheus / Zabbix 读ä¸ä¸æè¾ å©è¯æ</td>\r 1351 <td class="feature-value cell-no">â</td>\r 1352 \r 1353 <td class="feature-value is-highlight cell-no">â</td>\r 1354 <td class="feature-value cell-yes">â</td>\r 1355 </tr>\r 1356 <tr class="group-row"><td colspan="5">æ§è½ãè§æ¨¡ä¸æ²»ç</td></tr>\r 1357 <tr>\r 1358 <th scope="row" class="col-module">å®ä¾ä¸çå</th>\r 1359 <td class="col-desc">å¯è§æµæ°æ®å®ä¾è§æ¨¡ä¸é¿æçåè½å</td>\r 1360 <td class="feature-value cell-yes">â èªæç®¡</td>\r 1361 \r 1362 <td class="feature-value is-highlight cell-text">çäº§è§æ¨¡ / é¿çå</td>\r 1363 <td class="feature-value cell-text">è¶ å¤§è§æ¨¡ / å·çåå±</td>\r 1364 </tr>\r 1365 <tr>\r 1366 <th scope="row" class="col-module">\r 1367 MoreDB\r
1368 <span class="feature-like" title="æ¨è" aria-label="æ¨è">\r 1369 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 1370 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 1371 </svg>\r 1372 </span>\r 1373 </th>\r 1374 <td class="col-desc">é«åå ¥ã髿¥è¯¢ãé¿çå䏿¥è¯¢å éåå¨å¼æ</td>\r 1375 <td class="feature-value cell-no">â</td>\r 1376 \r 1377 <td class="feature-value is-highlight cell-yes">â</td>\r 1378 <td class="feature-value cell-yes">â</td>\r 1379 </tr>\r 1380 <tr>\r 1381 <th scope="row" class="col-module">\r 1382 é«å¯ç¨é¨ç½²\r 1383 <span class="feature-like" title="æ¨è" aria-label="æ¨è">\r 1384 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 1385 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 1386 </svg>\r 1387 </span>\r 1388 </th>\r 1389 <td class="col-desc">ç产 HAãå·å¤ä¸è·¨æºæ¿æ©å±</td>\r 1390 <td class="feature-value cell-yes">â èªæç®¡</td>\r 1391 \r 1392 <td class="feature-value is-highlight cell-text">é群3èç¹</td>\r 1393 <td class="feature-value cell-yes">â é群</td>\r 1394 </tr>\r 1395 <tr>\r 1396 <th scope="row" class="col-module">SSO / RBAC / 审计</th>\r 1397 <td class="col-desc">ä¼ä¸ç»å½ãè§è²æé䏿ä½å®¡è®¡</td>\r 1398 <td class="feature-value cell-no">â</td>\r 1399 \r 1400 <td class="feature-value is-highlight cell-no">â</td>\r 1401 <td class="feature-value cell-yes">â</td>\r 1402 </tr>\r 1403 <tr>\r 1404 <th scope="row" class="col-module">\r 1405 JavaAgent ç²¾æ§\r 1406 <span class="feature-like" title="æ¨è" aria-label="æ¨è">\r 1407 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 1408 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 1409 </svg>\r 1410 </span>\r 1411 </th>\r 1412 <td class="col-desc">éæ ·ãæä»¶å¼å ³ã卿é ç½®ä¸åãç°åº¦ä¸åæ»</td>\r 1413 <td class="feature-value cell-no">â</td>\r 1414 \r 1415 <td class="feature-value is-highlight cell-yes">â 卿é ç½® / ç°åº¦</td>\r 1416 <td class="feature-value cell-yes">â + ç°åºè°ä¼</td>\r 1417 </tr>\r 1418 <tr>\r 1419 <th scope="row" class="col-module">JavaAgent å®å¶åéé</th>\r 1420 <td class="col-desc">æç°åºéæ±å®å¶ Agent ééæä»¶ä¸åç¹</td>\r 1421 <td class="feature-value cell-no">â</td>\r 1422 \r 1423 <td class="feature-value is-highlight cell-no">â</td>\r 1424 <td class="feature-value cell-yes">â</td>\r 1425 </tr>\r 1426 <tr class="group-row"><td colspan="5">AI è½å</td></tr>\r 1427 <tr>\r 1428 <th scope="row" class="col-module">AI æéä¸é®æ°</th>\r 1429 <td class="col-desc">èªç¶è¯è¨æ¥æ°ãå·¡æ£ä¸æéåå</td>\r 1430 <td class="feature-value cell-yes">â</td>\r 1431 \r 1432 <td class="feature-value is-highlight cell-yes">â</td>\r 1433 <td class="feature-value cell-yes">â</td>\r 1434 </tr>\r 1435 <tr>\r 1436 <th scope="row" class="col-module">èªçç</th>\r 1437 <td class="col-desc">é¢å常è§é®é¢çèªå¨ççä¸ç¥è¯åæµ</td>\r 1438 <td class="feature-value cell-yes">â å级</td>\r 1439 \r 1440 <td class="feature-value is-highlight cell-yes">â é«çº§</td>\r 1441 <td class="feature-value cell-yes">â é«çº§</td>\r 1442 </tr>\r 1443 <tr>\r 1444 <th scope="row" class="col-module">èªè¿ç»´</th>\r 1445 <td class="col-desc">宿¶ / 触åå¼èªå¨è¿ç»´ä¸å¥åº·å¤ç½®</td>\r 1446 <td class="feature-value cell-yes">â å级</td>\r 1447 \r 1448 <td class="feature-value is-highlight cell-yes">â é«çº§</td>\r 1449 <td class="feature-value cell-yes">â é«çº§</td>\r 1450 </tr>\r 1451 <tr>\r 1452 <th scope="row" class="col-module">å·¥å ·ç®¡ç</th>\r 1453 <td class="col-desc">MCP / Tool 注åä¸è°ç¨ç®¡ç</td>\r 1454 <td class="feature-value cell-yes">â</td>\r 1455 \r 1456 <td class="feature-value is-highlight cell-yes">â</td>\r 1457 <td class="feature-value cell-yes">â</td>\r 1458 </tr>\r 1459 <tr>\r 1460 <th scope="row" class="col-module">æè½ç®¡ç</th>\r 1461 <td class="col-desc">Skill ç¼æä¸åå¸</td>\r 1462 <td class="feature-value cell-yes">â</td>\r 1463 \r 1464 <td class="feature-value is-highlight cell-yes">â</td>\r 1465 <td class="feature-value cell-yes">â</td>\r 1466 </tr>\r 1467 <tr>\r 1468 <th scope="row" class="col-module">æ°åä¸å®¶</th>\r 1469 <td class="col-desc">é¢åä¸å®¶é ç½®ä¸åå</td>\r 1470 <td class="feature-value cell-yes">â</td>\r 1471 \r 1472 <td class="feature-value is-highlight cell-yes">â</td>\r 1473 <td class="feature-value cell-yes">â</td>\r 1474 </tr>\r 1475 <tr>\r 1476 <th scope="row" class="col-module">æ ¹å åæ RCA</th>\r 1477 <td class="col-desc">åºäºå¹³å°å æ°æ®çæ ¹å å®ä½</td>\r 1478 <td class="feature-value cell-yes">â</td>\r 1479 \r 1480 <td class="feature-value is-highlight cell-yes">â</td>\r 1481 <td class="feature-value cell-yes">â</td>\r 1482 </tr>\r 1483 <tr>\r 1484 <th scope="row" class="col-module">åæå é</th>\r 1485 <td class="col-desc">夿æéé¾è·¯çå¹¶è¡å é䏿¥è¯¢ä¼å</td>\r 1486 <td class="feature-value cell-no">â</td>\r 1487 \r 1488 <td class="feature-value is-highlight cell-yes">â</td>\r 1489 <td class="feature-value cell-yes">â</td>\r 1490 </tr>\r 1491 <tr>\r 1492 <th scope="row" class="col-module">å æ AI</th>\r 1493 <td class="col-desc">åºäºå ææ¨æçæ ¹å å®ä½ä¸è¯æ®é¾</td>\r 1494 <td class="feature-value cell-no">â</td>\r 1495 \r 1496 <td class="feature-value is-highlight cell-yes">â</td>\r 1497 <td class="feature-value cell-yes">â</td>\r 1498 </tr>\r 1499 <tr>\r 1500 <th scope="row" class="col-module">é¡µé¢ AI åæ</th>\r 1501 <td class="col-desc">è§æµé¡µé¢å åµ AI 解读ä¸è¯æå»ºè®®</td>\r 1502 <td class="feature-value cell-no">â</td>\r 1503 \r 1504 <td class="feature-value is-highlight cell-yes">â</td>\r 1505 <td class="feature-value cell-yes">â</td>\r 1506 </tr>\r 1507 <tr>\r 1508 <th scope="row" class="col-module">AI 婿</th>\r 1509 <td class="col-desc">ä¾§è¾¹ / æµ®å± AI 婿ååæéä¸é®æ°</td>\r 1510 <td class="feature-value cell-no">â</td>\r 1511 \r 1512 <td class="feature-value is-highlight cell-yes">â</td>\r 1513 <td class="feature-value cell-yes">â</td>\r 1514 </tr>\r 1515 <tr>\r 1516 <th scope="row" class="col-module">AI æ§è¡å·¥å ·å®¡æ¹</th>\r 1517 <td class="col-desc">é«å±å·¥å ·è°ç¨å®¡æ¹ãææä¸å®¡è®¡</td>\r 1518 <td class="feature-value cell-no">â</td>\r 1519 \r 1520 <td class="feature-value is-highlight cell-yes">â</td>\r 1521 <td class="feature-value cell-yes">â</td>\r 1522 </tr>\r 1523 <tr>\r 1524 <th scope="row" class="col-module">AI 工使µ</th>\r 1525 <td class="col-desc">AI ç¼æå·¥ä½æµè®¾è®¡ãæ§è¡ä¸æ²»ç</td>\r 1526 <td class="feature-value cell-no">â</td>\r 1527 \r 1528 <td class="feature-value is-highlight cell-no">â</td>\r 1529 <td class="feature-value cell-yes">â</td>\r 1530 </tr>\r 1531 <tr>\r 1532 <th scope="row" class="col-module">èªå¦ä¹ è¿å</th>\r 1533 <td class="col-desc">å¢éåé¦ãè¯¯æ¥æ¼æ¥ãç¸ä¼¼æ éä¸åç¡®çåå½</td>\r 1534 <td class="feature-value cell-no">â</td>\r 1535 \r 1536 <td class="feature-value is-highlight cell-yes">â</td>\r 1537 <td class="feature-value cell-yes">â</td>\r 1538 </tr>\r 1539 <tr>\r 1540 <th scope="row" class="col-module">ä¸å¡ç»å</th>\r 1541 <td class="col-desc">ä¸å¡å®ä½ãé¾è·¯ä¸åºæ¯ç»åï¼æ¯ææéä¸ä¸æ</td>\r 1542 <td class="feature-value cell-no">â</td>\r 1543 \r 1544 <td class="feature-value is-highlight cell-yes">â</td>\r 1545 <td class="feature-value cell-yes">â</td>\r 1546 </tr>\r 1547 <tr>\r 1548 <th scope="row" class="col-module">ä¸å¡æºè½å</th>\r 1549 <td class="col-desc">ä¸å¡ç¥è¯å»ºæ¨¡ä¸æéå¢å¼º</td>\r 1550 <td class="feature-value cell-no">â</td>\r 1551 \r 1552 <td class="feature-value is-highlight cell-yes">â</td>\r 1553 <td class="feature-value cell-yes">â</td>\r 1554 </tr>\r 1555 <tr>\r 1556 <th scope="row" class="col-module">æ°åä¸å®¶è®ç»</th>\r 1557 <td class="col-desc">ç§æä¸å®¶è®ç»ç³»ç»ä¸æç»æ ¡å</td>\r 1558 <td class="feature-value cell-no">â</td>\r 1559 \r 1560 <td class="feature-value is-highlight cell-no">â</td>\r 1561 <td class="feature-value cell-yes">â</td>\r 1562 </tr>\r 1563 <tr>\r 1564 <th scope="row" class="col-module">è¡ä¸å®å¶ä¸å®¶</th>\r 1565 <td class="col-desc">æåºæ¯å®å¶ç¥è¯ä¸å¤ç½®æµç¨</td>\r 1566 <td class="feature-value cell-no">â</td>\r 1567 \r 1568 <td class="feature-value is-highlight cell-no">â</td>\r 1569 <td class="feature-value cell-text">æé</td>\r 1570 </tr>\r 1571 <tr>\r 1572 <th scope="row" class="col-module">æ··æ²å·¥ç¨æ¼ç»æ¹æ¡</th>\r 1573 <td class="col-desc">æ éæ³¨å ¥æ¼ç»ã颿¡éªè¯ä¸æ¼ç»æ¥å</td>\r 1574 <td class="feature-value cell-no">â</td>\r 1575 \r 1576 <td class="feature-value is-highlight cell-no">â</td>\r 1577 <td class="feature-value cell-yes">â</td>\r 1578 </tr>\r 1579 <tr>\r 1580 <th scope="row" class="col-module">ææä¸ SLA</th>\r 1581 <td class="col-desc">宿¹å¯¹çäº§è¯æææä¸ååºçº§å«çæ¿è¯º</td>\r 1582 <td class="feature-value cell-text">社åºå ±å</td>\r 1583 \r 1584 <td class="feature-value is-highlight cell-text">ç产ææè´è´£ · 5Ã8</td>\r 1585 <td class="feature-value cell-text">夿ç°åºå åº Â· 7Ã24</td>\r 1586 </tr>\r 1587\r 1588 <tr class="group-row"><td colspan="5">
1588å ¨å±å¤§ç / 驾驶è±</td></tr>\r 1589 <tr>\r 1590 <th scope="row" class="col-module">å ¨å±å¤§çï¼çº¢ç»¿ç¯ï¼</th>\r 1591 <td class="col-desc">overview æ»è§ãæå¡å¥åº·çº¢ç»¿ç¯</td>\r 1592 <td class="feature-value cell-yes">â</td>\r 1593 \r 1594 <td class="feature-value is-highlight cell-yes">â</td>\r 1595 <td class="feature-value cell-yes">â</td>\r 1596 </tr>\r 1597 <tr>\r 1598 <th scope="row" class="col-module">é¦é¡µçæ¿</th>\r 1599 <td class="col-desc">åºç¨ / æ°æ®åºçé¢è®¾çæ¿</td>\r 1600 <td class="feature-value cell-no">â</td>\r 1601 \r 1602 <td class="feature-value is-highlight cell-yes">â</td>\r 1603 <td class="feature-value cell-yes">â</td>\r 1604 </tr>\r 1605 <tr>\r 1606 <th scope="row" class="col-module">èªå®ä¹ä»ªè¡¨ç</th>\r 1607 <td class="col-desc">Dashboard èªå®ä¹ä¸å享</td>\r 1608 <td class="feature-value cell-no">â</td>\r 1609 \r 1610 <td class="feature-value is-highlight cell-yes">â</td>\r 1611 <td class="feature-value cell-yes">â</td>\r 1612 </tr>\r 1613\r 1614 <tr class="group-row"><td colspan="5">åºç¨æ§è½çæ§</td></tr>\r 1615 <tr>\r 1616 <th scope="row" class="col-module">ååè®®æ¥å ¥</th>\r 1617 <td class="col-desc">OTLPï¼4317/4318ï¼+ SkyWalking å ¼å®¹</td>\r 1618 <td class="feature-value cell-yes">â</td>\r 1619 \r 1620 <td class="feature-value is-highlight cell-yes">â</td>\r 1621 <td class="feature-value cell-yes">â</td>\r 1622 </tr>\r 1623 <tr>\r 1624 <th scope="row" class="col-module">å ¨å±ææ</th>\r 1625 <td class="col-desc">æå¡ä¾èµä¸è°ç¨å ³ç³»æ»å¾</td>\r 1626 <td class="feature-value cell-yes">â</td>\r 1627 \r 1628 <td class="feature-value is-highlight cell-yes">â</td>\r 1629 <td class="feature-value cell-yes">â</td>\r 1630 </tr>\r 1631 <tr>\r 1632 <th scope="row" class="col-module">\r 1633 空é´å°å¾\r 1634 <span class="feature-like" title="æ¨è" aria-label="æ¨è">\r 1635 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 1636 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 1637 </svg>\r 1638 </span>\r 1639 </th>\r 1640 <td class="col-desc">æç©ºé´ç»´åº¦å±ç¤ºæå¡ä¸ä¾èµåå¸</td>\r 1641 <td class="feature-value cell-no">â</td>\r 1642 \r 1643 <td class="feature-value is-highlight cell-yes">â</td>\r 1644 <td class="feature-value cell-yes">â</td>\r 1645 </tr>\r 1646 <tr>\r 1647 <th scope="row" class="col-module">æå¡çæ§</th>\r 1648 <td class="col-desc">æå¡å表ãå®ä¾ãRED ææ </td>\r 1649 <td class="feature-value cell-yes">â</td>\r 1650 \r 1651 <td class="feature-value is-highlight cell-yes">â</td>\r 1652 <td class="feature-value cell-yes">â</td>\r 1653 </tr>\r 1654 <tr>\r 1655 <th scope="row" class="col-module">æå¡æµ</th>\r 1656 <td class="col-desc">æå¡é´æµéä¸ä¾èµæµè½¬</td>\r 1657 <td class="feature-value cell-yes">â</td>\r 1658 \r 1659 <td class="feature-value is-highlight cell-yes">â</td>\r 1660 <td class="feature-value cell-yes">â</td>\r 1661 </tr>\r 1662 <tr>\r 1663 <th scope="row" class="col-module">æ°æ®åºçæ§</th>\r 1664 <td class="col-desc">DB å®ä¾ãæ ¢æ¥è¯¢ä¸è°ç¨åæ</td>\r 1665 <td class="feature-value cell-yes">â</td>\r 1666 \r 1667 <td class="feature-value is-highlight cell-yes">â</td>\r 1668 <td class="feature-value cell-yes">â</td>\r 1669 </tr>\r 1670 <tr>\r 1671 <th scope="row" class="col-module">æ¶æ¯éå</th>\r 1672 <td class="col-desc">MQ ç产æ¶è´¹ä¸ç§¯ååæ</td>\r 1673 <td class="feature-value cell-yes">â</td>\r 1674 \r 1675 <td class="feature-value is-highlight cell-yes">â</td>\r 1676 <td class="feature-value cell-yes">â</td>\r 1677 </tr>\r 1678 <tr>\r 1679 <th scope="row" class="col-module">ç¼åçæ§</th>\r 1680 <td class="col-desc">Redis çç¼åå½ä¸ä¸å»¶è¿</td>\r 1681 <td class="feature-value cell-yes">â</td>\r 1682 \r 1683 <td class="feature-value is-highlight cell-yes">â</td>\r 1684 <td class="feature-value cell-yes">â</td>\r 1685 </tr>\r 1686 <tr>\r 1687 <th scope="row" class="col-module">å¤é¨æå¡</th>\r 1688 <td class="col-desc">ç¬¬ä¸æ¹ / åºç«ä¾èµçæ§</td>\r 1689 <td class="feature-value cell-yes">â</td>\r 1690 \r 1691 <td class="feature-value is-highlight cell-yes">â</td>\r 1692 <td class="feature-value cell-yes">â</td>\r 1693 </tr>\r 1694 <tr>\r 1695 <th scope="row" class="col-module">æ¥å£åæ</th>\r 1696 <td class="col-desc">æ¥å£ååãé误çãèæ¶åå¸</td>\r 1697 <td class="feature-value cell-yes">â</td>\r 1698 \r 1699 <td class="feature-value is-highlight cell-yes">â</td>\r 1700 <td class="feature-value cell-yes">â</td>\r 1701 </tr>\r 1702 <tr>\r 1703 <th scope="row" class="col-module">é误åæ</th>\r 1704 <td class="col-desc">å¼å¸¸èåãé误è¶å¿ä¸è¯¦æ </td>\r 1705 <td class="feature-value cell-yes">â</td>\r 1706 \r 1707 <td class="feature-value is-highlight cell-yes">â</td>\r 1708 <td class="feature-value cell-yes">â</td>\r 1709 </tr>\r 1710 <tr>\r 1711 <th scope="row" class="col-module">é¾è·¯è¿½è¸ª</th>\r 1712 <td class="col-desc">åå¸å¼ Trace æ£ç´¢ä¸çå¸å¾</td>\r 1713 <td class="feature-value cell-yes">â</td>\r 1714 \r 1715 <td class="feature-value is-highlight cell-yes">â</td>\r 1716 <td class="feature-value cell-yes">â</td>\r 1717 </tr>\r 1718 <tr>\r 1719 <th scope="row" class="col-module">æ¥å¿åæï¼APM å ³èï¼</th>\r 1720 <td class="col-desc">æ¥å¿æ£ç´¢å¹¶ä¸ Trace / æå¡å ³è</td>\r 1721 <td class="feature-value cell-yes">â</td>\r 1722 \r 1723 <td class="feature-value is-highlight cell-yes">â</td>\r 1724 <td class="feature-value cell-yes">â</td>\r 1725 </tr>\r 1726 <tr>\r 1727 <th scope="row" class="col-module">ä¸å¡è§æµ</th>\r 1728 <td class="col-desc">ä¸å¡äºä»¶ééãæ£ç´¢ä¸è§æµåæ</td>\r 1729 <td class="feature-value cell-no">â</td>\r 1730 \r 1731 <td class="feature-value is-highlight cell-no">â</td>\r 1732 <td class="feature-value cell-yes">â</td>\r 1733 </tr>\r 1734 <tr>\r 1735 <th scope="row" class="col-module">\r 1736 ä¸å¡ç³»ç» / ä¸å¡ææ\r
1737 <span class="feature-like" title="æ¨è" aria-label="æ¨è">\r 1738 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 1739 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 1740 </svg>\r 1741 </span>\r 1742 </th>\r 1743 <td class="col-desc">æä¸å¡åèåæå¡ä¸ææ</td>\r 1744 <td class="feature-value cell-no">â</td>\r 1745 \r 1746 <td class="feature-value is-highlight cell-yes">â</td>\r 1747 <td class="feature-value cell-yes">â</td>\r 1748 </tr>\r 1749 <tr>\r 1750 <th scope="row" class="col-module">å å Dump</th>\r 1751 <td class="col-desc">å å åå¿«ç §ééä¸åæ</td>\r 1752 <td class="feature-value cell-no">â</td>\r 1753 \r 1754 <td class="feature-value is-highlight cell-yes">â</td>\r 1755 <td class="feature-value cell-yes">â</td>\r 1756 </tr>\r 1757 <tr>\r 1758 <th scope="row" class="col-module">线ç¨åæ</th>\r 1759 <td class="col-desc">线ç¨ç¶æãé»å¡ä¸çç¹çº¿ç¨åæ</td>\r 1760 <td class="feature-value cell-no">â</td>\r 1761 \r 1762 <td class="feature-value is-highlight cell-yes">â</td>\r 1763 <td class="feature-value cell-yes">â</td>\r 1764 </tr>\r 1765 <tr>\r 1766 <th scope="row" class="col-module">Profiling</th>\r 1767 <td class="col-desc">çç¹æ¹æ³ä¸æ§è½åæ</td>\r 1768 <td class="feature-value cell-no">â</td>\r 1769 \r 1770 <td class="feature-value is-highlight cell-yes">â</td>\r 1771 <td class="feature-value cell-yes">â</td>\r 1772 </tr>\r 1773 <tr>\r 1774 <th scope="row" class="col-module">è¿æ¥æ± çæ§</th>\r 1775 <td class="col-desc">çº¿ç¨æ± / è¿æ¥æ± ç¶æä¸ç¶é¢</td>\r 1776 <td class="feature-value cell-no">â</td>\r 1777 \r 1778 <td class="feature-value is-highlight cell-yes">â</td>\r 1779 <td class="feature-value cell-yes">â</td>\r 1780 </tr>\r 1781\r 1782 <tr class="group-row"><td colspan="5">åºç¡è®¾æ½çæ§</td></tr>\r 1783 <tr>\r 1784 <th scope="row" class="col-module">åºç¡è®¾æ½ · 主æº</th>\r 1785 <td class="col-desc">主æºå表ãCPU / å å / ç£çç</td>\r 1786 <td class="feature-value cell-no">â</td>\r 1787 \r 1788 <td class="feature-value is-highlight cell-yes">â</td>\r 1789 <td class="feature-value cell-yes">â</td>\r 1790 </tr>\r 1791 <tr>\r 1792 <th scope="row" class="col-module">åºç¡è®¾æ½ · Docker</th>\r 1793 <td class="col-desc">容å¨èµæºä¸è¿è¡æ</td>\r 1794 <td class="feature-value cell-no">â</td>\r 1795 \r 1796 <td class="feature-value is-highlight cell-yes">â</td>\r 1797 <td class="feature-value cell-yes">â</td>\r 1798 </tr>\r 1799 <tr>\r 1800 <th scope="row" class="col-module">åºç¡è®¾æ½ · Kubernetes</th>\r 1801 <td class="col-desc">Cluster / Node / Pod / Workload / Namespace</td>\r 1802 <td class="feature-value cell-no">â</td>\r 1803 \r 1804 <td class="feature-value is-highlight cell-yes">â</td>\r 1805 <td class="feature-value cell-yes">â</td>\r 1806 </tr>\r 1807 <tr>\r 1808 <th scope="row" class="col-module">åºç¡è®¾æ½ · è¿ç¨</th>\r 1809 <td class="col-desc">主æºè¿ç¨ç»çæ§</td>\r 1810 <td class="feature-value cell-no">â</td>\r 1811 \r 1812 <td class="feature-value is-highlight cell-yes">â</td>\r 1813 <td class="feature-value cell-yes">â</td>\r 1814 </tr>\r 1815 <tr>\r 1816 <th scope="row" class="col-module">ä¸é´ä»¶æä»¶çæ§</th>\r 1817 <td class="col-desc">MySQL / Redis / ZooKeeper çä¸é´ä»¶æä»¶ççæ§ééä¸å®ä¾ææ </td>\r 1818 <td class="feature-value cell-no">â</td>\r 1819 \r 1820 <td class="feature-value is-highlight cell-yes">â</td>\r 1821 <td class="feature-value cell-yes">â</td>\r 1822 </tr>\r 1823 <tr>\r 1824 <th scope="row" class="col-module">å®å¶åæä»¶éé</th>\r 1825 <td class="col-desc">æå®¢æ·ç°åºå®å¶ä¸é´ä»¶ / ç»ä»¶æä»¶éé</td>\r 1826 <td class="feature-value cell-no">â</td>\r 1827 \r 1828 <td class="feature-value is-highlight cell-no">â</td>\r 1829 <td class="feature-value cell-yes">â</td>\r 1830 </tr>\r 1831 <tr>\r 1832 <th scope="row" class="col-module">ç½ç»æ§è½ · åæ / ææ</th>\r 1833 <td class="col-desc">NPM æµéåæä¸ç½ç»ææ</td>\r 1834 <td class="feature-value cell-no">â</td>\r 1835 \r 1836 <td class="feature-value is-highlight cell-yes">â</td>\r 1837 <td class="feature-value cell-yes">â</td>\r 1838 </tr>\r 1839 <tr>\r 1840 <th scope="row" class="col-module">ç½ç»æ§è½ · DNS</th>\r 1841 <td class="col-desc">DNS è§£æè´¨éä¸å¼å¸¸</td>\r 1842 <td class="feature-value cell-no">â</td>\r 1843 \r 1844 <td class="feature-value is-highlight cell-yes">â</td>\r 1845 <td class="feature-value cell-yes">â</td>\r 1846 </tr>\r 1847 <tr>\r 1848 <th scope="row" class="col-module">ææ æ¢ç´¢ / ææ å表</th>\r 1849 <td class="col-desc">éç¨ææ æµè§ä¸æ¢ç´¢åæ</td>\r 1850 <td class="feature-value cell-no">â</td>\r 1851 \r 1852 <td class="feature-value is-highlight cell-yes">â</td>\r 1853 <td class="feature-value cell-yes">â</td>\r 1854 </tr>\r 1855 <tr>\r 1856 <th scope="row" class="col-module">æ¥åä¸å¿</th>\r 1857 <td class="col-desc">
1857æ¥å模æ¿ãçæãé¢è§ä¸ä¸è½½</td>\r 1858 <td class="feature-value cell-no">â</td>\r 1859 \r 1860 <td class="feature-value is-highlight cell-yes">â</td>\r 1861 <td class="feature-value cell-yes">â</td>\r 1862 </tr>\r 1863\r 1864 <tr class="group-row"><td colspan="5">åè¦ä¸å¿</td></tr>\r 1865 <tr>\r 1866 <th scope="row" class="col-module">åè¦å表</th>\r 1867 <td class="col-desc">åè¦äºä»¶æ£ç´¢ã确认ä¸å¤ç½®</td>\r 1868 <td class="feature-value cell-yes">â</td>\r 1869 \r 1870 <td class="feature-value is-highlight cell-yes">â</td>\r 1871 <td class="feature-value cell-yes">â</td>\r 1872 </tr>\r 1873 <tr>\r 1874 <th scope="row" class="col-module">æ£æµè§å / éé»</th>\r 1875 <td class="col-desc">é¢çä¸çªåè§åãéé»çªå£</td>\r 1876 <td class="feature-value cell-yes">â</td>\r 1877 \r 1878 <td class="feature-value is-highlight cell-yes">â</td>\r 1879 <td class="feature-value cell-yes">â</td>\r 1880 </tr>\r 1881 <tr>\r 1882 <th scope="row" class="col-module">Webhook éç¥</th>\r 1883 <td class="col-desc">Webhook å¤å对æ¥</td>\r 1884 <td class="feature-value cell-yes">â</td>\r 1885 \r 1886 <td class="feature-value is-highlight cell-yes">â</td>\r 1887 <td class="feature-value cell-yes">â</td>\r 1888 </tr>\r 1889 <tr>\r 1890 <th scope="row" class="col-module">ååºçç¥</th>\r 1891 <td class="col-desc">åè¦ååºçç¥é ç½®ä¸åå¸</td>\r 1892 <td class="feature-value cell-yes">â</td>\r 1893 \r 1894 <td class="feature-value is-highlight cell-yes">â</td>\r 1895 <td class="feature-value cell-yes">â</td>\r 1896 </tr>\r 1897 <tr>\r 1898 <th scope="row" class="col-module">åè¦éç¥ï¼å¤ééï¼</th>\r 1899 <td class="col-desc">é®ä»¶ / çä¿¡ / éé / ä¼å¾®çç产éé</td>\r 1900 <td class="feature-value cell-no">â</td>\r 1901 \r 1902 <td class="feature-value is-highlight cell-yes">â</td>\r 1903 <td class="feature-value cell-yes">â</td>\r 1904 </tr>\r 1905 <tr>\r 1906 <th scope="row" class="col-module">\r 1907 åè¦æ¶æ\r 1908 <span class="feature-like" title="æ¨è" aria-label="æ¨è">\r 1909 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 1910 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 1911 </svg>\r 1912 </span>\r 1913 </th>\r 1914 <td class="col-desc">æ¶æçç¥ï¼éä½åè¦é£æ´</td>\r 1915 <td class="feature-value cell-no">â</td>\r 1916 \r 1917 <td class="feature-value is-highlight cell-yes">â</td>\r 1918 <td class="feature-value cell-yes">â</td>\r 1919 </tr>\r 1920 <tr>\r 1921 <th scope="row" class="col-module">æ éå表 / æ éåæ</th>\r 1922 <td class="col-desc">æ éèåãåå¸ä¸è¶å¿</td>\r 1923 <td class="feature-value cell-no">â</td>\r 1924 \r 1925 <td class="feature-value is-highlight cell-yes">â</td>\r 1926 <td class="feature-value cell-yes">â</td>\r 1927 </tr>\r 1928 <tr>\r 1929 <th scope="row" class="col-module">æ ¹å åæ / é®é¢è¯¦æ </th>\r 1930 <td class="col-desc">AIOps æ ¹å å®ä½ä¸é®é¢ä¸é»</td>\r 1931 <td class="feature-value cell-no">â</td>\r 1932 \r 1933 <td class="feature-value is-highlight cell-yes">â</td>\r 1934 <td class="feature-value cell-yes">â</td>\r 1935 </tr>\r 1936\r 1937 <tr class="group-row"><td colspan="5">å®è£ é¨ç½²ä¸é ç½®</td></tr>\r 1938 <tr>\r 1939 <th scope="row" class="col-module">æ°æ®æ¥å ¥</th>\r 1940 <td class="col-desc">æ¢é / OTLP çæ¥å ¥å¼å¯¼</td>\r 1941 <td class="feature-value cell-yes">â</td>\r 1942 \r 1943 <td class="feature-value is-highlight cell-yes">â</td>\r 1944 <td class="feature-value cell-yes">â</td>\r 1945 </tr>\r 1946 <tr>\r 1947 <th scope="row" class="col-module">é¨ç½²ç¶æ</th>\r 1948 <td class="col-desc">ç»ä»¶å¥åº·ä¸é¨ç½²è¿åº¦</td>\r 1949 <td class="feature-value cell-yes">â</td>\r 1950 \r 1951 <td class="feature-value is-highlight cell-yes">â</td>\r 1952 <td class="feature-value cell-yes">â</td>\r 1953 </tr>\r 1954 <tr>\r 1955 <th scope="row" class="col-module">Agent / æä»¶éæ</th>\r 1956 <td class="col-desc">Agent å 管ç䏿件éæ</td>\r 1957 <td class="feature-value cell-no">â</td>\r 1958 \r 1959 <td class="feature-value is-highlight cell-yes">â</td>\r 1960 <td class="feature-value cell-yes">â</td>\r 1961 </tr>\r 1962 <tr>\r 1963 <th scope="row" class="col-module">åè¦é ç½® / 模åé ç½®</th>\r 1964 <td class="col-desc">è§åä¸ LLM 模ååæ°é ç½®</td>\r 1965 <td class="feature-value cell-yes">â</td>\r 1966 \r 1967 <td class="feature-value is-highlight cell-yes">â</td>\r 1968 <td class="feature-value cell-yes">â</td>\r 1969 </tr>\r 1970 <tr>\r 1971 <th scope="row" class="col-module">ç»å½è®¾ç½® / é¦é¡µé ç½®</th>\r 1972 <td class="col-desc">
1972ç»å½é¡µä¸é¦é¡µå±ç¤ºé ç½®</td>\r 1973 <td class="feature-value cell-yes">â</td>\r 1974 \r 1975 <td class="feature-value is-highlight cell-yes">â</td>\r 1976 <td class="feature-value cell-yes">â</td>\r 1977 </tr>\r 1978 <tr>\r 1979 <th scope="row" class="col-module">è¿ç¨é ç½®ä¸å¿</th>\r 1980 <td class="col-desc">å®ä½çæ§ãææçè¿ç¨é ç½®</td>\r 1981 <td class="feature-value cell-no">â</td>\r 1982 \r 1983 <td class="feature-value is-highlight cell-yes">â</td>\r 1984 <td class="feature-value cell-yes">â</td>\r 1985 </tr>\r 1986\r 1987 <tr class="group-row"><td colspan="5">平尿²»ç</td></tr>\r 1988 <tr>\r 1989 <th scope="row" class="col-module">èªçæ§</th>\r 1990 <td class="col-desc">å¹³å°èªèº«ç»ä»¶å¥åº·ãææ ä¸è¿è¡ç¶æçæ§</td>\r 1991 <td class="feature-value cell-yes">â</td>\r 1992 \r 1993 <td class="feature-value is-highlight cell-yes">â</td>\r 1994 <td class="feature-value cell-yes">â</td>\r 1995 </tr>\r 1996 <tr>\r 1997 <th scope="row" class="col-module">è´¦å· / è§è²ç®¡ç</th>\r 1998 <td class="col-desc">ç¨æ·ä¸è§è²æé</td>\r 1999 <td class="feature-value cell-no">â</td>\r 2000 \r 2001 <td class="feature-value is-highlight cell-yes">â</td>\r 2002 <td class="feature-value cell-yes">â</td>\r 2003 </tr>\r 2004 <tr>\r 2005 <th scope="row" class="col-module">\r 2006 管çå\r 2007 <span class="feature-like" title="æ¨è" aria-label="æ¨è">\r 2008 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2009 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2010 </svg>\r 2011 </span>\r 2012 </th>\r 2013 <td class="col-desc">ç»ç»æ¶æä¸æ°æ®åé离</td>\r 2014 <td class="feature-value cell-no">â</td>\r 2015 \r 2016 <td class="feature-value is-highlight cell-no">â</td>\r 2017 <td class="feature-value cell-yes">â</td>\r 2018 </tr>\r 2019 <tr>\r 2020 <th scope="row" class="col-module">SSOï¼OAuth ç±»ï¼</th>\r 2021 <td class="col-desc">ä¼ä¸ç»ä¸èº«ä»½è®¤è¯å¯¹æ¥</td>\r 2022 <td class="feature-value cell-no">â</td>\r 2023 \r 2024 <td class="feature-value is-highlight cell-no">â</td>\r 2025 <td class="feature-value cell-yes">â</td>\r 2026 </tr>\r 2027 <tr>\r 2028 <th scope="row" class="col-module">CMDB æé对æ¥</th>\r 2029 <td class="col-desc">ä¸ä¼ä¸ CMDB èµäº§ / é ç½®æ°æ®ååæé</td>\r 2030 <td class="feature-value cell-no">â</td>\r 2031 \r 2032 <td class="feature-value is-highlight cell-no">â</td>\r 2033 <td class="feature-value cell-yes">â</td>\r 2034 </tr>\r 2035 <tr>\r 2036 <th scope="row" class="col-module">License ææ</th>\r 2037 <td class="col-desc">æ¨¡åææãä¸ä¼ ä¸è¿ææ ¡éª</td>\r 2038 <td class="feature-value cell-no">â</td>\r 2039 \r 2040 <td class="feature-value is-highlight cell-yes">â</td>\r 2041 <td class="feature-value cell-yes">â</td>\r 2042 </tr>\r 2043 <tr>\r 2044 <th scope="row" class="col-module">ç³»ç»äºä»¶ / éç¥ç®¡ç</th>\r 2045 <td class="col-desc">ç³»ç»çº§äºä»¶ä¸éç¥éé管ç</td>\r 2046 <td class="feature-value cell-no">â</td>\r 2047 \r 2048 <td class="feature-value is-highlight cell-yes">â</td>\r 2049 <td class="feature-value cell-yes">â</td>\r 2050 </tr>\r 2051 <tr class="group-row"><td colspan="5">交ä»ä¸æ¯æ</td></tr>\r 2052 <tr>\r 2053 <th scope="row" class="col-module">è·åæ¹å¼</th>\r 2054 <td class="col-desc">çæ¬è·å䏿æå½¢æ</td>\r 2055 <td class="feature-value cell-text">GitHub 弿ºæºç </td>\r 2056 \r 2057 <td class="feature-value is-highlight cell-text">å䏿æ</td>\r 2058 <td class="feature-value cell-text">å䏿æ + ä¸å±äº¤ä»</td>\r 2059 </tr>\r 2060 <tr>\r 2061 <th scope="row" class="col-module">\r 2062 ææ¯æ¯æï¼ååï¼\r
2063 <span class="feature-like" title="æ¨è" aria-label="æ¨è">\r 2064 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2065 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2066 </svg>\r 2067 </span>\r 2068 </th>\r 2069 <td class="col-desc">å·¥å / çµè¯ / ç°åºååºçº§å«</td>\r 2070 <td class="feature-value cell-text">GitHub</td>\r 2071 \r 2072 <td class="feature-value is-highlight cell-text">5Ã8 åºç¡çº§</td>\r 2073 <td class="feature-value cell-text">7Ã24 å¢å¼ºçº§</td>\r 2074 </tr>\r 2075 <tr>\r 2076 <th scope="row" class="col-module">ä»·æ ¼ï¼åå¡ï¼</th>\r 2077 <td class="col-desc">ææä¸æå¡æ¥ä»·æ¹å¼</td>\r 2078 <td class="feature-value cell-text">å è´¹</td>\r 2079 \r 2080 <td class="feature-value is-highlight cell-text">Â¥4.98ä¸/å¥/å¹´</td>\r 2081 <td class="feature-value cell-text">èç³»å¨è¯¢</td>\r 2082 </tr>\r 2083 </tbody>\r 2084 </table>\r 2085 </div>\r 2086`,H6=`<!-- Detailed edition matrix. Independent of the pricing summary at /pricing/02/#compare. Do not regenerate from pricing-body.html. -->\r 2087<div class="compare-table-wrap">\r 2088 <table class="compare-table">\r 2089 <thead>\r 2090 <tr>\r 2091 <th scope="col" class="col-module">Module</th>\r 2092 <th scope="col" class="col-desc">Description</th>\r 2093 <th scope="col" class="col-plan">Open Source <span class="plan-abbr">Open</span></th>\r 2094 <th scope="col" class="col-plan is-highlight">Professional <span class="plan-abbr">Pro</span></th>\r 2095 <th scope="col" class="col-plan">Ultra <span class="plan-abbr">Ultra</span></th>\r 2096 </tr>\r 2097 </thead>\r 2098 <tbody>\r 2099 <tr class="group-row"><td colspan="5">Licensing & deploy</td></tr>\r 2100 <tr>\r 2101 <th scope="row" class="col-module">Licensing fee</th>\r 2102 <td class="col-desc">Software license cost</td>\r 2103 <td class="feature-value cell-text">Free</td>\r 2104 \r 2105 <td class="feature-value is-highlight cell-text">Â¥49,800 /license/year</td>\r 2106 <td class="feature-value cell-text">Contact us</td>\r 2107 </tr>\r 2108 <tr>\r 2109 <th scope="row" class="col-module">Feature scope</th>\r 2110 <td class="col-desc">Core vs advanced capabilities</td>\r 2111 <td class="feature-value cell-text">Shipped open-source capabilities</td>\r 2112 \r 2113 <td class="feature-value is-highlight cell-text">30+ advanced features</td>\r 2114 <td class="feature-value cell-text">40+ advanced features</td>\r 2115 </tr>\r 2116 <tr>\r 2117 <th scope="row" class="col-module">App agent count</th>\r 2118 <td class="col-desc">App agent / Agent scale</td>\r 2119 <td class="feature-value cell-text">Self-managed</td>\r 2120 \r 2121 <td class="feature-value is-highlight cell-text">Unlimited</td>\r 2122 <td class="feature-value cell-text">As needed</td>\r 2123 </tr>\r 2124 <tr>\r 2125 <th scope="row" class="col-module">\r 2126 OneAgent technology\r 2127 <span class="feature-like" title="Recommended" aria-label="Recommended">\r 2128 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2129 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2130 </svg>\r 2131 </span>\r 2132 </th>\r 2133 <td class="col-desc">Unified agent capability</td>\r 2134 <td class="feature-value cell-no">â</td>\r 2135 \r 2136 <td class="feature-value is-highlight cell-yes">â</td>\r 2137 <td class="feature-value cell-yes">â</td>\r 2138 </tr>\r 2139 <tr>\r 2140 <th scope="row" class="col-module">Architecture</th>\r 2141 <td class="col-desc">Install package CPU architecture</td>\r 2142 <td class="feature-value cell-text">x86 / ARM</td>\r 2143 \r 2144 <td class="feature-value is-highlight cell-text">x86 / ARM</td>\r 2145 <td class="feature-value cell-text">x86 / ARM</td>\r 2146 </tr>\r 2147 <tr>\r 2148 <th scope="row" class="col-module">Deployment</th>\r 2149 <td class="col-desc">Production deployment forms</td>\r 2150 <td class="feature-value cell-text">Self-hosted</td>\r 2151 \r 2152 <td class="feature-value is-highlight cell-text">Single node / 3-node cluster (no resource caps)</td>\r 2153 <td class="feature-value cell-text">Single node / multi-node cluster (scale as needed)</td>\r 2154 </tr>\r 2155 <tr>\r 2156 <th scope="row" class="col-module">\r 2157 Support\r
2158 <span class="feature-like" title="Recommended" aria-label="Recommended">\r 2159 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2160 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2161 </svg>\r 2162 </span>\r 2163 </th>\r 2164 <td class="col-desc">Response level and coverage</td>\r 2165 <td class="feature-value cell-text">GitHub repository support</td>\r 2166 \r 2167 <td class="feature-value is-highlight cell-text">Standard 5Ã8</td>\r 2168 <td class="feature-value cell-text">Enhanced 7Ã24</td>\r 2169 </tr>\r 2170\r 2171<!-- MATRIX_FROM_PRICING_V1_START -->\r 2172 <tr class="group-row"><td colspan="5">Observability & platform</td></tr>\r 2173 <tr>\r 2174 <th scope="row" class="col-module">OpenTelemetry ingest</th>\r 2175 <td class="col-desc">OTLP Trace / Metrics collect, assemble, store, and query</td>\r 2176 <td class="feature-value cell-yes">â</td>\r 2177 \r 2178 <td class="feature-value is-highlight cell-yes">â</td>\r 2179 <td class="feature-value cell-yes">â</td>\r 2180 </tr>\r 2181 <tr>\r 2182 <th scope="row" class="col-module">Topology & alerting</th>\r 2183 <td class="col-desc">Service health, topology, threshold/spike alerts, Webhook</td>\r 2184 <td class="feature-value cell-yes">â</td>\r 2185 \r 2186 <td class="feature-value is-highlight cell-yes">â</td>\r 2187 <td class="feature-value cell-yes">â</td>\r 2188 </tr>\r 2189 <tr>\r 2190 <th scope="row" class="col-module">Full diagnosis UI</th>\r 2191 <td class="col-desc">Production tracing, error analysis, JVM, and RCA UX</td>\r 2192 <td class="feature-value cell-yes">â</td>\r 2193 \r 2194 <td class="feature-value is-highlight cell-yes">â</td>\r 2195 <td class="feature-value cell-yes">â</td>\r 2196 </tr>\r 2197 <tr>\r 2198 <th scope="row" class="col-module">DataHub</th>\r 2199 <td class="col-desc">Third-party metrics/trace ingest</td>\r 2200 <td class="feature-value cell-no">â</td>\r 2201 \r 2202 <td class="feature-value is-highlight cell-no">â</td>\r 2203 <td class="feature-value cell-yes">â</td>\r 2204 </tr>\r 2205 <tr>\r 2206 <th scope="row" class="col-module">IM webhook alerts</th>\r 2207 <td class="col-desc">Feishu / DingTalk enterprise messaging alerts</td>\r 2208 <td class="feature-value cell-no">â</td>\r 2209 \r 2210 <td class="feature-value is-highlight cell-yes">â</td>\r 2211 <td class="feature-value cell-yes">â</td>\r 2212 </tr>\r 2213 <tr>\r 2214 <th scope="row" class="col-module">Legacy diagnostic context</th>\r 2215 <td class="col-desc">Embedded SW / Prometheus / Zabbix read context for diagnosis</td>\r 2216 <td class="feature-value cell-no">â</td>\r 2217 \r 2218 <td class="feature-value is-highlight cell-no">â</td>\r 2219 <td class="feature-value cell-yes">â</td>\r 2220 </tr>\r 2221 <tr class="group-row"><td colspan="5">Performance, scale & governance</td></tr>\r 2222 <tr>\r 2223 <th scope="row" class="col-module">Instances & retention</th>\r 2224 <td class="col-desc">Observability scale and long retention</td>\r 2225 <td class="feature-value cell-yes">â Self-hosted</td>\r 2226 \r 2227 <td class="feature-value is-highlight cell-text">Production / long retention</td>\r 2228 <td class="feature-value cell-text">Ultra scale / hot-cold tiering</td>\r 2229 </tr>\r 2230 <tr>\r 2231 <th scope="row" class="col-module">\r 2232 MoreDB\r
2233 <span class="feature-like" title="Recommended" aria-label="Recommended">\r 2234 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2235 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2236 </svg>\r 2237 </span>\r 2238 </th>\r 2239 <td class="col-desc">High-write, high-query storage and acceleration</td>\r 2240 <td class="feature-value cell-no">â</td>\r 2241 \r 2242 <td class="feature-value is-highlight cell-yes">â</td>\r 2243 <td class="feature-value cell-yes">â</td>\r 2244 </tr>\r 2245 <tr>\r 2246 <th scope="row" class="col-module">\r 2247 High availability\r 2248 <span class="feature-like" title="Recommended" aria-label="Recommended">\r 2249 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2250 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2251 </svg>\r 2252 </span>\r 2253 </th>\r 2254 <td class="col-desc">Production HA, standby, multi-DC</td>\r 2255 <td class="feature-value cell-yes">â Self-hosted</td>\r 2256 \r 2257 <td class="feature-value is-highlight cell-text">3-node cluster</td>\r 2258 <td class="feature-value cell-yes">â Cluster</td>\r 2259 </tr>\r 2260 <tr>\r 2261 <th scope="row" class="col-module">SSO / RBAC / Audit</th>\r 2262 <td class="col-desc">Enterprise login, roles, and audit logs</td>\r 2263 <td class="feature-value cell-no">â</td>\r 2264 \r 2265 <td class="feature-value is-highlight cell-no">â</td>\r 2266 <td class="feature-value cell-yes">â</td>\r 2267 </tr>\r 2268 <tr>\r 2269 <th scope="row" class="col-module">\r 2270 JavaAgent control\r 2271 <span class="feature-like" title="Recommended" aria-label="Recommended">\r 2272 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2273 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2274 </svg>\r 2275 </span>\r 2276 </th>\r 2277 <td class="col-desc">Sampling, plugins, dynamic config, canary/rollback</td>\r 2278 <td class="feature-value cell-no">â</td>\r 2279 \r 2280 <td class="feature-value is-highlight cell-yes">â Dynamic config / canary</td>\r 2281 <td class="feature-value cell-yes">â + on-site tuning</td>\r 2282 </tr>\r 2283 <tr>\r 2284 <th scope="row" class="col-module">JavaAgent custom collection</th>\r 2285 <td class="col-desc">Field-customized Agent collection plugins and instrumentation</td>\r 2286 <td class="feature-value cell-no">â</td>\r 2287 \r 2288 <td class="feature-value is-highlight cell-no">â</td>\r 2289 <td class="feature-value cell-yes">â</td>\r 2290 </tr>\r 2291 <tr class="group-row"><td colspan="5">AI capabilities</td></tr>\r 2292 <tr>\r 2293 <th scope="row" class="col-module">AI troubleshooting & NLQ</th>\r 2294 <td class="col-desc">Natural-language query, inspection, and diagnosis</td>\r 2295 <td class="feature-value cell-yes">â</td>\r 2296 \r 2297 <td class="feature-value is-highlight cell-yes">â</td>\r 2298 <td class="feature-value cell-yes">â</td>\r 2299 </tr>\r 2300 <tr>\r 2301 <th scope="row" class="col-module">Self Q&A</th>\r 2302 <td class="col-desc">Automated answers for common questions with knowledge feedback</td>\r 2303 <td class="feature-value cell-yes">â Basic</td>\r 2304 \r 2305 <td class="feature-value is-highlight cell-yes">â Advanced</td>\r 2306 <td class="feature-value cell-yes">â Advanced</td>\r 2307 </tr>\r 2308 <tr>\r 2309 <th scope="row" class="col-module">Self-operations</th>\r 2310 <td class="col-desc">Scheduled / triggered auto operations and health remediation</td>\r 2311 <td class="feature-value cell-yes">â Basic</td>\r 2312 \r 2313 <td class="feature-value is-highlight cell-yes">â Advanced</td>\r 2314 <td class="feature-value cell-yes">â Advanced</td>\r 2315 </tr>\r 2316 <tr>\r 2317 <th scope="row" class="col-module">Tool management</th>\r 2318 <td class="col-desc">MCP / Tool registration and invocation</td>\r 2319 <td class="feature-value cell-yes">â</td>\r 2320 \r 2321 <td class="feature-value is-highlight cell-yes">â</td>\r 2322 <td class="feature-value cell-yes">â</td>\r 2323 </tr>\r 2324 <tr>\r 2325 <th scope="row" class="col-module">Skill management</th>\r 2326 <td class="col-desc">Skill orchestration and publishing</td>\r 2327 <td class="feature-value cell-yes">â</td>\r 2328 \r 2329 <td class="feature-value is-highlight cell-yes">â</td>\r 2330 <td class="feature-value cell-yes">â</td>\r 2331 </tr>\r 2332 <tr>\r 2333 <th scope="row" class="col-module">Digital experts</th>\r 2334 <td class="col-desc">Domain expert configuration and collaboration</td>\r 2335 <td class="feature-value cell-yes">â</td>\r 2336 \r 2337 <td class="feature-value is-highlight cell-yes">â</td>\r 2338 <td class="feature-value cell-yes">â</td>\r 2339 </tr>\r 2340 <tr>\r 2341 <th scope="row" class="col-module">Root cause analysis</th>\r 2342 <td class="col-desc">RCA on in-platform telemetry</td>\r 2343 <td class="feature-value cell-yes">â</td>\r 2344 \r 2345 <td class="feature-value is-highlight cell-yes">â</td>\r 2346 <td class="feature-value cell-yes">â</td>\r 2347 </tr>\r 2348 <tr>\r 2349 <th scope="row" class="col-module">
2349Analysis acceleration</th>\r 2350 <td class="col-desc">Parallel speedups and query optimization for diagnosis</td>\r 2351 <td class="feature-value cell-no">â</td>\r 2352 \r 2353 <td class="feature-value is-highlight cell-yes">â</td>\r 2354 <td class="feature-value cell-yes">â</td>\r 2355 </tr>\r 2356 <tr>\r 2357 <th scope="row" class="col-module">Causal AI</th>\r 2358 <td class="col-desc">Causal-inference RCA and evidence chains</td>\r 2359 <td class="feature-value cell-no">â</td>\r 2360 \r 2361 <td class="feature-value is-highlight cell-yes">â</td>\r 2362 <td class="feature-value cell-yes">â</td>\r 2363 </tr>\r 2364 <tr>\r 2365 <th scope="row" class="col-module">In-page AI analysis</th>\r 2366 <td class="col-desc">Embedded AI interpretation and diagnosis on observation pages</td>\r 2367 <td class="feature-value cell-no">â</td>\r 2368 \r 2369 <td class="feature-value is-highlight cell-yes">â</td>\r 2370 <td class="feature-value cell-yes">â</td>\r 2371 </tr>\r 2372 <tr>\r 2373 <th scope="row" class="col-module">AI assistant</th>\r 2374 <td class="col-desc">Side / floating AI assistant for diagnosis and NLQ</td>\r 2375 <td class="feature-value cell-no">â</td>\r 2376 \r 2377 <td class="feature-value is-highlight cell-yes">â</td>\r 2378 <td class="feature-value cell-yes">â</td>\r 2379 </tr>\r 2380 <tr>\r 2381 <th scope="row" class="col-module">AI tool execution approval</th>\r 2382 <td class="col-desc">Approval, authorization, and audit for high-risk tool calls</td>\r 2383 <td class="feature-value cell-no">â</td>\r 2384 \r 2385 <td class="feature-value is-highlight cell-yes">â</td>\r 2386 <td class="feature-value cell-yes">â</td>\r 2387 </tr>\r 2388 <tr>\r 2389 <th scope="row" class="col-module">AI workflow</th>\r 2390 <td class="col-desc">AI orchestration workflow design, execution, and governance</td>\r 2391 <td class="feature-value cell-no">â</td>\r 2392 \r 2393 <td class="feature-value is-highlight cell-no">â</td>\r 2394 <td class="feature-value cell-yes">â</td>\r 2395 </tr>\r 2396 <tr>\r 2397 <th scope="row" class="col-module">Self-learning</th>\r 2398 <td class="col-desc">Team feedback, false positives, similar incidents</td>\r 2399 <td class="feature-value cell-no">â</td>\r 2400 \r 2401 <td class="feature-value is-highlight cell-yes">â</td>\r 2402 <td class="feature-value cell-yes">â</td>\r 2403 </tr>\r 2404 <tr>\r 2405 <th scope="row" class="col-module">Business profile</th>\r 2406 <td class="col-desc">Entity, path, and scenario profiles for diagnosis context</td>\r 2407 <td class="feature-value cell-no">â</td>\r 2408 \r 2409 <td class="feature-value is-highlight cell-yes">â</td>\r 2410 <td class="feature-value cell-yes">â</td>\r 2411 </tr>\r 2412 <tr>\r 2413 <th scope="row" class="col-module">Business intelligence</th>\r 2414 <td class="col-desc">Business knowledge modeling and diagnosis enhancement</td>\r 2415 <td class="feature-value cell-no">â</td>\r 2416 \r 2417 <td class="feature-value is-highlight cell-yes">â</td>\r 2418 <td class="feature-value cell-yes">â</td>\r 2419 </tr>\r 2420 <tr>\r 2421 <th scope="row" class="col-module">Digital-expert training</th>\r 2422 <td class="col-desc">Private expert training system and calibration</td>\r 2423 <td class="feature-value cell-no">â</td>\r 2424 \r 2425 <td class="feature-value is-highlight cell-no">â</td>\r 2426 <td class="feature-value cell-yes">â</td>\r 2427 </tr>\r 2428 <tr>\r 2429 <th scope="row" class="col-module">Industry custom experts</th>\r 2430 <td class="col-desc">Scenario-specific knowledge and playbooks</td>\r 2431 <td class="feature-value cell-no">â</td>\r 2432 \r 2433 <td class="feature-value is-highlight cell-no">â</td>\r 2434 <td class="feature-value cell-text">As needed</td>\r 2435 </tr>\r 2436 <tr>\r 2437 <th scope="row" class="col-module">Chaos engineering drills</th>\r 2438 <td class="col-desc">Fault injection drills, playbook validation, and reports</td>\r 2439 <td class="feature-value cell-no">â</td>\r 2440 \r 2441 <td class="feature-value is-highlight cell-no">â</td>\r 2442 <td class="feature-value cell-yes">â</td>\r 2443 </tr>\r 2444 <tr>\r 2445 <th scope="row" class="col-module">Outcome & SLA</th>\r 2446 <td class="col-desc">Vendor commitment on diagnostic outcomes and response</td>\r 2447 <td class="feature-value cell-text">Community-driven</td>\r 2448 \r 2449 <td class="feature-value is-highlight cell-text">Owns production outcomes · 5Ã8</td>\r 2450 <td class="feature-value cell-text">Complex field coverage · 7Ã24</td>\r 2451 </tr>\r 2452\r 2453 <tr class="group-row"><td colspan="5">Global overview / cockpit</td></tr>\r 2454 <tr>\r 2455 <th scope="row" class="col-module">Global overview (traffic lights)</th>\r 2456 <td class="col-desc">Overview dashboard and service health lights</td>\r 2457 <td class="feature-value cell-yes">â</td>\r 2458 \r 2459 <td class="feature-value is-highlight cell-yes">â</td>\r 2460 <td class="feature-value cell-yes">â</td>\r 2461 </tr>\r 2462 <tr>\r 2463 <th scope="row" class="col-module">Home dashboards</th>\r 2464 <td class="col-desc">Preset app / database dashboards</td>\r 2465 <td class="feature-value cell-no">â</td>\r 2466 \r 2467 <td class="feature-value is-highlight cell-yes">â</td>\r 2468 <td class="feature-value cell-yes">â</td>\r 2469 </tr>\r 2470 <tr>\r 2471 <th scope="row" class="col-module">Custom dashboards</th>\r 2472 <td class="col-desc">Dashboard customization and sharing</td>\r 2473 <td class="feature-value cell-no">â</td>\r 2474 \r 2475 <td class="feature-value is-highlight cell-yes">â</td>\r 2476 <td class="feature-value cell-yes">â</td>\r 2477 </tr>\r 2478\r 2479 <tr class="group-row"><td colspan="5">Application Performance Monitoring</td></tr>\r 2480 <tr>\r 2481 <th scope="row" class="col-module">Dual-protocol ingest</th>\r 2482 <td class="col-desc">OTLP (4317/4318) + SkyWalking compatible</td>\r 2483 <td class="feature-value cell-yes">â</td>\r 2484 \r 2485 <td class="feature-value is-highlight cell-yes">â</td>\r 2486 <td class="feature-value cell-yes">â</td>\r 2487 </tr>\r 2488 <tr>\r 2489 <th scope="row" class="col-module">Global topology</th>\r 2490 <td class="col-desc">Service dependency and call graph</td>\r 2491 <td class="feature-value cell-yes">â</td>\r 2492 \r 2493 <td class="feature-value is-highlight cell-yes">â</td>\r 2494 <td class="feature-value cell-yes">â</td>\r 2495 </tr>\r 2496 <tr>\r 2497 <th scope="row" class="col-module">\r 2498 Spatial map\r
2499 <span class="feature-like" title="Recommended" aria-label="Recommended">\r 2500 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2501 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2502 </svg>\r 2503 </span>\r 2504 </th>\r 2505 <td class="col-desc">Services and deps by spatial dimension</td>\r 2506 <td class="feature-value cell-no">â</td>\r 2507 \r 2508 <td class="feature-value is-highlight cell-yes">â</td>\r 2509 <td class="feature-value cell-yes">â</td>\r 2510 </tr>\r 2511 <tr>\r 2512 <th scope="row" class="col-module">Service monitoring</th>\r 2513 <td class="col-desc">Service list, instances, RED metrics</td>\r 2514 <td class="feature-value cell-yes">â</td>\r 2515 \r 2516 <td class="feature-value is-highlight cell-yes">â</td>\r 2517 <td class="feature-value cell-yes">â</td>\r 2518 </tr>\r 2519 <tr>\r 2520 <th scope="row" class="col-module">Service flow</th>\r 2521 <td class="col-desc">Inter-service traffic and dependency flow</td>\r 2522 <td class="feature-value cell-yes">â</td>\r 2523 \r 2524 <td class="feature-value is-highlight cell-yes">â</td>\r 2525 <td class="feature-value cell-yes">â</td>\r 2526 </tr>\r 2527 <tr>\r 2528 <th scope="row" class="col-module">Database monitoring</th>\r 2529 <td class="col-desc">DB instances, slow queries, call analysis</td>\r 2530 <td class="feature-value cell-yes">â</td>\r 2531 \r 2532 <td class="feature-value is-highlight cell-yes">â</td>\r 2533 <td class="feature-value cell-yes">â</td>\r 2534 </tr>\r 2535 <tr>\r 2536 <th scope="row" class="col-module">Message queue</th>\r 2537 <td class="col-desc">MQ produce/consume and backlog analysis</td>\r 2538 <td class="feature-value cell-yes">â</td>\r 2539 \r 2540 <td class="feature-value is-highlight cell-yes">â</td>\r 2541 <td class="feature-value cell-yes">â</td>\r 2542 </tr>\r 2543 <tr>\r 2544 <th scope="row" class="col-module">Cache monitoring</th>\r 2545 <td class="col-desc">Redis hit rate and latency</td>\r 2546 <td class="feature-value cell-yes">â</td>\r 2547 \r 2548 <td class="feature-value is-highlight cell-yes">â</td>\r 2549 <td class="feature-value cell-yes">â</td>\r 2550 </tr>\r 2551 <tr>\r 2552 <th scope="row" class="col-module">External services</th>\r 2553 <td class="col-desc">Third-party / outbound dependency monitoring</td>\r 2554 <td class="feature-value cell-yes">â</td>\r 2555 \r 2556 <td class="feature-value is-highlight cell-yes">â</td>\r 2557 <td class="feature-value cell-yes">â</td>\r 2558 </tr>\r 2559 <tr>\r 2560 <th scope="row" class="col-module">Endpoint analysis</th>\r 2561 <td class="col-desc">Endpoint throughput, errors, latency distribution</td>\r 2562 <td class="feature-value cell-yes">â</td>\r 2563 \r 2564 <td class="feature-value is-highlight cell-yes">â</td>\r 2565 <td class="feature-value cell-yes">â</td>\r 2566 </tr>\r 2567 <tr>\r 2568 <th scope="row" class="col-module">Error analysis</th>\r 2569 <td class="col-desc">Exception aggregation, trends, and details</td>\r 2570 <td class="feature-value cell-yes">â</td>\r 2571 \r 2572 <td class="feature-value is-highlight cell-yes">â</td>\r 2573 <td class="feature-value cell-yes">â</td>\r 2574 </tr>\r 2575 <tr>\r 2576 <th scope="row" class="col-module">Distributed tracing</th>\r 2577 <td class="col-desc">Trace search and waterfall</td>\r 2578 <td class="feature-value cell-yes">â</td>\r 2579 \r 2580 <td class="feature-value is-highlight cell-yes">â</td>\r 2581 <td class="feature-value cell-yes">â</td>\r 2582 </tr>\r 2583 <tr>\r 2584 <th scope="row" class="col-module">Log analysis (APM-linked)</th>\r 2585 <td class="col-desc">Log search linked to Trace / services</td>\r 2586 <td class="feature-value cell-yes">â</td>\r 2587 \r 2588 <td class="feature-value is-highlight cell-yes">â</td>\r 2589 <td class="feature-value cell-yes">â</td>\r 2590 </tr>\r 2591 <tr>\r 2592 <th scope="row" class="col-module">Business observability</th>\r 2593 <td class="col-desc">Business event ingest, search, and observation</td>\r 2594 <td class="feature-value cell-no">â</td>\r 2595 \r 2596 <td class="feature-value is-highlight cell-no">â</td>\r 2597 <td class="feature-value cell-yes">â</td>\r 2598 </tr>\r 2599 <tr>\r 2600 <th scope="row" class="col-module">\r 2601 Business system / topology\r
2602 <span class="feature-like" title="Recommended" aria-label="Recommended">\r 2603 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2604 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2605 </svg>\r 2606 </span>\r 2607 </th>\r 2608 <td class="col-desc">Aggregate services and topology by business domain</td>\r 2609 <td class="feature-value cell-no">â</td>\r 2610 \r 2611 <td class="feature-value is-highlight cell-yes">â</td>\r 2612 <td class="feature-value cell-yes">â</td>\r 2613 </tr>\r 2614 <tr>\r 2615 <th scope="row" class="col-module">Memory dump</th>\r 2616 <td class="col-desc">Heap dump capture and analysis</td>\r 2617 <td class="feature-value cell-no">â</td>\r 2618 \r 2619 <td class="feature-value is-highlight cell-yes">â</td>\r 2620 <td class="feature-value cell-yes">â</td>\r 2621 </tr>\r 2622 <tr>\r 2623 <th scope="row" class="col-module">Thread profiling</th>\r 2624 <td class="col-desc">Thread state, blocking, and hot-thread analysis</td>\r 2625 <td class="feature-value cell-no">â</td>\r 2626 \r 2627 <td class="feature-value is-highlight cell-yes">â</td>\r 2628 <td class="feature-value cell-yes">â</td>\r 2629 </tr>\r 2630 <tr>\r 2631 <th scope="row" class="col-module">Profiling</th>\r 2632 <td class="col-desc">Hot methods and performance profiling</td>\r 2633 <td class="feature-value cell-no">â</td>\r 2634 \r 2635 <td class="feature-value is-highlight cell-yes">â</td>\r 2636 <td class="feature-value cell-yes">â</td>\r 2637 </tr>\r 2638 <tr>\r 2639 <th scope="row" class="col-module">Connection pool monitoring</th>\r 2640 <td class="col-desc">Thread pool / connection pool status and bottlenecks</td>\r 2641 <td class="feature-value cell-no">â</td>\r 2642 \r 2643 <td class="feature-value is-highlight cell-yes">â</td>\r 2644 <td class="feature-value cell-yes">â</td>\r 2645 </tr>\r 2646\r 2647 <tr class="group-row"><td colspan="5">Infrastructure monitoring</td></tr>\r 2648 <tr>\r 2649 <th scope="row" class="col-module">Infra · Host</th>\r 2650 <td class="col-desc">Host list, CPU / memory / disk</td>\r 2651 <td class="feature-value cell-no">â</td>\r 2652 \r 2653 <td class="feature-value is-highlight cell-yes">â</td>\r 2654 <td class="feature-value cell-yes">â</td>\r 2655 </tr>\r 2656 <tr>\r 2657 <th scope="row" class="col-module">Infra · Docker</th>\r 2658 <td class="col-desc">Container resources and runtime</td>\r 2659 <td class="feature-value cell-no">â</td>\r 2660 \r 2661 <td class="feature-value is-highlight cell-yes">â</td>\r 2662 <td class="feature-value cell-yes">â</td>\r 2663 </tr>\r 2664 <tr>\r 2665 <th scope="row" class="col-module">Infra · Kubernetes</th>\r 2666 <td class="col-desc">Cluster / Node / Pod / Workload / Namespace</td>\r 2667 <td class="feature-value cell-no">â</td>\r 2668 \r 2669 <td class="feature-value is-highlight cell-yes">â</td>\r 2670 <td class="feature-value cell-yes">â</td>\r 2671 </tr>\r 2672 <tr>\r 2673 <th scope="row" class="col-module">Infra · Process</th>\r 2674 <td class="col-desc">Host process-group monitoring</td>\r 2675 <td class="feature-value cell-no">â</td>\r 2676 \r 2677 <td class="feature-value is-highlight cell-yes">â</td>\r 2678 <td class="feature-value cell-yes">â</td>\r 2679 </tr>\r 2680 <tr>\r 2681 <th scope="row" class="col-module">Middleware plugin monitoring</th>\r 2682 <td class="col-desc">Plugin collection for MySQL / Redis / ZooKeeper and other middleware</td>\r 2683 <td class="feature-value cell-no">â</td>\r 2684 \r 2685 <td class="feature-value is-highlight cell-yes">â</td>\r 2686 <td class="feature-value cell-yes">â</td>\r 2687 </tr>\r 2688 <tr>\r 2689 <th scope="row" class="col-module">Custom plugin collection</th>\r 2690 <td class="col-desc">Field-customized middleware / component plugin collection</td>\r 2691 <td class="feature-value cell-no">â</td>\r 2692 \r 2693 <td class="feature-value is-highlight cell-no">â</td>\r 2694 <td class="feature-value cell-yes">â</td>\r 2695 </tr>\r 2696 <tr>\r 2697 <th scope="row" class="col-module">Network · analysis / topology</th>\r 2698 <td class="col-desc">NPM traffic analysis and network topology</td>\r 2699 <td class="feature-value cell-no">â</td>\r 2700 \r 2701 <td class="feature-value is-highlight cell-yes">â</td>\r 2702 <td class="feature-value cell-yes">â</td>\r 2703 </tr>\r 2704 <tr>\r 2705 <th scope="row" class="col-module">Network · DNS</th>\r 2706 <td class="col-desc">DNS resolution quality and anomalies</td>\r 2707 <td class="feature-value cell-no">â</td>\r 2708 \r 2709 <td class="feature-value is-highlight cell-yes">â</td>\r 2710 <td class="feature-value cell-yes">â</td>\r 2711 </tr>\r 2712 <tr>\r 2713 <th scope="row" class="col-module">Metric explore / list</th>\r 2714 <td class="col-desc">Browse and explore general metrics</td>\r 2715 <td class="feature-value cell-no">â</td>\r 2716 \r 2717 <td class="feature-value is-highlight cell-yes">â</td>\r 2718 <td class="feature-value cell-yes">â</td>\r 2719 </tr>\r 2720 <tr>\r 2721 <th scope="row" class="col-module">Report center</th>\r 2722 <td class="col-desc">Report templates, generate, preview, download</td>\r 2723 <td class="feature-value cell-no">â</td>\r 2724 \r 2725 <td class="feature-value is-highlight cell-yes">â</td>\r 2726 <td class="feature-value cell-yes">â</td>\r 2727 </tr>\r 2728\r 2729 <tr class="group-row"><td colspan="5">Alert center</td></tr>\r 2730 <tr>\r 2731 <th scope="row" class="col-module">Alert list</th>\r 2732 <td class="col-desc">Alert search, ack, and handling</td>\r 2733 <td class="feature-value cell-yes">â</td>\r 2734 \r 2735 <td class="feature-value is-highlight cell-yes">â</td>\r 2736 <td class="feature-value cell-yes">â</td>\r 2737 </tr>\r 2738 <tr>\r 2739 <th scope="row" class="col-module">Detection rules / silence</th>\r 2740 <td class="col-desc">Threshold/spike rules and silence windows</td>\r 2741 <td class="feature-value cell-yes">â</td>\r 2742 \r 2743 <td class="feature-value is-highlight cell-yes">â</td>\r 2744 <td class="feature-value cell-yes">â</td>\r 2745 </tr>\r 2746 <tr>\r 2747 <th scope="row" class="col-module">Webhook notifications</th>\r 2748 <td class="col-desc">Outbound Webhook integrations</td>\r 2749 <td class="feature-value cell-yes">â</td>\r 2750 \r 2751 <td class="feature-value is-highlight cell-yes">â</td>\r 2752 <td class="feature-value cell-yes">â</td>\r 2753 </tr>\r 2754 <tr>\r 2755 <th scope="row" class="col-module">Response policies</th>\r 2756 <td class="col-desc">Alert response policy config and publish</td>\r 2757 <td class="feature-value cell-yes">â</td>\r 2758 \r 2759 <td class="feature-value is-highlight cell-yes">â</td>\r 2760 <td class="feature-value cell-yes">â</td>\r 2761 </tr>\r 2762 <tr>\r 2763 <th scope="row" class="col-module">Multi-channel alert notify</th>\r 2764 <td class="col-desc">Email / SMS / DingTalk / WeCom channels</td>\r 2765 <td class="feature-value cell-no">â</td>\r 2766 \r 2767 <td class="feature-value is-highlight cell-yes">â</td>\r 2768 <td class="feature-value cell-yes">â</td>\r 2769 </tr>\r 2770 <tr>\r 2771 <th scope="row" class="col-module">\r 2772 Alert correlation\r
2773 <span class="feature-like" title="Recommended" aria-label="Recommended">\r 2774 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2775 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2776 </svg>\r 2777 </span>\r 2778 </th>\r 2779 <td class="col-desc">Correlation to reduce alert storms</td>\r 2780 <td class="feature-value cell-no">â</td>\r 2781 \r 2782 <td class="feature-value is-highlight cell-yes">â</td>\r 2783 <td class="feature-value cell-yes">â</td>\r 2784 </tr>\r 2785 <tr>\r 2786 <th scope="row" class="col-module">Incident list / analysis</th>\r 2787 <td class="col-desc">Incident aggregation, distribution, trends</td>\r 2788 <td class="feature-value cell-no">â</td>\r 2789 \r 2790 <td class="feature-value is-highlight cell-yes">â</td>\r 2791 <td class="feature-value cell-yes">â</td>\r 2792 </tr>\r 2793 <tr>\r 2794 <th scope="row" class="col-module">RCA / issue details</th>\r 2795 <td class="col-desc">AIOps RCA and issue drill-down</td>\r 2796 <td class="feature-value cell-no">â</td>\r 2797 \r 2798 <td class="feature-value is-highlight cell-yes">â</td>\r 2799 <td class="feature-value cell-yes">â</td>\r 2800 </tr>\r 2801\r 2802 <tr class="group-row"><td colspan="5">Install, deploy & config</td></tr>\r 2803 <tr>\r 2804 <th scope="row" class="col-module">Data ingest</th>\r 2805 <td class="col-desc">Agent / OTLP onboarding guides</td>\r 2806 <td class="feature-value cell-yes">â</td>\r 2807 \r 2808 <td class="feature-value is-highlight cell-yes">â</td>\r 2809 <td class="feature-value cell-yes">â</td>\r 2810 </tr>\r 2811 <tr>\r 2812 <th scope="row" class="col-module">Deploy status</th>\r 2813 <td class="col-desc">Component health and deploy progress</td>\r 2814 <td class="feature-value cell-yes">â</td>\r 2815 \r 2816 <td class="feature-value is-highlight cell-yes">â</td>\r 2817 <td class="feature-value cell-yes">â</td>\r 2818 </tr>\r 2819 <tr>\r 2820 <th scope="row" class="col-module">Agent / plugin integration</th>\r 2821 <td class="col-desc">Agent package and plugin management</td>\r 2822 <td class="feature-value cell-no">â</td>\r 2823 \r 2824 <td class="feature-value is-highlight cell-yes">â</td>\r 2825 <td class="feature-value cell-yes">â</td>\r 2826 </tr>\r 2827 <tr>\r 2828 <th scope="row" class="col-module">Alert / model config</th>\r 2829 <td class="col-desc">Rules and LLM model parameters</td>\r 2830 <td class="feature-value cell-yes">â</td>\r 2831 \r 2832 <td class="feature-value is-highlight cell-yes">â</td>\r 2833 <td class="feature-value cell-yes">â</td>\r 2834 </tr>\r 2835 <tr>\r 2836 <th scope="row" class="col-module">Login / home config</th>\r 2837 <td class="col-desc">Login page and home display config</td>\r 2838 <td class="feature-value cell-yes">â</td>\r 2839 \r 2840 <td class="feature-value is-highlight cell-yes">â</td>\r 2841 <td class="feature-value cell-yes">â</td>\r 2842 </tr>\r 2843 <tr>\r 2844 <th scope="row" class="col-module">Remote config center</th>\r 2845 <td class="col-desc">Remote config for entities, topology, etc.</td>\r 2846 <td class="feature-value cell-no">â</td>\r 2847 \r 2848 <td class="feature-value is-highlight cell-yes">â</td>\r 2849 <td class="feature-value cell-yes">â</td>\r 2850 </tr>\r 2851\r 2852 <tr class="group-row"><td colspan="5">Platform governance</td></tr>\r 2853 <tr>\r 2854 <th scope="row" class="col-module">Self-monitoring</th>\r 2855 <td class="col-desc">Platform component health, metrics, and runtime status</td>\r 2856 <td class="feature-value cell-yes">â</td>\r 2857 \r 2858 <td class="feature-value is-highlight cell-yes">â</td>\r 2859 <td class="feature-value cell-yes">â</td>\r 2860 </tr>\r 2861 <tr>\r 2862 <th scope="row" class="col-module">Account / role management</th>\r 2863 <td class="col-desc">Users and role permissions</td>\r 2864 <td class="feature-value cell-no">â</td>\r 2865 \r 2866 <td class="feature-value is-highlight cell-yes">â</td>\r 2867 <td class="feature-value cell-yes">â</td>\r 2868 </tr>\r 2869 <tr>\r 2870 <th scope="row" class="col-module">\r 2871 Management domain\r
2872 <span class="feature-like" title="Recommended" aria-label="Recommended">\r 2873 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2874 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2875 </svg>\r 2876 </span>\r 2877 </th>\r 2878 <td class="col-desc">Org structure and data-domain isolation</td>\r 2879 <td class="feature-value cell-no">â</td>\r 2880 \r 2881 <td class="feature-value is-highlight cell-no">â</td>\r 2882 <td class="feature-value cell-yes">â</td>\r 2883 </tr>\r 2884 <tr>\r 2885 <th scope="row" class="col-module">SSO (OAuth-class)</th>\r 2886 <td class="col-desc">Enterprise identity federation</td>\r 2887 <td class="feature-value cell-no">â</td>\r 2888 \r 2889 <td class="feature-value is-highlight cell-no">â</td>\r 2890 <td class="feature-value cell-yes">â</td>\r 2891 </tr>\r 2892 <tr>\r 2893 <th scope="row" class="col-module">CMDB integration</th>\r 2894 <td class="col-desc">Bidirectional sync with enterprise CMDB assets / config</td>\r 2895 <td class="feature-value cell-no">â</td>\r 2896 \r 2897 <td class="feature-value is-highlight cell-no">â</td>\r 2898 <td class="feature-value cell-yes">â</td>\r 2899 </tr>\r 2900 <tr>\r 2901 <th scope="row" class="col-module">License entitlement</th>\r 2902 <td class="col-desc">Module license upload and expiry checks</td>\r 2903 <td class="feature-value cell-no">â</td>\r 2904 \r 2905 <td class="feature-value is-highlight cell-yes">â</td>\r 2906 <td class="feature-value cell-yes">â</td>\r 2907 </tr>\r 2908 <tr>\r 2909 <th scope="row" class="col-module">System events / notify mgmt</th>\r 2910 <td class="col-desc">System events and notification channels</td>\r 2911 <td class="feature-value cell-no">â</td>\r 2912 \r 2913 <td class="feature-value is-highlight cell-yes">â</td>\r 2914 <td class="feature-value cell-yes">â</td>\r 2915 </tr>\r 2916 <tr class="group-row"><td colspan="5">Delivery & support</td></tr>\r 2917 <tr>\r 2918 <th scope="row" class="col-module">How you get it</th>\r 2919 <td class="col-desc">Distribution and licensing</td>\r 2920 <td class="feature-value cell-text">GitHub open source</td>\r 2921 \r 2922 <td class="feature-value is-highlight cell-text">Commercial license</td>\r 2923 <td class="feature-value cell-text">License + dedicated delivery</td>\r 2924 </tr>\r 2925 <tr>\r 2926 <th scope="row" class="col-module">\r 2927 Vendor support\r 2928 <span class="feature-like" title="Recommended" aria-label="Recommended">\r 2929 <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">\r 2930 <path fill="currentColor" d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.99z"/>\r 2931 </svg>\r 2932 </span>\r 2933 </th>\r 2934 <td class="col-desc">Ticket / phone / on-site response level</td>\r 2935 <td class="feature-value cell-text">GitHub</td>\r 2936 \r 2937 <td class="feature-value is-highlight cell-text">5Ã8 Standard</td>\r 2938 <td class="feature-value cell-text">7Ã24 Enhanced</td>\r 2939 </tr>\r 2940 <tr>\r 2941 <th scope="row" class="col-module">Pricing</th>\r 2942 <td class="col-desc">How quotes are formed</td>\r 2943 <td class="feature-value cell-text">Free</td>\r 2944 \r 2945 <td class="feature-value is-highlight cell-text">Â¥49,800/license/year</td>\r 2946 <td class="feature-value cell-text">Contact us</td>\r 2947 </tr>\r 2948 </tbody>\r 2949 </table>\r 2950 </div>\r 2951`,W6={class:"docs-version-compare"},q6={class:"docs-version-compare__lead"},U6=["href"],V6=["innerHTML"],Y6=gt({__name:"VersionCompare",props:{locale:{}},setup(e){const t=e,{localeIndex:r}=Rr(),i=ut(()=>t.locale==="zh"||t.locale==="en"?t.locale:r.value==="en"?"en":"zh"),a=ut(()=>i.value==="en"?H6:N6),s=ut(()=>i.value==="en"?{title:"Edition comparison",lead:"Detailed edition comparison. The pricing page keeps a
2951summary; this page is the full matrix.",pricingLink:"/pricing/02/#compare",pricingLabel:"Pricing summary"}:{title:"çæ¬å¯¹æ¯",lead:"çæ¬å¯¹æ¯è¯¦æ
ãå®ä»·é¡µåªä¿çæ¦è¦ï¼å®æ´è½å对ç
§ä»¥æ¬é¡µä¸ºåã",pricingLink:"/pricing/02/#compare",pricingLabel:"æ¥çå®ä»·æ¦è¦"});return(n,o)=>(M(),Y("div",W6,[W("p",q6,[pr(xt(s.value.lead)+" ",1),W("a",{href:s.value.pricingLink},xt(s.value.pricingLabel),9,U6)]),W("div",{class:"docs-version-compare__table",innerHTML:a.value},null,8,V6)]))}});YE();const S8={extends:Ng,Layout:()=>Fa(Ng.Layout,null,{"nav-bar-title-after":()=>Fa(P$),"nav-bar-content-after":()=>Fa(Wg),"nav-screen-content-after":()=>Fa(Wg),"doc-after":()=>Fa(U$)}),enhanceApp({app:e}){e.component("Mermaid",a6),e.component("ProductIntroTabs",R6),e.component("ReleaseNote",y1),e.component("ReleaseNotes",b1),e.component("VersionCompare",Y6)}};export{Ju as $,Qe as A,Xt as B,Yx as C,Nh as D,nf as E,hA as F,wB as G,Fo as H,c8 as I,np as J,h8 as K,DS as L,Gv as M,_S as N,TM as O,dB as P,J6 as Q,S8 as R,ML as S,AL as T,hs as U,Z6 as V,_x as W,kf as X,fa as Y,eA as Z,qE as _,Nx as a,Yi as a$,lc as a0,cA as a1,er as a2,q as a3,U as a4,Ox as a5,xf as a6,QM as a7,Jb as a8,x8 as a9,C5 as aA,oo as aB,me as aC,we as aD,Q6 as aE,K6 as aF,Z1 as aG,J1 as aH,zA as aI,o8 as aJ,r8 as aK,e8 as aL,s8 as aM,ev as aN,a8 as aO,fp as aP,mh as aQ,So as aR,qS as aS,WS as aT,ka as aU,HS as aV,NS as aW,Nn as aX,Ls as aY,fh as aZ,gh as a_,u8 as aa,y5 as ab,Pe as ac,wr as ad,Va as ae,Hh as af,jy as ag,wi as ah,Zy as ai,Ps as aj,RA as ak,zh as al,dt as am,ip as an,sp as ao,n8 as ap,ft as aq,xy as ar,tF as as,v8 as at,C8 as au,b8 as av,yt as aw,k8 as ax,A5 as ay,w5 as az,Rx as b,Rn as b0,i8 as b1,Dt as b2,l4 as b3,t8 as b4,l8 as b5,m5 as b6,y as c,Ht as d,Et as e,vf as f,Wx as g,se as h,zr as i,tr as j,OL as k,J as l,Ss as m,Qy as n,Ts as o,qx as p,Ux as q,zx as r,Hx as s,d8 as t,Xr as u,X6 as v,gA as w,K1 as x,T8 as y,w8 as z};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.