● {series.name}
`,pointFormat:`x: {point.x}
y: {point.y}
`}}),$l(tu.prototype,{drawTracker:Xl.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[`group`,`markerGroup`,`dataLabelsGroup`]}),Ql(tu,`afterTranslate`,function(){this.applyJitter()}),K.registerSeriesType(`scatter`,tu);let{deg2rad:nu}=S,{fireEvent:ru,isNumber:iu,pick:au,relativeLength:ou}=M;(function(e){e.getCenter=function(){let e=this.options,t=this.chart,n=2*(e.slicedOffset||0),r=t.plotWidth-2*n,i=t.plotHeight-2*n,a=e.center,o=Math.min(r,i),s=e.thickness,c,l=e.size,u=e.innerSize||0,d,f;typeof l==`string`&&(l=parseFloat(l)),typeof u==`string`&&(u=parseFloat(u));let p=[au(a?.[0],`50%`),au(a?.[1],`50%`),au(l&&l<0?void 0:e.size,`100%`),au(u&&u<0?void 0:e.innerSize||0,`0%`)];for(!t.angular||this instanceof Z||(p[3]=0),d=0;d<4;++d)f=p[d],c=d<2||d===2&&/%$/.test(f),p[d]=ou(f,[r,i,o,p[2]][d])+(c?n:0);return p[3]>p[2]&&(p[3]=p[2]),iu(s)&&2*s0&&(p[3]=p[2]-2*s),ru(this,`afterGetCenter`,{positions:p}),p},e.getStartAndEndRadians=function(e,t){let n=iu(e)?e:0,r=iu(t)&&t>n&&t-n<360?t:n+360;return{start:nu*(n+-90),end:nu*(r+-90)}}})(g||={});let su=g,{setAnimation:cu}=L,{addEvent:lu,defined:uu,extend:du,isNumber:fu,pick:pu,relativeLength:mu}=M;class hu extends Ga{getConnectorPath(e){let t=e.dataLabelPosition,n=e.options||{},r=n.connectorShape,i=this.connectorShapes[r]||r;return t&&i.call(this,{...t.computed,alignment:t.alignment},t.connectorPosition,n)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(e){let t=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(t.x,t.y,t.r+e,t.r+e,{innerR:t.r-1,start:t.start,end:t.end,borderRadius:t.borderRadius})}constructor(e,t,n){super(e,t,n),this.half=0,this.name??=e.chart.options.lang.pieSliceName;let r=e=>{this.slice(e.type===`select`)};lu(this,`select`,r),lu(this,`unselect`,r)}isValid(){return fu(this.y)&&this.y>=0}setVisible(e,t=!0){e!==this.visible&&this.update({visible:e??!this.visible},t,void 0,!1)}slice(e,t,n){let r=this.series;cu(n,r.chart),t=pu(t,!0),this.sliced=this.options.sliced=e=uu(e)?e:!this.sliced,r.options.data[r.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}du(hu.prototype,{connectorShapes:{fixedOffset:function(e,t,n){let r=t.breakAt,i=t.touchingSliceAt,a=n.softConnector?[`C`,e.x+(e.alignment===`left`?-5:5),e.y,2*r.x-i.x,2*r.y-i.y,r.x,r.y]:[`L`,r.x,r.y];return[[`M`,e.x,e.y],a,[`L`,i.x,i.y]]},straight:function(e,t){let n=t.touchingSliceAt;return[[`M`,e.x,e.y],[`L`,n.x,n.y]]},crookedLine:function(e,t,n){let{angle:r=this.angle||0,breakAt:i,touchingSliceAt:a}=t,{series:o}=this,[s,c,l]=o.center,u=l/2,{plotLeft:d,plotWidth:f}=o.chart,p=e.alignment===`left`,{x:m,y:h}=e,g=i.x;if(n.crookDistance){let e=mu(n.crookDistance,1);g=p?s+u+(f+d-s-u)*(1-e):d+(s-u)*e}else g=s+(c-h)*Math.tan(r-Math.PI/2);let _=[[`M`,m,h]];return(p?g<=m&&g>=i.x:g>=m&&g<=i.x)&&_.push([`L`,g,h]),_.push([`L`,i.x,i.y],[`L`,a.x,a.y]),_}}});let{getStartAndEndRadians:gu}=su,{noop:_u}=S,{clamp:vu,extend:yu,fireEvent:bu,merge:xu,pick:Su}=M;class Cu extends Z{animate(e){let t=this,n=t.points,r=t.startAngleRad;e||n.forEach(function(e){let n=e.graphic,i=e.shapeArgs;n&&i&&(n.attr({r:Su(e.startR,t.center&&t.center[3]/2),start:r,end:r}),n.animate({r:i.r,start:i.start,end:i.end},t.options.animation))})}drawEmpty(){let e,t,n=this.startAngleRad,r=this.endAngleRad,i=this.options;this.total===0&&this.center?(e=this.center[0],t=this.center[1],this.graph||=this.chart.renderer.arc(e,t,this.center[1]/2,0,n,r).addClass(`highcharts-empty-series`).add(this.group),this.graph.attr({d:Rn.arc(e,t,this.center[2]/2,0,{start:n,end:r,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":i.borderWidth,fill:i.fillColor||`none`,stroke:i.color||`#cccccc`})):this.graph&&=this.graph.destroy()}drawPoints(){let e=this.chart.renderer;this.points.forEach(function(t){t.graphic&&t.hasNewShapeType()&&(t.graphic=t.graphic.destroy()),t.graphic||(t.graphic=e[t.shapeType](t.shapeArgs).add(t.series.group),t.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(e,t,n,r){let i=this.center,a=this.radii?this.radii[n.index]||0:i[2]/2,o=r.dataLabelPosition?.distance||0,s=Math.asin(vu((e-i[1])/(a+o),-1,1));return i[0]+Math.cos(s)*(a+o)*(t?-1:1)+(o>0?(t?-1:1)*(r.padding||0):0)}hasData(){return this.points.some(e=>e.visible)}redrawPoints(){let e,t,n,r,i=this,a=i.chart;this.drawEmpty(),i.group&&!a.styledMode&&i.group.shadow(i.options.shadow),i.points.forEach(function(o){let s={};t=o.graphic,!o.isNull&&t?(r=o.shapeArgs,e=o.getTranslate(),a.styledMode||(n=i.pointAttribs(o,o.selected&&`select`)),o.delayedRendering?(t.setRadialReference(i.center).attr(r).attr(e),a.styledMode||t.attr(n).attr({"stroke-linejoin":`round`}),o.delayedRendering=!1):(t.setRadialReference(i.center),a.styledMode||xu(!0,s,n),xu(!0,s,r,e),t.animate(s)),t.attr({visibility:o.visible?`inherit`:`hidden`}),t.addClass(o.getClassName(),!0)):t&&(o.graphic=t.destroy())})}sortByAngle(e,t){e.sort(function(e,n){return e.angle!==void 0&&(n.angle-e.angle)*t})}translate(e){bu(this,`translate`),this.generatePoints();let t=this.options,n=t.slicedOffset,r=gu(t.startAngle,t.endAngle),i=this.startAngleRad=r.start,a=(this.endAngleRad=r.end)-i,o=this.points,s=t.ignoreHiddenPoint,c=o.length,l,u,d,f,p,m,h,g=0;for(e||(this.center=e=this.getCenter()),m=0;m1.5*Math.PI?d-=2*Math.PI:d<-Math.PI/2&&(d+=2*Math.PI),h.slicedTranslation={translateX:Math.round(Math.cos(d)*n),translateY:Math.round(Math.sin(d)*n)},f=Math.cos(d)*e[2]/2,p=Math.sin(d)*e[2]/2,h.tooltipPos=[e[0]+.7*f,e[1]+.7*p],h.half=+(d<-Math.PI/2||d>Math.PI/2),h.angle=d}bu(this,`afterTranslate`)}updateTotals(){let e=this.points,t=e.length,n=this.options.ignoreHiddenPoint,r,i,a=0;for(r=0;r0&&(i.visible||!n)?i.y/a*100:0,i.total=a}}Cu.defaultOptions=xu(Z.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:`crookedLine`,crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:`point`,marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:`#ffffff`,borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),yu(Cu.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:Dl.prototype.drawTracker,getCenter:su.getCenter,getSymbol:_u,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:Dl.prototype.pointAttribs,pointClass:hu,requireSorting:!1,searchPoint:_u,trackerGroups:[`group`,`dataLabelsGroup`]}),K.registerSeriesType(`pie`,Cu);let{composed:wu,noop:Tu}=S,{distribute:Eu}=Ut,{series:Du}=K,{arrayMax:Ou,clamp:ku,defined:Au,isNumber:ju,pick:Mu,pushUnique:Nu,relativeLength:Pu}=M;(function(e){let t={radialDistributionY:function(e,t){return(t.dataLabelPosition?.top||0)+e.distributeBox.pos},radialDistributionX:function(e,t,n,r,i){let a=i.dataLabelPosition;return e.getX(n<(a?.top||0)+2||n>(a?.bottom||0)-2?r:n,t.half,t,i)},justify:function(e,t,n,r){return r[0]+(e.half?-1:1)*(n+(t.dataLabelPosition?.distance||0))},alignToPlotEdges:function(e,t,n,r){let i=e.getBBox().width;return t?i+r:n-i-r},alignToConnectors:function(e,t,n,r){let i=0,a;return e.forEach(function(e){(a=e.dataLabel.getBBox().width)>i&&(i=a)}),t?i+r:n-i-r}};function n(e,t){let n=Math.PI/2,{start:r=0,end:i=0}=e.shapeArgs||{},a=e.angle||0;t>0&&rn&&a>n/2&&a<1.5*n&&(a=a<=n?Math.max(n/2,(r+n)/2):Math.min(1.5*n,(n+i)/2));let{center:o,options:s}=this,c=o[2]/2,l=Math.cos(a),u=Math.sin(a),d=o[0]+l*c,f=o[1]+u*c,p=Math.min((s.slicedOffset||0)+(s.borderWidth||0),t/5);return{natural:{x:d+l*t,y:f+u*t},computed:{},alignment:t<0?`center`:e.half?`right`:`left`,connectorPosition:{angle:a,breakAt:{x:d+l*p,y:f+u*p},touchingSliceAt:{x:d,y:f}},distance:t}}function r(){let e=this,t=e.points,n=e.chart,r=n.plotWidth,i=n.plotHeight,a=n.plotLeft,o=Math.round(n.chartWidth/3),s=e.center,c=s[2]/2,l=s[1],u=[[],[]],d=[0,0,0,0],f=e.dataLabelPositioners,p,m,h,g=0;e.visible&&e.hasDataLabels?.()&&(t.forEach(e=>{(e.dataLabels||[]).forEach(e=>{e.shortened&&=(e.attr({width:`auto`}).css({width:`auto`,textOverflow:`clip`}),!1)})}),Du.prototype.drawDataLabels.apply(e),t.forEach(e=>{(e.dataLabels||[]).forEach((t,n)=>{let r=s[2]/2,i=t.options,a=Pu(i?.distance||0,r);n===0&&u[e.half].push(e),!Au(i?.style?.width)&&t.getBBox().width>o&&(t.css({width:Math.round(.7*o)+`px`}),t.shortened=!0),t.dataLabelPosition=this.getDataLabelPosition(e,a),g=Math.max(g,a)})}),u.forEach((t,o)=>{let u=t.length,p=[],_,v,y=0,b;u&&(e.sortByAngle(t,o-.5),g>0&&(_=Math.max(0,l-c-g),v=Math.min(l+c+g,n.plotHeight),t.forEach(e=>{(e.dataLabels||[]).forEach(t=>{let r=t.dataLabelPosition;r&&r.distance>0&&(r.top=Math.max(0,l-c-r.distance),r.bottom=Math.min(l+c+r.distance,n.plotHeight),y=t.getBBox().height||21,t.lineHeight=n.renderer.fontMetrics(t.text||t).h+2*t.padding,e.distributeBox={target:(t.dataLabelPosition?.natural.y||0)-r.top+t.lineHeight/2,size:y,rank:e.y},p.push(e.distributeBox))})}),Eu(p,b=v+y-_,b/5)),t.forEach(n=>{(n.dataLabels||[]).forEach(l=>{let u=l.options||{},g=n.distributeBox,_=l.dataLabelPosition,v=_?.natural.y||0,y=u.connectorPadding||0,b=l.lineHeight||21,x=(b-l.getBBox().height)/2,S=0,C=v,w=`inherit`;if(_){if(p&&Au(g)&&_.distance>0&&(g.pos===void 0?w=`hidden`:(h=g.size,C=f.radialDistributionY(n,l))),u.justify)S=f.justify(n,l,c,s);else switch(u.alignTo){case`connectors`:S=f.alignToConnectors(t,o,r,a);break;case`plotEdges`:S=f.alignToPlotEdges(l,o,r,a);break;default:S=f.radialDistributionX(e,n,C-x,v,l)}if(_.attribs={visibility:w,align:_.alignment},_.posAttribs={x:S+(u.x||0)+({left:y,right:-y}[_.alignment]||0),y:C+(u.y||0)-b/2},_.computed.x=S,_.computed.y=C-x,Mu(u.crop,!0)){let e;S-(m=l.getBBox().width)r-y&&o===0&&(e=Math.round(S+m-r+y),d[1]=Math.max(e,d[1])),C-h/2<0?d[0]=Math.max(Math.round(-C+h/2),d[0]):C+h/2>i&&(d[2]=Math.max(Math.round(C+h/2-i),d[2])),_.sideOverflow=e}}})}))}),(Ou(d)===0||this.verifyDataLabelOverflow(d))&&(this.placeDataLabels(),this.points.forEach(t=>{(t.dataLabels||[]).forEach(r=>{let{connectorColor:i,connectorWidth:a=1}=r.options||{},o=r.dataLabelPosition;if(ju(a)){let s;p=r.connector,o&&o.distance>0?(s=!p,p||(r.connector=p=n.renderer.path().addClass(`highcharts-data-label-connector highcharts-color-`+t.colorIndex+(t.className?` `+t.className:``)).add(e.dataLabelsGroup)),n.styledMode||p.attr({"stroke-width":a,stroke:i||t.color||`#666666`}),p[s?`attr`:`animate`]({d:t.getConnectorPath(r)}),p.attr({visibility:o.attribs?.visibility})):p&&(r.connector=p.destroy())}})})))}function i(){this.points.forEach(e=>{(e.dataLabels||[]).forEach(e=>{let t=e.dataLabelPosition;t?(t.sideOverflow&&(e.css({width:Math.max(e.getBBox().width-t.sideOverflow,0)+`px`,textOverflow:e.options?.style?.textOverflow||`ellipsis`}),e.shortened=!0),e.attr(t.attribs),e[e.moved?`animate`:`attr`](t.posAttribs),e.moved=!0):e&&e.attr({y:-9999})}),delete e.distributeBox},this)}function a(e){let t=this.center,n=this.options,r=n.center,i=n.minSize||80,a=i,o=n.size!==null;return!o&&(r[0]===null?(a=Math.max(t[2]-e[1]-e[3],i),t[0]+=(e[3]-e[1])/2):a=Math.max(t[2]-Math.max(e[1],e[3]),i),r[1]===null?(a=ku(a,i,t[2]-e[0]-e[2]),t[1]+=(e[0]-e[2])/2):a=ku(a,i,t[2]-Math.max(e[0],e[2])),a(e.x+=t.x,e.y+=t.y,e),{x:0,y:0});return{x:t.x/e.length,y:t.y/e.length}},e.getDistanceBetweenPoints=function(e,t){return Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2)},e.getAngleBetweenPoints=function(e,t){return Math.atan2(t.x-e.x,t.y-e.y)},e.pointInPolygon=function({x:e,y:t},n){let r=n.length,i,a,o=!1;for(i=0,a=r-1;it!=l>t&&e<(c-r)*(t-s)/(l-s)+r&&(o=!o)}return o}})(v||={});let{pointInPolygon:Iu}=v,{addEvent:Lu,getAlignFactor:Ru,fireEvent:zu,objectEach:Bu,pick:Vu}=M;function Hu(e){let t=e.length,n=(e,t)=>!(t.x>=e.x+e.width||t.x+t.width<=e.x||t.y>=e.y+e.height||t.y+t.height<=e.y),r=(e,t)=>{for(let n of e)if(Iu({x:n[0],y:n[1]},t))return!0;return!1},i,a,o,s,c,l=!1;for(let n=0;n(t.labelrank||0)-(e.labelrank||0));for(let i=0;i{Bu(e,e=>{e.label&&t.push(e.label)})});for(let n of e.series||[])if(n.visible&&n.hasDataLabels?.()){let r=n=>{for(let r of n)r.visible&&(r.dataLabels||[]).forEach(n=>{let i=n.options||{};n.labelrank=Vu(i.labelrank,r.labelrank,r.shapeArgs?.height),i.allowOverlap??Number(i.distance)>0?(n.oldOpacity=n.opacity,n.newOpacity=1,Uu(n,e)):t.push(n)})};r(n.nodes||[]),r(n.points)}this.hideOverlappingLabels(t)}let Gu={compose:function(e){let t=e.prototype;t.hideOverlappingLabels||(t.hideOverlappingLabels=Hu,Lu(e,`render`,Wu))}},{defaultOptions:Ku}=Be,{noop:qu}=S,{addEvent:Ju,extend:Yu,isObject:Xu,merge:Zu,relativeLength:Qu}=M,$u={radius:0,scope:`stack`,where:void 0},ed=qu,td=qu;function nd(e,t,n,r,i={}){let a=ed(e,t,n,r,i),{brStart:o=!0,brEnd:s=!0,innerR:c=0,r:l=n,start:u=0,end:d=0}=i;if(i.open||!i.borderRadius)return a;let f=d-u,p=Math.sin(f/2),m=Math.max(Math.min(Qu(i.borderRadius||0,l-c),(l-c)/2,l*p/(1+p)),0),h=Math.min(m,f/Math.PI*2*c),g=a.length-1;for(;g--;)(o||g!==0&&g!==3)&&(s||g!==1&&g!==2)&&function(e,t,n){let r,i,a,o=e[t],s=e[t+1];if(s[0]===`Z`&&(s=e[0]),(o[0]===`M`||o[0]===`L`)&&s[0]===`A`?(r=o,i=s,a=!0):o[0]===`A`&&(s[0]===`M`||s[0]===`L`)&&(r=s,i=o),r&&i&&i.params){let o=i[1],s=i[5],c=i.params,{start:l,end:u,cx:d,cy:f}=c,p=s?o-n:o+n,m=p?Math.asin(n/p):0,h=s?m:-m,g=Math.cos(m)*p;a?(c.start=l+h,r[1]=d+g*Math.cos(l),r[2]=f+g*Math.sin(l),e.splice(t+1,0,[`A`,n,n,0,0,1,d+o*Math.cos(c.start),f+o*Math.sin(c.start)])):(c.end=u-h,i[6]=d+o*Math.cos(c.end),i[7]=f+o*Math.sin(c.end),e.splice(t+1,0,[`A`,n,n,0,0,1,d+g*Math.cos(u),f+g*Math.sin(u)])),i[4]=Math.abs(c.end-c.start)1?h:m);return a}function rd(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:e,yAxis:t}=this,n=e.stacking===`percent`,r=Ku.plotOptions?.[this.type]?.borderRadius,i=id(e.borderRadius,Xu(r)?r:{}),a=t.options.reversed;for(let r of this.points){let{shapeArgs:o}=r;if(r.shapeType===`roundedRect`&&o){let{width:s=0,height:c=0,y:l=0}=o,u=l,d=c;if(i.scope===`stack`&&r.stackTotal){let i=t.translate(n?100:r.stackTotal,!1,!0,!1,!0),a=t.translate(e.threshold||0,!1,!0,!1,!0),o=this.crispCol(0,Math.min(i,a),0,Math.abs(i-a));u=o.y,d=o.height}let f=(r.negative?-1:1)*(a?-1:1)==-1,p=i.where;!p&&this.is(`waterfall`)&&Math.abs((r.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(p=`all`),p||=`end`;let m=Math.min(Qu(i.radius,s),s/2,p===`all`?c/2:1/0)||0;p===`end`&&(f&&(u-=m),d+=m),Yu(o,{brBoxHeight:d,brBoxY:u,r:m})}}}}function id(e,t){return Xu(e)||(e={radius:e||0}),Zu($u,t,e)}function ad(){let e=id(this.options.borderRadius);for(let t of this.points){let n=t.shapeArgs;n&&(n.borderRadius=Qu(e.radius,(n.r||0)-(n.innerR||0)))}}function od(e,t,n,r,i={}){let a=td(e,t,n,r,i),{r:o=0,brBoxHeight:s=r,brBoxY:c=t}=i,l=t-c,u=c+s-(t+r),d=l-o>-.1?0:o,f=u-o>-.1?0:o,p=Math.max(d&&l,0),m=Math.max(f&&u,0),h=[e+d,t],g=[e+n-d,t],_=[e+n,t+d],v=[e+n,t+r-f],y=[e+n-f,t+r],b=[e+f,t+r],x=[e,t+r-f],S=[e,t+d],C=(e,t)=>Math.sqrt(e**2-t**2);if(p){let e=C(d,d-p);h[0]-=e,g[0]+=e,_[1]=S[1]=t+d-p}if(r=dd(n.minWidth,0)&&this.chartHeight>=dd(n.minHeight,0)}).call(this)&&t.push(e._id)}function n(e,t){let n=this.options.responsive,r=this.currentResponsive,i=[],a;!t&&n&&n.rules&&n.rules.forEach(e=>{e._id===void 0&&(e._id=fd()),this.matchResponsiveRule(e,i)},this);let o=ud(...i.map(e=>ld(n?.rules||[],t=>t._id===e)).map(e=>e?.chartOptions));o.isResponsiveOptions=!0,i=i.toString()||void 0;let s=r?.ruleIds;i!==s&&(r&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(r.undoOptions,e,!0),this.updatingResponsive=!1),i?((a=sd(o,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:i,mergedOptions:o,undoOptions:a},this.updatingResponsive||this.update(o,e,!0)):this.currentResponsive=void 0)}e.compose=function(e){let r=e.prototype;return r.matchResponsiveRule||cd(r,{matchResponsiveRule:t,setResponsive:n}),e}})(y||={});let pd=y;S.AST=R,S.Axis=Ai,S.Chart=oc,S.Color=F,S.DataLabel=Vl,S.DataTableCore=go,S.Fx=I,S.HTMLElement=Rr,S.Legend=Ss,S.LegendSymbol=bo,S.OverlappingDataLabels=S.OverlappingDataLabels||Gu,S.PlotLineOrBand=ea,S.Point=Ga,S.Pointer=lo,S.RendererRegistry=Rt,S.Series=Z,S.SeriesRegistry=K,S.StackItem=Ec,S.SVGElement=Cn,S.SVGRenderer=wr,S.Templating=Lt,S.Tick=ii,S.Time=Pe,S.Tooltip=Ta,S.animate=L.animate,S.animObject=L.animObject,S.chart=oc.chart,S.color=F.parse,S.dateFormat=Lt.dateFormat,S.defaultOptions=Be.defaultOptions,S.distribute=Ut.distribute,S.format=Lt.format,S.getDeferredAnimation=L.getDeferredAnimation,S.getOptions=Be.getOptions,S.numberFormat=Lt.numberFormat,S.seriesType=K.seriesType,S.setAnimation=L.setAnimation,S.setOptions=Be.setOptions,S.stop=L.stop,S.time=Be.defaultTime,S.timers=I.timers,{compose:function(e,t,n){let r=e.types.pie;if(!t.symbolCustomAttribs.includes(`borderRadius`)){let i=n.prototype.symbols;Ju(e,`afterColumnTranslate`,rd,{order:9}),Ju(r,`afterTranslate`,ad),t.symbolCustomAttribs.push(`borderRadius`,`brBoxHeight`,`brBoxY`,`brEnd`,`brStart`),ed=i.arc,td=i.roundedRect,i.arc=nd,i.roundedRect=od}},optionsToObject:id}.compose(S.Series,S.SVGElement,S.SVGRenderer),Kl.compose(S.Series.types.column),Vl.compose(S.Series),Fi.compose(S.Axis),Rr.compose(S.SVGRenderer),Ss.compose(S.Chart),zi.compose(S.Axis),Gu.compose(S.Chart),Fu.compose(S.Series.types.pie),ea.compose(S.Chart,S.Axis),lo.compose(S.Chart),pd.compose(S.Chart),vc.compose(S.Axis,S.Chart,S.Series),Kc.compose(S.Axis,S.Chart,S.Series),Ta.compose(S.Pointer),M.extend(S,M);let md=S;return x.default})())}));export{t};
\ No newline at end of file
diff --git a/dashboard/public/_nuxt/DimqLJ3H.js b/dashboard/public/_nuxt/BLICcaEN.js
similarity index 59%
rename from dashboard/public/_nuxt/DimqLJ3H.js
rename to dashboard/public/_nuxt/BLICcaEN.js
index 6a1edaf..fbf129b 100644
--- a/dashboard/public/_nuxt/DimqLJ3H.js
+++ b/dashboard/public/_nuxt/BLICcaEN.js
@@ -1 +1 @@
-import{M as e,yt as t}from"./CxatB1L6.js";import{t as n}from"./BxUO6acX.js";const r=e(`logs`,()=>{let e=n(),r=t([]),i=t(!1),a=1;return{logs:r,paused:i,addLog:t=>{i.value||(r.value=[{...t,seq:a},...r.value].slice(0,e.logMaxRows),a++)},clearLogs:()=>{r.value=[],a=1},togglePaused:()=>{i.value=!i.value}}});export{r as t};
\ No newline at end of file
+import{M as e,yt as t}from"./B7rlnwkb.js";import{t as n}from"./CdlJ_YxQ.js";const r=e(`logs`,()=>{let e=n(),r=t([]),i=t(!1),a=1;return{logs:r,paused:i,addLog:t=>{i.value||(r.value=[{...t,seq:a},...r.value].slice(0,e.logMaxRows),a++)},clearLogs:()=>{r.value=[],a=1},togglePaused:()=>{i.value=!i.value}}});export{r as t};
\ No newline at end of file
diff --git a/dashboard/public/_nuxt/DRJWd5jk.js b/dashboard/public/_nuxt/BO5M1c2D.js
similarity index 99%
rename from dashboard/public/_nuxt/DRJWd5jk.js
rename to dashboard/public/_nuxt/BO5M1c2D.js
index 7fc9d86..bb7eac8 100644
--- a/dashboard/public/_nuxt/DRJWd5jk.js
+++ b/dashboard/public/_nuxt/BO5M1c2D.js
@@ -1 +1 @@
-import{C as e,F as t,yt as n}from"./CxatB1L6.js";import{u as r}from"./_v7-ePgP.js";import{t as i}from"./CDMImveV.js";const a={meta:!0,version:`v1.18.0`},o={port:7890,"socks-port":7891,"redir-port":0,"tproxy-port":0,"mixed-port":7893,mode:`rule`,"log-level":`info`,"allow-lan":!1,ipv6:!1,tun:{enable:!1,device:`utun`,stack:`system`,"dns-hijack":null,"auto-route":!0,"auto-detect-interface":!0,"file-descriptor":0}};function s(e,t,n=``){return{network:`tcp`,type:`HTTP Connect`,destinationIP:t,destinationPort:`443`,dnsMode:`normal`,host:e,inboundIP:`127.0.0.1`,inboundName:`mixed-in`,inboundPort:`7893`,inboundUser:``,process:n,processPath:n?`/Applications/${n}.app`:``,remoteDestination:``,sniffHost:e,sourceIP:`192.168.1.100`,sourcePort:`52341`,specialProxy:``,specialRules:``,uid:501}}function c(e,t,n,r,i){return{name:e,type:t,all:r||[],history:n?[{delay:n,time:new Date().toISOString()}]:[],udp:!0,xudp:t===`Hysteria2`||t===`VLESS`,tfo:!1,extra:{},hidden:!1,now:i||``}}function l(e,t,n){return{name:e,type:t,alive:!0,tfo:!1,udp:!0,xudp:!1,now:``,id:e,extra:{},history:n?[{delay:n,time:new Date().toISOString()}]:[]}}const u={DIRECT:c(`DIRECT`,`Direct`),REJECT:c(`REJECT`,`Reject`),"Hong Kong":c(`Hong Kong`,`Shadowsocks`,85),Japan:c(`Japan`,`Vmess`,120),Singapore:c(`Singapore`,`Trojan`,65),"United States":c(`United States`,`Hysteria2`,180),Taiwan:c(`Taiwan`,`VLESS`,95),"Auto Select":c(`Auto Select`,`URLTest`,void 0,[`Hong Kong`,`Japan`,`Singapore`,`United States`,`Taiwan`],`Singapore`),Proxy:c(`Proxy`,`Selector`,void 0,[`Auto Select`,`Hong Kong`,`Japan`,`Singapore`,`United States`,`Taiwan`,`DIRECT`],`Auto Select`),Streaming:c(`Streaming`,`Selector`,void 0,[`Proxy`,`Hong Kong`,`Japan`,`Singapore`,`Taiwan`,`DIRECT`],`Japan`),"AI Services":c(`AI Services`,`Selector`,void 0,[`Proxy`,`United States`,`Japan`,`Singapore`],`United States`)},d={"Provider A":{name:`Provider A`,type:`Proxy`,vehicleType:`HTTP`,testUrl:`https://www.gstatic.com/generate_204`,proxies:[l(`Hong Kong`,`Shadowsocks`,85),l(`Japan`,`Vmess`,120),l(`Singapore`,`Trojan`,65)],updatedAt:new Date().toISOString(),subscriptionInfo:{Upload:1024*1024*100,Download:1024*1024*500,Total:1024*1024*1024*100,Expire:Math.floor(Date.now()/1e3)+720*60*60}},"Provider B":{name:`Provider B`,type:`Proxy`,vehicleType:`File`,testUrl:`https://www.gstatic.com/generate_204`,proxies:[l(`United States`,`Hysteria2`,180),l(`Taiwan`,`VLESS`,95)],updatedAt:new Date(Date.now()-1440*60*1e3).toISOString(),subscriptionInfo:{Upload:1024*1024*50,Download:1024*1024*200,Total:1024*1024*1024*50,Expire:Math.floor(Date.now()/1e3)+1440*60*60}}},f=p();function p(){return[{type:`DOMAIN-SUFFIX`,payload:`google.com`,proxy:`Proxy`,size:156},{type:`DOMAIN-SUFFIX`,payload:`googleapis.com`,proxy:`Proxy`,size:89},{type:`DOMAIN-SUFFIX`,payload:`gstatic.com`,proxy:`Proxy`,size:234},{type:`DOMAIN-SUFFIX`,payload:`github.com`,proxy:`Proxy`,size:178},{type:`DOMAIN-SUFFIX`,payload:`githubusercontent.com`,proxy:`Proxy`,size:445},{type:`DOMAIN-SUFFIX`,payload:`openai.com`,proxy:`AI Services`,size:67},{type:`DOMAIN-SUFFIX`,payload:`anthropic.com`,proxy:`AI Services`,size:34},{type:`DOMAIN-SUFFIX`,payload:`claude.ai`,proxy:`AI Services`,size:23},{type:`DOMAIN-SUFFIX`,payload:`netflix.com`,proxy:`Streaming`,size:512},{type:`DOMAIN-SUFFIX`,payload:`nflxvideo.net`,proxy:`Streaming`,size:1024},{type:`DOMAIN-SUFFIX`,payload:`youtube.com`,proxy:`Streaming`,size:789},{type:`DOMAIN-SUFFIX`,payload:`ytimg.com`,proxy:`Streaming`,size:456},{type:`DOMAIN-SUFFIX`,payload:`googlevideo.com`,proxy:`Streaming`,size:2048},{type:`DOMAIN-SUFFIX`,payload:`twitter.com`,proxy:`Proxy`,size:345},{type:`DOMAIN-SUFFIX`,payload:`x.com`,proxy:`Proxy`,size:123},{type:`DOMAIN-SUFFIX`,payload:`twimg.com`,proxy:`Proxy`,size:567},{type:`DOMAIN-SUFFIX`,payload:`facebook.com`,proxy:`Proxy`,size:890},{type:`DOMAIN-SUFFIX`,payload:`fbcdn.net`,proxy:`Proxy`,size:1234},{type:`DOMAIN-SUFFIX`,payload:`instagram.com`,proxy:`Proxy`,size:678},{type:`DOMAIN-SUFFIX`,payload:`cdninstagram.com`,proxy:`Proxy`,size:901},{type:`DOMAIN-SUFFIX`,payload:`telegram.org`,proxy:`Proxy`,size:234},{type:`DOMAIN-SUFFIX`,payload:`t.me`,proxy:`Proxy`,size:56},{type:`DOMAIN-SUFFIX`,payload:`whatsapp.com`,proxy:`Proxy`,size:345},{type:`DOMAIN-SUFFIX`,payload:`discord.com`,proxy:`Proxy`,size:456},{type:`DOMAIN-SUFFIX`,payload:`discordapp.com`,proxy:`Proxy`,size:567},{type:`DOMAIN-SUFFIX`,payload:`spotify.com`,proxy:`Streaming`,size:678},{type:`DOMAIN-SUFFIX`,payload:`scdn.co`,proxy:`Streaming`,size:789},{type:`DOMAIN-SUFFIX`,payload:`twitch.tv`,proxy:`Streaming`,size:890},{type:`DOMAIN-SUFFIX`,payload:`ttvnw.net`,proxy:`Streaming`,size:1567},{type:`DOMAIN-SUFFIX`,payload:`reddit.com`,proxy:`Proxy`,size:234},{type:`DOMAIN-SUFFIX`,payload:`redd.it`,proxy:`Proxy`,size:123},{type:`DOMAIN-SUFFIX`,payload:`medium.com`,proxy:`Proxy`,size:345},{type:`DOMAIN-SUFFIX`,payload:`wikipedia.org`,proxy:`Proxy`,size:456},{type:`DOMAIN-SUFFIX`,payload:`wikimedia.org`,proxy:`Proxy`,size:567},{type:`DOMAIN-KEYWORD`,payload:`google`,proxy:`Proxy`,size:12},{type:`DOMAIN-KEYWORD`,payload:`facebook`,proxy:`Proxy`,size:8},{type:`DOMAIN-KEYWORD`,payload:`youtube`,proxy:`Streaming`,size:6},{type:`DOMAIN-KEYWORD`,payload:`twitter`,proxy:`Proxy`,size:5},{type:`DOMAIN-KEYWORD`,payload:`netflix`,proxy:`Streaming`,size:4},{type:`GEOIP`,payload:`CN`,proxy:`DIRECT`,size:8945},{type:`GEOIP`,payload:`PRIVATE`,proxy:`DIRECT`,size:156},{type:`IP-CIDR`,payload:`192.168.0.0/16`,proxy:`DIRECT`,size:1},{type:`IP-CIDR`,payload:`10.0.0.0/8`,proxy:`DIRECT`,size:1},{type:`IP-CIDR`,payload:`172.16.0.0/12`,proxy:`DIRECT`,size:1},{type:`IP-CIDR`,payload:`127.0.0.0/8`,proxy:`DIRECT`,size:1},{type:`IP-CIDR`,payload:`100.64.0.0/10`,proxy:`DIRECT`,size:1},{type:`IP-CIDR6`,payload:`::1/128`,proxy:`DIRECT`,size:1},{type:`IP-CIDR6`,payload:`fc00::/7`,proxy:`DIRECT`,size:1},{type:`IP-CIDR6`,payload:`fe80::/10`,proxy:`DIRECT`,size:1},{type:`PROCESS-NAME`,payload:`Telegram`,proxy:`Proxy`,size:1},{type:`PROCESS-NAME`,payload:`Discord`,proxy:`Proxy`,size:1},{type:`PROCESS-NAME`,payload:`Spotify`,proxy:`Streaming`,size:1},{type:`RULE-SET`,payload:`reject`,proxy:`REJECT`,size:1234},{type:`RULE-SET`,payload:`direct`,proxy:`DIRECT`,size:5678},{type:`RULE-SET`,payload:`proxy`,proxy:`Proxy`,size:2345},{type:`MATCH`,payload:``,proxy:`Proxy`,size:1}]}const m={reject:{name:`reject`,type:`Rule`,behavior:`domain`,ruleCount:1234,updatedAt:new Date().toISOString(),vehicleType:`HTTP`,format:`yaml`},direct:{name:`direct`,type:`Rule`,behavior:`domain`,ruleCount:5678,updatedAt:new Date(Date.now()-720*60*1e3).toISOString(),vehicleType:`HTTP`,format:`yaml`},proxy:{name:`proxy`,type:`Rule`,behavior:`classical`,ruleCount:2345,updatedAt:new Date(Date.now()-360*60*1e3).toISOString(),vehicleType:`HTTP`,format:`yaml`}},h=g();function g(){let e=[{host:`www.google.com`,ip:`142.250.185.14`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`google.com`},{host:`github.com`,ip:`140.82.121.4`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`github.com`},{host:`api.github.com`,ip:`140.82.121.6`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`github.com`},{host:`raw.githubusercontent.com`,ip:`185.199.108.133`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`githubusercontent.com`},{host:`www.youtube.com`,ip:`172.217.14.110`,proxy:`Streaming`,rule:`DOMAIN-SUFFIX`,rulePayload:`youtube.com`},{host:`i.ytimg.com`,ip:`172.217.14.118`,proxy:`Streaming`,rule:`DOMAIN-SUFFIX`,rulePayload:`ytimg.com`},{host:`api.openai.com`,ip:`104.18.12.191`,proxy:`AI Services`,rule:`DOMAIN-SUFFIX`,rulePayload:`openai.com`},{host:`chat.openai.com`,ip:`104.18.13.191`,proxy:`AI Services`,rule:`DOMAIN-SUFFIX`,rulePayload:`openai.com`},{host:`api.anthropic.com`,ip:`104.18.32.47`,proxy:`AI Services`,rule:`DOMAIN-SUFFIX`,rulePayload:`anthropic.com`},{host:`claude.ai`,ip:`104.18.33.47`,proxy:`AI Services`,rule:`DOMAIN-SUFFIX`,rulePayload:`claude.ai`},{host:`www.netflix.com`,ip:`54.74.73.31`,proxy:`Streaming`,rule:`DOMAIN-SUFFIX`,rulePayload:`netflix.com`},{host:`twitter.com`,ip:`104.244.42.1`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`twitter.com`},{host:`x.com`,ip:`104.244.42.65`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`x.com`},{host:`www.facebook.com`,ip:`157.240.1.35`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`facebook.com`},{host:`www.instagram.com`,ip:`157.240.1.174`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`instagram.com`},{host:`web.telegram.org`,ip:`149.154.167.99`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`telegram.org`},{host:`discord.com`,ip:`162.159.130.234`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`discord.com`},{host:`cdn.discordapp.com`,ip:`162.159.133.234`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`discordapp.com`},{host:`open.spotify.com`,ip:`35.186.224.25`,proxy:`Streaming`,rule:`DOMAIN-SUFFIX`,rulePayload:`spotify.com`},{host:`www.twitch.tv`,ip:`151.101.2.167`,proxy:`Streaming`,rule:`DOMAIN-SUFFIX`,rulePayload:`twitch.tv`},{host:`www.reddit.com`,ip:`151.101.1.140`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`reddit.com`},{host:`medium.com`,ip:`162.159.152.4`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`medium.com`},{host:`en.wikipedia.org`,ip:`208.80.154.224`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`wikipedia.org`},{host:`www.whatsapp.com`,ip:`157.240.1.60`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`whatsapp.com`},{host:`www.baidu.com`,ip:`110.242.68.66`,proxy:`DIRECT`,rule:`GEOIP`,rulePayload:`CN`},{host:`www.taobao.com`,ip:`140.205.94.189`,proxy:`DIRECT`,rule:`GEOIP`,rulePayload:`CN`},{host:`www.bilibili.com`,ip:`120.92.78.97`,proxy:`DIRECT`,rule:`GEOIP`,rulePayload:`CN`},{host:`www.zhihu.com`,ip:`103.41.167.234`,proxy:`DIRECT`,rule:`GEOIP`,rulePayload:`CN`}],t=[`Google Chrome`,`Safari`,`Firefox`,`Visual Studio Code`,`Electron`,`node`,`curl`,`Telegram`,`Discord`,`Spotify`],n=[[`Proxy`,`Auto Select`,`Hong Kong`],[`Proxy`,`Auto Select`,`Singapore`],[`Proxy`,`Auto Select`,`Japan`],[`Streaming`,`Japan`],[`Streaming`,`Hong Kong`],[`AI Services`,`United States`],[`DIRECT`]],r=[];for(let i=0;i<60;i++){let a=e[i%e.length],o=t[Math.floor(Math.random()*t.length)],c=a.proxy===`DIRECT`?[`DIRECT`]:n[Math.floor(Math.random()*(n.length-1))],l=Math.random()>.85;r.push({id:`conn-${i+1}`,metadata:{...s(a.host,a.ip,o),network:l?`udp`:`tcp`,type:l?`QUIC`:`HTTP Connect`,sourcePort:String(5e4+i)},upload:Math.floor(Math.random()*1024*1024),download:Math.floor(Math.random()*1024*1024*10),downloadSpeed:Math.floor(Math.random()*1024*500),uploadSpeed:Math.floor(Math.random()*1024*100),start:new Date(Date.now()-Math.floor(Math.random()*6e5)).toISOString(),chains:c,rule:a.rule,rulePayload:a.rulePayload})}return r}const _=v();function v(){let e=[{type:r.Info,template:`[DNS] resolve {host} to {ip}`},{type:r.Info,template:`[TCP] {srcIP}:{srcPort} --> {host}:{destPort} match {rule}({payload}) using {proxy}`},{type:r.Info,template:`[UDP] {srcIP}:{srcPort} --> {host}:{destPort} match {rule}({payload}) using {proxy}`},{type:r.Debug,template:`[Proxy] {node} latency: {latency}ms`},{type:r.Warning,template:`[UDP] connection to {ip}:{destPort} timeout`},{type:r.Info,template:`[TUN] {srcIP} --> {host} using {proxy}`},{type:r.Debug,template:`[DNS] cache hit for {host}`},{type:r.Info,template:`[QUIC] {srcIP}:{srcPort} --> {host}:{destPort} match {rule}({payload}) using {proxy}`}],t=[`www.google.com`,`github.com`,`api.openai.com`,`www.youtube.com`,`twitter.com`,`www.netflix.com`,`discord.com`,`www.twitch.tv`,`open.spotify.com`,`www.reddit.com`,`medium.com`,`www.facebook.com`,`www.instagram.com`,`web.telegram.org`,`claude.ai`,`www.baidu.com`,`www.bilibili.com`],n=[`142.250.185.14`,`140.82.121.4`,`104.18.12.191`,`172.217.14.110`,`104.244.42.1`,`54.74.73.31`,`162.159.130.234`,`151.101.2.167`,`35.186.224.25`,`151.101.1.140`,`162.159.152.4`,`157.240.1.35`,`157.240.1.174`,`149.154.167.99`,`104.18.33.47`,`110.242.68.66`,`120.92.78.97`],i=[`Hong Kong`,`Singapore`,`Japan`,`United States`,`Taiwan`],a=[`Proxy[Auto Select(Hong Kong)]`,`Proxy[Auto Select(Singapore)]`,`Streaming[Japan]`,`AI Services[United States]`,`DIRECT`],o=[`DOMAIN-SUFFIX`,`DOMAIN-KEYWORD`,`GEOIP`,`IP-CIDR`,`MATCH`],s=[];for(let r=0;r<60;r++){let c=e[r%e.length],l=t[Math.floor(Math.random()*t.length)],u=n[Math.floor(Math.random()*n.length)],d=i[Math.floor(Math.random()*i.length)],f=a[Math.floor(Math.random()*a.length)],p=o[Math.floor(Math.random()*o.length)],m=c.template.replace(`{host}`,l).replace(`{ip}`,u).replace(`{srcIP}`,`192.168.1.100`).replace(`{srcPort}`,String(5e4+r)).replace(`{destPort}`,`443`).replace(`{node}`,d).replace(`{latency}`,String(50+Math.floor(Math.random()*150))).replace(`{proxy}`,f).replace(`{rule}`,p).replace(`{payload}`,l);s.push({type:c.type,payload:m})}return s}const y={up:125e6,down:85e7},b={inuse:45*1024*1024,oslimit:0};function x(){return{mockVersion:a,mockConfig:o,mockProxies:u,mockProxyProviders:d,mockRules:f,mockRuleProviders:m,mockConnections:h,mockLogs:_,mockTrafficStats:y,mockMemory:b}}function S(){return t().public.mockMode===!0}function C(e){let n=t().public.mockMode===!0?x():null;if(!n)return{};let r=e.startsWith(`/`)?e.slice(1):e;if(r===`version`)return n.mockVersion;if(r===`configs`)return n.mockConfig;if(r===`proxies`)return{proxies:n.mockProxies};if(r===`providers/proxies`)return{providers:n.mockProxyProviders};if(r===`rules`){let e={};return n.mockRules.forEach((t,n)=>{e[`rule-${n}`]=t}),{rules:e}}if(r===`providers/rules`)return{providers:n.mockRuleProviders};if(r===`connections`)return{connections:n.mockConnections,downloadTotal:85e7,uploadTotal:125e6};if(r===`group`)return{groups:{}};if(r.startsWith(`proxies/`)){let e=decodeURIComponent(r.replace(`proxies/`,``));return n.mockProxies[e]||{}}if(r.startsWith(`providers/proxies/`)){let e=decodeURIComponent(r.replace(`providers/proxies/`,``));return n.mockProxyProviders[e]||{}}return{}}function w(){let t=e().currentEndpoint;if(S()){let e=async e=>C(e);return{get:t=>({json:()=>e(t)}),post:t=>({json:()=>e(t)}),put:t=>({json:()=>e(t)}),patch:t=>({json:()=>e(t)}),delete:t=>({json:()=>e(t)})}}if(!t)return i.create({});let n=new Headers;return t.secret&&n.set(`Authorization`,`Bearer ${t.secret}`),i.create({prefixUrl:t.url,headers:n})}function T(){let e=new Headers;return i.create({prefixUrl:`https://api.github.com`,headers:e})}function E(e,t){return i.get(e.endsWith(`/`)?`${e}version`:`${e}/version`,{headers:t?{Authorization:`Bearer ${t}`}:{}}).then(({ok:e})=>e).catch(e=>(console.error(e),!1))}function D(){return w().delete(`connections`)}function O(e){return w().delete(`connections/${e}`)}function k(){return w().get(`providers/proxies`).json()}function A(){return w().get(`proxies`).json()}function j(e){return w().put(`providers/proxies/${encodeURIComponent(e)}`)}function M(e){return w().get(`providers/proxies/${encodeURIComponent(e)}/healthcheck`,{timeout:20*1e3}).json()}function N(e,t){return w().put(`proxies/${encodeURIComponent(e)}`,{body:JSON.stringify({name:t})})}function P(e,t,n,r){let i=w();return t===``?i.get(`proxies/${encodeURIComponent(e)}/delay`,{searchParams:{url:n,timeout:r}}).json():M(t).then(t=>({delay:t[e]??0}))}function F(e,t,n){return w().get(`group/${encodeURIComponent(e)}/delay`,{searchParams:{url:t,timeout:n}}).json()}function I(){let e=n(!1),t=n(!1),r=n(!1),i=n(!1),a=n(!1),o=n(!1),s=n(!1);return{reloadingConfigFile:e,updatingGEODatabases:t,flushingFakeIPData:r,flushingDNSCache:i,upgradingBackend:a,upgradingUI:o,restartingBackend:s,reloadConfigFileAPI:async()=>{let t=w();e.value=!0;try{await t.put(`configs`,{searchParams:{force:!0},json:{path:``,payload:``}})}catch{}e.value=!1},flushFakeIPDataAPI:async()=>{let e=w();r.value=!0;try{await e.post(`cache/fakeip/flush`)}catch{}r.value=!1},flushDNSCacheAPI:async()=>{let e=w();i.value=!0;try{await e.post(`cache/dns/flush`)}catch{}i.value=!1},updateGEODatabasesAPI:async()=>{let e=w();t.value=!0;try{await e.post(`configs/geo`)}catch{}t.value=!1},upgradeBackendAPI:async()=>{let e=w();a.value=!0;try{await e.post(`upgrade`)}catch{}a.value=!1},upgradeUIAPI:async()=>{let e=w();o.value=!0;try{await e.post(`upgrade/ui`)}catch{}o.value=!1},restartBackendAPI:async()=>{let e=w();s.value=!0;try{await e.post(`restart`)}catch{}s.value=!1}}}async function L(e){let{tag_name:t,body:n}=await T().get(`repos/MetaCubeX/metacubexd/releases/latest`).json();return{isUpdateAvailable:t!==e,changelog:n}}async function R(e){let t=T(),n=/(alpha|beta|meta)-?(\w+)/.exec(e);if(!n)return{isUpdateAvailable:!1};let r=n[2]||``,i=n[1]||``,a=async e=>{let{assets:n,body:i}=await t.get(`repos/MetaCubeX/mihomo/${e}`).json();return{isUpdateAvailable:!n.some(({name:e})=>e.includes(r)),changelog:i}};return i===`meta`?await a(`releases/latest`):i===`alpha`?await a(`releases/tags/Prerelease-Alpha`):{isUpdateAvailable:!1}}async function z(e,t=10){return(await T().get(`repos/MetaCubeX/metacubexd/releases`,{searchParams:{per_page:t}}).json()).map(t=>({version:t.tag_name,changelog:t.body,publishedAt:t.published_at,isCurrent:t.tag_name===e}))}async function B(e,t=10){let n=T(),r=`repos/MetaCubeX/mihomo`,i=/(alpha|beta|meta)-?(\w+)/.exec(e);if(!i)return[];let a=i[1]||``,o=i[2]||``,s=[];return a===`meta`?(s=await n.get(`${r}/releases`,{searchParams:{per_page:t}}).json(),s=s.filter(e=>!e.tag_name.includes(`Alpha`)&&!e.tag_name.includes(`Prerelease`))):a===`alpha`&&(s=await n.get(`${r}/releases`,{searchParams:{per_page:t*2}}).json(),s=s.filter(e=>e.tag_name.includes(`Alpha`)||e.tag_name.includes(`Prerelease`)).slice(0,t)),s.map(e=>({version:e.tag_name,changelog:e.body,publishedAt:e.published_at,isCurrent:e.assets?.some(({name:e})=>e.includes(o))??!1}))}export{w as _,B as a,k as c,P as d,M as f,S as g,I as h,O as i,L as l,j as m,E as n,z as o,N as p,D as r,A as s,R as t,F as u,x as v};
\ No newline at end of file
+import{C as e,F as t,yt as n}from"./B7rlnwkb.js";import{u as r}from"./_v7-ePgP.js";import{t as i}from"./CDMImveV.js";const a={meta:!0,version:`v1.18.0`},o={port:7890,"socks-port":7891,"redir-port":0,"tproxy-port":0,"mixed-port":7893,mode:`rule`,"log-level":`info`,"allow-lan":!1,ipv6:!1,tun:{enable:!1,device:`utun`,stack:`system`,"dns-hijack":null,"auto-route":!0,"auto-detect-interface":!0,"file-descriptor":0}};function s(e,t,n=``){return{network:`tcp`,type:`HTTP Connect`,destinationIP:t,destinationPort:`443`,dnsMode:`normal`,host:e,inboundIP:`127.0.0.1`,inboundName:`mixed-in`,inboundPort:`7893`,inboundUser:``,process:n,processPath:n?`/Applications/${n}.app`:``,remoteDestination:``,sniffHost:e,sourceIP:`192.168.1.100`,sourcePort:`52341`,specialProxy:``,specialRules:``,uid:501}}function c(e,t,n,r,i){return{name:e,type:t,all:r||[],history:n?[{delay:n,time:new Date().toISOString()}]:[],udp:!0,xudp:t===`Hysteria2`||t===`VLESS`,tfo:!1,extra:{},hidden:!1,now:i||``}}function l(e,t,n){return{name:e,type:t,alive:!0,tfo:!1,udp:!0,xudp:!1,now:``,id:e,extra:{},history:n?[{delay:n,time:new Date().toISOString()}]:[]}}const u={DIRECT:c(`DIRECT`,`Direct`),REJECT:c(`REJECT`,`Reject`),"Hong Kong":c(`Hong Kong`,`Shadowsocks`,85),Japan:c(`Japan`,`Vmess`,120),Singapore:c(`Singapore`,`Trojan`,65),"United States":c(`United States`,`Hysteria2`,180),Taiwan:c(`Taiwan`,`VLESS`,95),"Auto Select":c(`Auto Select`,`URLTest`,void 0,[`Hong Kong`,`Japan`,`Singapore`,`United States`,`Taiwan`],`Singapore`),Proxy:c(`Proxy`,`Selector`,void 0,[`Auto Select`,`Hong Kong`,`Japan`,`Singapore`,`United States`,`Taiwan`,`DIRECT`],`Auto Select`),Streaming:c(`Streaming`,`Selector`,void 0,[`Proxy`,`Hong Kong`,`Japan`,`Singapore`,`Taiwan`,`DIRECT`],`Japan`),"AI Services":c(`AI Services`,`Selector`,void 0,[`Proxy`,`United States`,`Japan`,`Singapore`],`United States`)},d={"Provider A":{name:`Provider A`,type:`Proxy`,vehicleType:`HTTP`,testUrl:`https://www.gstatic.com/generate_204`,proxies:[l(`Hong Kong`,`Shadowsocks`,85),l(`Japan`,`Vmess`,120),l(`Singapore`,`Trojan`,65)],updatedAt:new Date().toISOString(),subscriptionInfo:{Upload:1024*1024*100,Download:1024*1024*500,Total:1024*1024*1024*100,Expire:Math.floor(Date.now()/1e3)+720*60*60}},"Provider B":{name:`Provider B`,type:`Proxy`,vehicleType:`File`,testUrl:`https://www.gstatic.com/generate_204`,proxies:[l(`United States`,`Hysteria2`,180),l(`Taiwan`,`VLESS`,95)],updatedAt:new Date(Date.now()-1440*60*1e3).toISOString(),subscriptionInfo:{Upload:1024*1024*50,Download:1024*1024*200,Total:1024*1024*1024*50,Expire:Math.floor(Date.now()/1e3)+1440*60*60}}},f=p();function p(){return[{type:`DOMAIN-SUFFIX`,payload:`google.com`,proxy:`Proxy`,size:156},{type:`DOMAIN-SUFFIX`,payload:`googleapis.com`,proxy:`Proxy`,size:89},{type:`DOMAIN-SUFFIX`,payload:`gstatic.com`,proxy:`Proxy`,size:234},{type:`DOMAIN-SUFFIX`,payload:`github.com`,proxy:`Proxy`,size:178},{type:`DOMAIN-SUFFIX`,payload:`githubusercontent.com`,proxy:`Proxy`,size:445},{type:`DOMAIN-SUFFIX`,payload:`openai.com`,proxy:`AI Services`,size:67},{type:`DOMAIN-SUFFIX`,payload:`anthropic.com`,proxy:`AI Services`,size:34},{type:`DOMAIN-SUFFIX`,payload:`claude.ai`,proxy:`AI Services`,size:23},{type:`DOMAIN-SUFFIX`,payload:`netflix.com`,proxy:`Streaming`,size:512},{type:`DOMAIN-SUFFIX`,payload:`nflxvideo.net`,proxy:`Streaming`,size:1024},{type:`DOMAIN-SUFFIX`,payload:`youtube.com`,proxy:`Streaming`,size:789},{type:`DOMAIN-SUFFIX`,payload:`ytimg.com`,proxy:`Streaming`,size:456},{type:`DOMAIN-SUFFIX`,payload:`googlevideo.com`,proxy:`Streaming`,size:2048},{type:`DOMAIN-SUFFIX`,payload:`twitter.com`,proxy:`Proxy`,size:345},{type:`DOMAIN-SUFFIX`,payload:`x.com`,proxy:`Proxy`,size:123},{type:`DOMAIN-SUFFIX`,payload:`twimg.com`,proxy:`Proxy`,size:567},{type:`DOMAIN-SUFFIX`,payload:`facebook.com`,proxy:`Proxy`,size:890},{type:`DOMAIN-SUFFIX`,payload:`fbcdn.net`,proxy:`Proxy`,size:1234},{type:`DOMAIN-SUFFIX`,payload:`instagram.com`,proxy:`Proxy`,size:678},{type:`DOMAIN-SUFFIX`,payload:`cdninstagram.com`,proxy:`Proxy`,size:901},{type:`DOMAIN-SUFFIX`,payload:`telegram.org`,proxy:`Proxy`,size:234},{type:`DOMAIN-SUFFIX`,payload:`t.me`,proxy:`Proxy`,size:56},{type:`DOMAIN-SUFFIX`,payload:`whatsapp.com`,proxy:`Proxy`,size:345},{type:`DOMAIN-SUFFIX`,payload:`discord.com`,proxy:`Proxy`,size:456},{type:`DOMAIN-SUFFIX`,payload:`discordapp.com`,proxy:`Proxy`,size:567},{type:`DOMAIN-SUFFIX`,payload:`spotify.com`,proxy:`Streaming`,size:678},{type:`DOMAIN-SUFFIX`,payload:`scdn.co`,proxy:`Streaming`,size:789},{type:`DOMAIN-SUFFIX`,payload:`twitch.tv`,proxy:`Streaming`,size:890},{type:`DOMAIN-SUFFIX`,payload:`ttvnw.net`,proxy:`Streaming`,size:1567},{type:`DOMAIN-SUFFIX`,payload:`reddit.com`,proxy:`Proxy`,size:234},{type:`DOMAIN-SUFFIX`,payload:`redd.it`,proxy:`Proxy`,size:123},{type:`DOMAIN-SUFFIX`,payload:`medium.com`,proxy:`Proxy`,size:345},{type:`DOMAIN-SUFFIX`,payload:`wikipedia.org`,proxy:`Proxy`,size:456},{type:`DOMAIN-SUFFIX`,payload:`wikimedia.org`,proxy:`Proxy`,size:567},{type:`DOMAIN-KEYWORD`,payload:`google`,proxy:`Proxy`,size:12},{type:`DOMAIN-KEYWORD`,payload:`facebook`,proxy:`Proxy`,size:8},{type:`DOMAIN-KEYWORD`,payload:`youtube`,proxy:`Streaming`,size:6},{type:`DOMAIN-KEYWORD`,payload:`twitter`,proxy:`Proxy`,size:5},{type:`DOMAIN-KEYWORD`,payload:`netflix`,proxy:`Streaming`,size:4},{type:`GEOIP`,payload:`CN`,proxy:`DIRECT`,size:8945},{type:`GEOIP`,payload:`PRIVATE`,proxy:`DIRECT`,size:156},{type:`IP-CIDR`,payload:`192.168.0.0/16`,proxy:`DIRECT`,size:1},{type:`IP-CIDR`,payload:`10.0.0.0/8`,proxy:`DIRECT`,size:1},{type:`IP-CIDR`,payload:`172.16.0.0/12`,proxy:`DIRECT`,size:1},{type:`IP-CIDR`,payload:`127.0.0.0/8`,proxy:`DIRECT`,size:1},{type:`IP-CIDR`,payload:`100.64.0.0/10`,proxy:`DIRECT`,size:1},{type:`IP-CIDR6`,payload:`::1/128`,proxy:`DIRECT`,size:1},{type:`IP-CIDR6`,payload:`fc00::/7`,proxy:`DIRECT`,size:1},{type:`IP-CIDR6`,payload:`fe80::/10`,proxy:`DIRECT`,size:1},{type:`PROCESS-NAME`,payload:`Telegram`,proxy:`Proxy`,size:1},{type:`PROCESS-NAME`,payload:`Discord`,proxy:`Proxy`,size:1},{type:`PROCESS-NAME`,payload:`Spotify`,proxy:`Streaming`,size:1},{type:`RULE-SET`,payload:`reject`,proxy:`REJECT`,size:1234},{type:`RULE-SET`,payload:`direct`,proxy:`DIRECT`,size:5678},{type:`RULE-SET`,payload:`proxy`,proxy:`Proxy`,size:2345},{type:`MATCH`,payload:``,proxy:`Proxy`,size:1}]}const m={reject:{name:`reject`,type:`Rule`,behavior:`domain`,ruleCount:1234,updatedAt:new Date().toISOString(),vehicleType:`HTTP`,format:`yaml`},direct:{name:`direct`,type:`Rule`,behavior:`domain`,ruleCount:5678,updatedAt:new Date(Date.now()-720*60*1e3).toISOString(),vehicleType:`HTTP`,format:`yaml`},proxy:{name:`proxy`,type:`Rule`,behavior:`classical`,ruleCount:2345,updatedAt:new Date(Date.now()-360*60*1e3).toISOString(),vehicleType:`HTTP`,format:`yaml`}},h=g();function g(){let e=[{host:`www.google.com`,ip:`142.250.185.14`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`google.com`},{host:`github.com`,ip:`140.82.121.4`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`github.com`},{host:`api.github.com`,ip:`140.82.121.6`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`github.com`},{host:`raw.githubusercontent.com`,ip:`185.199.108.133`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`githubusercontent.com`},{host:`www.youtube.com`,ip:`172.217.14.110`,proxy:`Streaming`,rule:`DOMAIN-SUFFIX`,rulePayload:`youtube.com`},{host:`i.ytimg.com`,ip:`172.217.14.118`,proxy:`Streaming`,rule:`DOMAIN-SUFFIX`,rulePayload:`ytimg.com`},{host:`api.openai.com`,ip:`104.18.12.191`,proxy:`AI Services`,rule:`DOMAIN-SUFFIX`,rulePayload:`openai.com`},{host:`chat.openai.com`,ip:`104.18.13.191`,proxy:`AI Services`,rule:`DOMAIN-SUFFIX`,rulePayload:`openai.com`},{host:`api.anthropic.com`,ip:`104.18.32.47`,proxy:`AI Services`,rule:`DOMAIN-SUFFIX`,rulePayload:`anthropic.com`},{host:`claude.ai`,ip:`104.18.33.47`,proxy:`AI Services`,rule:`DOMAIN-SUFFIX`,rulePayload:`claude.ai`},{host:`www.netflix.com`,ip:`54.74.73.31`,proxy:`Streaming`,rule:`DOMAIN-SUFFIX`,rulePayload:`netflix.com`},{host:`twitter.com`,ip:`104.244.42.1`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`twitter.com`},{host:`x.com`,ip:`104.244.42.65`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`x.com`},{host:`www.facebook.com`,ip:`157.240.1.35`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`facebook.com`},{host:`www.instagram.com`,ip:`157.240.1.174`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`instagram.com`},{host:`web.telegram.org`,ip:`149.154.167.99`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`telegram.org`},{host:`discord.com`,ip:`162.159.130.234`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`discord.com`},{host:`cdn.discordapp.com`,ip:`162.159.133.234`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`discordapp.com`},{host:`open.spotify.com`,ip:`35.186.224.25`,proxy:`Streaming`,rule:`DOMAIN-SUFFIX`,rulePayload:`spotify.com`},{host:`www.twitch.tv`,ip:`151.101.2.167`,proxy:`Streaming`,rule:`DOMAIN-SUFFIX`,rulePayload:`twitch.tv`},{host:`www.reddit.com`,ip:`151.101.1.140`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`reddit.com`},{host:`medium.com`,ip:`162.159.152.4`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`medium.com`},{host:`en.wikipedia.org`,ip:`208.80.154.224`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`wikipedia.org`},{host:`www.whatsapp.com`,ip:`157.240.1.60`,proxy:`Proxy`,rule:`DOMAIN-SUFFIX`,rulePayload:`whatsapp.com`},{host:`www.baidu.com`,ip:`110.242.68.66`,proxy:`DIRECT`,rule:`GEOIP`,rulePayload:`CN`},{host:`www.taobao.com`,ip:`140.205.94.189`,proxy:`DIRECT`,rule:`GEOIP`,rulePayload:`CN`},{host:`www.bilibili.com`,ip:`120.92.78.97`,proxy:`DIRECT`,rule:`GEOIP`,rulePayload:`CN`},{host:`www.zhihu.com`,ip:`103.41.167.234`,proxy:`DIRECT`,rule:`GEOIP`,rulePayload:`CN`}],t=[`Google Chrome`,`Safari`,`Firefox`,`Visual Studio Code`,`Electron`,`node`,`curl`,`Telegram`,`Discord`,`Spotify`],n=[[`Proxy`,`Auto Select`,`Hong Kong`],[`Proxy`,`Auto Select`,`Singapore`],[`Proxy`,`Auto Select`,`Japan`],[`Streaming`,`Japan`],[`Streaming`,`Hong Kong`],[`AI Services`,`United States`],[`DIRECT`]],r=[];for(let i=0;i<60;i++){let a=e[i%e.length],o=t[Math.floor(Math.random()*t.length)],c=a.proxy===`DIRECT`?[`DIRECT`]:n[Math.floor(Math.random()*(n.length-1))],l=Math.random()>.85;r.push({id:`conn-${i+1}`,metadata:{...s(a.host,a.ip,o),network:l?`udp`:`tcp`,type:l?`QUIC`:`HTTP Connect`,sourcePort:String(5e4+i)},upload:Math.floor(Math.random()*1024*1024),download:Math.floor(Math.random()*1024*1024*10),downloadSpeed:Math.floor(Math.random()*1024*500),uploadSpeed:Math.floor(Math.random()*1024*100),start:new Date(Date.now()-Math.floor(Math.random()*6e5)).toISOString(),chains:c,rule:a.rule,rulePayload:a.rulePayload})}return r}const _=v();function v(){let e=[{type:r.Info,template:`[DNS] resolve {host} to {ip}`},{type:r.Info,template:`[TCP] {srcIP}:{srcPort} --> {host}:{destPort} match {rule}({payload}) using {proxy}`},{type:r.Info,template:`[UDP] {srcIP}:{srcPort} --> {host}:{destPort} match {rule}({payload}) using {proxy}`},{type:r.Debug,template:`[Proxy] {node} latency: {latency}ms`},{type:r.Warning,template:`[UDP] connection to {ip}:{destPort} timeout`},{type:r.Info,template:`[TUN] {srcIP} --> {host} using {proxy}`},{type:r.Debug,template:`[DNS] cache hit for {host}`},{type:r.Info,template:`[QUIC] {srcIP}:{srcPort} --> {host}:{destPort} match {rule}({payload}) using {proxy}`}],t=[`www.google.com`,`github.com`,`api.openai.com`,`www.youtube.com`,`twitter.com`,`www.netflix.com`,`discord.com`,`www.twitch.tv`,`open.spotify.com`,`www.reddit.com`,`medium.com`,`www.facebook.com`,`www.instagram.com`,`web.telegram.org`,`claude.ai`,`www.baidu.com`,`www.bilibili.com`],n=[`142.250.185.14`,`140.82.121.4`,`104.18.12.191`,`172.217.14.110`,`104.244.42.1`,`54.74.73.31`,`162.159.130.234`,`151.101.2.167`,`35.186.224.25`,`151.101.1.140`,`162.159.152.4`,`157.240.1.35`,`157.240.1.174`,`149.154.167.99`,`104.18.33.47`,`110.242.68.66`,`120.92.78.97`],i=[`Hong Kong`,`Singapore`,`Japan`,`United States`,`Taiwan`],a=[`Proxy[Auto Select(Hong Kong)]`,`Proxy[Auto Select(Singapore)]`,`Streaming[Japan]`,`AI Services[United States]`,`DIRECT`],o=[`DOMAIN-SUFFIX`,`DOMAIN-KEYWORD`,`GEOIP`,`IP-CIDR`,`MATCH`],s=[];for(let r=0;r<60;r++){let c=e[r%e.length],l=t[Math.floor(Math.random()*t.length)],u=n[Math.floor(Math.random()*n.length)],d=i[Math.floor(Math.random()*i.length)],f=a[Math.floor(Math.random()*a.length)],p=o[Math.floor(Math.random()*o.length)],m=c.template.replace(`{host}`,l).replace(`{ip}`,u).replace(`{srcIP}`,`192.168.1.100`).replace(`{srcPort}`,String(5e4+r)).replace(`{destPort}`,`443`).replace(`{node}`,d).replace(`{latency}`,String(50+Math.floor(Math.random()*150))).replace(`{proxy}`,f).replace(`{rule}`,p).replace(`{payload}`,l);s.push({type:c.type,payload:m})}return s}const y={up:125e6,down:85e7},b={inuse:45*1024*1024,oslimit:0};function x(){return{mockVersion:a,mockConfig:o,mockProxies:u,mockProxyProviders:d,mockRules:f,mockRuleProviders:m,mockConnections:h,mockLogs:_,mockTrafficStats:y,mockMemory:b}}function S(){return t().public.mockMode===!0}function C(e){let n=t().public.mockMode===!0?x():null;if(!n)return{};let r=e.startsWith(`/`)?e.slice(1):e;if(r===`version`)return n.mockVersion;if(r===`configs`)return n.mockConfig;if(r===`proxies`)return{proxies:n.mockProxies};if(r===`providers/proxies`)return{providers:n.mockProxyProviders};if(r===`rules`){let e={};return n.mockRules.forEach((t,n)=>{e[`rule-${n}`]=t}),{rules:e}}if(r===`providers/rules`)return{providers:n.mockRuleProviders};if(r===`connections`)return{connections:n.mockConnections,downloadTotal:85e7,uploadTotal:125e6};if(r===`group`)return{groups:{}};if(r.startsWith(`proxies/`)){let e=decodeURIComponent(r.replace(`proxies/`,``));return n.mockProxies[e]||{}}if(r.startsWith(`providers/proxies/`)){let e=decodeURIComponent(r.replace(`providers/proxies/`,``));return n.mockProxyProviders[e]||{}}return{}}function w(){let t=e().currentEndpoint;if(S()){let e=async e=>C(e);return{get:t=>({json:()=>e(t)}),post:t=>({json:()=>e(t)}),put:t=>({json:()=>e(t)}),patch:t=>({json:()=>e(t)}),delete:t=>({json:()=>e(t)})}}if(!t)return i.create({});let n=new Headers;return t.secret&&n.set(`Authorization`,`Bearer ${t.secret}`),i.create({prefixUrl:t.url,headers:n})}function T(){let e=new Headers;return i.create({prefixUrl:`https://api.github.com`,headers:e})}function E(e,t){return i.get(e.endsWith(`/`)?`${e}version`:`${e}/version`,{headers:t?{Authorization:`Bearer ${t}`}:{}}).then(({ok:e})=>e).catch(e=>(console.error(e),!1))}function D(){return w().delete(`connections`)}function O(e){return w().delete(`connections/${e}`)}function k(){return w().get(`providers/proxies`).json()}function A(){return w().get(`proxies`).json()}function j(e){return w().put(`providers/proxies/${encodeURIComponent(e)}`)}function M(e){return w().get(`providers/proxies/${encodeURIComponent(e)}/healthcheck`,{timeout:20*1e3}).json()}function N(e,t){return w().put(`proxies/${encodeURIComponent(e)}`,{body:JSON.stringify({name:t})})}function P(e,t,n,r){let i=w();return t===``?i.get(`proxies/${encodeURIComponent(e)}/delay`,{searchParams:{url:n,timeout:r}}).json():M(t).then(t=>({delay:t[e]??0}))}function F(e,t,n){return w().get(`group/${encodeURIComponent(e)}/delay`,{searchParams:{url:t,timeout:n}}).json()}function I(){let e=n(!1),t=n(!1),r=n(!1),i=n(!1),a=n(!1),o=n(!1),s=n(!1);return{reloadingConfigFile:e,updatingGEODatabases:t,flushingFakeIPData:r,flushingDNSCache:i,upgradingBackend:a,upgradingUI:o,restartingBackend:s,reloadConfigFileAPI:async()=>{let t=w();e.value=!0;try{await t.put(`configs`,{searchParams:{force:!0},json:{path:``,payload:``}})}catch{}e.value=!1},flushFakeIPDataAPI:async()=>{let e=w();r.value=!0;try{await e.post(`cache/fakeip/flush`)}catch{}r.value=!1},flushDNSCacheAPI:async()=>{let e=w();i.value=!0;try{await e.post(`cache/dns/flush`)}catch{}i.value=!1},updateGEODatabasesAPI:async()=>{let e=w();t.value=!0;try{await e.post(`configs/geo`)}catch{}t.value=!1},upgradeBackendAPI:async()=>{let e=w();a.value=!0;try{await e.post(`upgrade`)}catch{}a.value=!1},upgradeUIAPI:async()=>{let e=w();o.value=!0;try{await e.post(`upgrade/ui`)}catch{}o.value=!1},restartBackendAPI:async()=>{let e=w();s.value=!0;try{await e.post(`restart`)}catch{}s.value=!1}}}async function L(e){let{tag_name:t,body:n}=await T().get(`repos/MetaCubeX/metacubexd/releases/latest`).json();return{isUpdateAvailable:t!==e,changelog:n}}async function R(e){let t=T(),n=/(alpha|beta|meta)-?(\w+)/.exec(e);if(!n)return{isUpdateAvailable:!1};let r=n[2]||``,i=n[1]||``,a=async e=>{let{assets:n,body:i}=await t.get(`repos/MetaCubeX/mihomo/${e}`).json();return{isUpdateAvailable:!n.some(({name:e})=>e.includes(r)),changelog:i}};return i===`meta`?await a(`releases/latest`):i===`alpha`?await a(`releases/tags/Prerelease-Alpha`):{isUpdateAvailable:!1}}async function z(e,t=10){return(await T().get(`repos/MetaCubeX/metacubexd/releases`,{searchParams:{per_page:t}}).json()).map(t=>({version:t.tag_name,changelog:t.body,publishedAt:t.published_at,isCurrent:t.tag_name===e}))}async function B(e,t=10){let n=T(),r=`repos/MetaCubeX/mihomo`,i=/(alpha|beta|meta)-?(\w+)/.exec(e);if(!i)return[];let a=i[1]||``,o=i[2]||``,s=[];return a===`meta`?(s=await n.get(`${r}/releases`,{searchParams:{per_page:t}}).json(),s=s.filter(e=>!e.tag_name.includes(`Alpha`)&&!e.tag_name.includes(`Prerelease`))):a===`alpha`&&(s=await n.get(`${r}/releases`,{searchParams:{per_page:t*2}}).json(),s=s.filter(e=>e.tag_name.includes(`Alpha`)||e.tag_name.includes(`Prerelease`)).slice(0,t)),s.map(e=>({version:e.tag_name,changelog:e.body,publishedAt:e.published_at,isCurrent:e.assets?.some(({name:e})=>e.includes(o))??!1}))}export{w as _,B as a,k as c,P as d,M as f,S as g,I as h,O as i,L as l,j as m,E as n,z as o,N as p,D as r,A as s,R as t,F as u,x as v};
\ No newline at end of file
diff --git a/dashboard/public/_nuxt/D8VGDxpn.js b/dashboard/public/_nuxt/BaY9ddW5.js
similarity index 99%
rename from dashboard/public/_nuxt/D8VGDxpn.js
rename to dashboard/public/_nuxt/BaY9ddW5.js
index 20c14c8..4bae7e9 100644
--- a/dashboard/public/_nuxt/D8VGDxpn.js
+++ b/dashboard/public/_nuxt/BaY9ddW5.js
@@ -1 +1 @@
-import{At as e,Mt as t,yt as n}from"./CxatB1L6.js";import{f as r}from"./_v7-ePgP.js";var i=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(e,(function(){var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`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+)?$/,h=/\[([^\]]+)]|Y{1,4}|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,g={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(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date()1)return e(o[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},w=function(e,t){if(S(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new E(n)},T=v;T.l=C,T.i=S,T.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var E=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var _=g.prototype;return _.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(T.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(m);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},_.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},_.$utils=function(){return T},_.isValid=function(){return this.$d.toString()!==p},_.isSame=function(e,t){var n=w(e);return this.startOf(t)<=n&&n<=this.endOf(t)},_.isAfter=function(e,t){return w(e){(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_duration=r()})(e,(function(){var e,t,n=1e3,r=6e4,i=36e5,a=864e5,o=/\[([^\]]+)]|Y{1,4}|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,s=31536e6,c=2628e6,l=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,u={years:s,months:c,days:a,hours:i,minutes:r,seconds:n,milliseconds:1,weeks:6048e5},d=function(e){return e instanceof v},f=function(e,t,n){return new v(e,n,t.$l)},p=function(e){return t.p(e)+`s`},m=function(e){return e<0},h=function(e){return m(e)?Math.ceil(e):Math.floor(e)},g=function(e){return Math.abs(e)},_=function(e,t){return e?m(e)?{negative:!0,format:``+g(e)+t}:{negative:!1,format:``+e+t}:{negative:!1,format:``}},v=function(){function m(e,t,n){var r=this;if(this.$d={},this.$l=n,e===void 0&&(this.$ms=0,this.parseFromMilliseconds()),t)return f(e*u[p(t)],this);if(typeof e==`number`)return this.$ms=e,this.parseFromMilliseconds(),this;if(typeof e==`object`)return Object.keys(e).forEach((function(t){r.$d[p(t)]=e[t]})),this.calMilliseconds(),this;if(typeof e==`string`){var i=e.match(l);if(i){var a=i.slice(2).map((function(e){return e==null?0:Number(e)}));return this.$d.years=a[0],this.$d.months=a[1],this.$d.weeks=a[2],this.$d.days=a[3],this.$d.hours=a[4],this.$d.minutes=a[5],this.$d.seconds=a[6],this.calMilliseconds(),this}}return this}var g=m.prototype;return g.calMilliseconds=function(){var e=this;this.$ms=Object.keys(this.$d).reduce((function(t,n){return t+(e.$d[n]||0)*u[n]}),0)},g.parseFromMilliseconds=function(){var e=this.$ms;this.$d.years=h(e/s),e%=s,this.$d.months=h(e/c),e%=c,this.$d.days=h(e/a),e%=a,this.$d.hours=h(e/i),e%=i,this.$d.minutes=h(e/r),e%=r,this.$d.seconds=h(e/n),e%=n,this.$d.milliseconds=e},g.toISOString=function(){var e=_(this.$d.years,`Y`),t=_(this.$d.months,`M`),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var r=_(n,`D`),i=_(this.$d.hours,`H`),a=_(this.$d.minutes,`M`),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var s=_(o,`S`),c=e.negative||t.negative||r.negative||i.negative||a.negative||s.negative,l=i.format||a.format||s.format?`T`:``,u=(c?`-`:``)+`P`+e.format+t.format+r.format+l+i.format+a.format+s.format;return u===`P`||u===`-P`?`P0D`:u},g.toJSON=function(){return this.toISOString()},g.format=function(e){var n=e||`YYYY-MM-DDTHH:mm:ss`,r={Y:this.$d.years,YY:t.s(this.$d.years,2,`0`),YYYY:t.s(this.$d.years,4,`0`),M:this.$d.months,MM:t.s(this.$d.months,2,`0`),D:this.$d.days,DD:t.s(this.$d.days,2,`0`),H:this.$d.hours,HH:t.s(this.$d.hours,2,`0`),m:this.$d.minutes,mm:t.s(this.$d.minutes,2,`0`),s:this.$d.seconds,ss:t.s(this.$d.seconds,2,`0`),SSS:t.s(this.$d.milliseconds,3,`0`)};return n.replace(o,(function(e,t){return t||String(r[e])}))},g.as=function(e){return this.$ms/u[p(e)]},g.get=function(e){var t=this.$ms,n=p(e);return n===`milliseconds`?t%=1e3:t=n===`weeks`?h(t/u[n]):this.$d[n],t||0},g.add=function(e,t,n){var r;return r=t?e*u[p(t)]:d(e)?e.$ms:f(e,this).$ms,f(this.$ms+r*(n?-1:1),this)},g.subtract=function(e,t){return this.add(e,t,!0)},g.locale=function(e){var t=this.clone();return t.$l=e,t},g.clone=function(){return f(this.$ms,this)},g.humanize=function(t){return e().add(this.$ms,`ms`).locale(this.$l).fromNow(!t)},g.valueOf=function(){return this.asMilliseconds()},g.milliseconds=function(){return this.get(`milliseconds`)},g.asMilliseconds=function(){return this.as(`milliseconds`)},g.seconds=function(){return this.get(`seconds`)},g.asSeconds=function(){return this.as(`seconds`)},g.minutes=function(){return this.get(`minutes`)},g.asMinutes=function(){return this.as(`minutes`)},g.hours=function(){return this.get(`hours`)},g.asHours=function(){return this.as(`hours`)},g.days=function(){return this.get(`days`)},g.asDays=function(){return this.as(`days`)},g.weeks=function(){return this.get(`weeks`)},g.asWeeks=function(){return this.as(`weeks`)},g.months=function(){return this.get(`months`)},g.asMonths=function(){return this.as(`months`)},g.years=function(){return this.get(`years`)},g.asYears=function(){return this.as(`years`)},m}(),y=function(e,t,n){return e.add(t.years()*n,`y`).add(t.months()*n,`M`).add(t.days()*n,`d`).add(t.hours()*n,`h`).add(t.minutes()*n,`m`).add(t.seconds()*n,`s`).add(t.milliseconds()*n,`ms`)};return function(n,r,i){e=i,t=i().$utils(),i.duration=function(e,t){return f(e,{$l:i.locale()},t)},i.isDuration=d;var a=r.prototype.add,o=r.prototype.subtract;r.prototype.add=function(e,t){return d(e)?y(this,e,1):a.bind(this)(e,t)},r.prototype.subtract=function(e,t){return d(e)?y(this,e,-1):o.bind(this)(e,t)}}}))})),o=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_relativeTime=r()})(e,(function(){return function(e,t,n){e||={};var r=t.prototype,i={future:`in %s`,past:`%s ago`,s:`a few seconds`,m:`a minute`,mm:`%d minutes`,h:`an hour`,hh:`%d hours`,d:`a day`,dd:`%d days`,M:`a month`,MM:`%d months`,y:`a year`,yy:`%d years`};function a(e,t,n,i){return r.fromToBase(e,t,n,i)}n.en.relativeTime=i,r.fromToBase=function(t,r,a,o,s){for(var c,l,u,d=a.$locale().relativeTime||i,f=e.thresholds||[{l:`s`,r:44,d:`second`},{l:`m`,r:89},{l:`mm`,r:44,d:`minute`},{l:`h`,r:89},{l:`hh`,r:21,d:`hour`},{l:`d`,r:35},{l:`dd`,r:25,d:`day`},{l:`M`,r:45},{l:`MM`,r:10,d:`month`},{l:`y`,r:17},{l:`yy`,d:`year`}],p=f.length,m=0;m0,g<=h.r||!h.r){g<=1&&m>0&&(h=f[m-1]);var _=d[h.l];s&&(g=s(``+g)),l=typeof _==`string`?_.replace(`%d`,g):_(g,r,h.l,u);break}}if(r)return l;var v=u?d.future:d.past;return typeof v==`function`?v(l):v.replace(`%s`,l)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var o=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(o(this),e)},r.fromNow=function(e){return this.from(o(this),e)}}}))})),s=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r(i()):typeof define==`function`&&define.amd?define([`dayjs`],r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_zh_cn=r(n.dayjs)})(e,(function(e){function t(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}var n=t(e),r={name:`zh-cn`,weekdays:`星期日_星期一_星期二_星期三_星期四_星期五_星期六`.split(`_`),weekdaysShort:`周日_周一_周二_周三_周四_周五_周六`.split(`_`),weekdaysMin:`日_一_二_三_四_五_六`.split(`_`),months:`一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月`.split(`_`),monthsShort:`1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月`.split(`_`),ordinal:function(e,t){return t===`W`?e+`周`:e+`日`},weekStart:1,yearStart:4,formats:{LT:`HH:mm`,LTS:`HH:mm:ss`,L:`YYYY/MM/DD`,LL:`YYYY年M月D日`,LLL:`YYYY年M月D日Ah点mm分`,LLLL:`YYYY年M月D日ddddAh点mm分`,l:`YYYY/M/D`,ll:`YYYY年M月D日`,lll:`YYYY年M月D日 HH:mm`,llll:`YYYY年M月D日dddd HH:mm`},relativeTime:{future:`%s内`,past:`%s前`,s:`几秒`,m:`1 分钟`,mm:`%d 分钟`,h:`1 小时`,hh:`%d 小时`,d:`1 天`,dd:`%d 天`,M:`1 个月`,MM:`%d 个月`,y:`1 年`,yy:`%d 年`},meridiem:function(e,t){var n=100*e+t;return n<600?`凌晨`:n<900?`早上`:n<1100?`上午`:n<1300?`中午`:n<1800?`下午`:`晚上`}};return n.default.locale(r,null,!0),r}))})),c=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r(i()):typeof define==`function`&&define.amd?define([`dayjs`],r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_ru=r(n.dayjs)})(e,(function(e){function t(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}var n=t(e),r=`января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря`.split(`_`),i=`январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь`.split(`_`),a=`янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.`.split(`_`),o=`янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.`.split(`_`),s=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function c(e,t,n){var r,i;return n===`m`?t?`минута`:`минуту`:e+` `+(r=+e,i={mm:t?`минута_минуты_минут`:`минуту_минуты_минут`,hh:`час_часа_часов`,dd:`день_дня_дней`,MM:`месяц_месяца_месяцев`,yy:`год_года_лет`}[n].split(`_`),r%10==1&&r%100!=11?i[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?i[1]:i[2])}var l=function(e,t){return s.test(t)?r[e.month()]:i[e.month()]};l.s=i,l.f=r;var u=function(e,t){return s.test(t)?a[e.month()]:o[e.month()]};u.s=o,u.f=a;var d={name:`ru`,weekdays:`воскресенье_понедельник_вторник_среда_четверг_пятница_суббота`.split(`_`),weekdaysShort:`вск_пнд_втр_срд_чтв_птн_сбт`.split(`_`),weekdaysMin:`вс_пн_вт_ср_чт_пт_сб`.split(`_`),months:l,monthsShort:u,weekStart:1,yearStart:4,formats:{LT:`H:mm`,LTS:`H:mm:ss`,L:`DD.MM.YYYY`,LL:`D MMMM YYYY г.`,LLL:`D MMMM YYYY г., H:mm`,LLLL:`dddd, D MMMM YYYY г., H:mm`},relativeTime:{future:`через %s`,past:`%s назад`,s:`несколько секунд`,m:c,mm:c,h:`час`,hh:c,d:`день`,dd:c,M:`месяц`,MM:c,y:`год`,yy:c},ordinal:function(e){return e},meridiem:function(e){return e<4?`ночи`:e<12?`утра`:e<17?`дня`:`вечера`}};return n.default.locale(d,null,!0),d}))})),l=t(i(),1),u=t(a(),1),d=t(o(),1);s(),c(),l.default.extend(d.default),l.default.extend(u.default);function f(e){return/^https?:\/\//.test(e)?e:`${window.location.protocol}//${e}`}function p(e){return/:{1,2}/.test(e)?`[${e}]`:e}function m(e,t=`en`){let n=t===`zh`?`zh-cn`:t===`ru`?`ru`:`en`;return(0,l.default)(e).locale(n).fromNow()}function h(e,t){let n=t-e,r=l.default.duration(n),i=Math.floor(r.asDays()),a=r.hours(),o=r.minutes(),s=r.seconds(),c=[];return i>0&&c.push(`${i}d`),a>0&&c.push(`${a}h`),o>0&&c.push(`${o}m`),s>0&&i===0&&c.push(`${s}s`),c.length>0?c.join(` `):`0s`}function g(e,t,n=`en`){let r=n===`zh`?`zh-cn`:n===`ru`?`ru`:`en`,i=(0,l.default)(e),a=(0,l.default)(t);return i.isSame(a,`day`)?`${i.locale(r).format(`MMM D, YYYY HH:mm`)} - ${a.locale(r).format(`HH:mm`)}`:`${i.locale(r).format(`MMM D, HH:mm`)} - ${a.locale(r).format(`MMM D, HH:mm`)}`}function _(e=``,t){let n=e.toLowerCase(),r=new Map([[`shadowsocks`,`SS`],[`shadowsocksr`,`SSR`],[`hysteria`,`HY`],[`hysteria2`,`HY2`],[`wireguard`,`WG`],[`selector`,t(`selector`)],[`urltest`,t(`urltest`)],[`fallback`,t(`fallback`)],[`loadbalance`,t(`loadbalance`)],[`direct`,t(`direct`)],[`reject`,t(`reject`)],[`rejectdrop`,t(`rejectdrop`)],[`relay`,t(`relay`)],[`pass`,t(`pass`)]]);return r.has(n)?r.get(n):n}function v(e,t){return e>t.HIGH?`text-red-500`:e>t.MEDIUM?`text-yellow-500`:e===t.NOT_CONNECTED?`text-gray`:`text-green-600`}function y(e=``){return![`selector`,`direct`,`reject`,`urltest`,`loadbalance`,`fallback`,`relay`].includes(e.toLowerCase())}function b({proxyNames:e,orderingType:t,testUrl:n,getLatencyByName:i,latencyQualityMap:a,urlForLatencyTest:o}){if(t===r.NATURAL)return e;let s=n||o;return[...e].sort((e,n)=>{let o=i(e,s),c=i(n,s);switch(t){case r.LATENCY_ASC:return o===a.NOT_CONNECTED?1:c===a.NOT_CONNECTED?-1:o-c;case r.LATENCY_DESC:return o===a.NOT_CONNECTED?1:c===a.NOT_CONNECTED?-1:c-o;case r.NAME_ASC:return e.localeCompare(n);case r.NAME_DESC:return n.localeCompare(e);default:return 0}})}function x({proxyNames:e,enabled:t,testUrl:n,getLatencyByName:r,isProxyGroup:i,latencyQualityMap:a,urlForLatencyTest:o}){let s=n||o;return t?e.filter(e=>i(e)||r(e,s)!==a.NOT_CONNECTED):e}function S(){let e=n({}),t=(t,n)=>{e.value={...e.value,[t]:n}};return{map:e,set:t,setWithCallback:async(e,n)=>{t(e,!0);try{await n()}catch{}t(e,!1)}}}function C(e){return typeof document>`u`?``:getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function w(){return{baseContent:C(`--color-base-content`)||`oklch(0.746 0 0)`,base100:C(`--color-base-100`)||`oklch(0.253 0 0)`,base200:C(`--color-base-200`)||`oklch(0.232 0 0)`,base300:C(`--color-base-300`)||`oklch(0.211 0 0)`,primary:C(`--color-primary`)||`oklch(0.65 0.15 240)`,primaryContent:C(`--color-primary-content`)||`oklch(0.98 0 0)`,secondary:C(`--color-secondary`)||`oklch(0.65 0.15 300)`,secondaryContent:C(`--color-secondary-content`)||`oklch(0.98 0 0)`,accent:C(`--color-accent`)||`oklch(0.65 0.15 180)`,accentContent:C(`--color-accent-content`)||`oklch(0.98 0 0)`,neutral:C(`--color-neutral`)||`oklch(0.3 0 0)`,neutralContent:C(`--color-neutral-content`)||`oklch(0.98 0 0)`,info:C(`--color-info`)||`oklch(0.65 0.15 220)`,success:C(`--color-success`)||`oklch(0.65 0.15 140)`,warning:C(`--color-warning`)||`oklch(0.8 0.15 80)`,error:C(`--color-error`)||`oklch(0.65 0.2 25)`}}function T(){let e=w();return{textColor:e.baseContent,textColorHover:e.primaryContent,gridLineColor:e.base300,lineColor:e.base300,tickColor:e.base300,seriesColors:[e.info,e.success,e.warning,e.error],backgroundColor:e.base200}}function E(e){return e.replace(`/g,`%3E`)}export{h as a,m as c,w as d,b as f,i as h,g as i,T as l,S as m,x as n,p as o,f as p,y as r,_ as s,E as t,v as u};
\ No newline at end of file
+import{At as e,Mt as t,yt as n}from"./B7rlnwkb.js";import{f as r}from"./_v7-ePgP.js";var i=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(e,(function(){var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`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+)?$/,h=/\[([^\]]+)]|Y{1,4}|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,g={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(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date()1)return e(o[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},w=function(e,t){if(S(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new E(n)},T=v;T.l=C,T.i=S,T.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var E=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var _=g.prototype;return _.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(T.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(m);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},_.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},_.$utils=function(){return T},_.isValid=function(){return this.$d.toString()!==p},_.isSame=function(e,t){var n=w(e);return this.startOf(t)<=n&&n<=this.endOf(t)},_.isAfter=function(e,t){return w(e)