From 336200727dd7f647cb2a1358866ca93af3831826 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 05:55:20 +0000 Subject: [PATCH] [web] Rebuild web interface --- htdocs/assets/index.js | 74 +++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/htdocs/assets/index.js b/htdocs/assets/index.js index a0eec815..b12b13c1 100644 --- a/htdocs/assets/index.js +++ b/htdocs/assets/index.js @@ -2,72 +2,72 @@ * @vue/shared v3.5.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function nn(t){const e=Object.create(null);for(const n of t.split(","))e[n]=1;return n=>n in e}const Yt={},Sr=[],Qe=()=>{},yr=()=>!1,nr=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),mu=t=>t.startsWith("onUpdate:"),Zt=Object.assign,gu=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},iE=Object.prototype.hasOwnProperty,de=(t,e)=>iE.call(t,e),bt=Array.isArray,Er=t=>Fr(t)==="[object Map]",sr=t=>Fr(t)==="[object Set]",Af=t=>Fr(t)==="[object Date]",Zb=t=>Fr(t)==="[object RegExp]",xt=t=>typeof t=="function",Rt=t=>typeof t=="string",Pn=t=>typeof t=="symbol",me=t=>t!==null&&typeof t=="object",yu=t=>(me(t)||xt(t))&&xt(t.then)&&xt(t.catch),Lh=Object.prototype.toString,Fr=t=>Lh.call(t),Jb=t=>Fr(t).slice(8,-1),rl=t=>Fr(t)==="[object Object]",bu=t=>Rt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,gi=nn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Qb=nn("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),vu=t=>{const e=Object.create(null);return(n=>e[n]||(e[n]=t(n)))},rE=/-\w/g,Ce=vu(t=>t.replace(rE,e=>e.slice(1).toUpperCase())),oE=/\B([A-Z])/g,vn=vu(t=>t.replace(oE,"-$1").toLowerCase()),ir=vu(t=>t.charAt(0).toUpperCase()+t.slice(1)),wr=vu(t=>t?`on${ir(t)}`:""),yn=(t,e)=>!Object.is(t,e),kr=(t,...e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:s,value:n})},Da=t=>{const e=parseFloat(t);return isNaN(e)?t:e},La=t=>{const e=Rt(t)?Number(t):NaN;return isNaN(e)?t:e};let Im;const ol=()=>Im||(Im=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),aE=/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;function lE(t){return aE.test(t)?`__props.${t}`:`__props[${JSON.stringify(t)}]`}function cE(t,e){return t+JSON.stringify(e,(n,s)=>typeof s=="function"?s.toString():s)}const uE={TEXT:1,1:"TEXT",CLASS:2,2:"CLASS",STYLE:4,4:"STYLE",PROPS:8,8:"PROPS",FULL_PROPS:16,16:"FULL_PROPS",NEED_HYDRATION:32,32:"NEED_HYDRATION",STABLE_FRAGMENT:64,64:"STABLE_FRAGMENT",KEYED_FRAGMENT:128,128:"KEYED_FRAGMENT",UNKEYED_FRAGMENT:256,256:"UNKEYED_FRAGMENT",NEED_PATCH:512,512:"NEED_PATCH",DYNAMIC_SLOTS:1024,1024:"DYNAMIC_SLOTS",DEV_ROOT_FRAGMENT:2048,2048:"DEV_ROOT_FRAGMENT",CACHED:-1,"-1":"CACHED",BAIL:-2,"-2":"BAIL"},dE={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"NEED_HYDRATION",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"CACHED",[-2]:"BAIL"},fE={ELEMENT:1,1:"ELEMENT",FUNCTIONAL_COMPONENT:2,2:"FUNCTIONAL_COMPONENT",STATEFUL_COMPONENT:4,4:"STATEFUL_COMPONENT",TEXT_CHILDREN:8,8:"TEXT_CHILDREN",ARRAY_CHILDREN:16,16:"ARRAY_CHILDREN",SLOTS_CHILDREN:32,32:"SLOTS_CHILDREN",TELEPORT:64,64:"TELEPORT",SUSPENSE:128,128:"SUSPENSE",COMPONENT_SHOULD_KEEP_ALIVE:256,256:"COMPONENT_SHOULD_KEEP_ALIVE",COMPONENT_KEPT_ALIVE:512,512:"COMPONENT_KEPT_ALIVE",COMPONENT:6,6:"COMPONENT"},hE={STABLE:1,1:"STABLE",DYNAMIC:2,2:"DYNAMIC",FORWARDED:3,3:"FORWARDED"},pE={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},mE="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",$h=nn(mE),gE=$h,Nm=2;function t1(t,e=0,n=t.length){if(e=Math.max(0,Math.min(e,t.length)),n=Math.max(0,Math.min(n,t.length)),e>n)return"";let s=t.split(/(\r?\n)/);const i=s.filter((a,l)=>l%2===1);s=s.filter((a,l)=>l%2===0);let r=0;const o=[];for(let a=0;a=e){for(let l=a-Nm;l<=a+Nm||n>r;l++){if(l<0||l>=s.length)continue;const c=l+1;o.push(`${c}${" ".repeat(Math.max(3-String(c).length,0))}| ${s[l]}`);const u=s[l].length,d=i[l]&&i[l].length||0;if(l===a){const f=e-(r-(u+d)),h=Math.max(1,n>r?u-f:n-e);o.push(" | "+" ".repeat(f)+"^".repeat(h))}else if(l>a){if(n>r){const f=Math.max(Math.min(n-r,u),1);o.push(" | "+"^".repeat(f))}r+=u+d}}break}return o.join(` -`)}function Lo(t){if(bt(t)){const e={};for(let n=0;n{if(n){const s=n.split(bE);s.length>1&&(e[s[0].trim()]=s[1].trim())}}),e}function _E(t){if(!t)return"";if(Rt(t))return t;let e="";for(const n in t){const s=t[n];if(Rt(s)||typeof s=="number"){const i=n.startsWith("--")?n:vn(n);e+=`${i}:${s};`}}return e}function Gt(t){let e="";if(Rt(t))e=t;else if(bt(t))for(let n=0;n/="'\u0009\u000a\u000c\u0020]/,xd={};function AE(t){if(xd.hasOwnProperty(t))return xd[t];const e=TE.test(t);return e&&console.error(`unsafe attribute name: ${t}`),xd[t]=!e}const OE={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},xE=nn("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),IE=nn("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan"),NE=nn("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");function PE(t){if(t==null)return!1;const e=typeof t;return e==="string"||e==="number"||e==="boolean"}const RE=/["'&<>]/;function DE(t){const e=""+t,n=RE.exec(e);if(!n)return e;let s="",i,r,o=0;for(r=n.index;r||--!>|?@[\\\]^`{|}~]/g;function $E(t,e){return t.replace(a1,n=>e?n==='"'?'\\\\\\"':`\\\\${n}`:`\\${n}`)}function FE(t,e){if(t.length!==e.length)return!1;let n=!0;for(let s=0;n&&sSi(n,e))}const l1=t=>!!(t&&t.__v_isRef===!0),nt=t=>Rt(t)?t:t==null?"":bt(t)||me(t)&&(t.toString===Lh||!xt(t.toString))?l1(t)?nt(t.value):JSON.stringify(t,c1,2):String(t),c1=(t,e)=>l1(e)?c1(t,e.value):Er(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((n,[s,i],r)=>(n[Id(s,r)+" =>"]=i,n),{})}:sr(e)?{[`Set(${e.size})`]:[...e.values()].map(n=>Id(n))}:Pn(e)?Id(e):me(e)&&!bt(e)&&!rl(e)?String(e):e,Id=(t,e="")=>{var n;return Pn(t)?`Symbol(${(n=t.description)!=null?n:e})`:t};function u1(t){return t==null?"initial":typeof t=="string"?t===""?" ":t:String(t)}const VE=Object.freeze(Object.defineProperty({__proto__:null,EMPTY_ARR:Sr,EMPTY_OBJ:Yt,NO:yr,NOOP:Qe,PatchFlagNames:dE,PatchFlags:uE,ShapeFlags:fE,SlotFlags:hE,camelize:Ce,capitalize:ir,cssVarNameEscapeSymbolsRE:a1,def:Mh,escapeHtml:DE,escapeHtmlComment:ME,extend:Zt,genCacheKey:cE,genPropsAccessExp:lE,generateCodeFrame:t1,getEscapedCssVarName:$E,getGlobalThis:ol,hasChanged:yn,hasOwn:de,hyphenate:vn,includeBooleanAttr:Vh,invokeArrayFns:kr,isArray:bt,isBooleanAttr:CE,isBuiltInDirective:Qb,isDate:Af,isFunction:xt,isGloballyAllowed:$h,isGloballyWhitelisted:gE,isHTMLTag:e1,isIntegerKey:bu,isKnownHtmlAttr:xE,isKnownMathMLAttr:NE,isKnownSvgAttr:IE,isMap:Er,isMathMLTag:s1,isModelListener:mu,isObject:me,isOn:nr,isPlainObject:rl,isPromise:yu,isRegExp:Zb,isRenderableAttrValue:PE,isReservedProp:gi,isSSRSafeAttrName:AE,isSVGTag:n1,isSet:sr,isSpecialBooleanAttr:o1,isString:Rt,isSymbol:Pn,isVoidTag:i1,looseEqual:Si,looseIndexOf:al,looseToNumber:Da,makeMap:nn,normalizeClass:Gt,normalizeCssVarValue:u1,normalizeProps:ao,normalizeStyle:Lo,objectToString:Lh,parseStringStyle:Fh,propsToAttrMap:OE,remove:gu,slotFlagsText:pE,stringifyStyle:_E,toDisplayString:nt,toHandlerKey:wr,toNumber:La,toRawType:Jb,toTypeString:Fr},Symbol.toStringTag,{value:"Module"}));/** +**/function nn(t){const e=Object.create(null);for(const n of t.split(","))e[n]=1;return n=>n in e}const Yt={},Sr=[],Qe=()=>{},yr=()=>!1,nr=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),mu=t=>t.startsWith("onUpdate:"),Zt=Object.assign,gu=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},iE=Object.prototype.hasOwnProperty,he=(t,e)=>iE.call(t,e),bt=Array.isArray,Er=t=>Fr(t)==="[object Map]",sr=t=>Fr(t)==="[object Set]",Tf=t=>Fr(t)==="[object Date]",Jb=t=>Fr(t)==="[object RegExp]",It=t=>typeof t=="function",Lt=t=>typeof t=="string",Pn=t=>typeof t=="symbol",be=t=>t!==null&&typeof t=="object",yu=t=>(be(t)||It(t))&&It(t.then)&&It(t.catch),Rh=Object.prototype.toString,Fr=t=>Rh.call(t),Qb=t=>Fr(t).slice(8,-1),rl=t=>Fr(t)==="[object Object]",bu=t=>Lt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,gi=nn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),t1=nn("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),vu=t=>{const e=Object.create(null);return(n=>e[n]||(e[n]=t(n)))},rE=/-\w/g,Ce=vu(t=>t.replace(rE,e=>e.slice(1).toUpperCase())),oE=/\B([A-Z])/g,vn=vu(t=>t.replace(oE,"-$1").toLowerCase()),ir=vu(t=>t.charAt(0).toUpperCase()+t.slice(1)),wr=vu(t=>t?`on${ir(t)}`:""),yn=(t,e)=>!Object.is(t,e),kr=(t,...e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:s,value:n})},La=t=>{const e=parseFloat(t);return isNaN(e)?t:e},Ma=t=>{const e=Lt(t)?Number(t):NaN;return isNaN(e)?t:e};let Om;const ol=()=>Om||(Om=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),aE=/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;function lE(t){return aE.test(t)?`__props.${t}`:`__props[${JSON.stringify(t)}]`}function cE(t,e){return t+JSON.stringify(e,(n,s)=>typeof s=="function"?s.toString():s)}const uE={TEXT:1,1:"TEXT",CLASS:2,2:"CLASS",STYLE:4,4:"STYLE",PROPS:8,8:"PROPS",FULL_PROPS:16,16:"FULL_PROPS",NEED_HYDRATION:32,32:"NEED_HYDRATION",STABLE_FRAGMENT:64,64:"STABLE_FRAGMENT",KEYED_FRAGMENT:128,128:"KEYED_FRAGMENT",UNKEYED_FRAGMENT:256,256:"UNKEYED_FRAGMENT",NEED_PATCH:512,512:"NEED_PATCH",DYNAMIC_SLOTS:1024,1024:"DYNAMIC_SLOTS",DEV_ROOT_FRAGMENT:2048,2048:"DEV_ROOT_FRAGMENT",CACHED:-1,"-1":"CACHED",BAIL:-2,"-2":"BAIL"},dE={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"NEED_HYDRATION",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"CACHED",[-2]:"BAIL"},fE={ELEMENT:1,1:"ELEMENT",FUNCTIONAL_COMPONENT:2,2:"FUNCTIONAL_COMPONENT",STATEFUL_COMPONENT:4,4:"STATEFUL_COMPONENT",TEXT_CHILDREN:8,8:"TEXT_CHILDREN",ARRAY_CHILDREN:16,16:"ARRAY_CHILDREN",SLOTS_CHILDREN:32,32:"SLOTS_CHILDREN",TELEPORT:64,64:"TELEPORT",SUSPENSE:128,128:"SUSPENSE",COMPONENT_SHOULD_KEEP_ALIVE:256,256:"COMPONENT_SHOULD_KEEP_ALIVE",COMPONENT_KEPT_ALIVE:512,512:"COMPONENT_KEPT_ALIVE",COMPONENT:6,6:"COMPONENT"},hE={STABLE:1,1:"STABLE",DYNAMIC:2,2:"DYNAMIC",FORWARDED:3,3:"FORWARDED"},pE={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},mE="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",Lh=nn(mE),gE=Lh,xm=2;function e1(t,e=0,n=t.length){if(e=Math.max(0,Math.min(e,t.length)),n=Math.max(0,Math.min(n,t.length)),e>n)return"";let s=t.split(/(\r?\n)/);const i=s.filter((a,l)=>l%2===1);s=s.filter((a,l)=>l%2===0);let r=0;const o=[];for(let a=0;a=e){for(let l=a-xm;l<=a+xm||n>r;l++){if(l<0||l>=s.length)continue;const c=l+1;o.push(`${c}${" ".repeat(Math.max(3-String(c).length,0))}| ${s[l]}`);const u=s[l].length,d=i[l]&&i[l].length||0;if(l===a){const f=e-(r-(u+d)),h=Math.max(1,n>r?u-f:n-e);o.push(" | "+" ".repeat(f)+"^".repeat(h))}else if(l>a){if(n>r){const f=Math.max(Math.min(n-r,u),1);o.push(" | "+"^".repeat(f))}r+=u+d}}break}return o.join(` +`)}function Mo(t){if(bt(t)){const e={};for(let n=0;n{if(n){const s=n.split(bE);s.length>1&&(e[s[0].trim()]=s[1].trim())}}),e}function _E(t){if(!t)return"";if(Lt(t))return t;let e="";for(const n in t){const s=t[n];if(Lt(s)||typeof s=="number"){const i=n.startsWith("--")?n:vn(n);e+=`${i}:${s};`}}return e}function Gt(t){let e="";if(Lt(t))e=t;else if(bt(t))for(let n=0;n/="'\u0009\u000a\u000c\u0020]/,Od={};function AE(t){if(Od.hasOwnProperty(t))return Od[t];const e=TE.test(t);return e&&console.error(`unsafe attribute name: ${t}`),Od[t]=!e}const OE={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},xE=nn("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),IE=nn("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan"),NE=nn("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");function PE(t){if(t==null)return!1;const e=typeof t;return e==="string"||e==="number"||e==="boolean"}const RE=/["'&<>]/;function DE(t){const e=""+t,n=RE.exec(e);if(!n)return e;let s="",i,r,o=0;for(r=n.index;r||--!>|?@[\\\]^`{|}~]/g;function $E(t,e){return t.replace(l1,n=>e?n==='"'?'\\\\\\"':`\\\\${n}`:`\\${n}`)}function FE(t,e){if(t.length!==e.length)return!1;let n=!0;for(let s=0;n&&sSi(n,e))}const c1=t=>!!(t&&t.__v_isRef===!0),nt=t=>Lt(t)?t:t==null?"":bt(t)||be(t)&&(t.toString===Rh||!It(t.toString))?c1(t)?nt(t.value):JSON.stringify(t,u1,2):String(t),u1=(t,e)=>c1(e)?u1(t,e.value):Er(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((n,[s,i],r)=>(n[xd(s,r)+" =>"]=i,n),{})}:sr(e)?{[`Set(${e.size})`]:[...e.values()].map(n=>xd(n))}:Pn(e)?xd(e):be(e)&&!bt(e)&&!rl(e)?String(e):e,xd=(t,e="")=>{var n;return Pn(t)?`Symbol(${(n=t.description)!=null?n:e})`:t};function d1(t){return t==null?"initial":typeof t=="string"?t===""?" ":t:String(t)}const VE=Object.freeze(Object.defineProperty({__proto__:null,EMPTY_ARR:Sr,EMPTY_OBJ:Yt,NO:yr,NOOP:Qe,PatchFlagNames:dE,PatchFlags:uE,ShapeFlags:fE,SlotFlags:hE,camelize:Ce,capitalize:ir,cssVarNameEscapeSymbolsRE:l1,def:Dh,escapeHtml:DE,escapeHtmlComment:ME,extend:Zt,genCacheKey:cE,genPropsAccessExp:lE,generateCodeFrame:e1,getEscapedCssVarName:$E,getGlobalThis:ol,hasChanged:yn,hasOwn:he,hyphenate:vn,includeBooleanAttr:$h,invokeArrayFns:kr,isArray:bt,isBooleanAttr:CE,isBuiltInDirective:t1,isDate:Tf,isFunction:It,isGloballyAllowed:Lh,isGloballyWhitelisted:gE,isHTMLTag:n1,isIntegerKey:bu,isKnownHtmlAttr:xE,isKnownMathMLAttr:NE,isKnownSvgAttr:IE,isMap:Er,isMathMLTag:i1,isModelListener:mu,isObject:be,isOn:nr,isPlainObject:rl,isPromise:yu,isRegExp:Jb,isRenderableAttrValue:PE,isReservedProp:gi,isSSRSafeAttrName:AE,isSVGTag:s1,isSet:sr,isSpecialBooleanAttr:a1,isString:Lt,isSymbol:Pn,isVoidTag:r1,looseEqual:Si,looseIndexOf:al,looseToNumber:La,makeMap:nn,normalizeClass:Gt,normalizeCssVarValue:d1,normalizeProps:ao,normalizeStyle:Mo,objectToString:Rh,parseStringStyle:Mh,propsToAttrMap:OE,remove:gu,slotFlagsText:pE,stringifyStyle:_E,toDisplayString:nt,toHandlerKey:wr,toNumber:Ma,toRawType:Qb,toTypeString:Fr},Symbol.toStringTag,{value:"Module"}));/** * @vue/reactivity v3.5.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let pn;class Uh{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=pn,!e&&pn&&(this.index=(pn.scopes||(pn.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,n;if(this.scopes)for(e=0,n=this.scopes.length;e0&&--this._on===0&&(pn=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(ga){let e=ga;for(ga=void 0;e;){const n=e.next;e.next=void 0,e.flags&=-9,e=n}}let t;for(;ma;){let e=ma;for(ma=void 0;e;){const n=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(s){t||(t=s)}e=n}}if(t)throw t}function p1(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function m1(t){let e,n=t.depsTail,s=n;for(;s;){const i=s.prevDep;s.version===-1?(s===n&&(n=i),Wh(s),UE(s)):e=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=i}t.deps=e,t.depsTail=n}function Of(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(g1(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function g1(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===$a)||(t.globalVersion=$a,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Of(t))))return;t.flags|=2;const e=t.dep,n=ke,s=Is;ke=t,Is=!0;try{p1(t);const i=t.fn(t._value);(e.version===0||yn(i,t._value))&&(t.flags|=128,t._value=i,e.version++)}catch(i){throw e.version++,i}finally{ke=n,Is=s,m1(t),t.flags&=-3}}function Wh(t,e=!1){const{dep:n,prevSub:s,nextSub:i}=t;if(s&&(s.nextSub=i,t.prevSub=void 0),i&&(i.prevSub=s,t.nextSub=void 0),n.subs===t&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)Wh(r,!0)}!e&&!--n.sc&&n.map&&n.map.delete(n.key)}function UE(t){const{prevDep:e,nextDep:n}=t;e&&(e.nextDep=n,t.prevDep=void 0),n&&(n.prevDep=e,t.nextDep=void 0)}function HE(t,e){t.effect instanceof Ma&&(t=t.effect.fn);const n=new Ma(t);e&&Zt(n,e);try{n.run()}catch(i){throw n.stop(),i}const s=n.run.bind(n);return s.effect=n,s}function jE(t){t.effect.stop()}let Is=!0;const y1=[];function Ei(){y1.push(Is),Is=!1}function wi(){const t=y1.pop();Is=t===void 0?!0:t}function Pm(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const n=ke;ke=void 0;try{e()}finally{ke=n}}}let $a=0;class BE{constructor(e,n){this.sub=e,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Su{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!ke||!Is||ke===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ke)n=this.activeLink=new BE(ke,this),ke.deps?(n.prevDep=ke.depsTail,ke.depsTail.nextDep=n,ke.depsTail=n):ke.deps=ke.depsTail=n,b1(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=ke.depsTail,n.nextDep=void 0,ke.depsTail.nextDep=n,ke.depsTail=n,ke.deps===n&&(ke.deps=s)}return n}trigger(e){this.version++,$a++,this.notify(e)}notify(e){jh();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Bh()}}}function b1(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let s=e.deps;s;s=s.nextDep)b1(s)}const n=t.dep.subs;n!==t&&(t.prevSub=n,n&&(n.nextSub=t)),t.dep.subs=t}}const Ic=new WeakMap,Cr=Symbol(""),xf=Symbol(""),Fa=Symbol("");function bn(t,e,n){if(Is&&ke){let s=Ic.get(t);s||Ic.set(t,s=new Map);let i=s.get(n);i||(s.set(n,i=new Su),i.map=s,i.key=n),i.track()}}function ui(t,e,n,s,i,r){const o=Ic.get(t);if(!o){$a++;return}const a=l=>{l&&l.trigger()};if(jh(),e==="clear")o.forEach(a);else{const l=bt(t),c=l&&bu(n);if(l&&n==="length"){const u=Number(s);o.forEach((d,f)=>{(f==="length"||f===Fa||!Pn(f)&&f>=u)&&a(d)})}else switch((n!==void 0||o.has(void 0))&&a(o.get(n)),c&&a(o.get(Fa)),e){case"add":l?c&&a(o.get("length")):(a(o.get(Cr)),Er(t)&&a(o.get(xf)));break;case"delete":l||(a(o.get(Cr)),Er(t)&&a(o.get(xf)));break;case"set":Er(t)&&a(o.get(Cr));break}}Bh()}function WE(t,e){const n=Ic.get(t);return n&&n.get(e)}function Gr(t){const e=ie(t);return e===t?e:(bn(e,"iterate",Fa),Yn(t)?e:e.map(on))}function Eu(t){return bn(t=ie(t),"iterate",Fa),t}const GE={__proto__:null,[Symbol.iterator](){return Pd(this,Symbol.iterator,on)},concat(...t){return Gr(this).concat(...t.map(e=>bt(e)?Gr(e):e))},entries(){return Pd(this,"entries",t=>(t[1]=on(t[1]),t))},every(t,e){return ni(this,"every",t,e,void 0,arguments)},filter(t,e){return ni(this,"filter",t,e,n=>n.map(on),arguments)},find(t,e){return ni(this,"find",t,e,on,arguments)},findIndex(t,e){return ni(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return ni(this,"findLast",t,e,on,arguments)},findLastIndex(t,e){return ni(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return ni(this,"forEach",t,e,void 0,arguments)},includes(...t){return Rd(this,"includes",t)},indexOf(...t){return Rd(this,"indexOf",t)},join(t){return Gr(this).join(t)},lastIndexOf(...t){return Rd(this,"lastIndexOf",t)},map(t,e){return ni(this,"map",t,e,void 0,arguments)},pop(){return Xo(this,"pop")},push(...t){return Xo(this,"push",t)},reduce(t,...e){return Rm(this,"reduce",t,e)},reduceRight(t,...e){return Rm(this,"reduceRight",t,e)},shift(){return Xo(this,"shift")},some(t,e){return ni(this,"some",t,e,void 0,arguments)},splice(...t){return Xo(this,"splice",t)},toReversed(){return Gr(this).toReversed()},toSorted(t){return Gr(this).toSorted(t)},toSpliced(...t){return Gr(this).toSpliced(...t)},unshift(...t){return Xo(this,"unshift",t)},values(){return Pd(this,"values",on)}};function Pd(t,e,n){const s=Eu(t),i=s[e]();return s!==t&&!Yn(t)&&(i._next=i.next,i.next=()=>{const r=i._next();return r.value&&(r.value=n(r.value)),r}),i}const KE=Array.prototype;function ni(t,e,n,s,i,r){const o=Eu(t),a=o!==t&&!Yn(t),l=o[e];if(l!==KE[e]){const d=l.apply(t,r);return a?on(d):d}let c=n;o!==t&&(a?c=function(d,f){return n.call(this,on(d),f,t)}:n.length>2&&(c=function(d,f){return n.call(this,d,f,t)}));const u=l.call(o,c,s);return a&&i?i(u):u}function Rm(t,e,n,s){const i=Eu(t);let r=n;return i!==t&&(Yn(t)?n.length>3&&(r=function(o,a,l){return n.call(this,o,a,l,t)}):r=function(o,a,l){return n.call(this,o,on(a),l,t)}),i[e](r,...s)}function Rd(t,e,n){const s=ie(t);bn(s,"iterate",Fa);const i=s[e](...n);return(i===-1||i===!1)&&Cu(n[0])?(n[0]=ie(n[0]),s[e](...n)):i}function Xo(t,e,n=[]){Ei(),jh();const s=ie(t)[e].apply(t,n);return Bh(),wi(),s}const qE=nn("__proto__,__v_isRef,__isVue"),v1=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Pn));function zE(t){Pn(t)||(t=String(t));const e=ie(this);return bn(e,"has",t),e.hasOwnProperty(t)}class _1{constructor(e=!1,n=!1){this._isReadonly=e,this._isShallow=n}get(e,n,s){if(n==="__v_skip")return e.__v_skip;const i=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!i;if(n==="__v_isReadonly")return i;if(n==="__v_isShallow")return r;if(n==="__v_raw")return s===(i?r?T1:C1:r?k1:w1).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(s)?e:void 0;const o=bt(e);if(!i){let l;if(o&&(l=GE[n]))return l;if(n==="hasOwnProperty")return zE}const a=Reflect.get(e,n,Ie(e)?e:s);return(Pn(n)?v1.has(n):qE(n))||(i||bn(e,"get",n),r)?a:Ie(a)?o&&bu(n)?a:a.value:me(a)?i?Kh(a):Mo(a):a}}class S1 extends _1{constructor(e=!1){super(!1,e)}set(e,n,s,i){let r=e[n];if(!this._isShallow){const l=ki(r);if(!Yn(s)&&!ki(s)&&(r=ie(r),s=ie(s)),!bt(e)&&Ie(r)&&!Ie(s))return l||(r.value=s),!0}const o=bt(e)&&bu(n)?Number(n)t,xl=t=>Reflect.getPrototypeOf(t);function QE(t,e,n){return function(...s){const i=this.__v_raw,r=ie(i),o=Er(r),a=t==="entries"||t===Symbol.iterator&&o,l=t==="keys"&&o,c=i[t](...s),u=n?If:e?Nc:on;return!e&&bn(r,"iterate",l?xf:Cr),{next(){const{value:d,done:f}=c.next();return f?{value:d,done:f}:{value:a?[u(d[0]),u(d[1])]:u(d),done:f}},[Symbol.iterator](){return this}}}}function Il(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function tw(t,e){const n={get(i){const r=this.__v_raw,o=ie(r),a=ie(i);t||(yn(i,a)&&bn(o,"get",i),bn(o,"get",a));const{has:l}=xl(o),c=e?If:t?Nc:on;if(l.call(o,i))return c(r.get(i));if(l.call(o,a))return c(r.get(a));r!==o&&r.get(i)},get size(){const i=this.__v_raw;return!t&&bn(ie(i),"iterate",Cr),i.size},has(i){const r=this.__v_raw,o=ie(r),a=ie(i);return t||(yn(i,a)&&bn(o,"has",i),bn(o,"has",a)),i===a?r.has(i):r.has(i)||r.has(a)},forEach(i,r){const o=this,a=o.__v_raw,l=ie(a),c=e?If:t?Nc:on;return!t&&bn(l,"iterate",Cr),a.forEach((u,d)=>i.call(r,c(u),c(d),o))}};return Zt(n,t?{add:Il("add"),set:Il("set"),delete:Il("delete"),clear:Il("clear")}:{add(i){!e&&!Yn(i)&&!ki(i)&&(i=ie(i));const r=ie(this);return xl(r).has.call(r,i)||(r.add(i),ui(r,"add",i,i)),this},set(i,r){!e&&!Yn(r)&&!ki(r)&&(r=ie(r));const o=ie(this),{has:a,get:l}=xl(o);let c=a.call(o,i);c||(i=ie(i),c=a.call(o,i));const u=l.call(o,i);return o.set(i,r),c?yn(r,u)&&ui(o,"set",i,r):ui(o,"add",i,r),this},delete(i){const r=ie(this),{has:o,get:a}=xl(r);let l=o.call(r,i);l||(i=ie(i),l=o.call(r,i)),a&&a.call(r,i);const c=r.delete(i);return l&&ui(r,"delete",i,void 0),c},clear(){const i=ie(this),r=i.size!==0,o=i.clear();return r&&ui(i,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=QE(i,t,e)}),n}function wu(t,e){const n=tw(t,e);return(s,i,r)=>i==="__v_isReactive"?!t:i==="__v_isReadonly"?t:i==="__v_raw"?s:Reflect.get(de(n,i)&&i in s?n:s,i,r)}const ew={get:wu(!1,!1)},nw={get:wu(!1,!0)},sw={get:wu(!0,!1)},iw={get:wu(!0,!0)},w1=new WeakMap,k1=new WeakMap,C1=new WeakMap,T1=new WeakMap;function rw(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ow(t){return t.__v_skip||!Object.isExtensible(t)?0:rw(Jb(t))}function Mo(t){return ki(t)?t:ku(t,!1,XE,ew,w1)}function Gh(t){return ku(t,!1,ZE,nw,k1)}function Kh(t){return ku(t,!0,YE,sw,C1)}function aw(t){return ku(t,!0,JE,iw,T1)}function ku(t,e,n,s,i){if(!me(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const r=ow(t);if(r===0)return t;const o=i.get(t);if(o)return o;const a=new Proxy(t,r===2?s:n);return i.set(t,a),a}function Xs(t){return ki(t)?Xs(t.__v_raw):!!(t&&t.__v_isReactive)}function ki(t){return!!(t&&t.__v_isReadonly)}function Yn(t){return!!(t&&t.__v_isShallow)}function Cu(t){return t?!!t.__v_raw:!1}function ie(t){const e=t&&t.__v_raw;return e?ie(e):t}function Tu(t){return!de(t,"__v_skip")&&Object.isExtensible(t)&&Mh(t,"__v_skip",!0),t}const on=t=>me(t)?Mo(t):t,Nc=t=>me(t)?Kh(t):t;function Ie(t){return t?t.__v_isRef===!0:!1}function cs(t){return A1(t,!1)}function Au(t){return A1(t,!0)}function A1(t,e){return Ie(t)?t:new lw(t,e)}class lw{constructor(e,n){this.dep=new Su,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?e:ie(e),this._value=n?e:on(e),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(e){const n=this._rawValue,s=this.__v_isShallow||Yn(e)||ki(e);e=s?e:ie(e),yn(e,n)&&(this._rawValue=e,this._value=s?e:on(e),this.dep.trigger())}}function cw(t){t.dep&&t.dep.trigger()}function Vn(t){return Ie(t)?t.value:t}function uw(t){return xt(t)?t():Vn(t)}const dw={get:(t,e,n)=>e==="__v_raw"?t:Vn(Reflect.get(t,e,n)),set:(t,e,n,s)=>{const i=t[e];return Ie(i)&&!Ie(n)?(i.value=n,!0):Reflect.set(t,e,n,s)}};function qh(t){return Xs(t)?t:new Proxy(t,dw)}class fw{constructor(e){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Su,{get:s,set:i}=e(n.track.bind(n),n.trigger.bind(n));this._get=s,this._set=i}get value(){return this._value=this._get()}set value(e){this._set(e)}}function O1(t){return new fw(t)}function x1(t){const e=bt(t)?new Array(t.length):{};for(const n in t)e[n]=I1(t,n);return e}class hw{constructor(e,n,s){this._object=e,this._key=n,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0}get value(){const e=this._object[this._key];return this._value=e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return WE(ie(this._object),this._key)}}class pw{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function mw(t,e,n){return Ie(t)?t:xt(t)?new pw(t):me(t)&&arguments.length>1?I1(t,e,n):cs(t)}function I1(t,e,n){const s=t[e];return Ie(s)?s:new hw(t,e,n)}class gw{constructor(e,n,s){this.fn=e,this.setter=n,this._value=void 0,this.dep=new Su(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=$a-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&ke!==this)return h1(this,!0),!0}get value(){const e=this.dep.track();return g1(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function yw(t,e,n=!1){let s,i;return xt(t)?s=t:(s=t.get,i=t.set),new gw(s,i,n)}const bw={GET:"get",HAS:"has",ITERATE:"iterate"},vw={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},Nl={},Pc=new WeakMap;let Vi;function _w(){return Vi}function N1(t,e=!1,n=Vi){if(n){let s=Pc.get(n);s||Pc.set(n,s=[]),s.push(t)}}function Sw(t,e,n=Yt){const{immediate:s,deep:i,once:r,scheduler:o,augmentJob:a,call:l}=n,c=b=>i?b:Yn(b)||i===!1||i===0?di(b,1):di(b);let u,d,f,h,p=!1,m=!1;if(Ie(t)?(d=()=>t.value,p=Yn(t)):Xs(t)?(d=()=>c(t),p=!0):bt(t)?(m=!0,p=t.some(b=>Xs(b)||Yn(b)),d=()=>t.map(b=>{if(Ie(b))return b.value;if(Xs(b))return c(b);if(xt(b))return l?l(b,2):b()})):xt(t)?e?d=l?()=>l(t,2):t:d=()=>{if(f){Ei();try{f()}finally{wi()}}const b=Vi;Vi=u;try{return l?l(t,3,[h]):t(h)}finally{Vi=b}}:d=Qe,e&&i){const b=d,S=i===!0?1/0:i;d=()=>di(b(),S)}const _=Hh(),y=()=>{u.stop(),_&&_.active&&gu(_.effects,u)};if(r&&e){const b=e;e=(...S)=>{b(...S),y()}}let v=m?new Array(t.length).fill(Nl):Nl;const g=b=>{if(!(!(u.flags&1)||!u.dirty&&!b))if(e){const S=u.run();if(i||p||(m?S.some((k,I)=>yn(k,v[I])):yn(S,v))){f&&f();const k=Vi;Vi=u;try{const I=[S,v===Nl?void 0:m&&v[0]===Nl?[]:v,h];v=S,l?l(e,3,I):e(...I)}finally{Vi=k}}}else u.run()};return a&&a(g),u=new Ma(d),u.scheduler=o?()=>o(g,!1):g,h=b=>N1(b,!1,u),f=u.onStop=()=>{const b=Pc.get(u);if(b){if(l)l(b,4);else for(const S of b)S();Pc.delete(u)}},e?s?g(!0):v=u.run():o?o(g.bind(null,!0),!0):u.run(),y.pause=u.pause.bind(u),y.resume=u.resume.bind(u),y.stop=y,y}function di(t,e=1/0,n){if(e<=0||!me(t)||t.__v_skip||(n=n||new Map,(n.get(t)||0)>=e))return t;if(n.set(t,e),e--,Ie(t))di(t.value,e,n);else if(bt(t))for(let s=0;s{di(s,e,n)});else if(rl(t)){for(const s in t)di(t[s],e,n);for(const s of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,s)&&di(t[s],e,n)}return t}/** +**/let pn;class Fh{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=pn,!e&&pn&&(this.index=(pn.scopes||(pn.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,n;if(this.scopes)for(e=0,n=this.scopes.length;e0&&--this._on===0&&(pn=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(ya){let e=ya;for(ya=void 0;e;){const n=e.next;e.next=void 0,e.flags&=-9,e=n}}let t;for(;ga;){let e=ga;for(ga=void 0;e;){const n=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(s){t||(t=s)}e=n}}if(t)throw t}function m1(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function g1(t){let e,n=t.depsTail,s=n;for(;s;){const i=s.prevDep;s.version===-1?(s===n&&(n=i),jh(s),UE(s)):e=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=i}t.deps=e,t.depsTail=n}function Af(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(y1(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function y1(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Fa)||(t.globalVersion=Fa,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Af(t))))return;t.flags|=2;const e=t.dep,n=ke,s=Is;ke=t,Is=!0;try{m1(t);const i=t.fn(t._value);(e.version===0||yn(i,t._value))&&(t.flags|=128,t._value=i,e.version++)}catch(i){throw e.version++,i}finally{ke=n,Is=s,g1(t),t.flags&=-3}}function jh(t,e=!1){const{dep:n,prevSub:s,nextSub:i}=t;if(s&&(s.nextSub=i,t.prevSub=void 0),i&&(i.prevSub=s,t.nextSub=void 0),n.subs===t&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)jh(r,!0)}!e&&!--n.sc&&n.map&&n.map.delete(n.key)}function UE(t){const{prevDep:e,nextDep:n}=t;e&&(e.nextDep=n,t.prevDep=void 0),n&&(n.prevDep=e,t.nextDep=void 0)}function HE(t,e){t.effect instanceof $a&&(t=t.effect.fn);const n=new $a(t);e&&Zt(n,e);try{n.run()}catch(i){throw n.stop(),i}const s=n.run.bind(n);return s.effect=n,s}function jE(t){t.effect.stop()}let Is=!0;const b1=[];function Ei(){b1.push(Is),Is=!1}function wi(){const t=b1.pop();Is=t===void 0?!0:t}function Im(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const n=ke;ke=void 0;try{e()}finally{ke=n}}}let Fa=0;class BE{constructor(e,n){this.sub=e,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Su{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!ke||!Is||ke===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ke)n=this.activeLink=new BE(ke,this),ke.deps?(n.prevDep=ke.depsTail,ke.depsTail.nextDep=n,ke.depsTail=n):ke.deps=ke.depsTail=n,v1(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=ke.depsTail,n.nextDep=void 0,ke.depsTail.nextDep=n,ke.depsTail=n,ke.deps===n&&(ke.deps=s)}return n}trigger(e){this.version++,Fa++,this.notify(e)}notify(e){Uh();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Hh()}}}function v1(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let s=e.deps;s;s=s.nextDep)v1(s)}const n=t.dep.subs;n!==t&&(t.prevSub=n,n&&(n.nextSub=t)),t.dep.subs=t}}const Nc=new WeakMap,Cr=Symbol(""),Of=Symbol(""),Va=Symbol("");function bn(t,e,n){if(Is&&ke){let s=Nc.get(t);s||Nc.set(t,s=new Map);let i=s.get(n);i||(s.set(n,i=new Su),i.map=s,i.key=n),i.track()}}function ui(t,e,n,s,i,r){const o=Nc.get(t);if(!o){Fa++;return}const a=l=>{l&&l.trigger()};if(Uh(),e==="clear")o.forEach(a);else{const l=bt(t),c=l&&bu(n);if(l&&n==="length"){const u=Number(s);o.forEach((d,f)=>{(f==="length"||f===Va||!Pn(f)&&f>=u)&&a(d)})}else switch((n!==void 0||o.has(void 0))&&a(o.get(n)),c&&a(o.get(Va)),e){case"add":l?c&&a(o.get("length")):(a(o.get(Cr)),Er(t)&&a(o.get(Of)));break;case"delete":l||(a(o.get(Cr)),Er(t)&&a(o.get(Of)));break;case"set":Er(t)&&a(o.get(Cr));break}}Hh()}function WE(t,e){const n=Nc.get(t);return n&&n.get(e)}function Gr(t){const e=ie(t);return e===t?e:(bn(e,"iterate",Va),Yn(t)?e:e.map(on))}function Eu(t){return bn(t=ie(t),"iterate",Va),t}const GE={__proto__:null,[Symbol.iterator](){return Nd(this,Symbol.iterator,on)},concat(...t){return Gr(this).concat(...t.map(e=>bt(e)?Gr(e):e))},entries(){return Nd(this,"entries",t=>(t[1]=on(t[1]),t))},every(t,e){return ni(this,"every",t,e,void 0,arguments)},filter(t,e){return ni(this,"filter",t,e,n=>n.map(on),arguments)},find(t,e){return ni(this,"find",t,e,on,arguments)},findIndex(t,e){return ni(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return ni(this,"findLast",t,e,on,arguments)},findLastIndex(t,e){return ni(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return ni(this,"forEach",t,e,void 0,arguments)},includes(...t){return Pd(this,"includes",t)},indexOf(...t){return Pd(this,"indexOf",t)},join(t){return Gr(this).join(t)},lastIndexOf(...t){return Pd(this,"lastIndexOf",t)},map(t,e){return ni(this,"map",t,e,void 0,arguments)},pop(){return Yo(this,"pop")},push(...t){return Yo(this,"push",t)},reduce(t,...e){return Nm(this,"reduce",t,e)},reduceRight(t,...e){return Nm(this,"reduceRight",t,e)},shift(){return Yo(this,"shift")},some(t,e){return ni(this,"some",t,e,void 0,arguments)},splice(...t){return Yo(this,"splice",t)},toReversed(){return Gr(this).toReversed()},toSorted(t){return Gr(this).toSorted(t)},toSpliced(...t){return Gr(this).toSpliced(...t)},unshift(...t){return Yo(this,"unshift",t)},values(){return Nd(this,"values",on)}};function Nd(t,e,n){const s=Eu(t),i=s[e]();return s!==t&&!Yn(t)&&(i._next=i.next,i.next=()=>{const r=i._next();return r.value&&(r.value=n(r.value)),r}),i}const KE=Array.prototype;function ni(t,e,n,s,i,r){const o=Eu(t),a=o!==t&&!Yn(t),l=o[e];if(l!==KE[e]){const d=l.apply(t,r);return a?on(d):d}let c=n;o!==t&&(a?c=function(d,f){return n.call(this,on(d),f,t)}:n.length>2&&(c=function(d,f){return n.call(this,d,f,t)}));const u=l.call(o,c,s);return a&&i?i(u):u}function Nm(t,e,n,s){const i=Eu(t);let r=n;return i!==t&&(Yn(t)?n.length>3&&(r=function(o,a,l){return n.call(this,o,a,l,t)}):r=function(o,a,l){return n.call(this,o,on(a),l,t)}),i[e](r,...s)}function Pd(t,e,n){const s=ie(t);bn(s,"iterate",Va);const i=s[e](...n);return(i===-1||i===!1)&&Cu(n[0])?(n[0]=ie(n[0]),s[e](...n)):i}function Yo(t,e,n=[]){Ei(),Uh();const s=ie(t)[e].apply(t,n);return Hh(),wi(),s}const zE=nn("__proto__,__v_isRef,__isVue"),_1=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Pn));function qE(t){Pn(t)||(t=String(t));const e=ie(this);return bn(e,"has",t),e.hasOwnProperty(t)}class S1{constructor(e=!1,n=!1){this._isReadonly=e,this._isShallow=n}get(e,n,s){if(n==="__v_skip")return e.__v_skip;const i=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!i;if(n==="__v_isReadonly")return i;if(n==="__v_isShallow")return r;if(n==="__v_raw")return s===(i?r?A1:T1:r?C1:k1).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(s)?e:void 0;const o=bt(e);if(!i){let l;if(o&&(l=GE[n]))return l;if(n==="hasOwnProperty")return qE}const a=Reflect.get(e,n,Ie(e)?e:s);return(Pn(n)?_1.has(n):zE(n))||(i||bn(e,"get",n),r)?a:Ie(a)?o&&bu(n)?a:a.value:be(a)?i?Wh(a):$o(a):a}}class E1 extends S1{constructor(e=!1){super(!1,e)}set(e,n,s,i){let r=e[n];if(!this._isShallow){const l=ki(r);if(!Yn(s)&&!ki(s)&&(r=ie(r),s=ie(s)),!bt(e)&&Ie(r)&&!Ie(s))return l||(r.value=s),!0}const o=bt(e)&&bu(n)?Number(n)t,xl=t=>Reflect.getPrototypeOf(t);function QE(t,e,n){return function(...s){const i=this.__v_raw,r=ie(i),o=Er(r),a=t==="entries"||t===Symbol.iterator&&o,l=t==="keys"&&o,c=i[t](...s),u=n?xf:e?Pc:on;return!e&&bn(r,"iterate",l?Of:Cr),{next(){const{value:d,done:f}=c.next();return f?{value:d,done:f}:{value:a?[u(d[0]),u(d[1])]:u(d),done:f}},[Symbol.iterator](){return this}}}}function Il(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function tw(t,e){const n={get(i){const r=this.__v_raw,o=ie(r),a=ie(i);t||(yn(i,a)&&bn(o,"get",i),bn(o,"get",a));const{has:l}=xl(o),c=e?xf:t?Pc:on;if(l.call(o,i))return c(r.get(i));if(l.call(o,a))return c(r.get(a));r!==o&&r.get(i)},get size(){const i=this.__v_raw;return!t&&bn(ie(i),"iterate",Cr),i.size},has(i){const r=this.__v_raw,o=ie(r),a=ie(i);return t||(yn(i,a)&&bn(o,"has",i),bn(o,"has",a)),i===a?r.has(i):r.has(i)||r.has(a)},forEach(i,r){const o=this,a=o.__v_raw,l=ie(a),c=e?xf:t?Pc:on;return!t&&bn(l,"iterate",Cr),a.forEach((u,d)=>i.call(r,c(u),c(d),o))}};return Zt(n,t?{add:Il("add"),set:Il("set"),delete:Il("delete"),clear:Il("clear")}:{add(i){!e&&!Yn(i)&&!ki(i)&&(i=ie(i));const r=ie(this);return xl(r).has.call(r,i)||(r.add(i),ui(r,"add",i,i)),this},set(i,r){!e&&!Yn(r)&&!ki(r)&&(r=ie(r));const o=ie(this),{has:a,get:l}=xl(o);let c=a.call(o,i);c||(i=ie(i),c=a.call(o,i));const u=l.call(o,i);return o.set(i,r),c?yn(r,u)&&ui(o,"set",i,r):ui(o,"add",i,r),this},delete(i){const r=ie(this),{has:o,get:a}=xl(r);let l=o.call(r,i);l||(i=ie(i),l=o.call(r,i)),a&&a.call(r,i);const c=r.delete(i);return l&&ui(r,"delete",i,void 0),c},clear(){const i=ie(this),r=i.size!==0,o=i.clear();return r&&ui(i,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=QE(i,t,e)}),n}function wu(t,e){const n=tw(t,e);return(s,i,r)=>i==="__v_isReactive"?!t:i==="__v_isReadonly"?t:i==="__v_raw"?s:Reflect.get(he(n,i)&&i in s?n:s,i,r)}const ew={get:wu(!1,!1)},nw={get:wu(!1,!0)},sw={get:wu(!0,!1)},iw={get:wu(!0,!0)},k1=new WeakMap,C1=new WeakMap,T1=new WeakMap,A1=new WeakMap;function rw(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ow(t){return t.__v_skip||!Object.isExtensible(t)?0:rw(Qb(t))}function $o(t){return ki(t)?t:ku(t,!1,XE,ew,k1)}function Bh(t){return ku(t,!1,ZE,nw,C1)}function Wh(t){return ku(t,!0,YE,sw,T1)}function aw(t){return ku(t,!0,JE,iw,A1)}function ku(t,e,n,s,i){if(!be(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const r=ow(t);if(r===0)return t;const o=i.get(t);if(o)return o;const a=new Proxy(t,r===2?s:n);return i.set(t,a),a}function Xs(t){return ki(t)?Xs(t.__v_raw):!!(t&&t.__v_isReactive)}function ki(t){return!!(t&&t.__v_isReadonly)}function Yn(t){return!!(t&&t.__v_isShallow)}function Cu(t){return t?!!t.__v_raw:!1}function ie(t){const e=t&&t.__v_raw;return e?ie(e):t}function Tu(t){return!he(t,"__v_skip")&&Object.isExtensible(t)&&Dh(t,"__v_skip",!0),t}const on=t=>be(t)?$o(t):t,Pc=t=>be(t)?Wh(t):t;function Ie(t){return t?t.__v_isRef===!0:!1}function cs(t){return O1(t,!1)}function Au(t){return O1(t,!0)}function O1(t,e){return Ie(t)?t:new lw(t,e)}class lw{constructor(e,n){this.dep=new Su,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?e:ie(e),this._value=n?e:on(e),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(e){const n=this._rawValue,s=this.__v_isShallow||Yn(e)||ki(e);e=s?e:ie(e),yn(e,n)&&(this._rawValue=e,this._value=s?e:on(e),this.dep.trigger())}}function cw(t){t.dep&&t.dep.trigger()}function Vn(t){return Ie(t)?t.value:t}function uw(t){return It(t)?t():Vn(t)}const dw={get:(t,e,n)=>e==="__v_raw"?t:Vn(Reflect.get(t,e,n)),set:(t,e,n,s)=>{const i=t[e];return Ie(i)&&!Ie(n)?(i.value=n,!0):Reflect.set(t,e,n,s)}};function Gh(t){return Xs(t)?t:new Proxy(t,dw)}class fw{constructor(e){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Su,{get:s,set:i}=e(n.track.bind(n),n.trigger.bind(n));this._get=s,this._set=i}get value(){return this._value=this._get()}set value(e){this._set(e)}}function x1(t){return new fw(t)}function I1(t){const e=bt(t)?new Array(t.length):{};for(const n in t)e[n]=N1(t,n);return e}class hw{constructor(e,n,s){this._object=e,this._key=n,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0}get value(){const e=this._object[this._key];return this._value=e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return WE(ie(this._object),this._key)}}class pw{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function mw(t,e,n){return Ie(t)?t:It(t)?new pw(t):be(t)&&arguments.length>1?N1(t,e,n):cs(t)}function N1(t,e,n){const s=t[e];return Ie(s)?s:new hw(t,e,n)}class gw{constructor(e,n,s){this.fn=e,this.setter=n,this._value=void 0,this.dep=new Su(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Fa-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&ke!==this)return p1(this,!0),!0}get value(){const e=this.dep.track();return y1(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function yw(t,e,n=!1){let s,i;return It(t)?s=t:(s=t.get,i=t.set),new gw(s,i,n)}const bw={GET:"get",HAS:"has",ITERATE:"iterate"},vw={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},Nl={},Rc=new WeakMap;let Vi;function _w(){return Vi}function P1(t,e=!1,n=Vi){if(n){let s=Rc.get(n);s||Rc.set(n,s=[]),s.push(t)}}function Sw(t,e,n=Yt){const{immediate:s,deep:i,once:r,scheduler:o,augmentJob:a,call:l}=n,c=b=>i?b:Yn(b)||i===!1||i===0?di(b,1):di(b);let u,d,f,h,p=!1,m=!1;if(Ie(t)?(d=()=>t.value,p=Yn(t)):Xs(t)?(d=()=>c(t),p=!0):bt(t)?(m=!0,p=t.some(b=>Xs(b)||Yn(b)),d=()=>t.map(b=>{if(Ie(b))return b.value;if(Xs(b))return c(b);if(It(b))return l?l(b,2):b()})):It(t)?e?d=l?()=>l(t,2):t:d=()=>{if(f){Ei();try{f()}finally{wi()}}const b=Vi;Vi=u;try{return l?l(t,3,[h]):t(h)}finally{Vi=b}}:d=Qe,e&&i){const b=d,E=i===!0?1/0:i;d=()=>di(b(),E)}const v=Vh(),y=()=>{u.stop(),v&&v.active&&gu(v.effects,u)};if(r&&e){const b=e;e=(...E)=>{b(...E),y()}}let _=m?new Array(t.length).fill(Nl):Nl;const g=b=>{if(!(!(u.flags&1)||!u.dirty&&!b))if(e){const E=u.run();if(i||p||(m?E.some((k,I)=>yn(k,_[I])):yn(E,_))){f&&f();const k=Vi;Vi=u;try{const I=[E,_===Nl?void 0:m&&_[0]===Nl?[]:_,h];_=E,l?l(e,3,I):e(...I)}finally{Vi=k}}}else u.run()};return a&&a(g),u=new $a(d),u.scheduler=o?()=>o(g,!1):g,h=b=>P1(b,!1,u),f=u.onStop=()=>{const b=Rc.get(u);if(b){if(l)l(b,4);else for(const E of b)E();Rc.delete(u)}},e?s?g(!0):_=u.run():o?o(g.bind(null,!0),!0):u.run(),y.pause=u.pause.bind(u),y.resume=u.resume.bind(u),y.stop=y,y}function di(t,e=1/0,n){if(e<=0||!be(t)||t.__v_skip||(n=n||new Map,(n.get(t)||0)>=e))return t;if(n.set(t,e),e--,Ie(t))di(t.value,e,n);else if(bt(t))for(let s=0;s{di(s,e,n)});else if(rl(t)){for(const s in t)di(t[s],e,n);for(const s of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,s)&&di(t[s],e,n)}return t}/** * @vue/runtime-core v3.5.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const P1=[];function Ew(t){P1.push(t)}function ww(){P1.pop()}function kw(t,e){}const Cw={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},Tw={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function $o(t,e,n,s){try{return s?t(...s):t()}catch(i){Vr(i,e,n)}}function ps(t,e,n,s){if(xt(t)){const i=$o(t,e,n,s);return i&&yu(i)&&i.catch(r=>{Vr(r,e,n)}),i}if(bt(t)){const i=[];for(let r=0;r>>1,i=On[s],r=Ua(i);r=Ua(n)?On.push(t):On.splice(Ow(e),0,t),t.flags|=1,D1()}}function D1(){Rc||(Rc=R1.then(L1))}function Va(t){bt(t)?ho.push(...t):Ui&&t.id===-1?Ui.splice(no+1,0,t):t.flags&1||(ho.push(t),t.flags|=1),D1()}function Dm(t,e,n=Gs+1){for(;nUa(n)-Ua(s));if(ho.length=0,Ui){Ui.push(...e);return}for(Ui=e,no=0;not.id==null?t.flags&2?-1:1/0:t.id;function L1(t){try{for(Gs=0;Gsso.emit(i,...r)),Pl=[]):typeof window<"u"&&window.HTMLElement&&!((s=(n=window.navigator)==null?void 0:n.userAgent)!=null&&s.includes("jsdom"))?((e.__VUE_DEVTOOLS_HOOK_REPLAY__=e.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(r=>{M1(r,e)}),setTimeout(()=>{so||(e.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Pl=[])},3e3)):Pl=[]}let ln=null,Ou=null;function Ha(t){const e=ln;return ln=t,Ou=t&&t.type.__scopeId||null,e}function xw(t){Ou=t}function Iw(){Ou=null}const Nw=t=>L;function L(t,e=ln,n){if(!e||t._n)return t;const s=(...i)=>{s._d&&Wa(-1);const r=Ha(e);let o;try{o=t(...i)}finally{Ha(r),s._d&&Wa(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function ms(t,e){if(ln===null)return t;const n=fl(ln),s=t.dirs||(t.dirs=[]);for(let i=0;it.__isTeleport,ya=t=>t&&(t.disabled||t.disabled===""),Lm=t=>t&&(t.defer||t.defer===""),Mm=t=>typeof SVGElement<"u"&&t instanceof SVGElement,$m=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Nf=(t,e)=>{const n=t&&t.to;return Rt(n)?e?e(n):null:n},V1={name:"Teleport",__isTeleport:!0,process(t,e,n,s,i,r,o,a,l,c){const{mc:u,pc:d,pbc:f,o:{insert:h,querySelector:p,createText:m,createComment:_}}=c,y=ya(e.props);let{shapeFlag:v,children:g,dynamicChildren:b}=e;if(t==null){const S=e.el=m(""),k=e.anchor=m("");h(S,n,s),h(k,n,s);const I=(C,R)=>{v&16&&(i&&i.isCE&&(i.ce._teleportTarget=C),u(g,C,R,i,r,o,a,l))},D=()=>{const C=e.target=Nf(e.props,p),R=U1(C,e,m,h);C&&(o!=="svg"&&Mm(C)?o="svg":o!=="mathml"&&$m(C)&&(o="mathml"),y||(I(C,R),oc(e,!1)))};y&&(I(n,k),oc(e,!0)),Lm(e.props)?(e.el.__isMounted=!1,Ye(()=>{D(),delete e.el.__isMounted},r)):D()}else{if(Lm(e.props)&&t.el.__isMounted===!1){Ye(()=>{V1.process(t,e,n,s,i,r,o,a,l,c)},r);return}e.el=t.el,e.targetStart=t.targetStart;const S=e.anchor=t.anchor,k=e.target=t.target,I=e.targetAnchor=t.targetAnchor,D=ya(t.props),C=D?n:k,R=D?S:I;if(o==="svg"||Mm(k)?o="svg":(o==="mathml"||$m(k))&&(o="mathml"),b?(f(t.dynamicChildren,b,C,i,r,o,a),ap(t,e,!0)):l||d(t,e,C,R,i,r,o,a,!1),y)D?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):Rl(e,n,S,c,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const B=e.target=Nf(e.props,p);B&&Rl(e,B,null,c,0)}else D&&Rl(e,k,I,c,1);oc(e,y)}},remove(t,e,n,{um:s,o:{remove:i}},r){const{shapeFlag:o,children:a,anchor:l,targetStart:c,targetAnchor:u,target:d,props:f}=t;if(d&&(i(c),i(u)),r&&i(l),o&16){const h=r||!ya(f);for(let p=0;p{t.isMounted=!0}),Pu(()=>{t.isUnmounting=!0}),t}const ns=[Function,Array],Yh={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ns,onEnter:ns,onAfterEnter:ns,onEnterCancelled:ns,onBeforeLeave:ns,onLeave:ns,onAfterLeave:ns,onLeaveCancelled:ns,onBeforeAppear:ns,onAppear:ns,onAfterAppear:ns,onAppearCancelled:ns},H1=t=>{const e=t.subTree;return e.component?H1(e.component):e},Dw={name:"BaseTransition",props:Yh,setup(t,{slots:e}){const n=cn(),s=Xh();return()=>{const i=e.default&&xu(e.default(),!0);if(!i||!i.length)return;const r=j1(i),o=ie(t),{mode:a}=o;if(s.isLeaving)return Dd(r);const l=Fm(r);if(!l)return Dd(r);let c=_o(l,o,s,n,d=>c=d);l.type!==Be&&Ci(l,c);let u=n.subTree&&Fm(n.subTree);if(u&&u.type!==Be&&!As(u,l)&&H1(n).type!==Be){let d=_o(u,o,s,n);if(Ci(u,d),a==="out-in"&&l.type!==Be)return s.isLeaving=!0,d.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,u=void 0},Dd(r);a==="in-out"&&l.type!==Be?d.delayLeave=(f,h,p)=>{const m=W1(s,u);m[String(u.key)]=u,f[ci]=()=>{h(),f[ci]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{p(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return r}}};function j1(t){let e=t[0];if(t.length>1){for(const n of t)if(n.type!==Be){e=n;break}}return e}const B1=Dw;function W1(t,e){const{leavingVNodes:n}=t;let s=n.get(e.type);return s||(s=Object.create(null),n.set(e.type,s)),s}function _o(t,e,n,s,i){const{appear:r,mode:o,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:h,onAfterLeave:p,onLeaveCancelled:m,onBeforeAppear:_,onAppear:y,onAfterAppear:v,onAppearCancelled:g}=e,b=String(t.key),S=W1(n,t),k=(C,R)=>{C&&ps(C,s,9,R)},I=(C,R)=>{const B=R[1];k(C,R),bt(C)?C.every($=>$.length<=1)&&B():C.length<=1&&B()},D={mode:o,persisted:a,beforeEnter(C){let R=l;if(!n.isMounted)if(r)R=_||l;else return;C[ci]&&C[ci](!0);const B=S[b];B&&As(t,B)&&B.el[ci]&&B.el[ci](),k(R,[C])},enter(C){let R=c,B=u,$=d;if(!n.isMounted)if(r)R=y||c,B=v||u,$=g||d;else return;let H=!1;const X=C[Dl]=ot=>{H||(H=!0,ot?k($,[C]):k(B,[C]),D.delayedLeave&&D.delayedLeave(),C[Dl]=void 0)};R?I(R,[C,X]):X()},leave(C,R){const B=String(t.key);if(C[Dl]&&C[Dl](!0),n.isUnmounting)return R();k(f,[C]);let $=!1;const H=C[ci]=X=>{$||($=!0,R(),X?k(m,[C]):k(p,[C]),C[ci]=void 0,S[B]===t&&delete S[B])};S[B]=t,h?I(h,[C,H]):H()},clone(C){const R=_o(C,e,n,s,i);return i&&i(R),R}};return D}function Dd(t){if(ll(t))return t=Js(t),t.children=null,t}function Fm(t){if(!ll(t))return F1(t.type)&&t.children?j1(t.children):t;if(t.component)return t.component.subTree;const{shapeFlag:e,children:n}=t;if(n){if(e&16)return n[0];if(e&32&&xt(n.default))return n.default()}}function Ci(t,e){t.shapeFlag&6&&t.component?(t.transition=e,Ci(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function xu(t,e=!1,n){let s=[],i=0;for(let r=0;r1)for(let r=0;rn.value,set:r=>n.value=r})}return n}const Lc=new WeakMap;function po(t,e,n,s,i=!1){if(bt(t)){t.forEach((p,m)=>po(p,e&&(bt(e)?e[m]:e),n,s,i));return}if(Zi(s)&&!i){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&po(t,e,n,s.component.subTree);return}const r=s.shapeFlag&4?fl(s.component):s.el,o=i?null:r,{i:a,r:l}=t,c=e&&e.r,u=a.refs===Yt?a.refs={}:a.refs,d=a.setupState,f=ie(d),h=d===Yt?yr:p=>de(f,p);if(c!=null&&c!==l){if(Vm(e),Rt(c))u[c]=null,h(c)&&(d[c]=null);else if(Ie(c)){c.value=null;const p=e;p.k&&(u[p.k]=null)}}if(xt(l))$o(l,a,12,[o,u]);else{const p=Rt(l),m=Ie(l);if(p||m){const _=()=>{if(t.f){const y=p?h(l)?d[l]:u[l]:l.value;if(i)bt(y)&&gu(y,r);else if(bt(y))y.includes(r)||y.push(r);else if(p)u[l]=[r],h(l)&&(d[l]=u[l]);else{const v=[r];l.value=v,t.k&&(u[t.k]=v)}}else p?(u[l]=o,h(l)&&(d[l]=o)):m&&(l.value=o,t.k&&(u[t.k]=o))};if(o){const y=()=>{_(),Lc.delete(t)};y.id=-1,Lc.set(t,y),Ye(y,n)}else Vm(t),_()}}}function Vm(t){const e=Lc.get(t);e&&(e.flags|=8,Lc.delete(t))}let Um=!1;const Kr=()=>{Um||(console.error("Hydration completed but contains mismatches."),Um=!0)},$w=t=>t.namespaceURI.includes("svg")&&t.tagName!=="foreignObject",Fw=t=>t.namespaceURI.includes("MathML"),Ll=t=>{if(t.nodeType===1){if($w(t))return"svg";if(Fw(t))return"mathml"}},lo=t=>t.nodeType===8;function Vw(t){const{mt:e,p:n,o:{patchProp:s,createText:i,nextSibling:r,parentNode:o,remove:a,insert:l,createComment:c}}=t,u=(g,b)=>{if(!b.hasChildNodes()){n(null,g,b),Dc(),b._vnode=g;return}d(b.firstChild,g,null,null,null),Dc(),b._vnode=g},d=(g,b,S,k,I,D=!1)=>{D=D||!!b.dynamicChildren;const C=lo(g)&&g.data==="[",R=()=>m(g,b,S,k,I,C),{type:B,ref:$,shapeFlag:H,patchFlag:X}=b;let ot=g.nodeType;b.el=g,X===-2&&(D=!1,b.dynamicChildren=null);let G=null;switch(B){case yi:ot!==3?b.children===""?(l(b.el=i(""),o(g),g),G=g):G=R():(g.data!==b.children&&(Kr(),g.data=b.children),G=r(g));break;case Be:v(g)?(G=r(g),y(b.el=g.content.firstChild,g,S)):ot!==8||C?G=R():G=r(g);break;case Ar:if(C&&(g=r(g),ot=g.nodeType),ot===1||ot===3){G=g;const tt=!b.children.length;for(let at=0;at{D=D||!!b.dynamicChildren;const{type:C,props:R,patchFlag:B,shapeFlag:$,dirs:H,transition:X}=b,ot=C==="input"||C==="option";if(ot||B!==-1){H&&Ks(b,null,S,"created");let G=!1;if(v(g)){G=mv(null,X)&&S&&S.vnode.props&&S.vnode.props.appear;const at=g.content.firstChild;if(G){const kt=at.getAttribute("class");kt&&(at.$cls=kt),X.beforeEnter(at)}y(at,g,S),b.el=g=at}if($&16&&!(R&&(R.innerHTML||R.textContent))){let at=h(g.firstChild,b,g,S,k,I,D);for(;at;){Ml(g,1)||Kr();const kt=at;at=at.nextSibling,a(kt)}}else if($&8){let at=b.children;at[0]===` -`&&(g.tagName==="PRE"||g.tagName==="TEXTAREA")&&(at=at.slice(1)),g.textContent!==at&&(Ml(g,0)||Kr(),g.textContent=b.children)}if(R){if(ot||!D||B&48){const at=g.tagName.includes("-");for(const kt in R)(ot&&(kt.endsWith("value")||kt==="indeterminate")||nr(kt)&&!gi(kt)||kt[0]==="."||at)&&s(g,kt,null,R[kt],void 0,S)}else if(R.onClick)s(g,"onClick",null,R.onClick,void 0,S);else if(B&4&&Xs(R.style))for(const at in R.style)R.style[at]}let tt;(tt=R&&R.onVnodeBeforeMount)&&$n(tt,S,b),H&&Ks(b,null,S,"beforeMount"),((tt=R&&R.onVnodeMounted)||H||G)&&Cv(()=>{tt&&$n(tt,S,b),G&&X.enter(g),H&&Ks(b,null,S,"mounted")},k)}return g.nextSibling},h=(g,b,S,k,I,D,C)=>{C=C||!!b.dynamicChildren;const R=b.children,B=R.length;for(let $=0;${const{slotScopeIds:C}=b;C&&(I=I?I.concat(C):C);const R=o(g),B=h(r(g),b,R,S,k,I,D);return B&&lo(B)&&B.data==="]"?r(b.anchor=B):(Kr(),l(b.anchor=c("]"),R,B),B)},m=(g,b,S,k,I,D)=>{if(Ml(g.parentElement,1)||Kr(),b.el=null,D){const B=_(g);for(;;){const $=r(g);if($&&$!==B)a($);else break}}const C=r(g),R=o(g);return a(g),n(null,b,R,C,S,k,Ll(R),I),S&&(S.vnode.el=b.el,Du(S,b.el)),C},_=(g,b="[",S="]")=>{let k=0;for(;g;)if(g=r(g),g&&lo(g)&&(g.data===b&&k++,g.data===S)){if(k===0)return r(g);k--}return g},y=(g,b,S)=>{const k=b.parentNode;k&&k.replaceChild(g,b);let I=S;for(;I;)I.vnode.el===b&&(I.vnode.el=I.subTree.el=g),I=I.parent},v=g=>g.nodeType===1&&g.tagName==="TEMPLATE";return[u,d]}const Hm="data-allow-mismatch",Uw={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function Ml(t,e){if(e===0||e===1)for(;t&&!t.hasAttribute(Hm);)t=t.parentElement;const n=t&&t.getAttribute(Hm);if(n==null)return!1;if(n==="")return!0;{const s=n.split(",");return e===0&&s.includes("children")?!0:s.includes(Uw[e])}}const Hw=ol().requestIdleCallback||(t=>setTimeout(t,1)),jw=ol().cancelIdleCallback||(t=>clearTimeout(t)),Bw=(t=1e4)=>e=>{const n=Hw(e,{timeout:t});return()=>jw(n)};function Ww(t){const{top:e,left:n,bottom:s,right:i}=t.getBoundingClientRect(),{innerHeight:r,innerWidth:o}=window;return(e>0&&e0&&s0&&n0&&i(e,n)=>{const s=new IntersectionObserver(i=>{for(const r of i)if(r.isIntersecting){s.disconnect(),e();break}},t);return n(i=>{if(i instanceof Element){if(Ww(i))return e(),s.disconnect(),!1;s.observe(i)}}),()=>s.disconnect()},Kw=t=>e=>{if(t){const n=matchMedia(t);if(n.matches)e();else return n.addEventListener("change",e,{once:!0}),()=>n.removeEventListener("change",e)}},qw=(t=[])=>(e,n)=>{Rt(t)&&(t=[t]);let s=!1;const i=o=>{s||(s=!0,r(),e(),o.target.dispatchEvent(new o.constructor(o.type,o)))},r=()=>{n(o=>{for(const a of t)o.removeEventListener(a,i)})};return n(o=>{for(const a of t)o.addEventListener(a,i,{once:!0})}),r};function zw(t,e){if(lo(t)&&t.data==="["){let n=1,s=t.nextSibling;for(;s;){if(s.nodeType===1){if(e(s)===!1)break}else if(lo(s))if(s.data==="]"){if(--n===0)break}else s.data==="["&&n++;s=s.nextSibling}}else e(t)}const Zi=t=>!!t.type.__asyncLoader;function Xw(t){xt(t)&&(t={loader:t});const{loader:e,loadingComponent:n,errorComponent:s,delay:i=200,hydrate:r,timeout:o,suspensible:a=!0,onError:l}=t;let c=null,u,d=0;const f=()=>(d++,c=null,h()),h=()=>{let p;return c||(p=c=e().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),l)return new Promise((_,y)=>{l(m,()=>_(f()),()=>y(m),d+1)});throw m}).then(m=>p!==c&&c?c:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),u=m,m)))};return Oi({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(p,m,_){let y=!1;(m.bu||(m.bu=[])).push(()=>y=!0);const v=()=>{y||_()},g=r?()=>{const b=r(v,S=>zw(p,S));b&&(m.bum||(m.bum=[])).push(b)}:v;u?g():h().then(()=>!m.isUnmounted&&g())},get __asyncResolved(){return u},setup(){const p=an;if(Zh(p),u)return()=>Ld(u,p);const m=g=>{c=null,Vr(g,p,13,!s)};if(a&&p.suspense||So)return h().then(g=>()=>Ld(g,p)).catch(g=>(m(g),()=>s?E(s,{error:g}):null));const _=cs(!1),y=cs(),v=cs(!!i);return i&&setTimeout(()=>{v.value=!1},i),o!=null&&setTimeout(()=>{if(!_.value&&!y.value){const g=new Error(`Async component timed out after ${o}ms.`);m(g),y.value=g}},o),h().then(()=>{_.value=!0,p.parent&&ll(p.parent.vnode)&&p.parent.update()}).catch(g=>{m(g),y.value=g}),()=>{if(_.value&&u)return Ld(u,p);if(y.value&&s)return E(s,{error:y.value});if(n&&!v.value)return E(n)}}})}function Ld(t,e){const{ref:n,props:s,children:i,ce:r}=e.vnode,o=E(t,s,i);return o.ref=n,o.ce=r,delete e.vnode.ce,o}const ll=t=>t.type.__isKeepAlive,Yw={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(t,{slots:e}){const n=cn(),s=n.ctx;if(!s.renderer)return()=>{const v=e.default&&e.default();return v&&v.length===1?v[0]:v};const i=new Map,r=new Set;let o=null;const a=n.suspense,{renderer:{p:l,m:c,um:u,o:{createElement:d}}}=s,f=d("div");s.activate=(v,g,b,S,k)=>{const I=v.component;c(v,g,b,0,a),l(I.vnode,v,g,b,I,a,S,v.slotScopeIds,k),Ye(()=>{I.isDeactivated=!1,I.a&&kr(I.a);const D=v.props&&v.props.onVnodeMounted;D&&$n(D,I.parent,v)},a)},s.deactivate=v=>{const g=v.component;$c(g.m),$c(g.a),c(v,f,null,1,a),Ye(()=>{g.da&&kr(g.da);const b=v.props&&v.props.onVnodeUnmounted;b&&$n(b,g.parent,v),g.isDeactivated=!0},a)};function h(v){Md(v),u(v,n,a,!0)}function p(v){i.forEach((g,b)=>{const S=jf(g.type);S&&!v(S)&&m(b)})}function m(v){const g=i.get(v);g&&(!o||!As(g,o))?h(g):o&&Md(o),i.delete(v),r.delete(v)}Zn(()=>[t.include,t.exclude],([v,g])=>{v&&p(b=>ra(v,b)),g&&p(b=>!ra(g,b))},{flush:"post",deep:!0});let _=null;const y=()=>{_!=null&&(Fc(n.subTree.type)?Ye(()=>{i.set(_,$l(n.subTree))},n.subTree.suspense):i.set(_,$l(n.subTree)))};return Fo(y),Nu(y),Pu(()=>{i.forEach(v=>{const{subTree:g,suspense:b}=n,S=$l(g);if(v.type===S.type&&v.key===S.key){Md(S);const k=S.component.da;k&&Ye(k,b);return}h(v)})}),()=>{if(_=null,!e.default)return o=null;const v=e.default(),g=v[0];if(v.length>1)return o=null,v;if(!Ti(g)||!(g.shapeFlag&4)&&!(g.shapeFlag&128))return o=null,g;let b=$l(g);if(b.type===Be)return o=null,b;const S=b.type,k=jf(Zi(b)?b.type.__asyncResolved||{}:S),{include:I,exclude:D,max:C}=t;if(I&&(!k||!ra(I,k))||D&&k&&ra(D,k))return b.shapeFlag&=-257,o=b,g;const R=b.key==null?S:b.key,B=i.get(R);return b.el&&(b=Js(b),g.shapeFlag&128&&(g.ssContent=b)),_=R,B?(b.el=B.el,b.component=B.component,b.transition&&Ci(b,b.transition),b.shapeFlag|=512,r.delete(R),r.add(R)):(r.add(R),C&&r.size>parseInt(C,10)&&m(r.values().next().value)),b.shapeFlag|=256,o=b,Fc(g.type)?g:b}}},Zw=Yw;function ra(t,e){return bt(t)?t.some(n=>ra(n,e)):Rt(t)?t.split(",").includes(e):Zb(t)?(t.lastIndex=0,t.test(e)):!1}function G1(t,e){q1(t,"a",e)}function K1(t,e){q1(t,"da",e)}function q1(t,e,n=an){const s=t.__wdc||(t.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return t()});if(Iu(e,s,n),n){let i=n.parent;for(;i&&i.parent;)ll(i.parent.vnode)&&Jw(s,e,n,i),i=i.parent}}function Jw(t,e,n,s){const i=Iu(e,t,s,!0);cl(()=>{gu(s[e],i)},n)}function Md(t){t.shapeFlag&=-257,t.shapeFlag&=-513}function $l(t){return t.shapeFlag&128?t.ssContent:t}function Iu(t,e,n=an,s=!1){if(n){const i=n[t]||(n[t]=[]),r=e.__weh||(e.__weh=(...o)=>{Ei();const a=Pr(n),l=ps(e,n,t,o);return a(),wi(),l});return s?i.unshift(r):i.push(r),r}}const xi=t=>(e,n=an)=>{(!So||t==="sp")&&Iu(t,(...s)=>e(...s),n)},z1=xi("bm"),Fo=xi("m"),Jh=xi("bu"),Nu=xi("u"),Pu=xi("bum"),cl=xi("um"),X1=xi("sp"),Y1=xi("rtg"),Z1=xi("rtc");function J1(t,e=an){Iu("ec",t,e)}const Qh="components",Qw="directives";function w(t,e){return np(Qh,t,!0,e)||t}const Q1=Symbol.for("v-ndc");function tp(t){return Rt(t)?np(Qh,t,!1)||t:t||Q1}function ep(t){return np(Qw,t)}function np(t,e,n=!0,s=!1){const i=ln||an;if(i){const r=i.type;if(t===Qh){const a=jf(r,!1);if(a&&(a===e||a===Ce(e)||a===ir(Ce(e))))return r}const o=jm(i[t]||r[t],e)||jm(i.appContext[t],e);return!o&&s?r:o}}function jm(t,e){return t&&(t[e]||t[Ce(e)]||t[ir(Ce(e))])}function ce(t,e,n,s){let i;const r=n&&n[s],o=bt(t);if(o||Rt(t)){const a=o&&Xs(t);let l=!1,c=!1;a&&(l=!Yn(t),c=ki(t),t=Eu(t)),i=new Array(t.length);for(let u=0,d=t.length;ue(a,l,void 0,r&&r[l]));else{const a=Object.keys(t);i=new Array(a.length);for(let l=0,c=a.length;l{const r=s.fn(...i);return r&&(r.key=s.key),r}:s.fn)}return t}function le(t,e,n={},s,i){if(ln.ce||ln.parent&&Zi(ln.parent)&&ln.parent.ce)return e!=="default"&&(n.name=e),O(),pt(it,null,[E("slot",n,s&&s())],64);let r=t[e];r&&r._c&&(r._d=!1),O();const o=r&&sp(r(n)),a=n.key||o&&o.key,l=pt(it,{key:(a&&!Pn(a)?a:`_${e}`)+(!o&&s?"_fb":"")},o||(s?s():[]),o&&t._===1?64:-2);return!i&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),r&&r._c&&(r._d=!0),l}function sp(t){return t.some(e=>Ti(e)?!(e.type===Be||e.type===it&&!sp(e.children)):!0)?t:null}function t3(t,e){const n={};for(const s in t)n[e&&/[A-Z]/.test(s)?`on:${s}`:wr(s)]=t[s];return n}const Pf=t=>t?Nv(t)?fl(t):Pf(t.parent):null,ba=Zt(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Pf(t.parent),$root:t=>Pf(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>ip(t),$forceUpdate:t=>t.f||(t.f=()=>{zh(t.update)}),$nextTick:t=>t.n||(t.n=Ur.bind(t.proxy)),$watch:t=>I3.bind(t)}),$d=(t,e)=>t!==Yt&&!t.__isScriptSetup&&de(t,e),Rf={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:n,setupState:s,data:i,props:r,accessCache:o,type:a,appContext:l}=t;let c;if(e[0]!=="$"){const h=o[e];if(h!==void 0)switch(h){case 1:return s[e];case 2:return i[e];case 4:return n[e];case 3:return r[e]}else{if($d(s,e))return o[e]=1,s[e];if(i!==Yt&&de(i,e))return o[e]=2,i[e];if((c=t.propsOptions[0])&&de(c,e))return o[e]=3,r[e];if(n!==Yt&&de(n,e))return o[e]=4,n[e];Df&&(o[e]=0)}}const u=ba[e];let d,f;if(u)return e==="$attrs"&&bn(t.attrs,"get",""),u(t);if((d=a.__cssModules)&&(d=d[e]))return d;if(n!==Yt&&de(n,e))return o[e]=4,n[e];if(f=l.config.globalProperties,de(f,e))return f[e]},set({_:t},e,n){const{data:s,setupState:i,ctx:r}=t;return $d(i,e)?(i[e]=n,!0):s!==Yt&&de(s,e)?(s[e]=n,!0):de(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(r[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:s,appContext:i,propsOptions:r,type:o}},a){let l,c;return!!(n[a]||t!==Yt&&a[0]!=="$"&&de(t,a)||$d(e,a)||(l=r[0])&&de(l,a)||de(s,a)||de(ba,a)||de(i.config.globalProperties,a)||(c=o.__cssModules)&&c[a])},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:de(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}},e3=Zt({},Rf,{get(t,e){if(e!==Symbol.unscopables)return Rf.get(t,e,t)},has(t,e){return e[0]!=="_"&&!$h(e)}});function n3(){return null}function s3(){return null}function i3(t){}function r3(t){}function o3(){return null}function a3(){}function l3(t,e){return null}function c3(){return tv().slots}function u3(){return tv().attrs}function tv(t){const e=cn();return e.setupContext||(e.setupContext=Dv(e))}function ja(t){return bt(t)?t.reduce((e,n)=>(e[n]=null,e),{}):t}function d3(t,e){const n=ja(t);for(const s in e){if(s.startsWith("__skip"))continue;let i=n[s];i?bt(i)||xt(i)?i=n[s]={type:i,default:e[s]}:i.default=e[s]:i===null&&(i=n[s]={default:e[s]}),i&&e[`__skip_${s}`]&&(i.skipFactory=!0)}return n}function f3(t,e){return!t||!e?t||e:bt(t)&&bt(e)?t.concat(e):Zt({},ja(t),ja(e))}function h3(t,e){const n={};for(const s in t)e.includes(s)||Object.defineProperty(n,s,{enumerable:!0,get:()=>t[s]});return n}function p3(t){const e=cn();let n=t();return Vf(),yu(n)&&(n=n.catch(s=>{throw Pr(e),s})),[n,()=>Pr(e)]}let Df=!0;function m3(t){const e=ip(t),n=t.proxy,s=t.ctx;Df=!1,e.beforeCreate&&Bm(e.beforeCreate,t,"bc");const{data:i,computed:r,methods:o,watch:a,provide:l,inject:c,created:u,beforeMount:d,mounted:f,beforeUpdate:h,updated:p,activated:m,deactivated:_,beforeDestroy:y,beforeUnmount:v,destroyed:g,unmounted:b,render:S,renderTracked:k,renderTriggered:I,errorCaptured:D,serverPrefetch:C,expose:R,inheritAttrs:B,components:$,directives:H,filters:X}=e;if(c&&g3(c,s,null),o)for(const tt in o){const at=o[tt];xt(at)&&(s[tt]=at.bind(n))}if(i){const tt=i.call(n,n);me(tt)&&(t.data=Mo(tt))}if(Df=!0,r)for(const tt in r){const at=r[tt],kt=xt(at)?at.bind(n,n):xt(at.get)?at.get.bind(n,n):Qe,zt=!xt(at)&&xt(at.set)?at.set.bind(n):Qe,Vt=Je({get:kt,set:zt});Object.defineProperty(s,tt,{enumerable:!0,configurable:!0,get:()=>Vt.value,set:Bt=>Vt.value=Bt})}if(a)for(const tt in a)ev(a[tt],s,n,tt);if(l){const tt=xt(l)?l.call(n):l;Reflect.ownKeys(tt).forEach(at=>{va(at,tt[at])})}u&&Bm(u,t,"c");function G(tt,at){bt(at)?at.forEach(kt=>tt(kt.bind(n))):at&&tt(at.bind(n))}if(G(z1,d),G(Fo,f),G(Jh,h),G(Nu,p),G(G1,m),G(K1,_),G(J1,D),G(Z1,k),G(Y1,I),G(Pu,v),G(cl,b),G(X1,C),bt(R))if(R.length){const tt=t.exposed||(t.exposed={});R.forEach(at=>{Object.defineProperty(tt,at,{get:()=>n[at],set:kt=>n[at]=kt,enumerable:!0})})}else t.exposed||(t.exposed={});S&&t.render===Qe&&(t.render=S),B!=null&&(t.inheritAttrs=B),$&&(t.components=$),H&&(t.directives=H),C&&Zh(t)}function g3(t,e,n=Qe){bt(t)&&(t=Lf(t));for(const s in t){const i=t[s];let r;me(i)?"default"in i?r=us(i.from||s,i.default,!0):r=us(i.from||s):r=us(i),Ie(r)?Object.defineProperty(e,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):e[s]=r}}function Bm(t,e,n){ps(bt(t)?t.map(s=>s.bind(e.proxy)):t.bind(e.proxy),e,n)}function ev(t,e,n,s){let i=s.includes(".")?Sv(n,s):()=>n[s];if(Rt(t)){const r=e[t];xt(r)&&Zn(i,r)}else if(xt(t))Zn(i,t.bind(n));else if(me(t))if(bt(t))t.forEach(r=>ev(r,e,n,s));else{const r=xt(t.handler)?t.handler.bind(n):e[t.handler];xt(r)&&Zn(i,r,t)}}function ip(t){const e=t.type,{mixins:n,extends:s}=e,{mixins:i,optionsCache:r,config:{optionMergeStrategies:o}}=t.appContext,a=r.get(e);let l;return a?l=a:!i.length&&!n&&!s?l=e:(l={},i.length&&i.forEach(c=>Mc(l,c,o,!0)),Mc(l,e,o)),me(e)&&r.set(e,l),l}function Mc(t,e,n,s=!1){const{mixins:i,extends:r}=e;r&&Mc(t,r,n,!0),i&&i.forEach(o=>Mc(t,o,n,!0));for(const o in e)if(!(s&&o==="expose")){const a=y3[o]||n&&n[o];t[o]=a?a(t[o],e[o]):e[o]}return t}const y3={data:Wm,props:Gm,emits:Gm,methods:oa,computed:oa,beforeCreate:Tn,created:Tn,beforeMount:Tn,mounted:Tn,beforeUpdate:Tn,updated:Tn,beforeDestroy:Tn,beforeUnmount:Tn,destroyed:Tn,unmounted:Tn,activated:Tn,deactivated:Tn,errorCaptured:Tn,serverPrefetch:Tn,components:oa,directives:oa,watch:v3,provide:Wm,inject:b3};function Wm(t,e){return e?t?function(){return Zt(xt(t)?t.call(this,this):t,xt(e)?e.call(this,this):e)}:e:t}function b3(t,e){return oa(Lf(t),Lf(e))}function Lf(t){if(bt(t)){const e={};for(let n=0;n1)return n&&xt(e)?e.call(s&&s.proxy):e}}function sv(){return!!(cn()||Tr)}const iv={},rv=()=>Object.create(iv),ov=t=>Object.getPrototypeOf(t)===iv;function E3(t,e,n,s=!1){const i={},r=rv();t.propsDefaults=Object.create(null),av(t,e,i,r);for(const o in t.propsOptions[0])o in i||(i[o]=void 0);n?t.props=s?i:Gh(i):t.type.props?t.props=i:t.props=r,t.attrs=r}function w3(t,e,n,s){const{props:i,attrs:r,vnode:{patchFlag:o}}=t,a=ie(i),[l]=t.propsOptions;let c=!1;if((s||o>0)&&!(o&16)){if(o&8){const u=t.vnode.dynamicProps;for(let d=0;d{l=!0;const[f,h]=lv(d,e,!0);Zt(o,f),h&&a.push(...h)};!n&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}if(!r&&!l)return me(t)&&s.set(t,Sr),Sr;if(bt(r))for(let u=0;ut==="_"||t==="_ctx"||t==="$stable",op=t=>bt(t)?t.map(Fn):[Fn(t)],C3=(t,e,n)=>{if(e._n)return e;const s=L((...i)=>op(e(...i)),n);return s._c=!1,s},cv=(t,e,n)=>{const s=t._ctx;for(const i in t){if(rp(i))continue;const r=t[i];if(xt(r))e[i]=C3(i,r,s);else if(r!=null){const o=op(r);e[i]=()=>o}}},uv=(t,e)=>{const n=op(e);t.slots.default=()=>n},dv=(t,e,n)=>{for(const s in e)(n||!rp(s))&&(t[s]=e[s])},T3=(t,e,n)=>{const s=t.slots=rv();if(t.vnode.shapeFlag&32){const i=e._;i?(dv(s,e,n),n&&Mh(s,"_",i,!0)):cv(e,s)}else e&&uv(t,e)},A3=(t,e,n)=>{const{vnode:s,slots:i}=t;let r=!0,o=Yt;if(s.shapeFlag&32){const a=e._;a?n&&a===1?r=!1:dv(i,e,n):(r=!e.$stable,cv(e,i)),o=e}else e&&(uv(t,e),o={default:1});if(r)for(const a in i)!rp(a)&&o[a]==null&&delete i[a]},Ye=Cv;function fv(t){return pv(t)}function hv(t){return pv(t,Vw)}function pv(t,e){const n=ol();n.__VUE__=!0;const{insert:s,remove:i,patchProp:r,createElement:o,createText:a,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:f,setScopeId:h=Qe,insertStaticContent:p}=t,m=(A,P,W,st=null,J=null,T=null,x=void 0,V=null,K=!!P.dynamicChildren)=>{if(A===P)return;A&&!As(A,P)&&(st=Y(A),Bt(A,J,T,!0),A=null),P.patchFlag===-2&&(K=!1,P.dynamicChildren=null);const{type:Q,ref:lt,shapeFlag:M}=P;switch(Q){case yi:_(A,P,W,st);break;case Be:y(A,P,W,st);break;case Ar:A==null&&v(P,W,st,x);break;case it:$(A,P,W,st,J,T,x,V,K);break;default:M&1?S(A,P,W,st,J,T,x,V,K):M&6?H(A,P,W,st,J,T,x,V,K):(M&64||M&128)&&Q.process(A,P,W,st,J,T,x,V,K,yt)}lt!=null&&J?po(lt,A&&A.ref,T,P||A,!P):lt==null&&A&&A.ref!=null&&po(A.ref,null,T,A,!0)},_=(A,P,W,st)=>{if(A==null)s(P.el=a(P.children),W,st);else{const J=P.el=A.el;P.children!==A.children&&c(J,P.children)}},y=(A,P,W,st)=>{A==null?s(P.el=l(P.children||""),W,st):P.el=A.el},v=(A,P,W,st)=>{[A.el,A.anchor]=p(A.children,P,W,st,A.el,A.anchor)},g=({el:A,anchor:P},W,st)=>{let J;for(;A&&A!==P;)J=f(A),s(A,W,st),A=J;s(P,W,st)},b=({el:A,anchor:P})=>{let W;for(;A&&A!==P;)W=f(A),i(A),A=W;i(P)},S=(A,P,W,st,J,T,x,V,K)=>{P.type==="svg"?x="svg":P.type==="math"&&(x="mathml"),A==null?k(P,W,st,J,T,x,V,K):C(A,P,J,T,x,V,K)},k=(A,P,W,st,J,T,x,V)=>{let K,Q;const{props:lt,shapeFlag:M,transition:q,dirs:ht}=A;if(K=A.el=o(A.type,T,lt&<.is,lt),M&8?u(K,A.children):M&16&&D(A.children,K,null,st,J,Fd(A,T),x,V),ht&&Ks(A,null,st,"created"),I(K,A,A.scopeId,x,st),lt){for(const Kt in lt)Kt!=="value"&&!gi(Kt)&&r(K,Kt,null,lt[Kt],T,st);"value"in lt&&r(K,"value",null,lt.value,T),(Q=lt.onVnodeBeforeMount)&&$n(Q,st,A)}ht&&Ks(A,null,st,"beforeMount");const St=mv(J,q);St&&q.beforeEnter(K),s(K,P,W),((Q=lt&<.onVnodeMounted)||St||ht)&&Ye(()=>{Q&&$n(Q,st,A),St&&q.enter(K),ht&&Ks(A,null,st,"mounted")},J)},I=(A,P,W,st,J)=>{if(W&&h(A,W),st)for(let T=0;T{for(let Q=K;Q{const V=P.el=A.el;let{patchFlag:K,dynamicChildren:Q,dirs:lt}=P;K|=A.patchFlag&16;const M=A.props||Yt,q=P.props||Yt;let ht;if(W&&cr(W,!1),(ht=q.onVnodeBeforeUpdate)&&$n(ht,W,P,A),lt&&Ks(P,A,W,"beforeUpdate"),W&&cr(W,!0),(M.innerHTML&&q.innerHTML==null||M.textContent&&q.textContent==null)&&u(V,""),Q?R(A.dynamicChildren,Q,V,W,st,Fd(P,J),T):x||at(A,P,V,null,W,st,Fd(P,J),T,!1),K>0){if(K&16)B(V,M,q,W,J);else if(K&2&&M.class!==q.class&&r(V,"class",null,q.class,J),K&4&&r(V,"style",M.style,q.style,J),K&8){const St=P.dynamicProps;for(let Kt=0;Kt{ht&&$n(ht,W,P,A),lt&&Ks(P,A,W,"updated")},st)},R=(A,P,W,st,J,T,x)=>{for(let V=0;V{if(P!==W){if(P!==Yt)for(const T in P)!gi(T)&&!(T in W)&&r(A,T,P[T],null,J,st);for(const T in W){if(gi(T))continue;const x=W[T],V=P[T];x!==V&&T!=="value"&&r(A,T,V,x,J,st)}"value"in W&&r(A,"value",P.value,W.value,J)}},$=(A,P,W,st,J,T,x,V,K)=>{const Q=P.el=A?A.el:a(""),lt=P.anchor=A?A.anchor:a("");let{patchFlag:M,dynamicChildren:q,slotScopeIds:ht}=P;ht&&(V=V?V.concat(ht):ht),A==null?(s(Q,W,st),s(lt,W,st),D(P.children||[],W,lt,J,T,x,V,K)):M>0&&M&64&&q&&A.dynamicChildren?(R(A.dynamicChildren,q,W,J,T,x,V),(P.key!=null||J&&P===J.subTree)&&ap(A,P,!0)):at(A,P,W,lt,J,T,x,V,K)},H=(A,P,W,st,J,T,x,V,K)=>{P.slotScopeIds=V,A==null?P.shapeFlag&512?J.ctx.activate(P,W,st,x,K):X(P,W,st,J,T,x,K):ot(A,P,K)},X=(A,P,W,st,J,T,x)=>{const V=A.component=Iv(A,st,J);if(ll(A)&&(V.ctx.renderer=yt),Pv(V,!1,x),V.asyncDep){if(J&&J.registerDep(V,G,x),!A.el){const K=V.subTree=E(Be);y(null,K,P,W),A.placeholder=K.el}}else G(V,A,P,W,J,T,x)},ot=(A,P,W)=>{const st=P.component=A.component;if($3(A,P,W))if(st.asyncDep&&!st.asyncResolved){tt(st,P,W);return}else st.next=P,st.update();else P.el=A.el,st.vnode=P},G=(A,P,W,st,J,T,x)=>{const V=()=>{if(A.isMounted){let{next:M,bu:q,u:ht,parent:St,vnode:Kt}=A;{const mt=gv(A);if(mt){M&&(M.el=Kt.el,tt(A,M,x)),mt.asyncDep.then(()=>{A.isUnmounted||V()});return}}let U=M,j;cr(A,!1),M?(M.el=Kt.el,tt(A,M,x)):M=Kt,q&&kr(q),(j=M.props&&M.props.onVnodeBeforeUpdate)&&$n(j,St,M,Kt),cr(A,!0);const z=ac(A),rt=A.subTree;A.subTree=z,m(rt,z,d(rt.el),Y(rt),A,J,T),M.el=z.el,U===null&&Du(A,z.el),ht&&Ye(ht,J),(j=M.props&&M.props.onVnodeUpdated)&&Ye(()=>$n(j,St,M,Kt),J)}else{let M;const{el:q,props:ht}=P,{bm:St,m:Kt,parent:U,root:j,type:z}=A,rt=Zi(P);if(cr(A,!1),St&&kr(St),!rt&&(M=ht&&ht.onVnodeBeforeMount)&&$n(M,U,P),cr(A,!0),q&&Xt){const mt=()=>{A.subTree=ac(A),Xt(q,A.subTree,A,J,null)};rt&&z.__asyncHydrate?z.__asyncHydrate(q,A,mt):mt()}else{j.ce&&j.ce._def.shadowRoot!==!1&&j.ce._injectChildStyle(z);const mt=A.subTree=ac(A);m(null,mt,W,st,A,J,T),P.el=mt.el}if(Kt&&Ye(Kt,J),!rt&&(M=ht&&ht.onVnodeMounted)){const mt=P;Ye(()=>$n(M,U,mt),J)}(P.shapeFlag&256||U&&Zi(U.vnode)&&U.vnode.shapeFlag&256)&&A.a&&Ye(A.a,J),A.isMounted=!0,P=W=st=null}};A.scope.on();const K=A.effect=new Ma(V);A.scope.off();const Q=A.update=K.run.bind(K),lt=A.job=K.runIfDirty.bind(K);lt.i=A,lt.id=A.uid,K.scheduler=()=>zh(lt),cr(A,!0),Q()},tt=(A,P,W)=>{P.component=A;const st=A.vnode.props;A.vnode=P,A.next=null,w3(A,P.props,st,W),A3(A,P.children,W),Ei(),Dm(A),wi()},at=(A,P,W,st,J,T,x,V,K=!1)=>{const Q=A&&A.children,lt=A?A.shapeFlag:0,M=P.children,{patchFlag:q,shapeFlag:ht}=P;if(q>0){if(q&128){zt(Q,M,W,st,J,T,x,V,K);return}else if(q&256){kt(Q,M,W,st,J,T,x,V,K);return}}ht&8?(lt&16&&Wt(Q,J,T),M!==Q&&u(W,M)):lt&16?ht&16?zt(Q,M,W,st,J,T,x,V,K):Wt(Q,J,T,!0):(lt&8&&u(W,""),ht&16&&D(M,W,st,J,T,x,V,K))},kt=(A,P,W,st,J,T,x,V,K)=>{A=A||Sr,P=P||Sr;const Q=A.length,lt=P.length,M=Math.min(Q,lt);let q;for(q=0;qlt?Wt(A,J,T,!0,!1,M):D(P,W,st,J,T,x,V,K,M)},zt=(A,P,W,st,J,T,x,V,K)=>{let Q=0;const lt=P.length;let M=A.length-1,q=lt-1;for(;Q<=M&&Q<=q;){const ht=A[Q],St=P[Q]=K?Hi(P[Q]):Fn(P[Q]);if(As(ht,St))m(ht,St,W,null,J,T,x,V,K);else break;Q++}for(;Q<=M&&Q<=q;){const ht=A[M],St=P[q]=K?Hi(P[q]):Fn(P[q]);if(As(ht,St))m(ht,St,W,null,J,T,x,V,K);else break;M--,q--}if(Q>M){if(Q<=q){const ht=q+1,St=htq)for(;Q<=M;)Bt(A[Q],J,T,!0),Q++;else{const ht=Q,St=Q,Kt=new Map;for(Q=St;Q<=q;Q++){const Lt=P[Q]=K?Hi(P[Q]):Fn(P[Q]);Lt.key!=null&&Kt.set(Lt.key,Q)}let U,j=0;const z=q-St+1;let rt=!1,mt=0;const At=new Array(z);for(Q=0;Q=z){Bt(Lt,J,T,!0);continue}let ue;if(Lt.key!=null)ue=Kt.get(Lt.key);else for(U=St;U<=q;U++)if(At[U-St]===0&&As(Lt,P[U])){ue=U;break}ue===void 0?Bt(Lt,J,T,!0):(At[ue-St]=Q+1,ue>=mt?mt=ue:rt=!0,m(Lt,P[ue],W,null,J,T,x,V,K),j++)}const Mt=rt?O3(At):Sr;for(U=Mt.length-1,Q=z-1;Q>=0;Q--){const Lt=St+Q,ue=P[Lt],Nt=P[Lt+1],Et=Lt+1{const{el:T,type:x,transition:V,children:K,shapeFlag:Q}=A;if(Q&6){Vt(A.component.subTree,P,W,st);return}if(Q&128){A.suspense.move(P,W,st);return}if(Q&64){x.move(A,P,W,yt);return}if(x===it){s(T,P,W);for(let M=0;MV.enter(T),J);else{const{leave:M,delayLeave:q,afterLeave:ht}=V,St=()=>{A.ctx.isUnmounted?i(T):s(T,P,W)},Kt=()=>{T._isLeaving&&T[ci](!0),M(T,()=>{St(),ht&&ht()})};q?q(T,St,Kt):Kt()}else s(T,P,W)},Bt=(A,P,W,st=!1,J=!1)=>{const{type:T,props:x,ref:V,children:K,dynamicChildren:Q,shapeFlag:lt,patchFlag:M,dirs:q,cacheIndex:ht}=A;if(M===-2&&(J=!1),V!=null&&(Ei(),po(V,null,W,A,!0),wi()),ht!=null&&(P.renderCache[ht]=void 0),lt&256){P.ctx.deactivate(A);return}const St=lt&1&&q,Kt=!Zi(A);let U;if(Kt&&(U=x&&x.onVnodeBeforeUnmount)&&$n(U,P,A),lt&6)Se(A.component,W,st);else{if(lt&128){A.suspense.unmount(W,st);return}St&&Ks(A,null,P,"beforeUnmount"),lt&64?A.type.remove(A,P,W,yt,st):Q&&!Q.hasOnce&&(T!==it||M>0&&M&64)?Wt(Q,P,W,!1,!0):(T===it&&M&384||!J&<&16)&&Wt(K,P,W),st&&ge(A)}(Kt&&(U=x&&x.onVnodeUnmounted)||St)&&Ye(()=>{U&&$n(U,P,A),St&&Ks(A,null,P,"unmounted")},W)},ge=A=>{const{type:P,el:W,anchor:st,transition:J}=A;if(P===it){_e(W,st);return}if(P===Ar){b(A);return}const T=()=>{i(W),J&&!J.persisted&&J.afterLeave&&J.afterLeave()};if(A.shapeFlag&1&&J&&!J.persisted){const{leave:x,delayLeave:V}=J,K=()=>x(W,T);V?V(A.el,T,K):K()}else T()},_e=(A,P)=>{let W;for(;A!==P;)W=f(A),i(A),A=W;i(P)},Se=(A,P,W)=>{const{bum:st,scope:J,job:T,subTree:x,um:V,m:K,a:Q}=A;$c(K),$c(Q),st&&kr(st),J.stop(),T&&(T.flags|=8,Bt(x,A,P,W)),V&&Ye(V,P),Ye(()=>{A.isUnmounted=!0},P)},Wt=(A,P,W,st=!1,J=!1,T=0)=>{for(let x=T;x{if(A.shapeFlag&6)return Y(A.component.subTree);if(A.shapeFlag&128)return A.suspense.next();const P=f(A.anchor||A.el),W=P&&P[$1];return W?f(W):P};let dt=!1;const ct=(A,P,W)=>{A==null?P._vnode&&Bt(P._vnode,null,null,!0):m(P._vnode||null,A,P,null,null,null,W),P._vnode=A,dt||(dt=!0,Dm(),Dc(),dt=!1)},yt={p:m,um:Bt,m:Vt,r:ge,mt:X,mc:D,pc:at,pbc:R,n:Y,o:t};let Ut,Xt;return e&&([Ut,Xt]=e(yt)),{render:ct,hydrate:Ut,createApp:S3(ct,Ut)}}function Fd({type:t,props:e},n){return n==="svg"&&t==="foreignObject"||n==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:n}function cr({effect:t,job:e},n){n?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function mv(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function ap(t,e,n=!1){const s=t.children,i=e.children;if(bt(s)&&bt(i))for(let r=0;r>1,t[n[a]]0&&(e[s]=n[r-1]),n[r]=s)}}for(r=n.length,o=n[r-1];r-- >0;)n[r]=o,o=e[o];return n}function gv(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:gv(e)}function $c(t){if(t)for(let e=0;eus(yv);function vv(t,e){return dl(t,null,e)}function x3(t,e){return dl(t,null,{flush:"post"})}function _v(t,e){return dl(t,null,{flush:"sync"})}function Zn(t,e,n){return dl(t,e,n)}function dl(t,e,n=Yt){const{immediate:s,deep:i,flush:r,once:o}=n,a=Zt({},n),l=e&&s||!e&&r!=="post";let c;if(So){if(r==="sync"){const h=bv();c=h.__watcherHandles||(h.__watcherHandles=[])}else if(!l){const h=()=>{};return h.stop=Qe,h.resume=Qe,h.pause=Qe,h}}const u=an;a.call=(h,p,m)=>ps(h,u,p,m);let d=!1;r==="post"?a.scheduler=h=>{Ye(h,u&&u.suspense)}:r!=="sync"&&(d=!0,a.scheduler=(h,p)=>{p?h():zh(h)}),a.augmentJob=h=>{e&&(h.flags|=4),d&&(h.flags|=2,u&&(h.id=u.uid,h.i=u))};const f=Sw(t,e,a);return So&&(c?c.push(f):l&&f()),f}function I3(t,e,n){const s=this.proxy,i=Rt(t)?t.includes(".")?Sv(s,t):()=>s[t]:t.bind(s,s);let r;xt(e)?r=e:(r=e.handler,n=e);const o=Pr(this),a=dl(i,r.bind(s),n);return o(),a}function Sv(t,e){const n=e.split(".");return()=>{let s=t;for(let i=0;i{let u,d=Yt,f;return _v(()=>{const h=t[i];yn(u,h)&&(u=h,c())}),{get(){return l(),n.get?n.get(u):u},set(h){const p=n.set?n.set(h):h;if(!yn(p,u)&&!(d!==Yt&&yn(h,d)))return;const m=s.vnode.props;m&&(e in m||i in m||r in m)&&(`onUpdate:${e}`in m||`onUpdate:${i}`in m||`onUpdate:${r}`in m)||(u=h,c()),s.emit(`update:${e}`,p),yn(h,p)&&yn(h,d)&&!yn(p,f)&&c(),d=h,f=p}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?o||Yt:a,done:!1}:{done:!0}}}},a}const Ev=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ce(e)}Modifiers`]||t[`${vn(e)}Modifiers`];function P3(t,e,...n){if(t.isUnmounted)return;const s=t.vnode.props||Yt;let i=n;const r=e.startsWith("update:"),o=r&&Ev(s,e.slice(7));o&&(o.trim&&(i=n.map(u=>Rt(u)?u.trim():u)),o.number&&(i=n.map(Da)));let a,l=s[a=wr(e)]||s[a=wr(Ce(e))];!l&&r&&(l=s[a=wr(vn(e))]),l&&ps(l,t,6,i);const c=s[a+"Once"];if(c){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,ps(c,t,6,i)}}const R3=new WeakMap;function wv(t,e,n=!1){const s=n?R3:e.emitsCache,i=s.get(t);if(i!==void 0)return i;const r=t.emits;let o={},a=!1;if(!xt(t)){const l=c=>{const u=wv(c,e,!0);u&&(a=!0,Zt(o,u))};!n&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!r&&!a?(me(t)&&s.set(t,null),null):(bt(r)?r.forEach(l=>o[l]=null):Zt(o,r),me(t)&&s.set(t,o),o)}function Ru(t,e){return!t||!nr(e)?!1:(e=e.slice(2).replace(/Once$/,""),de(t,e[0].toLowerCase()+e.slice(1))||de(t,vn(e))||de(t,e))}function ac(t){const{type:e,vnode:n,proxy:s,withProxy:i,propsOptions:[r],slots:o,attrs:a,emit:l,render:c,renderCache:u,props:d,data:f,setupState:h,ctx:p,inheritAttrs:m}=t,_=Ha(t);let y,v;try{if(n.shapeFlag&4){const b=i||s,S=b;y=Fn(c.call(S,b,u,d,h,f,p)),v=a}else{const b=e;y=Fn(b.length>1?b(d,{attrs:a,slots:o,emit:l}):b(d,null)),v=e.props?a:L3(a)}}catch(b){_a.length=0,Vr(b,t,1),y=E(Be)}let g=y;if(v&&m!==!1){const b=Object.keys(v),{shapeFlag:S}=g;b.length&&S&7&&(r&&b.some(mu)&&(v=M3(v,r)),g=Js(g,v,!1,!0))}return n.dirs&&(g=Js(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&Ci(g,n.transition),y=g,Ha(_),y}function D3(t,e=!0){let n;for(let s=0;s{let e;for(const n in t)(n==="class"||n==="style"||nr(n))&&((e||(e={}))[n]=t[n]);return e},M3=(t,e)=>{const n={};for(const s in t)(!mu(s)||!(s.slice(9)in e))&&(n[s]=t[s]);return n};function $3(t,e,n){const{props:s,children:i,component:r}=t,{props:o,children:a,patchFlag:l}=e,c=r.emitsOptions;if(e.dirs||e.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return s?qm(s,o,c):!!o;if(l&8){const u=e.dynamicProps;for(let d=0;dt.__isSuspense;let $f=0;const F3={name:"Suspense",__isSuspense:!0,process(t,e,n,s,i,r,o,a,l,c){if(t==null)U3(e,n,s,i,r,o,a,l,c);else{if(r&&r.deps>0&&!t.suspense.isInFallback){e.suspense=t.suspense,e.suspense.vnode=e,e.el=t.el;return}H3(t,e,n,s,i,o,a,l,c)}},hydrate:j3,normalize:B3},V3=F3;function Ba(t,e){const n=t.props&&t.props[e];xt(n)&&n()}function U3(t,e,n,s,i,r,o,a,l){const{p:c,o:{createElement:u}}=l,d=u("div"),f=t.suspense=kv(t,i,s,e,d,n,r,o,a,l);c(null,f.pendingBranch=t.ssContent,d,null,s,f,r,o),f.deps>0?(Ba(t,"onPending"),Ba(t,"onFallback"),c(null,t.ssFallback,e,n,s,null,r,o),mo(f,t.ssFallback)):f.resolve(!1,!0)}function H3(t,e,n,s,i,r,o,a,{p:l,um:c,o:{createElement:u}}){const d=e.suspense=t.suspense;d.vnode=e,e.el=t.el;const f=e.ssContent,h=e.ssFallback,{activeBranch:p,pendingBranch:m,isInFallback:_,isHydrating:y}=d;if(m)d.pendingBranch=f,As(m,f)?(l(m,f,d.hiddenContainer,null,i,d,r,o,a),d.deps<=0?d.resolve():_&&(y||(l(p,h,n,s,i,null,r,o,a),mo(d,h)))):(d.pendingId=$f++,y?(d.isHydrating=!1,d.activeBranch=m):c(m,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),_?(l(null,f,d.hiddenContainer,null,i,d,r,o,a),d.deps<=0?d.resolve():(l(p,h,n,s,i,null,r,o,a),mo(d,h))):p&&As(p,f)?(l(p,f,n,s,i,d,r,o,a),d.resolve(!0)):(l(null,f,d.hiddenContainer,null,i,d,r,o,a),d.deps<=0&&d.resolve()));else if(p&&As(p,f))l(p,f,n,s,i,d,r,o,a),mo(d,f);else if(Ba(e,"onPending"),d.pendingBranch=f,f.shapeFlag&512?d.pendingId=f.component.suspenseId:d.pendingId=$f++,l(null,f,d.hiddenContainer,null,i,d,r,o,a),d.deps<=0)d.resolve();else{const{timeout:v,pendingId:g}=d;v>0?setTimeout(()=>{d.pendingId===g&&d.fallback(h)},v):v===0&&d.fallback(h)}}function kv(t,e,n,s,i,r,o,a,l,c,u=!1){const{p:d,m:f,um:h,n:p,o:{parentNode:m,remove:_}}=c;let y;const v=W3(t);v&&e&&e.pendingBranch&&(y=e.pendingId,e.deps++);const g=t.props?La(t.props.timeout):void 0,b=r,S={vnode:t,parent:e,parentComponent:n,namespace:o,container:s,hiddenContainer:i,deps:0,pendingId:$f++,timeout:typeof g=="number"?g:-1,activeBranch:null,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(k=!1,I=!1){const{vnode:D,activeBranch:C,pendingBranch:R,pendingId:B,effects:$,parentComponent:H,container:X}=S;let ot=!1;S.isHydrating?S.isHydrating=!1:k||(ot=C&&R.transition&&R.transition.mode==="out-in",ot&&(C.transition.afterLeave=()=>{B===S.pendingId&&(f(R,X,r===b?p(C):r,0),Va($))}),C&&(m(C.el)===X&&(r=p(C)),h(C,H,S,!0)),ot||f(R,X,r,0)),mo(S,R),S.pendingBranch=null,S.isInFallback=!1;let G=S.parent,tt=!1;for(;G;){if(G.pendingBranch){G.effects.push(...$),tt=!0;break}G=G.parent}!tt&&!ot&&Va($),S.effects=[],v&&e&&e.pendingBranch&&y===e.pendingId&&(e.deps--,e.deps===0&&!I&&e.resolve()),Ba(D,"onResolve")},fallback(k){if(!S.pendingBranch)return;const{vnode:I,activeBranch:D,parentComponent:C,container:R,namespace:B}=S;Ba(I,"onFallback");const $=p(D),H=()=>{S.isInFallback&&(d(null,k,R,$,C,null,B,a,l),mo(S,k))},X=k.transition&&k.transition.mode==="out-in";X&&(D.transition.afterLeave=H),S.isInFallback=!0,h(D,C,null,!0),X||H()},move(k,I,D){S.activeBranch&&f(S.activeBranch,k,I,D),S.container=k},next(){return S.activeBranch&&p(S.activeBranch)},registerDep(k,I,D){const C=!!S.pendingBranch;C&&S.deps++;const R=k.vnode.el;k.asyncDep.catch(B=>{Vr(B,k,0)}).then(B=>{if(k.isUnmounted||S.isUnmounted||S.pendingId!==k.suspenseId)return;k.asyncResolved=!0;const{vnode:$}=k;Uf(k,B,!1),R&&($.el=R);const H=!R&&k.subTree.el;I(k,$,m(R||k.subTree.el),R?null:p(k.subTree),S,o,D),H&&_(H),Du(k,$.el),C&&--S.deps===0&&S.resolve()})},unmount(k,I){S.isUnmounted=!0,S.activeBranch&&h(S.activeBranch,n,k,I),S.pendingBranch&&h(S.pendingBranch,n,k,I)}};return S}function j3(t,e,n,s,i,r,o,a,l){const c=e.suspense=kv(e,s,n,t.parentNode,document.createElement("div"),null,i,r,o,a,!0),u=l(t,c.pendingBranch=e.ssContent,n,c,r,o);return c.deps===0&&c.resolve(!1,!0),u}function B3(t){const{shapeFlag:e,children:n}=t,s=e&32;t.ssContent=zm(s?n.default:n),t.ssFallback=s?zm(n.fallback):E(Be)}function zm(t){let e;if(xt(t)){const n=Nr&&t._c;n&&(t._d=!1,O()),t=t(),n&&(t._d=!0,e=wn,Tv())}return bt(t)&&(t=D3(t)),t=Fn(t),e&&!t.dynamicChildren&&(t.dynamicChildren=e.filter(n=>n!==t)),t}function Cv(t,e){e&&e.pendingBranch?bt(t)?e.effects.push(...t):e.effects.push(t):Va(t)}function mo(t,e){t.activeBranch=e;const{vnode:n,parentComponent:s}=t;let i=e.el;for(;!i&&e.component;)e=e.component.subTree,i=e.el;n.el=i,s&&s.subTree===n&&(s.vnode.el=i,Du(s,i))}function W3(t){const e=t.props&&t.props.suspensible;return e!=null&&e!==!1}const it=Symbol.for("v-fgt"),yi=Symbol.for("v-txt"),Be=Symbol.for("v-cmt"),Ar=Symbol.for("v-stc"),_a=[];let wn=null;function O(t=!1){_a.push(wn=t?null:[])}function Tv(){_a.pop(),wn=_a[_a.length-1]||null}let Nr=1;function Wa(t,e=!1){Nr+=t,t<0&&wn&&e&&(wn.hasOnce=!0)}function Av(t){return t.dynamicChildren=Nr>0?wn||Sr:null,Tv(),Nr>0&&wn&&wn.push(t),t}function F(t,e,n,s,i,r){return Av(N(t,e,n,s,i,r,!0))}function pt(t,e,n,s,i){return Av(E(t,e,n,s,i,!0))}function Ti(t){return t?t.__v_isVNode===!0:!1}function As(t,e){return t.type===e.type&&t.key===e.key}function G3(t){}const Ov=({key:t})=>t??null,lc=({ref:t,ref_key:e,ref_for:n})=>(typeof t=="number"&&(t=""+t),t!=null?Rt(t)||Ie(t)||xt(t)?{i:ln,r:t,k:e,f:!!n}:t:null);function N(t,e=null,n=null,s=0,i=null,r=t===it?0:1,o=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Ov(e),ref:e&&lc(e),scopeId:Ou,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:s,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:ln};return a?(lp(l,n),r&128&&t.normalize(l)):n&&(l.shapeFlag|=Rt(n)?8:16),Nr>0&&!o&&wn&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&wn.push(l),l}const E=K3;function K3(t,e=null,n=null,s=0,i=null,r=!1){if((!t||t===Q1)&&(t=Be),Ti(t)){const a=Js(t,e,!0);return n&&lp(a,n),Nr>0&&!r&&wn&&(a.shapeFlag&6?wn[wn.indexOf(t)]=a:wn.push(a)),a.patchFlag=-2,a}if(tk(t)&&(t=t.__vccOpts),e){e=xv(e);let{class:a,style:l}=e;a&&!Rt(a)&&(e.class=Gt(a)),me(l)&&(Cu(l)&&!bt(l)&&(l=Zt({},l)),e.style=Lo(l))}const o=Rt(t)?1:Fc(t)?128:F1(t)?64:me(t)?4:xt(t)?2:0;return N(t,e,n,s,i,o,r,!0)}function xv(t){return t?Cu(t)||ov(t)?Zt({},t):t:null}function Js(t,e,n=!1,s=!1){const{props:i,ref:r,patchFlag:o,children:a,transition:l}=t,c=e?co(i||{},e):i,u={__v_isVNode:!0,__v_skip:!0,type:t.type,props:c,key:c&&Ov(c),ref:e&&e.ref?n&&r?bt(r)?r.concat(lc(e)):[r,lc(e)]:lc(e):r,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:a,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==it?o===-1?16:o|16:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Js(t.ssContent),ssFallback:t.ssFallback&&Js(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&s&&Ci(u,l.clone(u)),u}function Ns(t=" ",e=0){return E(yi,null,t,e)}function q3(t,e){const n=E(Ar,null,t);return n.staticCount=e,n}function vt(t="",e=!1){return e?(O(),pt(Be,null,t)):E(Be,null,t)}function Fn(t){return t==null||typeof t=="boolean"?E(Be):bt(t)?E(it,null,t.slice()):Ti(t)?Hi(t):E(yi,null,String(t))}function Hi(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Js(t)}function lp(t,e){let n=0;const{shapeFlag:s}=t;if(e==null)e=null;else if(bt(e))n=16;else if(typeof e=="object")if(s&65){const i=e.default;i&&(i._c&&(i._d=!1),lp(t,i()),i._c&&(i._d=!0));return}else{n=32;const i=e._;!i&&!ov(e)?e._ctx=ln:i===3&&ln&&(ln.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else xt(e)?(e={default:e,_ctx:ln},n=32):(e=String(e),s&64?(n=16,e=[Ns(e)]):n=8);t.children=e,t.shapeFlag|=n}function co(...t){const e={};for(let n=0;nan||ln;let Vc,Ff;{const t=ol(),e=(n,s)=>{let i;return(i=t[n])||(i=t[n]=[]),i.push(s),r=>{i.length>1?i.forEach(o=>o(r)):i[0](r)}};Vc=e("__VUE_INSTANCE_SETTERS__",n=>an=n),Ff=e("__VUE_SSR_SETTERS__",n=>So=n)}const Pr=t=>{const e=an;return Vc(t),t.scope.on(),()=>{t.scope.off(),Vc(e)}},Vf=()=>{an&&an.scope.off(),Vc(null)};function Nv(t){return t.vnode.shapeFlag&4}let So=!1;function Pv(t,e=!1,n=!1){e&&Ff(e);const{props:s,children:i}=t.vnode,r=Nv(t);E3(t,s,r,e),T3(t,i,n||e);const o=r?Y3(t,e):void 0;return e&&Ff(!1),o}function Y3(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,Rf);const{setup:s}=n;if(s){Ei();const i=t.setupContext=s.length>1?Dv(t):null,r=Pr(t),o=$o(s,t,0,[t.props,i]),a=yu(o);if(wi(),r(),(a||t.sp)&&!Zi(t)&&Zh(t),a){if(o.then(Vf,Vf),e)return o.then(l=>{Uf(t,l,e)}).catch(l=>{Vr(l,t,0)});t.asyncDep=o}else Uf(t,o,e)}else Rv(t,e)}function Uf(t,e,n){xt(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:me(e)&&(t.setupState=qh(e)),Rv(t,n)}let Uc,Hf;function Z3(t){Uc=t,Hf=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,e3))}}const J3=()=>!Uc;function Rv(t,e,n){const s=t.type;if(!t.render){if(!e&&Uc&&!s.render){const i=s.template||ip(t).template;if(i){const{isCustomElement:r,compilerOptions:o}=t.appContext.config,{delimiters:a,compilerOptions:l}=s,c=Zt(Zt({isCustomElement:r,delimiters:a},o),l);s.render=Uc(i,c)}}t.render=s.render||Qe,Hf&&Hf(t)}{const i=Pr(t);Ei();try{m3(t)}finally{wi(),i()}}}const Q3={get(t,e){return bn(t,"get",""),t[e]}};function Dv(t){const e=n=>{t.exposed=n||{}};return{attrs:new Proxy(t.attrs,Q3),slots:t.slots,emit:t.emit,expose:e}}function fl(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(qh(Tu(t.exposed)),{get(e,n){if(n in e)return e[n];if(n in ba)return ba[n](t)},has(e,n){return n in e||n in ba}})):t.proxy}function jf(t,e=!0){return xt(t)?t.displayName||t.name:t.name||e&&t.__name}function tk(t){return xt(t)&&"__vccOpts"in t}const Je=(t,e)=>yw(t,e,So);function qs(t,e,n){const s=(r,o,a)=>{Wa(-1);try{return E(r,o,a)}finally{Wa(1)}},i=arguments.length;return i===2?me(e)&&!bt(e)?Ti(e)?s(t,null,[e]):s(t,e):s(t,null,e):(i>3?n=Array.prototype.slice.call(arguments,2):i===3&&Ti(n)&&(n=[n]),s(t,e,n))}function ek(){}function nk(t,e,n,s){const i=n[s];if(i&&Lv(i,t))return i;const r=e();return r.memo=t.slice(),r.cacheIndex=s,n[s]=r}function Lv(t,e){const n=t.memo;if(n.length!=e.length)return!1;for(let s=0;s0&&wn&&wn.push(t),!0}const Mv="3.5.21",sk=Qe,ik=Tw,rk=so,ok=M1,ak={createComponentInstance:Iv,setupComponent:Pv,renderComponentRoot:ac,setCurrentRenderingInstance:Ha,isVNode:Ti,normalizeVNode:Fn,getComponentPublicInstance:fl,ensureValidVNode:sp,pushWarningContext:Ew,popWarningContext:ww},lk=ak,ck=null,uk=null,dk=null;/** +**/const R1=[];function Ew(t){R1.push(t)}function ww(){R1.pop()}function kw(t,e){}const Cw={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},Tw={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function Fo(t,e,n,s){try{return s?t(...s):t()}catch(i){Vr(i,e,n)}}function ps(t,e,n,s){if(It(t)){const i=Fo(t,e,n,s);return i&&yu(i)&&i.catch(r=>{Vr(r,e,n)}),i}if(bt(t)){const i=[];for(let r=0;r>>1,i=On[s],r=Ha(i);r=Ha(n)?On.push(t):On.splice(Ow(e),0,t),t.flags|=1,L1()}}function L1(){Dc||(Dc=D1.then(M1))}function Ua(t){bt(t)?ho.push(...t):Ui&&t.id===-1?Ui.splice(no+1,0,t):t.flags&1||(ho.push(t),t.flags|=1),L1()}function Pm(t,e,n=Gs+1){for(;nHa(n)-Ha(s));if(ho.length=0,Ui){Ui.push(...e);return}for(Ui=e,no=0;not.id==null?t.flags&2?-1:1/0:t.id;function M1(t){try{for(Gs=0;Gsso.emit(i,...r)),Pl=[]):typeof window<"u"&&window.HTMLElement&&!((s=(n=window.navigator)==null?void 0:n.userAgent)!=null&&s.includes("jsdom"))?((e.__VUE_DEVTOOLS_HOOK_REPLAY__=e.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(r=>{$1(r,e)}),setTimeout(()=>{so||(e.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Pl=[])},3e3)):Pl=[]}let ln=null,Ou=null;function ja(t){const e=ln;return ln=t,Ou=t&&t.type.__scopeId||null,e}function xw(t){Ou=t}function Iw(){Ou=null}const Nw=t=>L;function L(t,e=ln,n){if(!e||t._n)return t;const s=(...i)=>{s._d&&Ga(-1);const r=ja(e);let o;try{o=t(...i)}finally{ja(r),s._d&&Ga(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function ms(t,e){if(ln===null)return t;const n=fl(ln),s=t.dirs||(t.dirs=[]);for(let i=0;it.__isTeleport,ba=t=>t&&(t.disabled||t.disabled===""),Rm=t=>t&&(t.defer||t.defer===""),Dm=t=>typeof SVGElement<"u"&&t instanceof SVGElement,Lm=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,If=(t,e)=>{const n=t&&t.to;return Lt(n)?e?e(n):null:n},U1={name:"Teleport",__isTeleport:!0,process(t,e,n,s,i,r,o,a,l,c){const{mc:u,pc:d,pbc:f,o:{insert:h,querySelector:p,createText:m,createComment:v}}=c,y=ba(e.props);let{shapeFlag:_,children:g,dynamicChildren:b}=e;if(t==null){const E=e.el=m(""),k=e.anchor=m("");h(E,n,s),h(k,n,s);const I=(C,R)=>{_&16&&(i&&i.isCE&&(i.ce._teleportTarget=C),u(g,C,R,i,r,o,a,l))},D=()=>{const C=e.target=If(e.props,p),R=H1(C,e,m,h);C&&(o!=="svg"&&Dm(C)?o="svg":o!=="mathml"&&Lm(C)&&(o="mathml"),y||(I(C,R),ac(e,!1)))};y&&(I(n,k),ac(e,!0)),Rm(e.props)?(e.el.__isMounted=!1,Ye(()=>{D(),delete e.el.__isMounted},r)):D()}else{if(Rm(e.props)&&t.el.__isMounted===!1){Ye(()=>{U1.process(t,e,n,s,i,r,o,a,l,c)},r);return}e.el=t.el,e.targetStart=t.targetStart;const E=e.anchor=t.anchor,k=e.target=t.target,I=e.targetAnchor=t.targetAnchor,D=ba(t.props),C=D?n:k,R=D?E:I;if(o==="svg"||Dm(k)?o="svg":(o==="mathml"||Lm(k))&&(o="mathml"),b?(f(t.dynamicChildren,b,C,i,r,o,a),rp(t,e,!0)):l||d(t,e,C,R,i,r,o,a,!1),y)D?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):Rl(e,n,E,c,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const j=e.target=If(e.props,p);j&&Rl(e,j,null,c,0)}else D&&Rl(e,k,I,c,1);ac(e,y)}},remove(t,e,n,{um:s,o:{remove:i}},r){const{shapeFlag:o,children:a,anchor:l,targetStart:c,targetAnchor:u,target:d,props:f}=t;if(d&&(i(c),i(u)),r&&i(l),o&16){const h=r||!ba(f);for(let p=0;p{t.isMounted=!0}),Pu(()=>{t.isUnmounting=!0}),t}const ns=[Function,Array],qh={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ns,onEnter:ns,onAfterEnter:ns,onEnterCancelled:ns,onBeforeLeave:ns,onLeave:ns,onAfterLeave:ns,onLeaveCancelled:ns,onBeforeAppear:ns,onAppear:ns,onAfterAppear:ns,onAppearCancelled:ns},j1=t=>{const e=t.subTree;return e.component?j1(e.component):e},Dw={name:"BaseTransition",props:qh,setup(t,{slots:e}){const n=cn(),s=zh();return()=>{const i=e.default&&xu(e.default(),!0);if(!i||!i.length)return;const r=B1(i),o=ie(t),{mode:a}=o;if(s.isLeaving)return Rd(r);const l=Mm(r);if(!l)return Rd(r);let c=_o(l,o,s,n,d=>c=d);l.type!==Be&&Ci(l,c);let u=n.subTree&&Mm(n.subTree);if(u&&u.type!==Be&&!As(u,l)&&j1(n).type!==Be){let d=_o(u,o,s,n);if(Ci(u,d),a==="out-in"&&l.type!==Be)return s.isLeaving=!0,d.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,u=void 0},Rd(r);a==="in-out"&&l.type!==Be?d.delayLeave=(f,h,p)=>{const m=G1(s,u);m[String(u.key)]=u,f[ci]=()=>{h(),f[ci]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{p(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return r}}};function B1(t){let e=t[0];if(t.length>1){for(const n of t)if(n.type!==Be){e=n;break}}return e}const W1=Dw;function G1(t,e){const{leavingVNodes:n}=t;let s=n.get(e.type);return s||(s=Object.create(null),n.set(e.type,s)),s}function _o(t,e,n,s,i){const{appear:r,mode:o,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:h,onAfterLeave:p,onLeaveCancelled:m,onBeforeAppear:v,onAppear:y,onAfterAppear:_,onAppearCancelled:g}=e,b=String(t.key),E=G1(n,t),k=(C,R)=>{C&&ps(C,s,9,R)},I=(C,R)=>{const j=R[1];k(C,R),bt(C)?C.every(M=>M.length<=1)&&j():C.length<=1&&j()},D={mode:o,persisted:a,beforeEnter(C){let R=l;if(!n.isMounted)if(r)R=v||l;else return;C[ci]&&C[ci](!0);const j=E[b];j&&As(t,j)&&j.el[ci]&&j.el[ci](),k(R,[C])},enter(C){let R=c,j=u,M=d;if(!n.isMounted)if(r)R=y||c,j=_||u,M=g||d;else return;let H=!1;const q=C[Dl]=ot=>{H||(H=!0,ot?k(M,[C]):k(j,[C]),D.delayedLeave&&D.delayedLeave(),C[Dl]=void 0)};R?I(R,[C,q]):q()},leave(C,R){const j=String(t.key);if(C[Dl]&&C[Dl](!0),n.isUnmounting)return R();k(f,[C]);let M=!1;const H=C[ci]=q=>{M||(M=!0,R(),q?k(m,[C]):k(p,[C]),C[ci]=void 0,E[j]===t&&delete E[j])};E[j]=t,h?I(h,[C,H]):H()},clone(C){const R=_o(C,e,n,s,i);return i&&i(R),R}};return D}function Rd(t){if(ll(t))return t=Js(t),t.children=null,t}function Mm(t){if(!ll(t))return V1(t.type)&&t.children?B1(t.children):t;if(t.component)return t.component.subTree;const{shapeFlag:e,children:n}=t;if(n){if(e&16)return n[0];if(e&32&&It(n.default))return n.default()}}function Ci(t,e){t.shapeFlag&6&&t.component?(t.transition=e,Ci(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function xu(t,e=!1,n){let s=[],i=0;for(let r=0;r1)for(let r=0;rn.value,set:r=>n.value=r})}return n}const Mc=new WeakMap;function po(t,e,n,s,i=!1){if(bt(t)){t.forEach((p,m)=>po(p,e&&(bt(e)?e[m]:e),n,s,i));return}if(Zi(s)&&!i){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&po(t,e,n,s.component.subTree);return}const r=s.shapeFlag&4?fl(s.component):s.el,o=i?null:r,{i:a,r:l}=t,c=e&&e.r,u=a.refs===Yt?a.refs={}:a.refs,d=a.setupState,f=ie(d),h=d===Yt?yr:p=>he(f,p);if(c!=null&&c!==l){if($m(e),Lt(c))u[c]=null,h(c)&&(d[c]=null);else if(Ie(c)){c.value=null;const p=e;p.k&&(u[p.k]=null)}}if(It(l))Fo(l,a,12,[o,u]);else{const p=Lt(l),m=Ie(l);if(p||m){const v=()=>{if(t.f){const y=p?h(l)?d[l]:u[l]:l.value;if(i)bt(y)&&gu(y,r);else if(bt(y))y.includes(r)||y.push(r);else if(p)u[l]=[r],h(l)&&(d[l]=u[l]);else{const _=[r];l.value=_,t.k&&(u[t.k]=_)}}else p?(u[l]=o,h(l)&&(d[l]=o)):m&&(l.value=o,t.k&&(u[t.k]=o))};if(o){const y=()=>{v(),Mc.delete(t)};y.id=-1,Mc.set(t,y),Ye(y,n)}else $m(t),v()}}}function $m(t){const e=Mc.get(t);e&&(e.flags|=8,Mc.delete(t))}let Fm=!1;const Kr=()=>{Fm||(console.error("Hydration completed but contains mismatches."),Fm=!0)},$w=t=>t.namespaceURI.includes("svg")&&t.tagName!=="foreignObject",Fw=t=>t.namespaceURI.includes("MathML"),Ll=t=>{if(t.nodeType===1){if($w(t))return"svg";if(Fw(t))return"mathml"}},lo=t=>t.nodeType===8;function Vw(t){const{mt:e,p:n,o:{patchProp:s,createText:i,nextSibling:r,parentNode:o,remove:a,insert:l,createComment:c}}=t,u=(g,b)=>{if(!b.hasChildNodes()){n(null,g,b),Lc(),b._vnode=g;return}d(b.firstChild,g,null,null,null),Lc(),b._vnode=g},d=(g,b,E,k,I,D=!1)=>{D=D||!!b.dynamicChildren;const C=lo(g)&&g.data==="[",R=()=>m(g,b,E,k,I,C),{type:j,ref:M,shapeFlag:H,patchFlag:q}=b;let ot=g.nodeType;b.el=g,q===-2&&(D=!1,b.dynamicChildren=null);let W=null;switch(j){case yi:ot!==3?b.children===""?(l(b.el=i(""),o(g),g),W=g):W=R():(g.data!==b.children&&(Kr(),g.data=b.children),W=r(g));break;case Be:_(g)?(W=r(g),y(b.el=g.content.firstChild,g,E)):ot!==8||C?W=R():W=r(g);break;case Ar:if(C&&(g=r(g),ot=g.nodeType),ot===1||ot===3){W=g;const Q=!b.children.length;for(let it=0;it{D=D||!!b.dynamicChildren;const{type:C,props:R,patchFlag:j,shapeFlag:M,dirs:H,transition:q}=b,ot=C==="input"||C==="option";if(ot||j!==-1){H&&Ks(b,null,E,"created");let W=!1;if(_(g)){W=gv(null,q)&&E&&E.vnode.props&&E.vnode.props.appear;const it=g.content.firstChild;if(W){const St=it.getAttribute("class");St&&(it.$cls=St),q.beforeEnter(it)}y(it,g,E),b.el=g=it}if(M&16&&!(R&&(R.innerHTML||R.textContent))){let it=h(g.firstChild,b,g,E,k,I,D);for(;it;){Ml(g,1)||Kr();const St=it;it=it.nextSibling,a(St)}}else if(M&8){let it=b.children;it[0]===` +`&&(g.tagName==="PRE"||g.tagName==="TEXTAREA")&&(it=it.slice(1)),g.textContent!==it&&(Ml(g,0)||Kr(),g.textContent=b.children)}if(R){if(ot||!D||j&48){const it=g.tagName.includes("-");for(const St in R)(ot&&(St.endsWith("value")||St==="indeterminate")||nr(St)&&!gi(St)||St[0]==="."||it)&&s(g,St,null,R[St],void 0,E)}else if(R.onClick)s(g,"onClick",null,R.onClick,void 0,E);else if(j&4&&Xs(R.style))for(const it in R.style)R.style[it]}let Q;(Q=R&&R.onVnodeBeforeMount)&&$n(Q,E,b),H&&Ks(b,null,E,"beforeMount"),((Q=R&&R.onVnodeMounted)||H||W)&&Tv(()=>{Q&&$n(Q,E,b),W&&q.enter(g),H&&Ks(b,null,E,"mounted")},k)}return g.nextSibling},h=(g,b,E,k,I,D,C)=>{C=C||!!b.dynamicChildren;const R=b.children,j=R.length;for(let M=0;M{const{slotScopeIds:C}=b;C&&(I=I?I.concat(C):C);const R=o(g),j=h(r(g),b,R,E,k,I,D);return j&&lo(j)&&j.data==="]"?r(b.anchor=j):(Kr(),l(b.anchor=c("]"),R,j),j)},m=(g,b,E,k,I,D)=>{if(Ml(g.parentElement,1)||Kr(),b.el=null,D){const j=v(g);for(;;){const M=r(g);if(M&&M!==j)a(M);else break}}const C=r(g),R=o(g);return a(g),n(null,b,R,C,E,k,Ll(R),I),E&&(E.vnode.el=b.el,Du(E,b.el)),C},v=(g,b="[",E="]")=>{let k=0;for(;g;)if(g=r(g),g&&lo(g)&&(g.data===b&&k++,g.data===E)){if(k===0)return r(g);k--}return g},y=(g,b,E)=>{const k=b.parentNode;k&&k.replaceChild(g,b);let I=E;for(;I;)I.vnode.el===b&&(I.vnode.el=I.subTree.el=g),I=I.parent},_=g=>g.nodeType===1&&g.tagName==="TEMPLATE";return[u,d]}const Vm="data-allow-mismatch",Uw={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function Ml(t,e){if(e===0||e===1)for(;t&&!t.hasAttribute(Vm);)t=t.parentElement;const n=t&&t.getAttribute(Vm);if(n==null)return!1;if(n==="")return!0;{const s=n.split(",");return e===0&&s.includes("children")?!0:s.includes(Uw[e])}}const Hw=ol().requestIdleCallback||(t=>setTimeout(t,1)),jw=ol().cancelIdleCallback||(t=>clearTimeout(t)),Bw=(t=1e4)=>e=>{const n=Hw(e,{timeout:t});return()=>jw(n)};function Ww(t){const{top:e,left:n,bottom:s,right:i}=t.getBoundingClientRect(),{innerHeight:r,innerWidth:o}=window;return(e>0&&e0&&s0&&n0&&i(e,n)=>{const s=new IntersectionObserver(i=>{for(const r of i)if(r.isIntersecting){s.disconnect(),e();break}},t);return n(i=>{if(i instanceof Element){if(Ww(i))return e(),s.disconnect(),!1;s.observe(i)}}),()=>s.disconnect()},Kw=t=>e=>{if(t){const n=matchMedia(t);if(n.matches)e();else return n.addEventListener("change",e,{once:!0}),()=>n.removeEventListener("change",e)}},zw=(t=[])=>(e,n)=>{Lt(t)&&(t=[t]);let s=!1;const i=o=>{s||(s=!0,r(),e(),o.target.dispatchEvent(new o.constructor(o.type,o)))},r=()=>{n(o=>{for(const a of t)o.removeEventListener(a,i)})};return n(o=>{for(const a of t)o.addEventListener(a,i,{once:!0})}),r};function qw(t,e){if(lo(t)&&t.data==="["){let n=1,s=t.nextSibling;for(;s;){if(s.nodeType===1){if(e(s)===!1)break}else if(lo(s))if(s.data==="]"){if(--n===0)break}else s.data==="["&&n++;s=s.nextSibling}}else e(t)}const Zi=t=>!!t.type.__asyncLoader;function Xw(t){It(t)&&(t={loader:t});const{loader:e,loadingComponent:n,errorComponent:s,delay:i=200,hydrate:r,timeout:o,suspensible:a=!0,onError:l}=t;let c=null,u,d=0;const f=()=>(d++,c=null,h()),h=()=>{let p;return c||(p=c=e().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),l)return new Promise((v,y)=>{l(m,()=>v(f()),()=>y(m),d+1)});throw m}).then(m=>p!==c&&c?c:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),u=m,m)))};return Oi({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(p,m,v){let y=!1;(m.bu||(m.bu=[])).push(()=>y=!0);const _=()=>{y||v()},g=r?()=>{const b=r(_,E=>qw(p,E));b&&(m.bum||(m.bum=[])).push(b)}:_;u?g():h().then(()=>!m.isUnmounted&&g())},get __asyncResolved(){return u},setup(){const p=an;if(Xh(p),u)return()=>Dd(u,p);const m=g=>{c=null,Vr(g,p,13,!s)};if(a&&p.suspense||So)return h().then(g=>()=>Dd(g,p)).catch(g=>(m(g),()=>s?S(s,{error:g}):null));const v=cs(!1),y=cs(),_=cs(!!i);return i&&setTimeout(()=>{_.value=!1},i),o!=null&&setTimeout(()=>{if(!v.value&&!y.value){const g=new Error(`Async component timed out after ${o}ms.`);m(g),y.value=g}},o),h().then(()=>{v.value=!0,p.parent&&ll(p.parent.vnode)&&p.parent.update()}).catch(g=>{m(g),y.value=g}),()=>{if(v.value&&u)return Dd(u,p);if(y.value&&s)return S(s,{error:y.value});if(n&&!_.value)return S(n)}}})}function Dd(t,e){const{ref:n,props:s,children:i,ce:r}=e.vnode,o=S(t,s,i);return o.ref=n,o.ce=r,delete e.vnode.ce,o}const ll=t=>t.type.__isKeepAlive,Yw={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(t,{slots:e}){const n=cn(),s=n.ctx;if(!s.renderer)return()=>{const _=e.default&&e.default();return _&&_.length===1?_[0]:_};const i=new Map,r=new Set;let o=null;const a=n.suspense,{renderer:{p:l,m:c,um:u,o:{createElement:d}}}=s,f=d("div");s.activate=(_,g,b,E,k)=>{const I=_.component;c(_,g,b,0,a),l(I.vnode,_,g,b,I,a,E,_.slotScopeIds,k),Ye(()=>{I.isDeactivated=!1,I.a&&kr(I.a);const D=_.props&&_.props.onVnodeMounted;D&&$n(D,I.parent,_)},a)},s.deactivate=_=>{const g=_.component;Fc(g.m),Fc(g.a),c(_,f,null,1,a),Ye(()=>{g.da&&kr(g.da);const b=_.props&&_.props.onVnodeUnmounted;b&&$n(b,g.parent,_),g.isDeactivated=!0},a)};function h(_){Ld(_),u(_,n,a,!0)}function p(_){i.forEach((g,b)=>{const E=Hf(g.type);E&&!_(E)&&m(b)})}function m(_){const g=i.get(_);g&&(!o||!As(g,o))?h(g):o&&Ld(o),i.delete(_),r.delete(_)}Zn(()=>[t.include,t.exclude],([_,g])=>{_&&p(b=>oa(_,b)),g&&p(b=>!oa(g,b))},{flush:"post",deep:!0});let v=null;const y=()=>{v!=null&&(Vc(n.subTree.type)?Ye(()=>{i.set(v,$l(n.subTree))},n.subTree.suspense):i.set(v,$l(n.subTree)))};return Vo(y),Nu(y),Pu(()=>{i.forEach(_=>{const{subTree:g,suspense:b}=n,E=$l(g);if(_.type===E.type&&_.key===E.key){Ld(E);const k=E.component.da;k&&Ye(k,b);return}h(_)})}),()=>{if(v=null,!e.default)return o=null;const _=e.default(),g=_[0];if(_.length>1)return o=null,_;if(!Ti(g)||!(g.shapeFlag&4)&&!(g.shapeFlag&128))return o=null,g;let b=$l(g);if(b.type===Be)return o=null,b;const E=b.type,k=Hf(Zi(b)?b.type.__asyncResolved||{}:E),{include:I,exclude:D,max:C}=t;if(I&&(!k||!oa(I,k))||D&&k&&oa(D,k))return b.shapeFlag&=-257,o=b,g;const R=b.key==null?E:b.key,j=i.get(R);return b.el&&(b=Js(b),g.shapeFlag&128&&(g.ssContent=b)),v=R,j?(b.el=j.el,b.component=j.component,b.transition&&Ci(b,b.transition),b.shapeFlag|=512,r.delete(R),r.add(R)):(r.add(R),C&&r.size>parseInt(C,10)&&m(r.values().next().value)),b.shapeFlag|=256,o=b,Vc(g.type)?g:b}}},Zw=Yw;function oa(t,e){return bt(t)?t.some(n=>oa(n,e)):Lt(t)?t.split(",").includes(e):Jb(t)?(t.lastIndex=0,t.test(e)):!1}function K1(t,e){q1(t,"a",e)}function z1(t,e){q1(t,"da",e)}function q1(t,e,n=an){const s=t.__wdc||(t.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return t()});if(Iu(e,s,n),n){let i=n.parent;for(;i&&i.parent;)ll(i.parent.vnode)&&Jw(s,e,n,i),i=i.parent}}function Jw(t,e,n,s){const i=Iu(e,t,s,!0);cl(()=>{gu(s[e],i)},n)}function Ld(t){t.shapeFlag&=-257,t.shapeFlag&=-513}function $l(t){return t.shapeFlag&128?t.ssContent:t}function Iu(t,e,n=an,s=!1){if(n){const i=n[t]||(n[t]=[]),r=e.__weh||(e.__weh=(...o)=>{Ei();const a=Pr(n),l=ps(e,n,t,o);return a(),wi(),l});return s?i.unshift(r):i.push(r),r}}const xi=t=>(e,n=an)=>{(!So||t==="sp")&&Iu(t,(...s)=>e(...s),n)},X1=xi("bm"),Vo=xi("m"),Yh=xi("bu"),Nu=xi("u"),Pu=xi("bum"),cl=xi("um"),Y1=xi("sp"),Z1=xi("rtg"),J1=xi("rtc");function Q1(t,e=an){Iu("ec",t,e)}const Zh="components",Qw="directives";function w(t,e){return tp(Zh,t,!0,e)||t}const tv=Symbol.for("v-ndc");function Jh(t){return Lt(t)?tp(Zh,t,!1)||t:t||tv}function Qh(t){return tp(Qw,t)}function tp(t,e,n=!0,s=!1){const i=ln||an;if(i){const r=i.type;if(t===Zh){const a=Hf(r,!1);if(a&&(a===e||a===Ce(e)||a===ir(Ce(e))))return r}const o=Um(i[t]||r[t],e)||Um(i.appContext[t],e);return!o&&s?r:o}}function Um(t,e){return t&&(t[e]||t[Ce(e)]||t[ir(Ce(e))])}function de(t,e,n,s){let i;const r=n&&n[s],o=bt(t);if(o||Lt(t)){const a=o&&Xs(t);let l=!1,c=!1;a&&(l=!Yn(t),c=ki(t),t=Eu(t)),i=new Array(t.length);for(let u=0,d=t.length;ue(a,l,void 0,r&&r[l]));else{const a=Object.keys(t);i=new Array(a.length);for(let l=0,c=a.length;l{const r=s.fn(...i);return r&&(r.key=s.key),r}:s.fn)}return t}function ue(t,e,n={},s,i){if(ln.ce||ln.parent&&Zi(ln.parent)&&ln.parent.ce)return e!=="default"&&(n.name=e),O(),pt(rt,null,[S("slot",n,s&&s())],64);let r=t[e];r&&r._c&&(r._d=!1),O();const o=r&&ep(r(n)),a=n.key||o&&o.key,l=pt(rt,{key:(a&&!Pn(a)?a:`_${e}`)+(!o&&s?"_fb":"")},o||(s?s():[]),o&&t._===1?64:-2);return!i&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),r&&r._c&&(r._d=!0),l}function ep(t){return t.some(e=>Ti(e)?!(e.type===Be||e.type===rt&&!ep(e.children)):!0)?t:null}function t3(t,e){const n={};for(const s in t)n[e&&/[A-Z]/.test(s)?`on:${s}`:wr(s)]=t[s];return n}const Nf=t=>t?Pv(t)?fl(t):Nf(t.parent):null,va=Zt(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Nf(t.parent),$root:t=>Nf(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>np(t),$forceUpdate:t=>t.f||(t.f=()=>{Kh(t.update)}),$nextTick:t=>t.n||(t.n=Ur.bind(t.proxy)),$watch:t=>I3.bind(t)}),Md=(t,e)=>t!==Yt&&!t.__isScriptSetup&&he(t,e),Pf={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:n,setupState:s,data:i,props:r,accessCache:o,type:a,appContext:l}=t;let c;if(e[0]!=="$"){const h=o[e];if(h!==void 0)switch(h){case 1:return s[e];case 2:return i[e];case 4:return n[e];case 3:return r[e]}else{if(Md(s,e))return o[e]=1,s[e];if(i!==Yt&&he(i,e))return o[e]=2,i[e];if((c=t.propsOptions[0])&&he(c,e))return o[e]=3,r[e];if(n!==Yt&&he(n,e))return o[e]=4,n[e];Rf&&(o[e]=0)}}const u=va[e];let d,f;if(u)return e==="$attrs"&&bn(t.attrs,"get",""),u(t);if((d=a.__cssModules)&&(d=d[e]))return d;if(n!==Yt&&he(n,e))return o[e]=4,n[e];if(f=l.config.globalProperties,he(f,e))return f[e]},set({_:t},e,n){const{data:s,setupState:i,ctx:r}=t;return Md(i,e)?(i[e]=n,!0):s!==Yt&&he(s,e)?(s[e]=n,!0):he(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(r[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:s,appContext:i,propsOptions:r,type:o}},a){let l,c;return!!(n[a]||t!==Yt&&a[0]!=="$"&&he(t,a)||Md(e,a)||(l=r[0])&&he(l,a)||he(s,a)||he(va,a)||he(i.config.globalProperties,a)||(c=o.__cssModules)&&c[a])},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:he(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}},e3=Zt({},Pf,{get(t,e){if(e!==Symbol.unscopables)return Pf.get(t,e,t)},has(t,e){return e[0]!=="_"&&!Lh(e)}});function n3(){return null}function s3(){return null}function i3(t){}function r3(t){}function o3(){return null}function a3(){}function l3(t,e){return null}function c3(){return ev().slots}function u3(){return ev().attrs}function ev(t){const e=cn();return e.setupContext||(e.setupContext=Lv(e))}function Ba(t){return bt(t)?t.reduce((e,n)=>(e[n]=null,e),{}):t}function d3(t,e){const n=Ba(t);for(const s in e){if(s.startsWith("__skip"))continue;let i=n[s];i?bt(i)||It(i)?i=n[s]={type:i,default:e[s]}:i.default=e[s]:i===null&&(i=n[s]={default:e[s]}),i&&e[`__skip_${s}`]&&(i.skipFactory=!0)}return n}function f3(t,e){return!t||!e?t||e:bt(t)&&bt(e)?t.concat(e):Zt({},Ba(t),Ba(e))}function h3(t,e){const n={};for(const s in t)e.includes(s)||Object.defineProperty(n,s,{enumerable:!0,get:()=>t[s]});return n}function p3(t){const e=cn();let n=t();return Ff(),yu(n)&&(n=n.catch(s=>{throw Pr(e),s})),[n,()=>Pr(e)]}let Rf=!0;function m3(t){const e=np(t),n=t.proxy,s=t.ctx;Rf=!1,e.beforeCreate&&Hm(e.beforeCreate,t,"bc");const{data:i,computed:r,methods:o,watch:a,provide:l,inject:c,created:u,beforeMount:d,mounted:f,beforeUpdate:h,updated:p,activated:m,deactivated:v,beforeDestroy:y,beforeUnmount:_,destroyed:g,unmounted:b,render:E,renderTracked:k,renderTriggered:I,errorCaptured:D,serverPrefetch:C,expose:R,inheritAttrs:j,components:M,directives:H,filters:q}=e;if(c&&g3(c,s,null),o)for(const Q in o){const it=o[Q];It(it)&&(s[Q]=it.bind(n))}if(i){const Q=i.call(n,n);be(Q)&&(t.data=$o(Q))}if(Rf=!0,r)for(const Q in r){const it=r[Q],St=It(it)?it.bind(n,n):It(it.get)?it.get.bind(n,n):Qe,zt=!It(it)&&It(it.set)?it.set.bind(n):Qe,xt=Je({get:St,set:zt});Object.defineProperty(s,Q,{enumerable:!0,configurable:!0,get:()=>xt.value,set:Dt=>xt.value=Dt})}if(a)for(const Q in a)nv(a[Q],s,n,Q);if(l){const Q=It(l)?l.call(n):l;Reflect.ownKeys(Q).forEach(it=>{_a(it,Q[it])})}u&&Hm(u,t,"c");function W(Q,it){bt(it)?it.forEach(St=>Q(St.bind(n))):it&&Q(it.bind(n))}if(W(X1,d),W(Vo,f),W(Yh,h),W(Nu,p),W(K1,m),W(z1,v),W(Q1,D),W(J1,k),W(Z1,I),W(Pu,_),W(cl,b),W(Y1,C),bt(R))if(R.length){const Q=t.exposed||(t.exposed={});R.forEach(it=>{Object.defineProperty(Q,it,{get:()=>n[it],set:St=>n[it]=St,enumerable:!0})})}else t.exposed||(t.exposed={});E&&t.render===Qe&&(t.render=E),j!=null&&(t.inheritAttrs=j),M&&(t.components=M),H&&(t.directives=H),C&&Xh(t)}function g3(t,e,n=Qe){bt(t)&&(t=Df(t));for(const s in t){const i=t[s];let r;be(i)?"default"in i?r=us(i.from||s,i.default,!0):r=us(i.from||s):r=us(i),Ie(r)?Object.defineProperty(e,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):e[s]=r}}function Hm(t,e,n){ps(bt(t)?t.map(s=>s.bind(e.proxy)):t.bind(e.proxy),e,n)}function nv(t,e,n,s){let i=s.includes(".")?Ev(n,s):()=>n[s];if(Lt(t)){const r=e[t];It(r)&&Zn(i,r)}else if(It(t))Zn(i,t.bind(n));else if(be(t))if(bt(t))t.forEach(r=>nv(r,e,n,s));else{const r=It(t.handler)?t.handler.bind(n):e[t.handler];It(r)&&Zn(i,r,t)}}function np(t){const e=t.type,{mixins:n,extends:s}=e,{mixins:i,optionsCache:r,config:{optionMergeStrategies:o}}=t.appContext,a=r.get(e);let l;return a?l=a:!i.length&&!n&&!s?l=e:(l={},i.length&&i.forEach(c=>$c(l,c,o,!0)),$c(l,e,o)),be(e)&&r.set(e,l),l}function $c(t,e,n,s=!1){const{mixins:i,extends:r}=e;r&&$c(t,r,n,!0),i&&i.forEach(o=>$c(t,o,n,!0));for(const o in e)if(!(s&&o==="expose")){const a=y3[o]||n&&n[o];t[o]=a?a(t[o],e[o]):e[o]}return t}const y3={data:jm,props:Bm,emits:Bm,methods:aa,computed:aa,beforeCreate:Tn,created:Tn,beforeMount:Tn,mounted:Tn,beforeUpdate:Tn,updated:Tn,beforeDestroy:Tn,beforeUnmount:Tn,destroyed:Tn,unmounted:Tn,activated:Tn,deactivated:Tn,errorCaptured:Tn,serverPrefetch:Tn,components:aa,directives:aa,watch:v3,provide:jm,inject:b3};function jm(t,e){return e?t?function(){return Zt(It(t)?t.call(this,this):t,It(e)?e.call(this,this):e)}:e:t}function b3(t,e){return aa(Df(t),Df(e))}function Df(t){if(bt(t)){const e={};for(let n=0;n1)return n&&It(e)?e.call(s&&s.proxy):e}}function iv(){return!!(cn()||Tr)}const rv={},ov=()=>Object.create(rv),av=t=>Object.getPrototypeOf(t)===rv;function E3(t,e,n,s=!1){const i={},r=ov();t.propsDefaults=Object.create(null),lv(t,e,i,r);for(const o in t.propsOptions[0])o in i||(i[o]=void 0);n?t.props=s?i:Bh(i):t.type.props?t.props=i:t.props=r,t.attrs=r}function w3(t,e,n,s){const{props:i,attrs:r,vnode:{patchFlag:o}}=t,a=ie(i),[l]=t.propsOptions;let c=!1;if((s||o>0)&&!(o&16)){if(o&8){const u=t.vnode.dynamicProps;for(let d=0;d{l=!0;const[f,h]=cv(d,e,!0);Zt(o,f),h&&a.push(...h)};!n&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}if(!r&&!l)return be(t)&&s.set(t,Sr),Sr;if(bt(r))for(let u=0;ut==="_"||t==="_ctx"||t==="$stable",ip=t=>bt(t)?t.map(Fn):[Fn(t)],C3=(t,e,n)=>{if(e._n)return e;const s=L((...i)=>ip(e(...i)),n);return s._c=!1,s},uv=(t,e,n)=>{const s=t._ctx;for(const i in t){if(sp(i))continue;const r=t[i];if(It(r))e[i]=C3(i,r,s);else if(r!=null){const o=ip(r);e[i]=()=>o}}},dv=(t,e)=>{const n=ip(e);t.slots.default=()=>n},fv=(t,e,n)=>{for(const s in e)(n||!sp(s))&&(t[s]=e[s])},T3=(t,e,n)=>{const s=t.slots=ov();if(t.vnode.shapeFlag&32){const i=e._;i?(fv(s,e,n),n&&Dh(s,"_",i,!0)):uv(e,s)}else e&&dv(t,e)},A3=(t,e,n)=>{const{vnode:s,slots:i}=t;let r=!0,o=Yt;if(s.shapeFlag&32){const a=e._;a?n&&a===1?r=!1:fv(i,e,n):(r=!e.$stable,uv(e,i)),o=e}else e&&(dv(t,e),o={default:1});if(r)for(const a in i)!sp(a)&&o[a]==null&&delete i[a]},Ye=Tv;function hv(t){return mv(t)}function pv(t){return mv(t,Vw)}function mv(t,e){const n=ol();n.__VUE__=!0;const{insert:s,remove:i,patchProp:r,createElement:o,createText:a,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:f,setScopeId:h=Qe,insertStaticContent:p}=t,m=(A,P,G,st=null,J=null,T=null,x=void 0,V=null,K=!!P.dynamicChildren)=>{if(A===P)return;A&&!As(A,P)&&(st=Z(A),Dt(A,J,T,!0),A=null),P.patchFlag===-2&&(K=!1,P.dynamicChildren=null);const{type:tt,ref:lt,shapeFlag:$}=P;switch(tt){case yi:v(A,P,G,st);break;case Be:y(A,P,G,st);break;case Ar:A==null&&_(P,G,st,x);break;case rt:M(A,P,G,st,J,T,x,V,K);break;default:$&1?E(A,P,G,st,J,T,x,V,K):$&6?H(A,P,G,st,J,T,x,V,K):($&64||$&128)&&tt.process(A,P,G,st,J,T,x,V,K,yt)}lt!=null&&J?po(lt,A&&A.ref,T,P||A,!P):lt==null&&A&&A.ref!=null&&po(A.ref,null,T,A,!0)},v=(A,P,G,st)=>{if(A==null)s(P.el=a(P.children),G,st);else{const J=P.el=A.el;P.children!==A.children&&c(J,P.children)}},y=(A,P,G,st)=>{A==null?s(P.el=l(P.children||""),G,st):P.el=A.el},_=(A,P,G,st)=>{[A.el,A.anchor]=p(A.children,P,G,st,A.el,A.anchor)},g=({el:A,anchor:P},G,st)=>{let J;for(;A&&A!==P;)J=f(A),s(A,G,st),A=J;s(P,G,st)},b=({el:A,anchor:P})=>{let G;for(;A&&A!==P;)G=f(A),i(A),A=G;i(P)},E=(A,P,G,st,J,T,x,V,K)=>{P.type==="svg"?x="svg":P.type==="math"&&(x="mathml"),A==null?k(P,G,st,J,T,x,V,K):C(A,P,J,T,x,V,K)},k=(A,P,G,st,J,T,x,V)=>{let K,tt;const{props:lt,shapeFlag:$,transition:z,dirs:ht}=A;if(K=A.el=o(A.type,T,lt&<.is,lt),$&8?u(K,A.children):$&16&&D(A.children,K,null,st,J,$d(A,T),x,V),ht&&Ks(A,null,st,"created"),I(K,A,A.scopeId,x,st),lt){for(const Kt in lt)Kt!=="value"&&!gi(Kt)&&r(K,Kt,null,lt[Kt],T,st);"value"in lt&&r(K,"value",null,lt.value,T),(tt=lt.onVnodeBeforeMount)&&$n(tt,st,A)}ht&&Ks(A,null,st,"beforeMount");const Et=gv(J,z);Et&&z.beforeEnter(K),s(K,P,G),((tt=lt&<.onVnodeMounted)||Et||ht)&&Ye(()=>{tt&&$n(tt,st,A),Et&&z.enter(K),ht&&Ks(A,null,st,"mounted")},J)},I=(A,P,G,st,J)=>{if(G&&h(A,G),st)for(let T=0;T{for(let tt=K;tt{const V=P.el=A.el;let{patchFlag:K,dynamicChildren:tt,dirs:lt}=P;K|=A.patchFlag&16;const $=A.props||Yt,z=P.props||Yt;let ht;if(G&&cr(G,!1),(ht=z.onVnodeBeforeUpdate)&&$n(ht,G,P,A),lt&&Ks(P,A,G,"beforeUpdate"),G&&cr(G,!0),($.innerHTML&&z.innerHTML==null||$.textContent&&z.textContent==null)&&u(V,""),tt?R(A.dynamicChildren,tt,V,G,st,$d(P,J),T):x||it(A,P,V,null,G,st,$d(P,J),T,!1),K>0){if(K&16)j(V,$,z,G,J);else if(K&2&&$.class!==z.class&&r(V,"class",null,z.class,J),K&4&&r(V,"style",$.style,z.style,J),K&8){const Et=P.dynamicProps;for(let Kt=0;Kt{ht&&$n(ht,G,P,A),lt&&Ks(P,A,G,"updated")},st)},R=(A,P,G,st,J,T,x)=>{for(let V=0;V{if(P!==G){if(P!==Yt)for(const T in P)!gi(T)&&!(T in G)&&r(A,T,P[T],null,J,st);for(const T in G){if(gi(T))continue;const x=G[T],V=P[T];x!==V&&T!=="value"&&r(A,T,V,x,J,st)}"value"in G&&r(A,"value",P.value,G.value,J)}},M=(A,P,G,st,J,T,x,V,K)=>{const tt=P.el=A?A.el:a(""),lt=P.anchor=A?A.anchor:a("");let{patchFlag:$,dynamicChildren:z,slotScopeIds:ht}=P;ht&&(V=V?V.concat(ht):ht),A==null?(s(tt,G,st),s(lt,G,st),D(P.children||[],G,lt,J,T,x,V,K)):$>0&&$&64&&z&&A.dynamicChildren?(R(A.dynamicChildren,z,G,J,T,x,V),(P.key!=null||J&&P===J.subTree)&&rp(A,P,!0)):it(A,P,G,lt,J,T,x,V,K)},H=(A,P,G,st,J,T,x,V,K)=>{P.slotScopeIds=V,A==null?P.shapeFlag&512?J.ctx.activate(P,G,st,x,K):q(P,G,st,J,T,x,K):ot(A,P,K)},q=(A,P,G,st,J,T,x)=>{const V=A.component=Nv(A,st,J);if(ll(A)&&(V.ctx.renderer=yt),Rv(V,!1,x),V.asyncDep){if(J&&J.registerDep(V,W,x),!A.el){const K=V.subTree=S(Be);y(null,K,P,G),A.placeholder=K.el}}else W(V,A,P,G,J,T,x)},ot=(A,P,G)=>{const st=P.component=A.component;if($3(A,P,G))if(st.asyncDep&&!st.asyncResolved){Q(st,P,G);return}else st.next=P,st.update();else P.el=A.el,st.vnode=P},W=(A,P,G,st,J,T,x)=>{const V=()=>{if(A.isMounted){let{next:$,bu:z,u:ht,parent:Et,vnode:Kt}=A;{const mt=yv(A);if(mt){$&&($.el=Kt.el,Q(A,$,x)),mt.asyncDep.then(()=>{A.isUnmounted||V()});return}}let U=$,B;cr(A,!1),$?($.el=Kt.el,Q(A,$,x)):$=Kt,z&&kr(z),(B=$.props&&$.props.onVnodeBeforeUpdate)&&$n(B,Et,$,Kt),cr(A,!0);const X=lc(A),at=A.subTree;A.subTree=X,m(at,X,d(at.el),Z(at),A,J,T),$.el=X.el,U===null&&Du(A,X.el),ht&&Ye(ht,J),(B=$.props&&$.props.onVnodeUpdated)&&Ye(()=>$n(B,Et,$,Kt),J)}else{let $;const{el:z,props:ht}=P,{bm:Et,m:Kt,parent:U,root:B,type:X}=A,at=Zi(P);if(cr(A,!1),Et&&kr(Et),!at&&($=ht&&ht.onVnodeBeforeMount)&&$n($,U,P),cr(A,!0),z&&Xt){const mt=()=>{A.subTree=lc(A),Xt(z,A.subTree,A,J,null)};at&&X.__asyncHydrate?X.__asyncHydrate(z,A,mt):mt()}else{B.ce&&B.ce._def.shadowRoot!==!1&&B.ce._injectChildStyle(X);const mt=A.subTree=lc(A);m(null,mt,G,st,A,J,T),P.el=mt.el}if(Kt&&Ye(Kt,J),!at&&($=ht&&ht.onVnodeMounted)){const mt=P;Ye(()=>$n($,U,mt),J)}(P.shapeFlag&256||U&&Zi(U.vnode)&&U.vnode.shapeFlag&256)&&A.a&&Ye(A.a,J),A.isMounted=!0,P=G=st=null}};A.scope.on();const K=A.effect=new $a(V);A.scope.off();const tt=A.update=K.run.bind(K),lt=A.job=K.runIfDirty.bind(K);lt.i=A,lt.id=A.uid,K.scheduler=()=>Kh(lt),cr(A,!0),tt()},Q=(A,P,G)=>{P.component=A;const st=A.vnode.props;A.vnode=P,A.next=null,w3(A,P.props,st,G),A3(A,P.children,G),Ei(),Pm(A),wi()},it=(A,P,G,st,J,T,x,V,K=!1)=>{const tt=A&&A.children,lt=A?A.shapeFlag:0,$=P.children,{patchFlag:z,shapeFlag:ht}=P;if(z>0){if(z&128){zt(tt,$,G,st,J,T,x,V,K);return}else if(z&256){St(tt,$,G,st,J,T,x,V,K);return}}ht&8?(lt&16&&Wt(tt,J,T),$!==tt&&u(G,$)):lt&16?ht&16?zt(tt,$,G,st,J,T,x,V,K):Wt(tt,J,T,!0):(lt&8&&u(G,""),ht&16&&D($,G,st,J,T,x,V,K))},St=(A,P,G,st,J,T,x,V,K)=>{A=A||Sr,P=P||Sr;const tt=A.length,lt=P.length,$=Math.min(tt,lt);let z;for(z=0;z<$;z++){const ht=P[z]=K?Hi(P[z]):Fn(P[z]);m(A[z],ht,G,null,J,T,x,V,K)}tt>lt?Wt(A,J,T,!0,!1,$):D(P,G,st,J,T,x,V,K,$)},zt=(A,P,G,st,J,T,x,V,K)=>{let tt=0;const lt=P.length;let $=A.length-1,z=lt-1;for(;tt<=$&&tt<=z;){const ht=A[tt],Et=P[tt]=K?Hi(P[tt]):Fn(P[tt]);if(As(ht,Et))m(ht,Et,G,null,J,T,x,V,K);else break;tt++}for(;tt<=$&&tt<=z;){const ht=A[$],Et=P[z]=K?Hi(P[z]):Fn(P[z]);if(As(ht,Et))m(ht,Et,G,null,J,T,x,V,K);else break;$--,z--}if(tt>$){if(tt<=z){const ht=z+1,Et=htz)for(;tt<=$;)Dt(A[tt],J,T,!0),tt++;else{const ht=tt,Et=tt,Kt=new Map;for(tt=Et;tt<=z;tt++){const $t=P[tt]=K?Hi(P[tt]):Fn(P[tt]);$t.key!=null&&Kt.set($t.key,tt)}let U,B=0;const X=z-Et+1;let at=!1,mt=0;const At=new Array(X);for(tt=0;tt=X){Dt($t,J,T,!0);continue}let fe;if($t.key!=null)fe=Kt.get($t.key);else for(U=Et;U<=z;U++)if(At[U-Et]===0&&As($t,P[U])){fe=U;break}fe===void 0?Dt($t,J,T,!0):(At[fe-Et]=tt+1,fe>=mt?mt=fe:at=!0,m($t,P[fe],G,null,J,T,x,V,K),B++)}const Ft=at?O3(At):Sr;for(U=Ft.length-1,tt=X-1;tt>=0;tt--){const $t=Et+tt,fe=P[$t],Pt=P[$t+1],wt=$t+1{const{el:T,type:x,transition:V,children:K,shapeFlag:tt}=A;if(tt&6){xt(A.component.subTree,P,G,st);return}if(tt&128){A.suspense.move(P,G,st);return}if(tt&64){x.move(A,P,G,yt);return}if(x===rt){s(T,P,G);for(let $=0;$V.enter(T),J);else{const{leave:$,delayLeave:z,afterLeave:ht}=V,Et=()=>{A.ctx.isUnmounted?i(T):s(T,P,G)},Kt=()=>{T._isLeaving&&T[ci](!0),$(T,()=>{Et(),ht&&ht()})};z?z(T,Et,Kt):Kt()}else s(T,P,G)},Dt=(A,P,G,st=!1,J=!1)=>{const{type:T,props:x,ref:V,children:K,dynamicChildren:tt,shapeFlag:lt,patchFlag:$,dirs:z,cacheIndex:ht}=A;if($===-2&&(J=!1),V!=null&&(Ei(),po(V,null,G,A,!0),wi()),ht!=null&&(P.renderCache[ht]=void 0),lt&256){P.ctx.deactivate(A);return}const Et=lt&1&&z,Kt=!Zi(A);let U;if(Kt&&(U=x&&x.onVnodeBeforeUnmount)&&$n(U,P,A),lt&6)pe(A.component,G,st);else{if(lt&128){A.suspense.unmount(G,st);return}Et&&Ks(A,null,P,"beforeUnmount"),lt&64?A.type.remove(A,P,G,yt,st):tt&&!tt.hasOnce&&(T!==rt||$>0&&$&64)?Wt(tt,P,G,!1,!0):(T===rt&&$&384||!J&<&16)&&Wt(K,P,G),st&&re(A)}(Kt&&(U=x&&x.onVnodeUnmounted)||Et)&&Ye(()=>{U&&$n(U,P,A),Et&&Ks(A,null,P,"unmounted")},G)},re=A=>{const{type:P,el:G,anchor:st,transition:J}=A;if(P===rt){oe(G,st);return}if(P===Ar){b(A);return}const T=()=>{i(G),J&&!J.persisted&&J.afterLeave&&J.afterLeave()};if(A.shapeFlag&1&&J&&!J.persisted){const{leave:x,delayLeave:V}=J,K=()=>x(G,T);V?V(A.el,T,K):K()}else T()},oe=(A,P)=>{let G;for(;A!==P;)G=f(A),i(A),A=G;i(P)},pe=(A,P,G)=>{const{bum:st,scope:J,job:T,subTree:x,um:V,m:K,a:tt}=A;Fc(K),Fc(tt),st&&kr(st),J.stop(),T&&(T.flags|=8,Dt(x,A,P,G)),V&&Ye(V,P),Ye(()=>{A.isUnmounted=!0},P)},Wt=(A,P,G,st=!1,J=!1,T=0)=>{for(let x=T;x{if(A.shapeFlag&6)return Z(A.component.subTree);if(A.shapeFlag&128)return A.suspense.next();const P=f(A.anchor||A.el),G=P&&P[F1];return G?f(G):P};let dt=!1;const ct=(A,P,G)=>{A==null?P._vnode&&Dt(P._vnode,null,null,!0):m(P._vnode||null,A,P,null,null,null,G),P._vnode=A,dt||(dt=!0,Pm(),Lc(),dt=!1)},yt={p:m,um:Dt,m:xt,r:re,mt:q,mc:D,pc:it,pbc:R,n:Z,o:t};let Ht,Xt;return e&&([Ht,Xt]=e(yt)),{render:ct,hydrate:Ht,createApp:S3(ct,Ht)}}function $d({type:t,props:e},n){return n==="svg"&&t==="foreignObject"||n==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:n}function cr({effect:t,job:e},n){n?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function gv(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function rp(t,e,n=!1){const s=t.children,i=e.children;if(bt(s)&&bt(i))for(let r=0;r>1,t[n[a]]0&&(e[s]=n[r-1]),n[r]=s)}}for(r=n.length,o=n[r-1];r-- >0;)n[r]=o,o=e[o];return n}function yv(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:yv(e)}function Fc(t){if(t)for(let e=0;eus(bv);function _v(t,e){return dl(t,null,e)}function x3(t,e){return dl(t,null,{flush:"post"})}function Sv(t,e){return dl(t,null,{flush:"sync"})}function Zn(t,e,n){return dl(t,e,n)}function dl(t,e,n=Yt){const{immediate:s,deep:i,flush:r,once:o}=n,a=Zt({},n),l=e&&s||!e&&r!=="post";let c;if(So){if(r==="sync"){const h=vv();c=h.__watcherHandles||(h.__watcherHandles=[])}else if(!l){const h=()=>{};return h.stop=Qe,h.resume=Qe,h.pause=Qe,h}}const u=an;a.call=(h,p,m)=>ps(h,u,p,m);let d=!1;r==="post"?a.scheduler=h=>{Ye(h,u&&u.suspense)}:r!=="sync"&&(d=!0,a.scheduler=(h,p)=>{p?h():Kh(h)}),a.augmentJob=h=>{e&&(h.flags|=4),d&&(h.flags|=2,u&&(h.id=u.uid,h.i=u))};const f=Sw(t,e,a);return So&&(c?c.push(f):l&&f()),f}function I3(t,e,n){const s=this.proxy,i=Lt(t)?t.includes(".")?Ev(s,t):()=>s[t]:t.bind(s,s);let r;It(e)?r=e:(r=e.handler,n=e);const o=Pr(this),a=dl(i,r.bind(s),n);return o(),a}function Ev(t,e){const n=e.split(".");return()=>{let s=t;for(let i=0;i{let u,d=Yt,f;return Sv(()=>{const h=t[i];yn(u,h)&&(u=h,c())}),{get(){return l(),n.get?n.get(u):u},set(h){const p=n.set?n.set(h):h;if(!yn(p,u)&&!(d!==Yt&&yn(h,d)))return;const m=s.vnode.props;m&&(e in m||i in m||r in m)&&(`onUpdate:${e}`in m||`onUpdate:${i}`in m||`onUpdate:${r}`in m)||(u=h,c()),s.emit(`update:${e}`,p),yn(h,p)&&yn(h,d)&&!yn(p,f)&&c(),d=h,f=p}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?o||Yt:a,done:!1}:{done:!0}}}},a}const wv=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ce(e)}Modifiers`]||t[`${vn(e)}Modifiers`];function P3(t,e,...n){if(t.isUnmounted)return;const s=t.vnode.props||Yt;let i=n;const r=e.startsWith("update:"),o=r&&wv(s,e.slice(7));o&&(o.trim&&(i=n.map(u=>Lt(u)?u.trim():u)),o.number&&(i=n.map(La)));let a,l=s[a=wr(e)]||s[a=wr(Ce(e))];!l&&r&&(l=s[a=wr(vn(e))]),l&&ps(l,t,6,i);const c=s[a+"Once"];if(c){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,ps(c,t,6,i)}}const R3=new WeakMap;function kv(t,e,n=!1){const s=n?R3:e.emitsCache,i=s.get(t);if(i!==void 0)return i;const r=t.emits;let o={},a=!1;if(!It(t)){const l=c=>{const u=kv(c,e,!0);u&&(a=!0,Zt(o,u))};!n&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!r&&!a?(be(t)&&s.set(t,null),null):(bt(r)?r.forEach(l=>o[l]=null):Zt(o,r),be(t)&&s.set(t,o),o)}function Ru(t,e){return!t||!nr(e)?!1:(e=e.slice(2).replace(/Once$/,""),he(t,e[0].toLowerCase()+e.slice(1))||he(t,vn(e))||he(t,e))}function lc(t){const{type:e,vnode:n,proxy:s,withProxy:i,propsOptions:[r],slots:o,attrs:a,emit:l,render:c,renderCache:u,props:d,data:f,setupState:h,ctx:p,inheritAttrs:m}=t,v=ja(t);let y,_;try{if(n.shapeFlag&4){const b=i||s,E=b;y=Fn(c.call(E,b,u,d,h,f,p)),_=a}else{const b=e;y=Fn(b.length>1?b(d,{attrs:a,slots:o,emit:l}):b(d,null)),_=e.props?a:L3(a)}}catch(b){Sa.length=0,Vr(b,t,1),y=S(Be)}let g=y;if(_&&m!==!1){const b=Object.keys(_),{shapeFlag:E}=g;b.length&&E&7&&(r&&b.some(mu)&&(_=M3(_,r)),g=Js(g,_,!1,!0))}return n.dirs&&(g=Js(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&Ci(g,n.transition),y=g,ja(v),y}function D3(t,e=!0){let n;for(let s=0;s{let e;for(const n in t)(n==="class"||n==="style"||nr(n))&&((e||(e={}))[n]=t[n]);return e},M3=(t,e)=>{const n={};for(const s in t)(!mu(s)||!(s.slice(9)in e))&&(n[s]=t[s]);return n};function $3(t,e,n){const{props:s,children:i,component:r}=t,{props:o,children:a,patchFlag:l}=e,c=r.emitsOptions;if(e.dirs||e.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return s?Gm(s,o,c):!!o;if(l&8){const u=e.dynamicProps;for(let d=0;dt.__isSuspense;let Mf=0;const F3={name:"Suspense",__isSuspense:!0,process(t,e,n,s,i,r,o,a,l,c){if(t==null)U3(e,n,s,i,r,o,a,l,c);else{if(r&&r.deps>0&&!t.suspense.isInFallback){e.suspense=t.suspense,e.suspense.vnode=e,e.el=t.el;return}H3(t,e,n,s,i,o,a,l,c)}},hydrate:j3,normalize:B3},V3=F3;function Wa(t,e){const n=t.props&&t.props[e];It(n)&&n()}function U3(t,e,n,s,i,r,o,a,l){const{p:c,o:{createElement:u}}=l,d=u("div"),f=t.suspense=Cv(t,i,s,e,d,n,r,o,a,l);c(null,f.pendingBranch=t.ssContent,d,null,s,f,r,o),f.deps>0?(Wa(t,"onPending"),Wa(t,"onFallback"),c(null,t.ssFallback,e,n,s,null,r,o),mo(f,t.ssFallback)):f.resolve(!1,!0)}function H3(t,e,n,s,i,r,o,a,{p:l,um:c,o:{createElement:u}}){const d=e.suspense=t.suspense;d.vnode=e,e.el=t.el;const f=e.ssContent,h=e.ssFallback,{activeBranch:p,pendingBranch:m,isInFallback:v,isHydrating:y}=d;if(m)d.pendingBranch=f,As(m,f)?(l(m,f,d.hiddenContainer,null,i,d,r,o,a),d.deps<=0?d.resolve():v&&(y||(l(p,h,n,s,i,null,r,o,a),mo(d,h)))):(d.pendingId=Mf++,y?(d.isHydrating=!1,d.activeBranch=m):c(m,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),v?(l(null,f,d.hiddenContainer,null,i,d,r,o,a),d.deps<=0?d.resolve():(l(p,h,n,s,i,null,r,o,a),mo(d,h))):p&&As(p,f)?(l(p,f,n,s,i,d,r,o,a),d.resolve(!0)):(l(null,f,d.hiddenContainer,null,i,d,r,o,a),d.deps<=0&&d.resolve()));else if(p&&As(p,f))l(p,f,n,s,i,d,r,o,a),mo(d,f);else if(Wa(e,"onPending"),d.pendingBranch=f,f.shapeFlag&512?d.pendingId=f.component.suspenseId:d.pendingId=Mf++,l(null,f,d.hiddenContainer,null,i,d,r,o,a),d.deps<=0)d.resolve();else{const{timeout:_,pendingId:g}=d;_>0?setTimeout(()=>{d.pendingId===g&&d.fallback(h)},_):_===0&&d.fallback(h)}}function Cv(t,e,n,s,i,r,o,a,l,c,u=!1){const{p:d,m:f,um:h,n:p,o:{parentNode:m,remove:v}}=c;let y;const _=W3(t);_&&e&&e.pendingBranch&&(y=e.pendingId,e.deps++);const g=t.props?Ma(t.props.timeout):void 0,b=r,E={vnode:t,parent:e,parentComponent:n,namespace:o,container:s,hiddenContainer:i,deps:0,pendingId:Mf++,timeout:typeof g=="number"?g:-1,activeBranch:null,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(k=!1,I=!1){const{vnode:D,activeBranch:C,pendingBranch:R,pendingId:j,effects:M,parentComponent:H,container:q}=E;let ot=!1;E.isHydrating?E.isHydrating=!1:k||(ot=C&&R.transition&&R.transition.mode==="out-in",ot&&(C.transition.afterLeave=()=>{j===E.pendingId&&(f(R,q,r===b?p(C):r,0),Ua(M))}),C&&(m(C.el)===q&&(r=p(C)),h(C,H,E,!0)),ot||f(R,q,r,0)),mo(E,R),E.pendingBranch=null,E.isInFallback=!1;let W=E.parent,Q=!1;for(;W;){if(W.pendingBranch){W.effects.push(...M),Q=!0;break}W=W.parent}!Q&&!ot&&Ua(M),E.effects=[],_&&e&&e.pendingBranch&&y===e.pendingId&&(e.deps--,e.deps===0&&!I&&e.resolve()),Wa(D,"onResolve")},fallback(k){if(!E.pendingBranch)return;const{vnode:I,activeBranch:D,parentComponent:C,container:R,namespace:j}=E;Wa(I,"onFallback");const M=p(D),H=()=>{E.isInFallback&&(d(null,k,R,M,C,null,j,a,l),mo(E,k))},q=k.transition&&k.transition.mode==="out-in";q&&(D.transition.afterLeave=H),E.isInFallback=!0,h(D,C,null,!0),q||H()},move(k,I,D){E.activeBranch&&f(E.activeBranch,k,I,D),E.container=k},next(){return E.activeBranch&&p(E.activeBranch)},registerDep(k,I,D){const C=!!E.pendingBranch;C&&E.deps++;const R=k.vnode.el;k.asyncDep.catch(j=>{Vr(j,k,0)}).then(j=>{if(k.isUnmounted||E.isUnmounted||E.pendingId!==k.suspenseId)return;k.asyncResolved=!0;const{vnode:M}=k;Vf(k,j,!1),R&&(M.el=R);const H=!R&&k.subTree.el;I(k,M,m(R||k.subTree.el),R?null:p(k.subTree),E,o,D),H&&v(H),Du(k,M.el),C&&--E.deps===0&&E.resolve()})},unmount(k,I){E.isUnmounted=!0,E.activeBranch&&h(E.activeBranch,n,k,I),E.pendingBranch&&h(E.pendingBranch,n,k,I)}};return E}function j3(t,e,n,s,i,r,o,a,l){const c=e.suspense=Cv(e,s,n,t.parentNode,document.createElement("div"),null,i,r,o,a,!0),u=l(t,c.pendingBranch=e.ssContent,n,c,r,o);return c.deps===0&&c.resolve(!1,!0),u}function B3(t){const{shapeFlag:e,children:n}=t,s=e&32;t.ssContent=Km(s?n.default:n),t.ssFallback=s?Km(n.fallback):S(Be)}function Km(t){let e;if(It(t)){const n=Nr&&t._c;n&&(t._d=!1,O()),t=t(),n&&(t._d=!0,e=wn,Av())}return bt(t)&&(t=D3(t)),t=Fn(t),e&&!t.dynamicChildren&&(t.dynamicChildren=e.filter(n=>n!==t)),t}function Tv(t,e){e&&e.pendingBranch?bt(t)?e.effects.push(...t):e.effects.push(t):Ua(t)}function mo(t,e){t.activeBranch=e;const{vnode:n,parentComponent:s}=t;let i=e.el;for(;!i&&e.component;)e=e.component.subTree,i=e.el;n.el=i,s&&s.subTree===n&&(s.vnode.el=i,Du(s,i))}function W3(t){const e=t.props&&t.props.suspensible;return e!=null&&e!==!1}const rt=Symbol.for("v-fgt"),yi=Symbol.for("v-txt"),Be=Symbol.for("v-cmt"),Ar=Symbol.for("v-stc"),Sa=[];let wn=null;function O(t=!1){Sa.push(wn=t?null:[])}function Av(){Sa.pop(),wn=Sa[Sa.length-1]||null}let Nr=1;function Ga(t,e=!1){Nr+=t,t<0&&wn&&e&&(wn.hasOnce=!0)}function Ov(t){return t.dynamicChildren=Nr>0?wn||Sr:null,Av(),Nr>0&&wn&&wn.push(t),t}function F(t,e,n,s,i,r){return Ov(N(t,e,n,s,i,r,!0))}function pt(t,e,n,s,i){return Ov(S(t,e,n,s,i,!0))}function Ti(t){return t?t.__v_isVNode===!0:!1}function As(t,e){return t.type===e.type&&t.key===e.key}function G3(t){}const xv=({key:t})=>t??null,cc=({ref:t,ref_key:e,ref_for:n})=>(typeof t=="number"&&(t=""+t),t!=null?Lt(t)||Ie(t)||It(t)?{i:ln,r:t,k:e,f:!!n}:t:null);function N(t,e=null,n=null,s=0,i=null,r=t===rt?0:1,o=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&xv(e),ref:e&&cc(e),scopeId:Ou,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:s,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:ln};return a?(op(l,n),r&128&&t.normalize(l)):n&&(l.shapeFlag|=Lt(n)?8:16),Nr>0&&!o&&wn&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&wn.push(l),l}const S=K3;function K3(t,e=null,n=null,s=0,i=null,r=!1){if((!t||t===tv)&&(t=Be),Ti(t)){const a=Js(t,e,!0);return n&&op(a,n),Nr>0&&!r&&wn&&(a.shapeFlag&6?wn[wn.indexOf(t)]=a:wn.push(a)),a.patchFlag=-2,a}if(tk(t)&&(t=t.__vccOpts),e){e=Iv(e);let{class:a,style:l}=e;a&&!Lt(a)&&(e.class=Gt(a)),be(l)&&(Cu(l)&&!bt(l)&&(l=Zt({},l)),e.style=Mo(l))}const o=Lt(t)?1:Vc(t)?128:V1(t)?64:be(t)?4:It(t)?2:0;return N(t,e,n,s,i,o,r,!0)}function Iv(t){return t?Cu(t)||av(t)?Zt({},t):t:null}function Js(t,e,n=!1,s=!1){const{props:i,ref:r,patchFlag:o,children:a,transition:l}=t,c=e?co(i||{},e):i,u={__v_isVNode:!0,__v_skip:!0,type:t.type,props:c,key:c&&xv(c),ref:e&&e.ref?n&&r?bt(r)?r.concat(cc(e)):[r,cc(e)]:cc(e):r,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:a,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==rt?o===-1?16:o|16:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Js(t.ssContent),ssFallback:t.ssFallback&&Js(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&s&&Ci(u,l.clone(u)),u}function Ns(t=" ",e=0){return S(yi,null,t,e)}function z3(t,e){const n=S(Ar,null,t);return n.staticCount=e,n}function vt(t="",e=!1){return e?(O(),pt(Be,null,t)):S(Be,null,t)}function Fn(t){return t==null||typeof t=="boolean"?S(Be):bt(t)?S(rt,null,t.slice()):Ti(t)?Hi(t):S(yi,null,String(t))}function Hi(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Js(t)}function op(t,e){let n=0;const{shapeFlag:s}=t;if(e==null)e=null;else if(bt(e))n=16;else if(typeof e=="object")if(s&65){const i=e.default;i&&(i._c&&(i._d=!1),op(t,i()),i._c&&(i._d=!0));return}else{n=32;const i=e._;!i&&!av(e)?e._ctx=ln:i===3&&ln&&(ln.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else It(e)?(e={default:e,_ctx:ln},n=32):(e=String(e),s&64?(n=16,e=[Ns(e)]):n=8);t.children=e,t.shapeFlag|=n}function co(...t){const e={};for(let n=0;nan||ln;let Uc,$f;{const t=ol(),e=(n,s)=>{let i;return(i=t[n])||(i=t[n]=[]),i.push(s),r=>{i.length>1?i.forEach(o=>o(r)):i[0](r)}};Uc=e("__VUE_INSTANCE_SETTERS__",n=>an=n),$f=e("__VUE_SSR_SETTERS__",n=>So=n)}const Pr=t=>{const e=an;return Uc(t),t.scope.on(),()=>{t.scope.off(),Uc(e)}},Ff=()=>{an&&an.scope.off(),Uc(null)};function Pv(t){return t.vnode.shapeFlag&4}let So=!1;function Rv(t,e=!1,n=!1){e&&$f(e);const{props:s,children:i}=t.vnode,r=Pv(t);E3(t,s,r,e),T3(t,i,n||e);const o=r?Y3(t,e):void 0;return e&&$f(!1),o}function Y3(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,Pf);const{setup:s}=n;if(s){Ei();const i=t.setupContext=s.length>1?Lv(t):null,r=Pr(t),o=Fo(s,t,0,[t.props,i]),a=yu(o);if(wi(),r(),(a||t.sp)&&!Zi(t)&&Xh(t),a){if(o.then(Ff,Ff),e)return o.then(l=>{Vf(t,l,e)}).catch(l=>{Vr(l,t,0)});t.asyncDep=o}else Vf(t,o,e)}else Dv(t,e)}function Vf(t,e,n){It(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:be(e)&&(t.setupState=Gh(e)),Dv(t,n)}let Hc,Uf;function Z3(t){Hc=t,Uf=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,e3))}}const J3=()=>!Hc;function Dv(t,e,n){const s=t.type;if(!t.render){if(!e&&Hc&&!s.render){const i=s.template||np(t).template;if(i){const{isCustomElement:r,compilerOptions:o}=t.appContext.config,{delimiters:a,compilerOptions:l}=s,c=Zt(Zt({isCustomElement:r,delimiters:a},o),l);s.render=Hc(i,c)}}t.render=s.render||Qe,Uf&&Uf(t)}{const i=Pr(t);Ei();try{m3(t)}finally{wi(),i()}}}const Q3={get(t,e){return bn(t,"get",""),t[e]}};function Lv(t){const e=n=>{t.exposed=n||{}};return{attrs:new Proxy(t.attrs,Q3),slots:t.slots,emit:t.emit,expose:e}}function fl(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Gh(Tu(t.exposed)),{get(e,n){if(n in e)return e[n];if(n in va)return va[n](t)},has(e,n){return n in e||n in va}})):t.proxy}function Hf(t,e=!0){return It(t)?t.displayName||t.name:t.name||e&&t.__name}function tk(t){return It(t)&&"__vccOpts"in t}const Je=(t,e)=>yw(t,e,So);function zs(t,e,n){const s=(r,o,a)=>{Ga(-1);try{return S(r,o,a)}finally{Ga(1)}},i=arguments.length;return i===2?be(e)&&!bt(e)?Ti(e)?s(t,null,[e]):s(t,e):s(t,null,e):(i>3?n=Array.prototype.slice.call(arguments,2):i===3&&Ti(n)&&(n=[n]),s(t,e,n))}function ek(){}function nk(t,e,n,s){const i=n[s];if(i&&Mv(i,t))return i;const r=e();return r.memo=t.slice(),r.cacheIndex=s,n[s]=r}function Mv(t,e){const n=t.memo;if(n.length!=e.length)return!1;for(let s=0;s0&&wn&&wn.push(t),!0}const $v="3.5.21",sk=Qe,ik=Tw,rk=so,ok=$1,ak={createComponentInstance:Nv,setupComponent:Rv,renderComponentRoot:lc,setCurrentRenderingInstance:ja,isVNode:Ti,normalizeVNode:Fn,getComponentPublicInstance:fl,ensureValidVNode:ep,pushWarningContext:Ew,popWarningContext:ww},lk=ak,ck=null,uk=null,dk=null;/** * @vue/runtime-dom v3.5.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Bf;const Xm=typeof window<"u"&&window.trustedTypes;if(Xm)try{Bf=Xm.createPolicy("vue",{createHTML:t=>t})}catch{}const $v=Bf?t=>Bf.createHTML(t):t=>t,fk="http://www.w3.org/2000/svg",hk="http://www.w3.org/1998/Math/MathML",li=typeof document<"u"?document:null,Ym=li&&li.createElement("template"),pk={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,s)=>{const i=e==="svg"?li.createElementNS(fk,t):e==="mathml"?li.createElementNS(hk,t):n?li.createElement(t,{is:n}):li.createElement(t);return t==="select"&&s&&s.multiple!=null&&i.setAttribute("multiple",s.multiple),i},createText:t=>li.createTextNode(t),createComment:t=>li.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>li.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,s,i,r){const o=n?n.previousSibling:e.lastChild;if(i&&(i===r||i.nextSibling))for(;e.insertBefore(i.cloneNode(!0),n),!(i===r||!(i=i.nextSibling)););else{Ym.innerHTML=$v(s==="svg"?`${t}`:s==="mathml"?`${t}`:t);const a=Ym.content;if(s==="svg"||s==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,n)}return[o?o.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}},Ni="transition",Yo="animation",Eo=Symbol("_vtc"),Fv={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Vv=Zt({},Yh,Fv),mk=t=>(t.displayName="Transition",t.props=Vv,t),Uv=mk((t,{slots:e})=>qs(B1,Hv(t),e)),ur=(t,e=[])=>{bt(t)?t.forEach(n=>n(...e)):t&&t(...e)},Zm=t=>t?bt(t)?t.some(e=>e.length>1):t.length>1:!1;function Hv(t){const e={};for(const $ in t)$ in Fv||(e[$]=t[$]);if(t.css===!1)return e;const{name:n="v",type:s,duration:i,enterFromClass:r=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=r,appearActiveClass:c=o,appearToClass:u=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=t,p=gk(i),m=p&&p[0],_=p&&p[1],{onBeforeEnter:y,onEnter:v,onEnterCancelled:g,onLeave:b,onLeaveCancelled:S,onBeforeAppear:k=y,onAppear:I=v,onAppearCancelled:D=g}=e,C=($,H,X,ot)=>{$._enterCancelled=ot,$i($,H?u:a),$i($,H?c:o),X&&X()},R=($,H)=>{$._isLeaving=!1,$i($,d),$i($,h),$i($,f),H&&H()},B=$=>(H,X)=>{const ot=$?I:v,G=()=>C(H,$,X);ur(ot,[H,G]),Jm(()=>{$i(H,$?l:r),Bs(H,$?u:a),Zm(ot)||Qm(H,s,m,G)})};return Zt(e,{onBeforeEnter($){ur(y,[$]),Bs($,r),Bs($,o)},onBeforeAppear($){ur(k,[$]),Bs($,l),Bs($,c)},onEnter:B(!1),onAppear:B(!0),onLeave($,H){$._isLeaving=!0;const X=()=>R($,H);Bs($,d),$._enterCancelled?(Bs($,f),Wf()):(Wf(),Bs($,f)),Jm(()=>{$._isLeaving&&($i($,d),Bs($,h),Zm(b)||Qm($,s,_,X))}),ur(b,[$,X])},onEnterCancelled($){C($,!1,void 0,!0),ur(g,[$])},onAppearCancelled($){C($,!0,void 0,!0),ur(D,[$])},onLeaveCancelled($){R($),ur(S,[$])}})}function gk(t){if(t==null)return null;if(me(t))return[Vd(t.enter),Vd(t.leave)];{const e=Vd(t);return[e,e]}}function Vd(t){return La(t)}function Bs(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.add(n)),(t[Eo]||(t[Eo]=new Set)).add(e)}function $i(t,e){e.split(/\s+/).forEach(s=>s&&t.classList.remove(s));const n=t[Eo];n&&(n.delete(e),n.size||(t[Eo]=void 0))}function Jm(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let yk=0;function Qm(t,e,n,s){const i=t._endId=++yk,r=()=>{i===t._endId&&s()};if(n!=null)return setTimeout(r,n);const{type:o,timeout:a,propCount:l}=jv(t,e);if(!o)return s();const c=o+"end";let u=0;const d=()=>{t.removeEventListener(c,f),r()},f=h=>{h.target===t&&++u>=l&&d()};setTimeout(()=>{u(n[p]||"").split(", "),i=s(`${Ni}Delay`),r=s(`${Ni}Duration`),o=tg(i,r),a=s(`${Yo}Delay`),l=s(`${Yo}Duration`),c=tg(a,l);let u=null,d=0,f=0;e===Ni?o>0&&(u=Ni,d=o,f=r.length):e===Yo?c>0&&(u=Yo,d=c,f=l.length):(d=Math.max(o,c),u=d>0?o>c?Ni:Yo:null,f=u?u===Ni?r.length:l.length:0);const h=u===Ni&&/\b(?:transform|all)(?:,|$)/.test(s(`${Ni}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:h}}function tg(t,e){for(;t.lengtheg(n)+eg(t[s])))}function eg(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function Wf(){return document.body.offsetHeight}function bk(t,e,n){const s=t[Eo];s&&(e=(e?[e,...s]:[...s]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}const Hc=Symbol("_vod"),Bv=Symbol("_vsh"),jc={name:"show",beforeMount(t,{value:e},{transition:n}){t[Hc]=t.style.display==="none"?"":t.style.display,n&&e?n.beforeEnter(t):Zo(t,e)},mounted(t,{value:e},{transition:n}){n&&e&&n.enter(t)},updated(t,{value:e,oldValue:n},{transition:s}){!e!=!n&&(s?e?(s.beforeEnter(t),Zo(t,!0),s.enter(t)):s.leave(t,()=>{Zo(t,!1)}):Zo(t,e))},beforeUnmount(t,{value:e}){Zo(t,e)}};function Zo(t,e){t.style.display=e?t[Hc]:"none",t[Bv]=!e}function vk(){jc.getSSRProps=({value:t})=>{if(!t)return{style:{display:"none"}}}}const Wv=Symbol("");function cp(t){const e=cn();if(!e)return;const n=e.ut=(i=t(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${e.uid}"]`)).forEach(r=>Bc(r,i))},s=()=>{const i=t(e.proxy);e.ce?Bc(e.ce,i):Gf(e.subTree,i),n(i)};Jh(()=>{Va(s)}),Fo(()=>{Zn(s,Qe,{flush:"post"});const i=new MutationObserver(s);i.observe(e.subTree.el.parentNode,{childList:!0}),cl(()=>i.disconnect())})}function Gf(t,e){if(t.shapeFlag&128){const n=t.suspense;t=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Gf(n.activeBranch,e)})}for(;t.component;)t=t.component.subTree;if(t.shapeFlag&1&&t.el)Bc(t.el,e);else if(t.type===it)t.children.forEach(n=>Gf(n,e));else if(t.type===Ar){let{el:n,anchor:s}=t;for(;n&&(Bc(n,e),n!==s);)n=n.nextSibling}}function Bc(t,e){if(t.nodeType===1){const n=t.style;let s="";for(const i in e){const r=u1(e[i]);n.setProperty(`--${i}`,r),s+=`--${i}: ${r};`}n[Wv]=s}}const _k=/(?:^|;)\s*display\s*:/;function Sk(t,e,n){const s=t.style,i=Rt(n);let r=!1;if(n&&!i){if(e)if(Rt(e))for(const o of e.split(";")){const a=o.slice(0,o.indexOf(":")).trim();n[a]==null&&cc(s,a,"")}else for(const o in e)n[o]==null&&cc(s,o,"");for(const o in n)o==="display"&&(r=!0),cc(s,o,n[o])}else if(i){if(e!==n){const o=s[Wv];o&&(n+=";"+o),s.cssText=n,r=_k.test(n)}}else e&&t.removeAttribute("style");Hc in t&&(t[Hc]=r?s.display:"",t[Bv]&&(s.display="none"))}const ng=/\s*!important$/;function cc(t,e,n){if(bt(n))n.forEach(s=>cc(t,e,s));else if(n==null&&(n=""),e.startsWith("--"))t.setProperty(e,n);else{const s=Ek(t,e);ng.test(n)?t.setProperty(vn(s),n.replace(ng,""),"important"):t[s]=n}}const sg=["Webkit","Moz","ms"],Ud={};function Ek(t,e){const n=Ud[e];if(n)return n;let s=Ce(e);if(s!=="filter"&&s in t)return Ud[e]=s;s=ir(s);for(let i=0;iHd||(Tk.then(()=>Hd=0),Hd=Date.now());function Ok(t,e){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;ps(xk(s,n.value),e,5,[s])};return n.value=t,n.attached=Ak(),n}function xk(t,e){if(bt(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map(s=>i=>!i._stopped&&s&&s(i))}else return e}const cg=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,Ik=(t,e,n,s,i,r)=>{const o=i==="svg";e==="class"?bk(t,s,o):e==="style"?Sk(t,n,s):nr(e)?mu(e)||kk(t,e,n,s,r):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Nk(t,e,s,o))?(og(t,e,s),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&rg(t,e,s,o,r,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!Rt(s))?og(t,Ce(e),s,r,e):(e==="true-value"?t._trueValue=s:e==="false-value"&&(t._falseValue=s),rg(t,e,s,o))};function Nk(t,e,n,s){if(s)return!!(e==="innerHTML"||e==="textContent"||e in t&&cg(e)&&xt(n));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const i=t.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return cg(e)&&Rt(n)?!1:e in t}const ug={};function Gv(t,e,n){let s=Oi(t,e);rl(s)&&(s=Zt({},s,e));class i extends Lu{constructor(o){super(s,o,n)}}return i.def=s,i}const Pk=((t,e)=>Gv(t,e,s0)),Rk=typeof HTMLElement<"u"?HTMLElement:class{};class Lu extends Rk{constructor(e,n={},s=Gc){super(),this._def=e,this._props=n,this._createApp=s,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&s!==Gc?this._root=this.shadowRoot:e.shadowRoot!==!1?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof Lu){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,Ur(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let s=0;s{for(const i of s)this._setAttr(i.attributeName)}),this._ob.observe(this,{attributes:!0});const e=(s,i=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:o}=s;let a;if(r&&!bt(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=La(this._props[l])),(a||(a=Object.create(null)))[Ce(l)]=!0)}this._numberProps=a,this._resolveProps(s),this.shadowRoot&&this._applyStyles(o),this._mount(s)},n=this._def.__asyncLoader;n?this._pendingResolve=n().then(s=>{s.configureApp=this._def.configureApp,e(this._def=s,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const n=this._instance&&this._instance.exposed;if(n)for(const s in n)de(this,s)||Object.defineProperty(this,s,{get:()=>Vn(n[s])})}_resolveProps(e){const{props:n}=e,s=bt(n)?n:Object.keys(n||{});for(const i of Object.keys(this))i[0]!=="_"&&s.includes(i)&&this._setProp(i,this[i]);for(const i of s.map(Ce))Object.defineProperty(this,i,{get(){return this._getProp(i)},set(r){this._setProp(i,r,!0,!0)}})}_setAttr(e){if(e.startsWith("data-v-"))return;const n=this.hasAttribute(e);let s=n?this.getAttribute(e):ug;const i=Ce(e);n&&this._numberProps&&this._numberProps[i]&&(s=La(s)),this._setProp(i,s,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,n,s=!0,i=!1){if(n!==this._props[e]&&(n===ug?delete this._props[e]:(this._props[e]=n,e==="key"&&this._app&&(this._app._ceVNode.key=n)),i&&this._instance&&this._update(),s)){const r=this._ob;r&&r.disconnect(),n===!0?this.setAttribute(vn(e),""):typeof n=="string"||typeof n=="number"?this.setAttribute(vn(e),n+""):n||this.removeAttribute(vn(e)),r&&r.observe(this,{attributes:!0})}}_update(){const e=this._createVNode();this._app&&(e.appContext=this._app._context),n0(e,this._root)}_createVNode(){const e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));const n=E(this._def,Zt(e,this._props));return this._instance||(n.ce=s=>{this._instance=s,s.ce=this,s.isCE=!0;const i=(r,o)=>{this.dispatchEvent(new CustomEvent(r,rl(o[0])?Zt({detail:o},o[0]):{detail:o}))};s.emit=(r,...o)=>{i(r,o),vn(r)!==r&&i(vn(r),o)},this._setParent()}),n}_applyStyles(e,n){if(!e)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const s=this._nonce;for(let i=e.length-1;i>=0;i--){const r=document.createElement("style");s&&r.setAttribute("nonce",s),r.textContent=e[i],this.shadowRoot.prepend(r)}}_parseSlots(){const e=this._slots={};let n;for(;n=this.firstChild;){const s=n.nodeType===1&&n.getAttribute("slot")||"default";(e[s]||(e[s]=[])).push(n),this.removeChild(n)}}_renderSlots(){const e=(this._teleportTarget||this).querySelectorAll("slot"),n=this._instance.type.__scopeId;for(let s=0;s(delete t.props.mode,t),$k=Mk({name:"TransitionGroup",props:Zt({},Vv,{tag:String,moveClass:String}),setup(t,{slots:e}){const n=cn(),s=Xh();let i,r;return Nu(()=>{if(!i.length)return;const o=t.moveClass||`${t.name||"v"}-move`;if(!jk(i[0].el,n.vnode.el,o)){i=[];return}i.forEach(Vk),i.forEach(Uk);const a=i.filter(Hk);Wf(),a.forEach(l=>{const c=l.el,u=c.style;Bs(c,o),u.transform=u.webkitTransform=u.transitionDuration="";const d=c[Wc]=f=>{f&&f.target!==c||(!f||f.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",d),c[Wc]=null,$i(c,o))};c.addEventListener("transitionend",d)}),i=[]}),()=>{const o=ie(t),a=Hv(o);let l=o.tag||it;if(i=[],r)for(let c=0;c{a.split(/\s+/).forEach(l=>l&&s.classList.remove(l))}),n.split(/\s+/).forEach(a=>a&&s.classList.add(a)),s.style.display="none";const r=e.nodeType===1?e:e.parentNode;r.appendChild(s);const{hasTransform:o}=jv(s);return r.removeChild(s),o}const tr=t=>{const e=t.props["onUpdate:modelValue"]||!1;return bt(e)?n=>kr(e,n):e};function Bk(t){t.target.composing=!0}function fg(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const ds=Symbol("_assign"),Qs={created(t,{modifiers:{lazy:e,trim:n,number:s}},i){t[ds]=tr(i);const r=s||i.props&&i.props.type==="number";fi(t,e?"change":"input",o=>{if(o.target.composing)return;let a=t.value;n&&(a=a.trim()),r&&(a=Da(a)),t[ds](a)}),n&&fi(t,"change",()=>{t.value=t.value.trim()}),e||(fi(t,"compositionstart",Bk),fi(t,"compositionend",fg),fi(t,"change",fg))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:n,modifiers:{lazy:s,trim:i,number:r}},o){if(t[ds]=tr(o),t.composing)return;const a=(r||t.type==="number")&&!/^0\d/.test(t.value)?Da(t.value):t.value,l=e??"";a!==l&&(document.activeElement===t&&t.type!=="range"&&(s&&e===n||i&&t.value.trim()===l)||(t.value=l))}},up={deep:!0,created(t,e,n){t[ds]=tr(n),fi(t,"change",()=>{const s=t._modelValue,i=wo(t),r=t.checked,o=t[ds];if(bt(s)){const a=al(s,i),l=a!==-1;if(r&&!l)o(s.concat(i));else if(!r&&l){const c=[...s];c.splice(a,1),o(c)}}else if(sr(s)){const a=new Set(s);r?a.add(i):a.delete(i),o(a)}else o(Xv(t,r))})},mounted:hg,beforeUpdate(t,e,n){t[ds]=tr(n),hg(t,e,n)}};function hg(t,{value:e,oldValue:n},s){t._modelValue=e;let i;if(bt(e))i=al(e,s.props.value)>-1;else if(sr(e))i=e.has(s.props.value);else{if(e===n)return;i=Si(e,Xv(t,!0))}t.checked!==i&&(t.checked=i)}const dp={created(t,{value:e},n){t.checked=Si(e,n.props.value),t[ds]=tr(n),fi(t,"change",()=>{t[ds](wo(t))})},beforeUpdate(t,{value:e,oldValue:n},s){t[ds]=tr(s),e!==n&&(t.checked=Si(e,s.props.value))}},fp={deep:!0,created(t,{value:e,modifiers:{number:n}},s){const i=sr(e);fi(t,"change",()=>{const r=Array.prototype.filter.call(t.options,o=>o.selected).map(o=>n?Da(wo(o)):wo(o));t[ds](t.multiple?i?new Set(r):r:r[0]),t._assigning=!0,Ur(()=>{t._assigning=!1})}),t[ds]=tr(s)},mounted(t,{value:e}){pg(t,e)},beforeUpdate(t,e,n){t[ds]=tr(n)},updated(t,{value:e}){t._assigning||pg(t,e)}};function pg(t,e){const n=t.multiple,s=bt(e);if(!(n&&!s&&!sr(e))){for(let i=0,r=t.options.length;iString(c)===String(a)):o.selected=al(e,a)>-1}else o.selected=e.has(a);else if(Si(wo(o),e)){t.selectedIndex!==i&&(t.selectedIndex=i);return}}!n&&t.selectedIndex!==-1&&(t.selectedIndex=-1)}}function wo(t){return"_value"in t?t._value:t.value}function Xv(t,e){const n=e?"_trueValue":"_falseValue";return n in t?t[n]:e}const Yv={created(t,e,n){Fl(t,e,n,null,"created")},mounted(t,e,n){Fl(t,e,n,null,"mounted")},beforeUpdate(t,e,n,s){Fl(t,e,n,s,"beforeUpdate")},updated(t,e,n,s){Fl(t,e,n,s,"updated")}};function Zv(t,e){switch(t){case"SELECT":return fp;case"TEXTAREA":return Qs;default:switch(e){case"checkbox":return up;case"radio":return dp;default:return Qs}}}function Fl(t,e,n,s,i){const o=Zv(t.tagName,n.props&&n.props.type)[i];o&&o(t,e,n,s)}function Wk(){Qs.getSSRProps=({value:t})=>({value:t}),dp.getSSRProps=({value:t},e)=>{if(e.props&&Si(e.props.value,t))return{checked:!0}},up.getSSRProps=({value:t},e)=>{if(bt(t)){if(e.props&&al(t,e.props.value)>-1)return{checked:!0}}else if(sr(t)){if(e.props&&t.has(e.props.value))return{checked:!0}}else if(t)return{checked:!0}},Yv.getSSRProps=(t,e)=>{if(typeof e.type!="string")return;const n=Zv(e.type.toUpperCase(),e.props&&e.props.type);if(n.getSSRProps)return n.getSSRProps(t,e)}}const Gk=["ctrl","shift","alt","meta"],Kk={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>Gk.some(n=>t[`${n}Key`]&&!e.includes(n))},Bn=(t,e)=>{const n=t._withMods||(t._withMods={}),s=e.join(".");return n[s]||(n[s]=((i,...r)=>{for(let o=0;o{const n=t._withKeys||(t._withKeys={}),s=e.join(".");return n[s]||(n[s]=(i=>{if(!("key"in i))return;const r=vn(i.key);if(e.some(o=>o===r||qk[o]===r))return t(i)}))},Qv=Zt({patchProp:Ik},pk);let Sa,mg=!1;function t0(){return Sa||(Sa=fv(Qv))}function e0(){return Sa=mg?Sa:hv(Qv),mg=!0,Sa}const n0=((...t)=>{t0().render(...t)}),zk=((...t)=>{e0().hydrate(...t)}),Gc=((...t)=>{const e=t0().createApp(...t),{mount:n}=e;return e.mount=s=>{const i=r0(s);if(!i)return;const r=e._component;!xt(r)&&!r.render&&!r.template&&(r.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const o=n(i,!1,i0(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},e}),s0=((...t)=>{const e=e0().createApp(...t),{mount:n}=e;return e.mount=s=>{const i=r0(s);if(i)return n(i,!0,i0(i))},e});function i0(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function r0(t){return Rt(t)?document.querySelector(t):t}let gg=!1;const Xk=()=>{gg||(gg=!0,Wk(),vk())},Yk=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:B1,BaseTransitionPropsValidators:Yh,Comment:Be,DeprecationTypes:dk,EffectScope:Uh,ErrorCodes:Cw,ErrorTypeStrings:ik,Fragment:it,KeepAlive:Zw,ReactiveEffect:Ma,Static:Ar,Suspense:V3,Teleport:Rw,Text:yi,TrackOpTypes:bw,Transition:Uv,TransitionGroup:Fk,TriggerOpTypes:vw,VueElement:Lu,assertNumber:kw,callWithAsyncErrorHandling:ps,callWithErrorHandling:$o,camelize:Ce,capitalize:ir,cloneVNode:Js,compatUtils:uk,computed:Je,createApp:Gc,createBlock:pt,createCommentVNode:vt,createElementBlock:F,createElementVNode:N,createHydrationRenderer:hv,createPropsRestProxy:h3,createRenderer:fv,createSSRApp:s0,createSlots:ul,createStaticVNode:q3,createTextVNode:Ns,createVNode:E,customRef:O1,defineAsyncComponent:Xw,defineComponent:Oi,defineCustomElement:Gv,defineEmits:s3,defineExpose:i3,defineModel:a3,defineOptions:r3,defineProps:n3,defineSSRCustomElement:Pk,defineSlots:o3,devtools:rk,effect:HE,effectScope:_u,getCurrentInstance:cn,getCurrentScope:Hh,getCurrentWatcher:_w,getTransitionRawChildren:xu,guardReactiveProps:xv,h:qs,handleError:Vr,hasInjectionContext:sv,hydrate:zk,hydrateOnIdle:Bw,hydrateOnInteraction:qw,hydrateOnMediaQuery:Kw,hydrateOnVisible:Gw,initCustomFormatter:ek,initDirectivesForSSR:Xk,inject:us,isMemoSame:Lv,isProxy:Cu,isReactive:Xs,isReadonly:ki,isRef:Ie,isRuntimeOnly:J3,isShallow:Yn,isVNode:Ti,markRaw:Tu,mergeDefaults:d3,mergeModels:f3,mergeProps:co,nextTick:Ur,normalizeClass:Gt,normalizeProps:ao,normalizeStyle:Lo,onActivated:G1,onBeforeMount:z1,onBeforeUnmount:Pu,onBeforeUpdate:Jh,onDeactivated:K1,onErrorCaptured:J1,onMounted:Fo,onRenderTracked:Z1,onRenderTriggered:Y1,onScopeDispose:d1,onServerPrefetch:X1,onUnmounted:cl,onUpdated:Nu,onWatcherCleanup:N1,openBlock:O,popScopeId:Iw,provide:va,proxyRefs:qh,pushScopeId:xw,queuePostFlushCb:Va,reactive:Mo,readonly:Kh,ref:cs,registerRuntimeCompiler:Z3,render:n0,renderList:ce,renderSlot:le,resolveComponent:w,resolveDirective:ep,resolveDynamicComponent:tp,resolveFilter:ck,resolveTransitionHooks:_o,setBlockTracking:Wa,setDevtoolsHook:ok,setTransitionHooks:Ci,shallowReactive:Gh,shallowReadonly:aw,shallowRef:Au,ssrContextKey:yv,ssrUtils:lk,stop:jE,toDisplayString:nt,toHandlerKey:wr,toHandlers:t3,toRaw:ie,toRef:mw,toRefs:x1,toValue:uw,transformVNodeArgs:G3,triggerRef:cw,unref:Vn,useAttrs:u3,useCssModule:Lk,useCssVars:cp,useHost:Kv,useId:Lw,useModel:N3,useSSRContext:bv,useShadowRoot:Dk,useSlots:c3,useTemplateRef:Mw,useTransitionState:Xh,vModelCheckbox:up,vModelDynamic:Yv,vModelRadio:dp,vModelSelect:fp,vModelText:Qs,vShow:jc,version:Mv,warn:sk,watch:Zn,watchEffect:vv,watchPostEffect:x3,watchSyncEffect:_v,withAsyncContext:p3,withCtx:L,withDefaults:l3,withDirectives:ms,withKeys:Jv,withMemo:nk,withModifiers:Bn,withScopeId:Nw},Symbol.toStringTag,{value:"Module"}));/*! +**/let jf;const zm=typeof window<"u"&&window.trustedTypes;if(zm)try{jf=zm.createPolicy("vue",{createHTML:t=>t})}catch{}const Fv=jf?t=>jf.createHTML(t):t=>t,fk="http://www.w3.org/2000/svg",hk="http://www.w3.org/1998/Math/MathML",li=typeof document<"u"?document:null,qm=li&&li.createElement("template"),pk={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,s)=>{const i=e==="svg"?li.createElementNS(fk,t):e==="mathml"?li.createElementNS(hk,t):n?li.createElement(t,{is:n}):li.createElement(t);return t==="select"&&s&&s.multiple!=null&&i.setAttribute("multiple",s.multiple),i},createText:t=>li.createTextNode(t),createComment:t=>li.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>li.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,s,i,r){const o=n?n.previousSibling:e.lastChild;if(i&&(i===r||i.nextSibling))for(;e.insertBefore(i.cloneNode(!0),n),!(i===r||!(i=i.nextSibling)););else{qm.innerHTML=Fv(s==="svg"?`${t}`:s==="mathml"?`${t}`:t);const a=qm.content;if(s==="svg"||s==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,n)}return[o?o.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}},Ni="transition",Zo="animation",Eo=Symbol("_vtc"),Vv={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Uv=Zt({},qh,Vv),mk=t=>(t.displayName="Transition",t.props=Uv,t),Hv=mk((t,{slots:e})=>zs(W1,jv(t),e)),ur=(t,e=[])=>{bt(t)?t.forEach(n=>n(...e)):t&&t(...e)},Xm=t=>t?bt(t)?t.some(e=>e.length>1):t.length>1:!1;function jv(t){const e={};for(const M in t)M in Vv||(e[M]=t[M]);if(t.css===!1)return e;const{name:n="v",type:s,duration:i,enterFromClass:r=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=r,appearActiveClass:c=o,appearToClass:u=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=t,p=gk(i),m=p&&p[0],v=p&&p[1],{onBeforeEnter:y,onEnter:_,onEnterCancelled:g,onLeave:b,onLeaveCancelled:E,onBeforeAppear:k=y,onAppear:I=_,onAppearCancelled:D=g}=e,C=(M,H,q,ot)=>{M._enterCancelled=ot,$i(M,H?u:a),$i(M,H?c:o),q&&q()},R=(M,H)=>{M._isLeaving=!1,$i(M,d),$i(M,h),$i(M,f),H&&H()},j=M=>(H,q)=>{const ot=M?I:_,W=()=>C(H,M,q);ur(ot,[H,W]),Ym(()=>{$i(H,M?l:r),Bs(H,M?u:a),Xm(ot)||Zm(H,s,m,W)})};return Zt(e,{onBeforeEnter(M){ur(y,[M]),Bs(M,r),Bs(M,o)},onBeforeAppear(M){ur(k,[M]),Bs(M,l),Bs(M,c)},onEnter:j(!1),onAppear:j(!0),onLeave(M,H){M._isLeaving=!0;const q=()=>R(M,H);Bs(M,d),M._enterCancelled?(Bs(M,f),Bf()):(Bf(),Bs(M,f)),Ym(()=>{M._isLeaving&&($i(M,d),Bs(M,h),Xm(b)||Zm(M,s,v,q))}),ur(b,[M,q])},onEnterCancelled(M){C(M,!1,void 0,!0),ur(g,[M])},onAppearCancelled(M){C(M,!0,void 0,!0),ur(D,[M])},onLeaveCancelled(M){R(M),ur(E,[M])}})}function gk(t){if(t==null)return null;if(be(t))return[Fd(t.enter),Fd(t.leave)];{const e=Fd(t);return[e,e]}}function Fd(t){return Ma(t)}function Bs(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.add(n)),(t[Eo]||(t[Eo]=new Set)).add(e)}function $i(t,e){e.split(/\s+/).forEach(s=>s&&t.classList.remove(s));const n=t[Eo];n&&(n.delete(e),n.size||(t[Eo]=void 0))}function Ym(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let yk=0;function Zm(t,e,n,s){const i=t._endId=++yk,r=()=>{i===t._endId&&s()};if(n!=null)return setTimeout(r,n);const{type:o,timeout:a,propCount:l}=Bv(t,e);if(!o)return s();const c=o+"end";let u=0;const d=()=>{t.removeEventListener(c,f),r()},f=h=>{h.target===t&&++u>=l&&d()};setTimeout(()=>{u(n[p]||"").split(", "),i=s(`${Ni}Delay`),r=s(`${Ni}Duration`),o=Jm(i,r),a=s(`${Zo}Delay`),l=s(`${Zo}Duration`),c=Jm(a,l);let u=null,d=0,f=0;e===Ni?o>0&&(u=Ni,d=o,f=r.length):e===Zo?c>0&&(u=Zo,d=c,f=l.length):(d=Math.max(o,c),u=d>0?o>c?Ni:Zo:null,f=u?u===Ni?r.length:l.length:0);const h=u===Ni&&/\b(?:transform|all)(?:,|$)/.test(s(`${Ni}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:h}}function Jm(t,e){for(;t.lengthQm(n)+Qm(t[s])))}function Qm(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function Bf(){return document.body.offsetHeight}function bk(t,e,n){const s=t[Eo];s&&(e=(e?[e,...s]:[...s]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}const jc=Symbol("_vod"),Wv=Symbol("_vsh"),Bc={name:"show",beforeMount(t,{value:e},{transition:n}){t[jc]=t.style.display==="none"?"":t.style.display,n&&e?n.beforeEnter(t):Jo(t,e)},mounted(t,{value:e},{transition:n}){n&&e&&n.enter(t)},updated(t,{value:e,oldValue:n},{transition:s}){!e!=!n&&(s?e?(s.beforeEnter(t),Jo(t,!0),s.enter(t)):s.leave(t,()=>{Jo(t,!1)}):Jo(t,e))},beforeUnmount(t,{value:e}){Jo(t,e)}};function Jo(t,e){t.style.display=e?t[jc]:"none",t[Wv]=!e}function vk(){Bc.getSSRProps=({value:t})=>{if(!t)return{style:{display:"none"}}}}const Gv=Symbol("");function ap(t){const e=cn();if(!e)return;const n=e.ut=(i=t(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${e.uid}"]`)).forEach(r=>Wc(r,i))},s=()=>{const i=t(e.proxy);e.ce?Wc(e.ce,i):Wf(e.subTree,i),n(i)};Yh(()=>{Ua(s)}),Vo(()=>{Zn(s,Qe,{flush:"post"});const i=new MutationObserver(s);i.observe(e.subTree.el.parentNode,{childList:!0}),cl(()=>i.disconnect())})}function Wf(t,e){if(t.shapeFlag&128){const n=t.suspense;t=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Wf(n.activeBranch,e)})}for(;t.component;)t=t.component.subTree;if(t.shapeFlag&1&&t.el)Wc(t.el,e);else if(t.type===rt)t.children.forEach(n=>Wf(n,e));else if(t.type===Ar){let{el:n,anchor:s}=t;for(;n&&(Wc(n,e),n!==s);)n=n.nextSibling}}function Wc(t,e){if(t.nodeType===1){const n=t.style;let s="";for(const i in e){const r=d1(e[i]);n.setProperty(`--${i}`,r),s+=`--${i}: ${r};`}n[Gv]=s}}const _k=/(?:^|;)\s*display\s*:/;function Sk(t,e,n){const s=t.style,i=Lt(n);let r=!1;if(n&&!i){if(e)if(Lt(e))for(const o of e.split(";")){const a=o.slice(0,o.indexOf(":")).trim();n[a]==null&&uc(s,a,"")}else for(const o in e)n[o]==null&&uc(s,o,"");for(const o in n)o==="display"&&(r=!0),uc(s,o,n[o])}else if(i){if(e!==n){const o=s[Gv];o&&(n+=";"+o),s.cssText=n,r=_k.test(n)}}else e&&t.removeAttribute("style");jc in t&&(t[jc]=r?s.display:"",t[Wv]&&(s.display="none"))}const tg=/\s*!important$/;function uc(t,e,n){if(bt(n))n.forEach(s=>uc(t,e,s));else if(n==null&&(n=""),e.startsWith("--"))t.setProperty(e,n);else{const s=Ek(t,e);tg.test(n)?t.setProperty(vn(s),n.replace(tg,""),"important"):t[s]=n}}const eg=["Webkit","Moz","ms"],Vd={};function Ek(t,e){const n=Vd[e];if(n)return n;let s=Ce(e);if(s!=="filter"&&s in t)return Vd[e]=s;s=ir(s);for(let i=0;iUd||(Tk.then(()=>Ud=0),Ud=Date.now());function Ok(t,e){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;ps(xk(s,n.value),e,5,[s])};return n.value=t,n.attached=Ak(),n}function xk(t,e){if(bt(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map(s=>i=>!i._stopped&&s&&s(i))}else return e}const ag=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,Ik=(t,e,n,s,i,r)=>{const o=i==="svg";e==="class"?bk(t,s,o):e==="style"?Sk(t,n,s):nr(e)?mu(e)||kk(t,e,n,s,r):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Nk(t,e,s,o))?(ig(t,e,s),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&sg(t,e,s,o,r,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!Lt(s))?ig(t,Ce(e),s,r,e):(e==="true-value"?t._trueValue=s:e==="false-value"&&(t._falseValue=s),sg(t,e,s,o))};function Nk(t,e,n,s){if(s)return!!(e==="innerHTML"||e==="textContent"||e in t&&ag(e)&&It(n));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const i=t.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return ag(e)&&Lt(n)?!1:e in t}const lg={};function Kv(t,e,n){let s=Oi(t,e);rl(s)&&(s=Zt({},s,e));class i extends Lu{constructor(o){super(s,o,n)}}return i.def=s,i}const Pk=((t,e)=>Kv(t,e,i0)),Rk=typeof HTMLElement<"u"?HTMLElement:class{};class Lu extends Rk{constructor(e,n={},s=Kc){super(),this._def=e,this._props=n,this._createApp=s,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&s!==Kc?this._root=this.shadowRoot:e.shadowRoot!==!1?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof Lu){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,Ur(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let s=0;s{for(const i of s)this._setAttr(i.attributeName)}),this._ob.observe(this,{attributes:!0});const e=(s,i=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:o}=s;let a;if(r&&!bt(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Ma(this._props[l])),(a||(a=Object.create(null)))[Ce(l)]=!0)}this._numberProps=a,this._resolveProps(s),this.shadowRoot&&this._applyStyles(o),this._mount(s)},n=this._def.__asyncLoader;n?this._pendingResolve=n().then(s=>{s.configureApp=this._def.configureApp,e(this._def=s,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const n=this._instance&&this._instance.exposed;if(n)for(const s in n)he(this,s)||Object.defineProperty(this,s,{get:()=>Vn(n[s])})}_resolveProps(e){const{props:n}=e,s=bt(n)?n:Object.keys(n||{});for(const i of Object.keys(this))i[0]!=="_"&&s.includes(i)&&this._setProp(i,this[i]);for(const i of s.map(Ce))Object.defineProperty(this,i,{get(){return this._getProp(i)},set(r){this._setProp(i,r,!0,!0)}})}_setAttr(e){if(e.startsWith("data-v-"))return;const n=this.hasAttribute(e);let s=n?this.getAttribute(e):lg;const i=Ce(e);n&&this._numberProps&&this._numberProps[i]&&(s=Ma(s)),this._setProp(i,s,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,n,s=!0,i=!1){if(n!==this._props[e]&&(n===lg?delete this._props[e]:(this._props[e]=n,e==="key"&&this._app&&(this._app._ceVNode.key=n)),i&&this._instance&&this._update(),s)){const r=this._ob;r&&r.disconnect(),n===!0?this.setAttribute(vn(e),""):typeof n=="string"||typeof n=="number"?this.setAttribute(vn(e),n+""):n||this.removeAttribute(vn(e)),r&&r.observe(this,{attributes:!0})}}_update(){const e=this._createVNode();this._app&&(e.appContext=this._app._context),s0(e,this._root)}_createVNode(){const e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));const n=S(this._def,Zt(e,this._props));return this._instance||(n.ce=s=>{this._instance=s,s.ce=this,s.isCE=!0;const i=(r,o)=>{this.dispatchEvent(new CustomEvent(r,rl(o[0])?Zt({detail:o},o[0]):{detail:o}))};s.emit=(r,...o)=>{i(r,o),vn(r)!==r&&i(vn(r),o)},this._setParent()}),n}_applyStyles(e,n){if(!e)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const s=this._nonce;for(let i=e.length-1;i>=0;i--){const r=document.createElement("style");s&&r.setAttribute("nonce",s),r.textContent=e[i],this.shadowRoot.prepend(r)}}_parseSlots(){const e=this._slots={};let n;for(;n=this.firstChild;){const s=n.nodeType===1&&n.getAttribute("slot")||"default";(e[s]||(e[s]=[])).push(n),this.removeChild(n)}}_renderSlots(){const e=(this._teleportTarget||this).querySelectorAll("slot"),n=this._instance.type.__scopeId;for(let s=0;s(delete t.props.mode,t),$k=Mk({name:"TransitionGroup",props:Zt({},Uv,{tag:String,moveClass:String}),setup(t,{slots:e}){const n=cn(),s=zh();let i,r;return Nu(()=>{if(!i.length)return;const o=t.moveClass||`${t.name||"v"}-move`;if(!jk(i[0].el,n.vnode.el,o)){i=[];return}i.forEach(Vk),i.forEach(Uk);const a=i.filter(Hk);Bf(),a.forEach(l=>{const c=l.el,u=c.style;Bs(c,o),u.transform=u.webkitTransform=u.transitionDuration="";const d=c[Gc]=f=>{f&&f.target!==c||(!f||f.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",d),c[Gc]=null,$i(c,o))};c.addEventListener("transitionend",d)}),i=[]}),()=>{const o=ie(t),a=jv(o);let l=o.tag||rt;if(i=[],r)for(let c=0;c{a.split(/\s+/).forEach(l=>l&&s.classList.remove(l))}),n.split(/\s+/).forEach(a=>a&&s.classList.add(a)),s.style.display="none";const r=e.nodeType===1?e:e.parentNode;r.appendChild(s);const{hasTransform:o}=Bv(s);return r.removeChild(s),o}const tr=t=>{const e=t.props["onUpdate:modelValue"]||!1;return bt(e)?n=>kr(e,n):e};function Bk(t){t.target.composing=!0}function ug(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const ds=Symbol("_assign"),Qs={created(t,{modifiers:{lazy:e,trim:n,number:s}},i){t[ds]=tr(i);const r=s||i.props&&i.props.type==="number";fi(t,e?"change":"input",o=>{if(o.target.composing)return;let a=t.value;n&&(a=a.trim()),r&&(a=La(a)),t[ds](a)}),n&&fi(t,"change",()=>{t.value=t.value.trim()}),e||(fi(t,"compositionstart",Bk),fi(t,"compositionend",ug),fi(t,"change",ug))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:n,modifiers:{lazy:s,trim:i,number:r}},o){if(t[ds]=tr(o),t.composing)return;const a=(r||t.type==="number")&&!/^0\d/.test(t.value)?La(t.value):t.value,l=e??"";a!==l&&(document.activeElement===t&&t.type!=="range"&&(s&&e===n||i&&t.value.trim()===l)||(t.value=l))}},lp={deep:!0,created(t,e,n){t[ds]=tr(n),fi(t,"change",()=>{const s=t._modelValue,i=wo(t),r=t.checked,o=t[ds];if(bt(s)){const a=al(s,i),l=a!==-1;if(r&&!l)o(s.concat(i));else if(!r&&l){const c=[...s];c.splice(a,1),o(c)}}else if(sr(s)){const a=new Set(s);r?a.add(i):a.delete(i),o(a)}else o(Yv(t,r))})},mounted:dg,beforeUpdate(t,e,n){t[ds]=tr(n),dg(t,e,n)}};function dg(t,{value:e,oldValue:n},s){t._modelValue=e;let i;if(bt(e))i=al(e,s.props.value)>-1;else if(sr(e))i=e.has(s.props.value);else{if(e===n)return;i=Si(e,Yv(t,!0))}t.checked!==i&&(t.checked=i)}const cp={created(t,{value:e},n){t.checked=Si(e,n.props.value),t[ds]=tr(n),fi(t,"change",()=>{t[ds](wo(t))})},beforeUpdate(t,{value:e,oldValue:n},s){t[ds]=tr(s),e!==n&&(t.checked=Si(e,s.props.value))}},up={deep:!0,created(t,{value:e,modifiers:{number:n}},s){const i=sr(e);fi(t,"change",()=>{const r=Array.prototype.filter.call(t.options,o=>o.selected).map(o=>n?La(wo(o)):wo(o));t[ds](t.multiple?i?new Set(r):r:r[0]),t._assigning=!0,Ur(()=>{t._assigning=!1})}),t[ds]=tr(s)},mounted(t,{value:e}){fg(t,e)},beforeUpdate(t,e,n){t[ds]=tr(n)},updated(t,{value:e}){t._assigning||fg(t,e)}};function fg(t,e){const n=t.multiple,s=bt(e);if(!(n&&!s&&!sr(e))){for(let i=0,r=t.options.length;iString(c)===String(a)):o.selected=al(e,a)>-1}else o.selected=e.has(a);else if(Si(wo(o),e)){t.selectedIndex!==i&&(t.selectedIndex=i);return}}!n&&t.selectedIndex!==-1&&(t.selectedIndex=-1)}}function wo(t){return"_value"in t?t._value:t.value}function Yv(t,e){const n=e?"_trueValue":"_falseValue";return n in t?t[n]:e}const Zv={created(t,e,n){Fl(t,e,n,null,"created")},mounted(t,e,n){Fl(t,e,n,null,"mounted")},beforeUpdate(t,e,n,s){Fl(t,e,n,s,"beforeUpdate")},updated(t,e,n,s){Fl(t,e,n,s,"updated")}};function Jv(t,e){switch(t){case"SELECT":return up;case"TEXTAREA":return Qs;default:switch(e){case"checkbox":return lp;case"radio":return cp;default:return Qs}}}function Fl(t,e,n,s,i){const o=Jv(t.tagName,n.props&&n.props.type)[i];o&&o(t,e,n,s)}function Wk(){Qs.getSSRProps=({value:t})=>({value:t}),cp.getSSRProps=({value:t},e)=>{if(e.props&&Si(e.props.value,t))return{checked:!0}},lp.getSSRProps=({value:t},e)=>{if(bt(t)){if(e.props&&al(t,e.props.value)>-1)return{checked:!0}}else if(sr(t)){if(e.props&&t.has(e.props.value))return{checked:!0}}else if(t)return{checked:!0}},Zv.getSSRProps=(t,e)=>{if(typeof e.type!="string")return;const n=Jv(e.type.toUpperCase(),e.props&&e.props.type);if(n.getSSRProps)return n.getSSRProps(t,e)}}const Gk=["ctrl","shift","alt","meta"],Kk={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>Gk.some(n=>t[`${n}Key`]&&!e.includes(n))},Bn=(t,e)=>{const n=t._withMods||(t._withMods={}),s=e.join(".");return n[s]||(n[s]=((i,...r)=>{for(let o=0;o{const n=t._withKeys||(t._withKeys={}),s=e.join(".");return n[s]||(n[s]=(i=>{if(!("key"in i))return;const r=vn(i.key);if(e.some(o=>o===r||zk[o]===r))return t(i)}))},t0=Zt({patchProp:Ik},pk);let Ea,hg=!1;function e0(){return Ea||(Ea=hv(t0))}function n0(){return Ea=hg?Ea:pv(t0),hg=!0,Ea}const s0=((...t)=>{e0().render(...t)}),qk=((...t)=>{n0().hydrate(...t)}),Kc=((...t)=>{const e=e0().createApp(...t),{mount:n}=e;return e.mount=s=>{const i=o0(s);if(!i)return;const r=e._component;!It(r)&&!r.render&&!r.template&&(r.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const o=n(i,!1,r0(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},e}),i0=((...t)=>{const e=n0().createApp(...t),{mount:n}=e;return e.mount=s=>{const i=o0(s);if(i)return n(i,!0,r0(i))},e});function r0(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function o0(t){return Lt(t)?document.querySelector(t):t}let pg=!1;const Xk=()=>{pg||(pg=!0,Wk(),vk())},Yk=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:W1,BaseTransitionPropsValidators:qh,Comment:Be,DeprecationTypes:dk,EffectScope:Fh,ErrorCodes:Cw,ErrorTypeStrings:ik,Fragment:rt,KeepAlive:Zw,ReactiveEffect:$a,Static:Ar,Suspense:V3,Teleport:Rw,Text:yi,TrackOpTypes:bw,Transition:Hv,TransitionGroup:Fk,TriggerOpTypes:vw,VueElement:Lu,assertNumber:kw,callWithAsyncErrorHandling:ps,callWithErrorHandling:Fo,camelize:Ce,capitalize:ir,cloneVNode:Js,compatUtils:uk,computed:Je,createApp:Kc,createBlock:pt,createCommentVNode:vt,createElementBlock:F,createElementVNode:N,createHydrationRenderer:pv,createPropsRestProxy:h3,createRenderer:hv,createSSRApp:i0,createSlots:ul,createStaticVNode:z3,createTextVNode:Ns,createVNode:S,customRef:x1,defineAsyncComponent:Xw,defineComponent:Oi,defineCustomElement:Kv,defineEmits:s3,defineExpose:i3,defineModel:a3,defineOptions:r3,defineProps:n3,defineSSRCustomElement:Pk,defineSlots:o3,devtools:rk,effect:HE,effectScope:_u,getCurrentInstance:cn,getCurrentScope:Vh,getCurrentWatcher:_w,getTransitionRawChildren:xu,guardReactiveProps:Iv,h:zs,handleError:Vr,hasInjectionContext:iv,hydrate:qk,hydrateOnIdle:Bw,hydrateOnInteraction:zw,hydrateOnMediaQuery:Kw,hydrateOnVisible:Gw,initCustomFormatter:ek,initDirectivesForSSR:Xk,inject:us,isMemoSame:Mv,isProxy:Cu,isReactive:Xs,isReadonly:ki,isRef:Ie,isRuntimeOnly:J3,isShallow:Yn,isVNode:Ti,markRaw:Tu,mergeDefaults:d3,mergeModels:f3,mergeProps:co,nextTick:Ur,normalizeClass:Gt,normalizeProps:ao,normalizeStyle:Mo,onActivated:K1,onBeforeMount:X1,onBeforeUnmount:Pu,onBeforeUpdate:Yh,onDeactivated:z1,onErrorCaptured:Q1,onMounted:Vo,onRenderTracked:J1,onRenderTriggered:Z1,onScopeDispose:f1,onServerPrefetch:Y1,onUnmounted:cl,onUpdated:Nu,onWatcherCleanup:P1,openBlock:O,popScopeId:Iw,provide:_a,proxyRefs:Gh,pushScopeId:xw,queuePostFlushCb:Ua,reactive:$o,readonly:Wh,ref:cs,registerRuntimeCompiler:Z3,render:s0,renderList:de,renderSlot:ue,resolveComponent:w,resolveDirective:Qh,resolveDynamicComponent:Jh,resolveFilter:ck,resolveTransitionHooks:_o,setBlockTracking:Ga,setDevtoolsHook:ok,setTransitionHooks:Ci,shallowReactive:Bh,shallowReadonly:aw,shallowRef:Au,ssrContextKey:bv,ssrUtils:lk,stop:jE,toDisplayString:nt,toHandlerKey:wr,toHandlers:t3,toRaw:ie,toRef:mw,toRefs:I1,toValue:uw,transformVNodeArgs:G3,triggerRef:cw,unref:Vn,useAttrs:u3,useCssModule:Lk,useCssVars:ap,useHost:zv,useId:Lw,useModel:N3,useSSRContext:vv,useShadowRoot:Dk,useSlots:c3,useTemplateRef:Mw,useTransitionState:zh,vModelCheckbox:lp,vModelDynamic:Zv,vModelRadio:cp,vModelSelect:up,vModelText:Qs,vShow:Bc,version:$v,warn:sk,watch:Zn,watchEffect:_v,watchPostEffect:x3,watchSyncEffect:Sv,withAsyncContext:p3,withCtx:L,withDefaults:l3,withDirectives:ms,withKeys:Qv,withMemo:nk,withModifiers:Bn,withScopeId:Nw},Symbol.toStringTag,{value:"Module"}));/*! * pinia v3.0.3 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let o0;const Mu=t=>o0=t,a0=Symbol();function Kf(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var Ea;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(Ea||(Ea={}));function Zk(){const t=_u(!0),e=t.run(()=>cs({}));let n=[],s=[];const i=Tu({install(r){Mu(i),i._a=r,r.provide(a0,i),r.config.globalProperties.$pinia=i,s.forEach(o=>n.push(o)),s=[]},use(r){return this._a?n.push(r):s.push(r),this},_p:n,_a:null,_e:t,_s:new Map,state:e});return i}const l0=()=>{};function yg(t,e,n,s=l0){t.push(e);const i=()=>{const r=t.indexOf(e);r>-1&&(t.splice(r,1),s())};return!n&&Hh()&&d1(i),i}function qr(t,...e){t.slice().forEach(n=>{n(...e)})}const Jk=t=>t(),bg=Symbol(),jd=Symbol();function qf(t,e){t instanceof Map&&e instanceof Map?e.forEach((n,s)=>t.set(s,n)):t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const n in e){if(!e.hasOwnProperty(n))continue;const s=e[n],i=t[n];Kf(i)&&Kf(s)&&t.hasOwnProperty(n)&&!Ie(s)&&!Xs(s)?t[n]=qf(i,s):t[n]=s}return t}const Qk=Symbol();function tC(t){return!Kf(t)||!Object.prototype.hasOwnProperty.call(t,Qk)}const{assign:Fi}=Object;function eC(t){return!!(Ie(t)&&t.effect)}function nC(t,e,n,s){const{state:i,actions:r,getters:o}=e,a=n.state.value[t];let l;function c(){a||(n.state.value[t]=i?i():{});const u=x1(n.state.value[t]);return Fi(u,r,Object.keys(o||{}).reduce((d,f)=>(d[f]=Tu(Je(()=>{Mu(n);const h=n._s.get(t);return o[f].call(h,h)})),d),{}))}return l=c0(t,c,e,n,s,!0),l}function c0(t,e,n={},s,i,r){let o;const a=Fi({actions:{}},n),l={deep:!0};let c,u,d=[],f=[],h;const p=s.state.value[t];!r&&!p&&(s.state.value[t]={}),cs({});let m;function _(D){let C;c=u=!1,typeof D=="function"?(D(s.state.value[t]),C={type:Ea.patchFunction,storeId:t,events:h}):(qf(s.state.value[t],D),C={type:Ea.patchObject,payload:D,storeId:t,events:h});const R=m=Symbol();Ur().then(()=>{m===R&&(c=!0)}),u=!0,qr(d,C,s.state.value[t])}const y=r?function(){const{state:C}=n,R=C?C():{};this.$patch(B=>{Fi(B,R)})}:l0;function v(){o.stop(),d=[],f=[],s._s.delete(t)}const g=(D,C="")=>{if(bg in D)return D[jd]=C,D;const R=function(){Mu(s);const B=Array.from(arguments),$=[],H=[];function X(tt){$.push(tt)}function ot(tt){H.push(tt)}qr(f,{args:B,name:R[jd],store:S,after:X,onError:ot});let G;try{G=D.apply(this&&this.$id===t?this:S,B)}catch(tt){throw qr(H,tt),tt}return G instanceof Promise?G.then(tt=>(qr($,tt),tt)).catch(tt=>(qr(H,tt),Promise.reject(tt))):(qr($,G),G)};return R[bg]=!0,R[jd]=C,R},b={_p:s,$id:t,$onAction:yg.bind(null,f),$patch:_,$reset:y,$subscribe(D,C={}){const R=yg(d,D,C.detached,()=>B()),B=o.run(()=>Zn(()=>s.state.value[t],$=>{(C.flush==="sync"?u:c)&&D({storeId:t,type:Ea.direct,events:h},$)},Fi({},l,C)));return R},$dispose:v},S=Mo(b);s._s.set(t,S);const I=(s._a&&s._a.runWithContext||Jk)(()=>s._e.run(()=>(o=_u()).run(()=>e({action:g}))));for(const D in I){const C=I[D];if(Ie(C)&&!eC(C)||Xs(C))r||(p&&tC(C)&&(Ie(C)?C.value=p[D]:qf(C,p[D])),s.state.value[t][D]=C);else if(typeof C=="function"){const R=g(C,D);I[D]=R,a.actions[D]=C}}return Fi(S,I),Fi(ie(S),I),Object.defineProperty(S,"$state",{get:()=>s.state.value[t],set:D=>{_(C=>{Fi(C,D)})}}),s._p.forEach(D=>{Fi(S,o.run(()=>D({store:S,app:s._a,pinia:s,options:a})))}),p&&r&&n.hydrate&&n.hydrate(S.$state,p),c=!0,u=!0,S}/*! #__NO_SIDE_EFFECTS__ */function Ls(t,e,n){let s;const i=typeof e=="function";s=i?n:e;function r(o,a){const l=sv();return o=o||(l?us(a0,null):null),o&&Mu(o),o=o0,o._s.has(t)||(i?c0(t,e,s,o):nC(t,s,o)),o._s.get(t)}return r.$id=t,r}const Ga=Ls("NotificationsStore",{actions:{add(t){const e={text:t.text,timeout:t.timeout,topic:t.topic,type:t.type};if(e.topic){const n=this.list.findIndex(s=>s.topic===e.topic);if(n>=0){this.list.splice(n,1,e);return}}this.list.push(e),t.timeout>0&&setTimeout(()=>{this.remove(e)},t.timeout)},remove(t){const e=this.list.indexOf(t);e!==-1&&this.list.splice(e,1)}},getters:{isEmpty:t=>t.list.length===0},state:()=>({list:[]})}),et=(t,e)=>{const n=t.__vccOpts||t;for(const[s,i]of e)n[s]=i;return n},sC={name:"ListNotifications",setup(){return{notificationsStore:Ga()}}},iC={key:0,class:"notifications"},rC={class:"columns is-centered"},oC={class:"column is-half"},aC=["onClick"],lC=["textContent"];function cC(t,e,n,s,i,r){return s.notificationsStore.isEmpty?vt("",!0):(O(),F("section",iC,[N("div",rC,[N("div",oC,[(O(!0),F(it,null,ce(s.notificationsStore.list,(o,a)=>(O(),F("div",{key:a,class:Gt(["notification",o.type?`is-${o.type}`:""])},[N("button",{class:"delete",onClick:l=>s.notificationsStore.remove(o)},null,8,aC),N("div",{class:"text",textContent:nt(o.text)},null,8,lC)],2))),128))])])]))}const uC=et(sC,[["render",cC],["__scopeId","data-v-1e835d55"]]),dC={name:"ControlPinField",props:{placeholder:{required:!0,type:String}},emits:["input"],data(){return{value:""}},mounted(){setTimeout(()=>{this.$refs.input.focus()},10)},methods:{validate(t){const{validity:e}=t.target,n=e.patternMismatch||e.valueMissing;this.$emit("input",this.value,n)}}},fC={class:"field is-grouped"},hC={class:"control"},pC=["placeholder"];function mC(t,e,n,s,i,r){return O(),F("div",fC,[N("div",hC,[ms(N("input",{ref:"input","onUpdate:modelValue":e[0]||(e[0]=o=>i.value=o),class:"input",inputmode:"numeric",pattern:"[\\d]{4}",placeholder:n.placeholder,onInput:e[1]||(e[1]=(...o)=>r.validate&&r.validate(...o))},null,40,pC),[[Qs,i.value]])]),le(t.$slots,"default")])}const u0=et(dC,[["render",mC]]),gC={name:"ModalDialog",props:{actions:{required:!0,type:Array},show:Boolean,title:{default:"",type:String}},emits:["close"],watch:{show(t){const{classList:e}=document.querySelector("html");t?e.add("is-clipped"):e.remove("is-clipped")}}},yC={key:0,class:"modal is-active"},bC={class:"modal-content"},vC={class:"card is-shadowless"},_C={class:"card-header"},SC=["textContent"],EC={class:"card-header-icon"},wC={class:"card-content"},kC={key:0,class:"card-footer"},CC=["disabled","onClick"],TC=["textContent"];function AC(t,e,n,s,i,r){const o=w("mdicon");return O(),pt(Uv,{name:"fade"},{default:L(()=>[n.show?(O(),F("div",yC,[N("div",{class:"modal-background",onClick:e[0]||(e[0]=a=>t.$emit("close"))}),N("div",bC,[N("div",vC,[N("div",_C,[n.title?(O(),F("div",{key:0,class:"card-header-title",textContent:nt(n.title)},null,8,SC)):vt("",!0),N("div",EC,[N("button",{class:"delete",onClick:e[1]||(e[1]=a=>t.$emit("close"))})])]),N("div",wC,[le(t.$slots,"content",{},void 0,!0)]),n.actions.length?(O(),F("footer",kC,[(O(!0),F(it,null,ce(n.actions,a=>(O(),F("button",{key:a.key,class:Gt(["card-footer-item is-small",{"is-disabled":a.disabled}]),disabled:a.disabled,onClick:a.handler},[E(o,{class:"icon",name:a.icon,size:"16"},null,8,["name"]),N("span",{class:"is-size-7",textContent:nt(t.$t(a.key))},null,8,TC)],10,CC))),128))])):vt("",!0)])])])):vt("",!0)]),_:3})}const rr=et(gC,[["render",AC],["__scopeId","data-v-45d42f1a"]]);function d0(t,e){return function(){return t.apply(e,arguments)}}const{toString:OC}=Object.prototype,{getPrototypeOf:hp}=Object,{iterator:$u,toStringTag:f0}=Symbol,Fu=(t=>e=>{const n=OC.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ms=t=>(t=t.toLowerCase(),e=>Fu(e)===t),Vu=t=>e=>typeof e===t,{isArray:Vo}=Array,Ka=Vu("undefined");function hl(t){return t!==null&&!Ka(t)&&t.constructor!==null&&!Ka(t.constructor)&&Hn(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const h0=Ms("ArrayBuffer");function xC(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&h0(t.buffer),e}const IC=Vu("string"),Hn=Vu("function"),p0=Vu("number"),pl=t=>t!==null&&typeof t=="object",NC=t=>t===!0||t===!1,uc=t=>{if(Fu(t)!=="object")return!1;const e=hp(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(f0 in t)&&!($u in t)},PC=t=>{if(!pl(t)||hl(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},RC=Ms("Date"),DC=Ms("File"),LC=Ms("Blob"),MC=Ms("FileList"),$C=t=>pl(t)&&Hn(t.pipe),FC=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||Hn(t.append)&&((e=Fu(t))==="formdata"||e==="object"&&Hn(t.toString)&&t.toString()==="[object FormData]"))},VC=Ms("URLSearchParams"),[UC,HC,jC,BC]=["ReadableStream","Request","Response","Headers"].map(Ms),WC=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ml(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let s,i;if(typeof t!="object"&&(t=[t]),Vo(t))for(s=0,i=t.length;s0;)if(i=n[s],e===i.toLowerCase())return i;return null}const br=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,g0=t=>!Ka(t)&&t!==br;function zf(){const{caseless:t}=g0(this)&&this||{},e={},n=(s,i)=>{const r=t&&m0(e,i)||i;uc(e[r])&&uc(s)?e[r]=zf(e[r],s):uc(s)?e[r]=zf({},s):Vo(s)?e[r]=s.slice():e[r]=s};for(let s=0,i=arguments.length;s(ml(e,(i,r)=>{n&&Hn(i)?t[r]=d0(i,n):t[r]=i},{allOwnKeys:s}),t),KC=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),qC=(t,e,n,s)=>{t.prototype=Object.create(e.prototype,s),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},zC=(t,e,n,s)=>{let i,r,o;const a={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),r=i.length;r-- >0;)o=i[r],(!s||s(o,t,e))&&!a[o]&&(e[o]=t[o],a[o]=!0);t=n!==!1&&hp(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},XC=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const s=t.indexOf(e,n);return s!==-1&&s===n},YC=t=>{if(!t)return null;if(Vo(t))return t;let e=t.length;if(!p0(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},ZC=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&hp(Uint8Array)),JC=(t,e)=>{const s=(t&&t[$u]).call(t);let i;for(;(i=s.next())&&!i.done;){const r=i.value;e.call(t,r[0],r[1])}},QC=(t,e)=>{let n;const s=[];for(;(n=t.exec(e))!==null;)s.push(n);return s},tT=Ms("HTMLFormElement"),eT=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,s,i){return s.toUpperCase()+i}),vg=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),nT=Ms("RegExp"),y0=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),s={};ml(n,(i,r)=>{let o;(o=e(i,r,t))!==!1&&(s[r]=o||i)}),Object.defineProperties(t,s)},sT=t=>{y0(t,(e,n)=>{if(Hn(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const s=t[n];if(Hn(s)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},iT=(t,e)=>{const n={},s=i=>{i.forEach(r=>{n[r]=!0})};return Vo(t)?s(t):s(String(t).split(e)),n},rT=()=>{},oT=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function aT(t){return!!(t&&Hn(t.append)&&t[f0]==="FormData"&&t[$u])}const lT=t=>{const e=new Array(10),n=(s,i)=>{if(pl(s)){if(e.indexOf(s)>=0)return;if(hl(s))return s;if(!("toJSON"in s)){e[i]=s;const r=Vo(s)?[]:{};return ml(s,(o,a)=>{const l=n(o,i+1);!Ka(l)&&(r[a]=l)}),e[i]=void 0,r}}return s};return n(t,0)},cT=Ms("AsyncFunction"),uT=t=>t&&(pl(t)||Hn(t))&&Hn(t.then)&&Hn(t.catch),b0=((t,e)=>t?setImmediate:e?((n,s)=>(br.addEventListener("message",({source:i,data:r})=>{i===br&&r===n&&s.length&&s.shift()()},!1),i=>{s.push(i),br.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Hn(br.postMessage)),dT=typeof queueMicrotask<"u"?queueMicrotask.bind(br):typeof process<"u"&&process.nextTick||b0,fT=t=>t!=null&&Hn(t[$u]),Z={isArray:Vo,isArrayBuffer:h0,isBuffer:hl,isFormData:FC,isArrayBufferView:xC,isString:IC,isNumber:p0,isBoolean:NC,isObject:pl,isPlainObject:uc,isEmptyObject:PC,isReadableStream:UC,isRequest:HC,isResponse:jC,isHeaders:BC,isUndefined:Ka,isDate:RC,isFile:DC,isBlob:LC,isRegExp:nT,isFunction:Hn,isStream:$C,isURLSearchParams:VC,isTypedArray:ZC,isFileList:MC,forEach:ml,merge:zf,extend:GC,trim:WC,stripBOM:KC,inherits:qC,toFlatObject:zC,kindOf:Fu,kindOfTest:Ms,endsWith:XC,toArray:YC,forEachEntry:JC,matchAll:QC,isHTMLForm:tT,hasOwnProperty:vg,hasOwnProp:vg,reduceDescriptors:y0,freezeMethods:sT,toObjectSet:iT,toCamelCase:eT,noop:rT,toFiniteNumber:oT,findKey:m0,global:br,isContextDefined:g0,isSpecCompliantForm:aT,toJSONObject:lT,isAsyncFn:cT,isThenable:uT,setImmediate:b0,asap:dT,isIterable:fT};function jt(t,e,n,s,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),s&&(this.request=s),i&&(this.response=i,this.status=i.status?i.status:null)}Z.inherits(jt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Z.toJSONObject(this.config),code:this.code,status:this.status}}});const v0=jt.prototype,_0={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{_0[t]={value:t}});Object.defineProperties(jt,_0);Object.defineProperty(v0,"isAxiosError",{value:!0});jt.from=(t,e,n,s,i,r)=>{const o=Object.create(v0);return Z.toFlatObject(t,o,function(l){return l!==Error.prototype},a=>a!=="isAxiosError"),jt.call(o,t.message,e,n,s,i),o.cause=t,o.name=t.name,r&&Object.assign(o,r),o};const hT=null;function Xf(t){return Z.isPlainObject(t)||Z.isArray(t)}function S0(t){return Z.endsWith(t,"[]")?t.slice(0,-2):t}function _g(t,e,n){return t?t.concat(e).map(function(i,r){return i=S0(i),!n&&r?"["+i+"]":i}).join(n?".":""):e}function pT(t){return Z.isArray(t)&&!t.some(Xf)}const mT=Z.toFlatObject(Z,{},null,function(e){return/^is[A-Z]/.test(e)});function Uu(t,e,n){if(!Z.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=Z.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,_){return!Z.isUndefined(_[m])});const s=n.metaTokens,i=n.visitor||u,r=n.dots,o=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&Z.isSpecCompliantForm(e);if(!Z.isFunction(i))throw new TypeError("visitor must be a function");function c(p){if(p===null)return"";if(Z.isDate(p))return p.toISOString();if(Z.isBoolean(p))return p.toString();if(!l&&Z.isBlob(p))throw new jt("Blob is not supported. Use a Buffer instead.");return Z.isArrayBuffer(p)||Z.isTypedArray(p)?l&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function u(p,m,_){let y=p;if(p&&!_&&typeof p=="object"){if(Z.endsWith(m,"{}"))m=s?m:m.slice(0,-2),p=JSON.stringify(p);else if(Z.isArray(p)&&pT(p)||(Z.isFileList(p)||Z.endsWith(m,"[]"))&&(y=Z.toArray(p)))return m=S0(m),y.forEach(function(g,b){!(Z.isUndefined(g)||g===null)&&e.append(o===!0?_g([m],b,r):o===null?m:m+"[]",c(g))}),!1}return Xf(p)?!0:(e.append(_g(_,m,r),c(p)),!1)}const d=[],f=Object.assign(mT,{defaultVisitor:u,convertValue:c,isVisitable:Xf});function h(p,m){if(!Z.isUndefined(p)){if(d.indexOf(p)!==-1)throw Error("Circular reference detected in "+m.join("."));d.push(p),Z.forEach(p,function(y,v){(!(Z.isUndefined(y)||y===null)&&i.call(e,y,Z.isString(v)?v.trim():v,m,f))===!0&&h(y,m?m.concat(v):[v])}),d.pop()}}if(!Z.isObject(t))throw new TypeError("data must be an object");return h(t),e}function Sg(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(s){return e[s]})}function pp(t,e){this._pairs=[],t&&Uu(t,this,e)}const E0=pp.prototype;E0.append=function(e,n){this._pairs.push([e,n])};E0.toString=function(e){const n=e?function(s){return e.call(this,s,Sg)}:Sg;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function gT(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function w0(t,e,n){if(!e)return t;const s=n&&n.encode||gT;Z.isFunction(n)&&(n={serialize:n});const i=n&&n.serialize;let r;if(i?r=i(e,n):r=Z.isURLSearchParams(e)?e.toString():new pp(e,n).toString(s),r){const o=t.indexOf("#");o!==-1&&(t=t.slice(0,o)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}class Eg{constructor(){this.handlers=[]}use(e,n,s){return this.handlers.push({fulfilled:e,rejected:n,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){Z.forEach(this.handlers,function(s){s!==null&&e(s)})}}const k0={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},yT=typeof URLSearchParams<"u"?URLSearchParams:pp,bT=typeof FormData<"u"?FormData:null,vT=typeof Blob<"u"?Blob:null,_T={isBrowser:!0,classes:{URLSearchParams:yT,FormData:bT,Blob:vT},protocols:["http","https","file","blob","url","data"]},mp=typeof window<"u"&&typeof document<"u",Yf=typeof navigator=="object"&&navigator||void 0,ST=mp&&(!Yf||["ReactNative","NativeScript","NS"].indexOf(Yf.product)<0),ET=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",wT=mp&&window.location.href||"http://localhost",kT=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:mp,hasStandardBrowserEnv:ST,hasStandardBrowserWebWorkerEnv:ET,navigator:Yf,origin:wT},Symbol.toStringTag,{value:"Module"})),_n={...kT,..._T};function CT(t,e){return Uu(t,new _n.classes.URLSearchParams,{visitor:function(n,s,i,r){return _n.isNode&&Z.isBuffer(n)?(this.append(s,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...e})}function TT(t){return Z.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function AT(t){const e={},n=Object.keys(t);let s;const i=n.length;let r;for(s=0;s=n.length;return o=!o&&Z.isArray(i)?i.length:o,l?(Z.hasOwnProp(i,o)?i[o]=[i[o],s]:i[o]=s,!a):((!i[o]||!Z.isObject(i[o]))&&(i[o]=[]),e(n,s,i[o],r)&&Z.isArray(i[o])&&(i[o]=AT(i[o])),!a)}if(Z.isFormData(t)&&Z.isFunction(t.entries)){const n={};return Z.forEachEntry(t,(s,i)=>{e(TT(s),i,n,0)}),n}return null}function OT(t,e,n){if(Z.isString(t))try{return(e||JSON.parse)(t),Z.trim(t)}catch(s){if(s.name!=="SyntaxError")throw s}return(n||JSON.stringify)(t)}const gl={transitional:k0,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){const s=n.getContentType()||"",i=s.indexOf("application/json")>-1,r=Z.isObject(e);if(r&&Z.isHTMLForm(e)&&(e=new FormData(e)),Z.isFormData(e))return i?JSON.stringify(C0(e)):e;if(Z.isArrayBuffer(e)||Z.isBuffer(e)||Z.isStream(e)||Z.isFile(e)||Z.isBlob(e)||Z.isReadableStream(e))return e;if(Z.isArrayBufferView(e))return e.buffer;if(Z.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(r){if(s.indexOf("application/x-www-form-urlencoded")>-1)return CT(e,this.formSerializer).toString();if((a=Z.isFileList(e))||s.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Uu(a?{"files[]":e}:e,l&&new l,this.formSerializer)}}return r||i?(n.setContentType("application/json",!1),OT(e)):e}],transformResponse:[function(e){const n=this.transitional||gl.transitional,s=n&&n.forcedJSONParsing,i=this.responseType==="json";if(Z.isResponse(e)||Z.isReadableStream(e))return e;if(e&&Z.isString(e)&&(s&&!this.responseType||i)){const o=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(e)}catch(a){if(o)throw a.name==="SyntaxError"?jt.from(a,jt.ERR_BAD_RESPONSE,this,null,this.response):a}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:_n.classes.FormData,Blob:_n.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Z.forEach(["delete","get","head","post","put","patch"],t=>{gl.headers[t]={}});const xT=Z.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),IT=t=>{const e={};let n,s,i;return t&&t.split(` -`).forEach(function(o){i=o.indexOf(":"),n=o.substring(0,i).trim().toLowerCase(),s=o.substring(i+1).trim(),!(!n||e[n]&&xT[n])&&(n==="set-cookie"?e[n]?e[n].push(s):e[n]=[s]:e[n]=e[n]?e[n]+", "+s:s)}),e},wg=Symbol("internals");function Jo(t){return t&&String(t).trim().toLowerCase()}function dc(t){return t===!1||t==null?t:Z.isArray(t)?t.map(dc):String(t)}function NT(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=n.exec(t);)e[s[1]]=s[2];return e}const PT=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Bd(t,e,n,s,i){if(Z.isFunction(s))return s.call(this,e,n);if(i&&(e=n),!!Z.isString(e)){if(Z.isString(s))return e.indexOf(s)!==-1;if(Z.isRegExp(s))return s.test(e)}}function RT(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,s)=>n.toUpperCase()+s)}function DT(t,e){const n=Z.toCamelCase(" "+e);["get","set","has"].forEach(s=>{Object.defineProperty(t,s+n,{value:function(i,r,o){return this[s].call(this,e,i,r,o)},configurable:!0})})}let jn=class{constructor(e){e&&this.set(e)}set(e,n,s){const i=this;function r(a,l,c){const u=Jo(l);if(!u)throw new Error("header name must be a non-empty string");const d=Z.findKey(i,u);(!d||i[d]===void 0||c===!0||c===void 0&&i[d]!==!1)&&(i[d||l]=dc(a))}const o=(a,l)=>Z.forEach(a,(c,u)=>r(c,u,l));if(Z.isPlainObject(e)||e instanceof this.constructor)o(e,n);else if(Z.isString(e)&&(e=e.trim())&&!PT(e))o(IT(e),n);else if(Z.isObject(e)&&Z.isIterable(e)){let a={},l,c;for(const u of e){if(!Z.isArray(u))throw TypeError("Object iterator must return a key-value pair");a[c=u[0]]=(l=a[c])?Z.isArray(l)?[...l,u[1]]:[l,u[1]]:u[1]}o(a,n)}else e!=null&&r(n,e,s);return this}get(e,n){if(e=Jo(e),e){const s=Z.findKey(this,e);if(s){const i=this[s];if(!n)return i;if(n===!0)return NT(i);if(Z.isFunction(n))return n.call(this,i,s);if(Z.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=Jo(e),e){const s=Z.findKey(this,e);return!!(s&&this[s]!==void 0&&(!n||Bd(this,this[s],s,n)))}return!1}delete(e,n){const s=this;let i=!1;function r(o){if(o=Jo(o),o){const a=Z.findKey(s,o);a&&(!n||Bd(s,s[a],a,n))&&(delete s[a],i=!0)}}return Z.isArray(e)?e.forEach(r):r(e),i}clear(e){const n=Object.keys(this);let s=n.length,i=!1;for(;s--;){const r=n[s];(!e||Bd(this,this[r],r,e,!0))&&(delete this[r],i=!0)}return i}normalize(e){const n=this,s={};return Z.forEach(this,(i,r)=>{const o=Z.findKey(s,r);if(o){n[o]=dc(i),delete n[r];return}const a=e?RT(r):String(r).trim();a!==r&&delete n[r],n[a]=dc(i),s[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return Z.forEach(this,(s,i)=>{s!=null&&s!==!1&&(n[i]=e&&Z.isArray(s)?s.join(", "):s)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){const s=new this(e);return n.forEach(i=>s.set(i)),s}static accessor(e){const s=(this[wg]=this[wg]={accessors:{}}).accessors,i=this.prototype;function r(o){const a=Jo(o);s[a]||(DT(i,o),s[a]=!0)}return Z.isArray(e)?e.forEach(r):r(e),this}};jn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Z.reduceDescriptors(jn.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(s){this[n]=s}}});Z.freezeMethods(jn);function Wd(t,e){const n=this||gl,s=e||n,i=jn.from(s.headers);let r=s.data;return Z.forEach(t,function(a){r=a.call(n,r,i.normalize(),e?e.status:void 0)}),i.normalize(),r}function T0(t){return!!(t&&t.__CANCEL__)}function Uo(t,e,n){jt.call(this,t??"canceled",jt.ERR_CANCELED,e,n),this.name="CanceledError"}Z.inherits(Uo,jt,{__CANCEL__:!0});function A0(t,e,n){const s=n.config.validateStatus;!n.status||!s||s(n.status)?t(n):e(new jt("Request failed with status code "+n.status,[jt.ERR_BAD_REQUEST,jt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function LT(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function MT(t,e){t=t||10;const n=new Array(t),s=new Array(t);let i=0,r=0,o;return e=e!==void 0?e:1e3,function(l){const c=Date.now(),u=s[r];o||(o=c),n[i]=l,s[i]=c;let d=r,f=0;for(;d!==i;)f+=n[d++],d=d%t;if(i=(i+1)%t,i===r&&(r=(r+1)%t),c-o{n=u,i=null,r&&(clearTimeout(r),r=null),t(...c)};return[(...c)=>{const u=Date.now(),d=u-n;d>=s?o(c,u):(i=c,r||(r=setTimeout(()=>{r=null,o(i)},s-d)))},()=>i&&o(i)]}const Kc=(t,e,n=3)=>{let s=0;const i=MT(50,250);return $T(r=>{const o=r.loaded,a=r.lengthComputable?r.total:void 0,l=o-s,c=i(l),u=o<=a;s=o;const d={loaded:o,total:a,progress:a?o/a:void 0,bytes:l,rate:c||void 0,estimated:c&&a&&u?(a-o)/c:void 0,event:r,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(d)},n)},kg=(t,e)=>{const n=t!=null;return[s=>e[0]({lengthComputable:n,total:t,loaded:s}),e[1]]},Cg=t=>(...e)=>Z.asap(()=>t(...e)),FT=_n.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,_n.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(_n.origin),_n.navigator&&/(msie|trident)/i.test(_n.navigator.userAgent)):()=>!0,VT=_n.hasStandardBrowserEnv?{write(t,e,n,s,i,r){const o=[t+"="+encodeURIComponent(e)];Z.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),Z.isString(s)&&o.push("path="+s),Z.isString(i)&&o.push("domain="+i),r===!0&&o.push("secure"),document.cookie=o.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function UT(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function HT(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function O0(t,e,n){let s=!UT(e);return t&&(s||n==!1)?HT(t,e):e}const Tg=t=>t instanceof jn?{...t}:t;function Rr(t,e){e=e||{};const n={};function s(c,u,d,f){return Z.isPlainObject(c)&&Z.isPlainObject(u)?Z.merge.call({caseless:f},c,u):Z.isPlainObject(u)?Z.merge({},u):Z.isArray(u)?u.slice():u}function i(c,u,d,f){if(Z.isUndefined(u)){if(!Z.isUndefined(c))return s(void 0,c,d,f)}else return s(c,u,d,f)}function r(c,u){if(!Z.isUndefined(u))return s(void 0,u)}function o(c,u){if(Z.isUndefined(u)){if(!Z.isUndefined(c))return s(void 0,c)}else return s(void 0,u)}function a(c,u,d){if(d in e)return s(c,u);if(d in t)return s(void 0,c)}const l={url:r,method:r,data:r,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(c,u,d)=>i(Tg(c),Tg(u),d,!0)};return Z.forEach(Object.keys({...t,...e}),function(u){const d=l[u]||i,f=d(t[u],e[u],u);Z.isUndefined(f)&&d!==a||(n[u]=f)}),n}const x0=t=>{const e=Rr({},t);let{data:n,withXSRFToken:s,xsrfHeaderName:i,xsrfCookieName:r,headers:o,auth:a}=e;e.headers=o=jn.from(o),e.url=w0(O0(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),a&&o.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):"")));let l;if(Z.isFormData(n)){if(_n.hasStandardBrowserEnv||_n.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if((l=o.getContentType())!==!1){const[c,...u]=l?l.split(";").map(d=>d.trim()).filter(Boolean):[];o.setContentType([c||"multipart/form-data",...u].join("; "))}}if(_n.hasStandardBrowserEnv&&(s&&Z.isFunction(s)&&(s=s(e)),s||s!==!1&&FT(e.url))){const c=i&&r&&VT.read(r);c&&o.set(i,c)}return e},jT=typeof XMLHttpRequest<"u",BT=jT&&function(t){return new Promise(function(n,s){const i=x0(t);let r=i.data;const o=jn.from(i.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:c}=i,u,d,f,h,p;function m(){h&&h(),p&&p(),i.cancelToken&&i.cancelToken.unsubscribe(u),i.signal&&i.signal.removeEventListener("abort",u)}let _=new XMLHttpRequest;_.open(i.method.toUpperCase(),i.url,!0),_.timeout=i.timeout;function y(){if(!_)return;const g=jn.from("getAllResponseHeaders"in _&&_.getAllResponseHeaders()),S={data:!a||a==="text"||a==="json"?_.responseText:_.response,status:_.status,statusText:_.statusText,headers:g,config:t,request:_};A0(function(I){n(I),m()},function(I){s(I),m()},S),_=null}"onloadend"in _?_.onloadend=y:_.onreadystatechange=function(){!_||_.readyState!==4||_.status===0&&!(_.responseURL&&_.responseURL.indexOf("file:")===0)||setTimeout(y)},_.onabort=function(){_&&(s(new jt("Request aborted",jt.ECONNABORTED,t,_)),_=null)},_.onerror=function(){s(new jt("Network Error",jt.ERR_NETWORK,t,_)),_=null},_.ontimeout=function(){let b=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const S=i.transitional||k0;i.timeoutErrorMessage&&(b=i.timeoutErrorMessage),s(new jt(b,S.clarifyTimeoutError?jt.ETIMEDOUT:jt.ECONNABORTED,t,_)),_=null},r===void 0&&o.setContentType(null),"setRequestHeader"in _&&Z.forEach(o.toJSON(),function(b,S){_.setRequestHeader(S,b)}),Z.isUndefined(i.withCredentials)||(_.withCredentials=!!i.withCredentials),a&&a!=="json"&&(_.responseType=i.responseType),c&&([f,p]=Kc(c,!0),_.addEventListener("progress",f)),l&&_.upload&&([d,h]=Kc(l),_.upload.addEventListener("progress",d),_.upload.addEventListener("loadend",h)),(i.cancelToken||i.signal)&&(u=g=>{_&&(s(!g||g.type?new Uo(null,t,_):g),_.abort(),_=null)},i.cancelToken&&i.cancelToken.subscribe(u),i.signal&&(i.signal.aborted?u():i.signal.addEventListener("abort",u)));const v=LT(i.url);if(v&&_n.protocols.indexOf(v)===-1){s(new jt("Unsupported protocol "+v+":",jt.ERR_BAD_REQUEST,t));return}_.send(r||null)})},WT=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let s=new AbortController,i;const r=function(c){if(!i){i=!0,a();const u=c instanceof Error?c:this.reason;s.abort(u instanceof jt?u:new Uo(u instanceof Error?u.message:u))}};let o=e&&setTimeout(()=>{o=null,r(new jt(`timeout ${e} of ms exceeded`,jt.ETIMEDOUT))},e);const a=()=>{t&&(o&&clearTimeout(o),o=null,t.forEach(c=>{c.unsubscribe?c.unsubscribe(r):c.removeEventListener("abort",r)}),t=null)};t.forEach(c=>c.addEventListener("abort",r));const{signal:l}=s;return l.unsubscribe=()=>Z.asap(a),l}},GT=function*(t,e){let n=t.byteLength;if(n{const i=KT(t,e);let r=0,o,a=l=>{o||(o=!0,s&&s(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await i.next();if(c){a(),l.close();return}let d=u.byteLength;if(n){let f=r+=d;n(f)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),i.return()}},{highWaterMark:2})},Hu=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",I0=Hu&&typeof ReadableStream=="function",zT=Hu&&(typeof TextEncoder=="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),N0=(t,...e)=>{try{return!!t(...e)}catch{return!1}},XT=I0&&N0(()=>{let t=!1;const e=new Request(_n.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e}),Og=64*1024,Zf=I0&&N0(()=>Z.isReadableStream(new Response("").body)),qc={stream:Zf&&(t=>t.body)};Hu&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!qc[e]&&(qc[e]=Z.isFunction(t[e])?n=>n[e]():(n,s)=>{throw new jt(`Response type '${e}' is not supported`,jt.ERR_NOT_SUPPORT,s)})})})(new Response);const YT=async t=>{if(t==null)return 0;if(Z.isBlob(t))return t.size;if(Z.isSpecCompliantForm(t))return(await new Request(_n.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(Z.isArrayBufferView(t)||Z.isArrayBuffer(t))return t.byteLength;if(Z.isURLSearchParams(t)&&(t=t+""),Z.isString(t))return(await zT(t)).byteLength},ZT=async(t,e)=>{const n=Z.toFiniteNumber(t.getContentLength());return n??YT(e)},JT=Hu&&(async t=>{let{url:e,method:n,data:s,signal:i,cancelToken:r,timeout:o,onDownloadProgress:a,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:f}=x0(t);c=c?(c+"").toLowerCase():"text";let h=WT([i,r&&r.toAbortSignal()],o),p;const m=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let _;try{if(l&&XT&&n!=="get"&&n!=="head"&&(_=await ZT(u,s))!==0){let S=new Request(e,{method:"POST",body:s,duplex:"half"}),k;if(Z.isFormData(s)&&(k=S.headers.get("content-type"))&&u.setContentType(k),S.body){const[I,D]=kg(_,Kc(Cg(l)));s=Ag(S.body,Og,I,D)}}Z.isString(d)||(d=d?"include":"omit");const y="credentials"in Request.prototype;p=new Request(e,{...f,signal:h,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:s,duplex:"half",credentials:y?d:void 0});let v=await fetch(p,f);const g=Zf&&(c==="stream"||c==="response");if(Zf&&(a||g&&m)){const S={};["status","statusText","headers"].forEach(C=>{S[C]=v[C]});const k=Z.toFiniteNumber(v.headers.get("content-length")),[I,D]=a&&kg(k,Kc(Cg(a),!0))||[];v=new Response(Ag(v.body,Og,I,()=>{D&&D(),m&&m()}),S)}c=c||"text";let b=await qc[Z.findKey(qc,c)||"text"](v,t);return!g&&m&&m(),await new Promise((S,k)=>{A0(S,k,{data:b,headers:jn.from(v.headers),status:v.status,statusText:v.statusText,config:t,request:p})})}catch(y){throw m&&m(),y&&y.name==="TypeError"&&/Load failed|fetch/i.test(y.message)?Object.assign(new jt("Network Error",jt.ERR_NETWORK,t,p),{cause:y.cause||y}):jt.from(y,y&&y.code,t,p)}}),Jf={http:hT,xhr:BT,fetch:JT};Z.forEach(Jf,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const xg=t=>`- ${t}`,QT=t=>Z.isFunction(t)||t===null||t===!1,P0={getAdapter:t=>{t=Z.isArray(t)?t:[t];const{length:e}=t;let n,s;const i={};for(let r=0;r`adapter ${a} `+(l===!1?"is not supported by the environment":"is not available in the build"));let o=e?r.length>1?`since : -`+r.map(xg).join(` -`):" "+xg(r[0]):"as no adapter specified";throw new jt("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return s},adapters:Jf};function Gd(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Uo(null,t)}function Ig(t){return Gd(t),t.headers=jn.from(t.headers),t.data=Wd.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),P0.getAdapter(t.adapter||gl.adapter)(t).then(function(s){return Gd(t),s.data=Wd.call(t,t.transformResponse,s),s.headers=jn.from(s.headers),s},function(s){return T0(s)||(Gd(t),s&&s.response&&(s.response.data=Wd.call(t,t.transformResponse,s.response),s.response.headers=jn.from(s.response.headers))),Promise.reject(s)})}const R0="1.11.0",ju={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{ju[t]=function(s){return typeof s===t||"a"+(e<1?"n ":" ")+t}});const Ng={};ju.transitional=function(e,n,s){function i(r,o){return"[Axios v"+R0+"] Transitional option '"+r+"'"+o+(s?". "+s:"")}return(r,o,a)=>{if(e===!1)throw new jt(i(o," has been removed"+(n?" in "+n:"")),jt.ERR_DEPRECATED);return n&&!Ng[o]&&(Ng[o]=!0,console.warn(i(o," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(r,o,a):!0}};ju.spelling=function(e){return(n,s)=>(console.warn(`${s} is likely a misspelling of ${e}`),!0)};function tA(t,e,n){if(typeof t!="object")throw new jt("options must be an object",jt.ERR_BAD_OPTION_VALUE);const s=Object.keys(t);let i=s.length;for(;i-- >0;){const r=s[i],o=e[r];if(o){const a=t[r],l=a===void 0||o(a,r,t);if(l!==!0)throw new jt("option "+r+" must be "+l,jt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new jt("Unknown option "+r,jt.ERR_BAD_OPTION)}}const fc={assertOptions:tA,validators:ju},Us=fc.validators;let Or=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Eg,response:new Eg}}async request(e,n){try{return await this._request(e,n)}catch(s){if(s instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const r=i.stack?i.stack.replace(/^.+\n/,""):"";try{s.stack?r&&!String(s.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(s.stack+=` -`+r):s.stack=r}catch{}}throw s}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=Rr(this.defaults,n);const{transitional:s,paramsSerializer:i,headers:r}=n;s!==void 0&&fc.assertOptions(s,{silentJSONParsing:Us.transitional(Us.boolean),forcedJSONParsing:Us.transitional(Us.boolean),clarifyTimeoutError:Us.transitional(Us.boolean)},!1),i!=null&&(Z.isFunction(i)?n.paramsSerializer={serialize:i}:fc.assertOptions(i,{encode:Us.function,serialize:Us.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),fc.assertOptions(n,{baseUrl:Us.spelling("baseURL"),withXsrfToken:Us.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=r&&Z.merge(r.common,r[n.method]);r&&Z.forEach(["delete","get","head","post","put","patch","common"],p=>{delete r[p]}),n.headers=jn.concat(o,r);const a=[];let l=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(n)===!1||(l=l&&m.synchronous,a.unshift(m.fulfilled,m.rejected))});const c=[];this.interceptors.response.forEach(function(m){c.push(m.fulfilled,m.rejected)});let u,d=0,f;if(!l){const p=[Ig.bind(this),void 0];for(p.unshift(...a),p.push(...c),f=p.length,u=Promise.resolve(n);d{if(!s._listeners)return;let r=s._listeners.length;for(;r-- >0;)s._listeners[r](i);s._listeners=null}),this.promise.then=i=>{let r;const o=new Promise(a=>{s.subscribe(a),r=a}).then(i);return o.cancel=function(){s.unsubscribe(r)},o},e(function(r,o,a){s.reason||(s.reason=new Uo(r,o,a),n(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=s=>{e.abort(s)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new D0(function(i){e=i}),cancel:e}}};function nA(t){return function(n){return t.apply(null,n)}}function sA(t){return Z.isObject(t)&&t.isAxiosError===!0}const Qf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Qf).forEach(([t,e])=>{Qf[e]=t});function L0(t){const e=new Or(t),n=d0(Or.prototype.request,e);return Z.extend(n,Or.prototype,e,{allOwnKeys:!0}),Z.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return L0(Rr(t,i))},n}const ut=L0(gl);ut.Axios=Or;ut.CanceledError=Uo;ut.CancelToken=eA;ut.isCancel=T0;ut.VERSION=R0;ut.toFormData=Uu;ut.AxiosError=jt;ut.Cancel=ut.CanceledError;ut.all=function(e){return Promise.all(e)};ut.spread=nA;ut.isAxiosError=sA;ut.mergeConfig=Rr;ut.AxiosHeaders=jn;ut.formToJSON=t=>C0(Z.isHTMLForm(t)?new FormData(t):t);ut.getAdapter=P0.getAdapter;ut.HttpStatusCode=Qf;ut.default=ut;const{Axios:sj,AxiosError:ij,CanceledError:rj,isCancel:oj,CancelToken:aj,VERSION:lj,all:cj,Cancel:uj,isAxiosError:dj,spread:fj,toFormData:hj,AxiosHeaders:pj,HttpStatusCode:mj,formToJSON:gj,getAdapter:yj,mergeConfig:bj}=ut;/*! + */let a0;const Mu=t=>a0=t,l0=Symbol();function Gf(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var wa;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(wa||(wa={}));function Zk(){const t=_u(!0),e=t.run(()=>cs({}));let n=[],s=[];const i=Tu({install(r){Mu(i),i._a=r,r.provide(l0,i),r.config.globalProperties.$pinia=i,s.forEach(o=>n.push(o)),s=[]},use(r){return this._a?n.push(r):s.push(r),this},_p:n,_a:null,_e:t,_s:new Map,state:e});return i}const c0=()=>{};function mg(t,e,n,s=c0){t.push(e);const i=()=>{const r=t.indexOf(e);r>-1&&(t.splice(r,1),s())};return!n&&Vh()&&f1(i),i}function zr(t,...e){t.slice().forEach(n=>{n(...e)})}const Jk=t=>t(),gg=Symbol(),Hd=Symbol();function Kf(t,e){t instanceof Map&&e instanceof Map?e.forEach((n,s)=>t.set(s,n)):t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const n in e){if(!e.hasOwnProperty(n))continue;const s=e[n],i=t[n];Gf(i)&&Gf(s)&&t.hasOwnProperty(n)&&!Ie(s)&&!Xs(s)?t[n]=Kf(i,s):t[n]=s}return t}const Qk=Symbol();function tC(t){return!Gf(t)||!Object.prototype.hasOwnProperty.call(t,Qk)}const{assign:Fi}=Object;function eC(t){return!!(Ie(t)&&t.effect)}function nC(t,e,n,s){const{state:i,actions:r,getters:o}=e,a=n.state.value[t];let l;function c(){a||(n.state.value[t]=i?i():{});const u=I1(n.state.value[t]);return Fi(u,r,Object.keys(o||{}).reduce((d,f)=>(d[f]=Tu(Je(()=>{Mu(n);const h=n._s.get(t);return o[f].call(h,h)})),d),{}))}return l=u0(t,c,e,n,s,!0),l}function u0(t,e,n={},s,i,r){let o;const a=Fi({actions:{}},n),l={deep:!0};let c,u,d=[],f=[],h;const p=s.state.value[t];!r&&!p&&(s.state.value[t]={}),cs({});let m;function v(D){let C;c=u=!1,typeof D=="function"?(D(s.state.value[t]),C={type:wa.patchFunction,storeId:t,events:h}):(Kf(s.state.value[t],D),C={type:wa.patchObject,payload:D,storeId:t,events:h});const R=m=Symbol();Ur().then(()=>{m===R&&(c=!0)}),u=!0,zr(d,C,s.state.value[t])}const y=r?function(){const{state:C}=n,R=C?C():{};this.$patch(j=>{Fi(j,R)})}:c0;function _(){o.stop(),d=[],f=[],s._s.delete(t)}const g=(D,C="")=>{if(gg in D)return D[Hd]=C,D;const R=function(){Mu(s);const j=Array.from(arguments),M=[],H=[];function q(Q){M.push(Q)}function ot(Q){H.push(Q)}zr(f,{args:j,name:R[Hd],store:E,after:q,onError:ot});let W;try{W=D.apply(this&&this.$id===t?this:E,j)}catch(Q){throw zr(H,Q),Q}return W instanceof Promise?W.then(Q=>(zr(M,Q),Q)).catch(Q=>(zr(H,Q),Promise.reject(Q))):(zr(M,W),W)};return R[gg]=!0,R[Hd]=C,R},b={_p:s,$id:t,$onAction:mg.bind(null,f),$patch:v,$reset:y,$subscribe(D,C={}){const R=mg(d,D,C.detached,()=>j()),j=o.run(()=>Zn(()=>s.state.value[t],M=>{(C.flush==="sync"?u:c)&&D({storeId:t,type:wa.direct,events:h},M)},Fi({},l,C)));return R},$dispose:_},E=$o(b);s._s.set(t,E);const I=(s._a&&s._a.runWithContext||Jk)(()=>s._e.run(()=>(o=_u()).run(()=>e({action:g}))));for(const D in I){const C=I[D];if(Ie(C)&&!eC(C)||Xs(C))r||(p&&tC(C)&&(Ie(C)?C.value=p[D]:Kf(C,p[D])),s.state.value[t][D]=C);else if(typeof C=="function"){const R=g(C,D);I[D]=R,a.actions[D]=C}}return Fi(E,I),Fi(ie(E),I),Object.defineProperty(E,"$state",{get:()=>s.state.value[t],set:D=>{v(C=>{Fi(C,D)})}}),s._p.forEach(D=>{Fi(E,o.run(()=>D({store:E,app:s._a,pinia:s,options:a})))}),p&&r&&n.hydrate&&n.hydrate(E.$state,p),c=!0,u=!0,E}/*! #__NO_SIDE_EFFECTS__ */function Ls(t,e,n){let s;const i=typeof e=="function";s=i?n:e;function r(o,a){const l=iv();return o=o||(l?us(l0,null):null),o&&Mu(o),o=a0,o._s.has(t)||(i?u0(t,e,s,o):nC(t,s,o)),o._s.get(t)}return r.$id=t,r}const Ka=Ls("NotificationsStore",{actions:{add(t){const e={text:t.text,timeout:t.timeout,topic:t.topic,type:t.type};if(e.topic){const n=this.list.findIndex(s=>s.topic===e.topic);if(n>=0){this.list.splice(n,1,e);return}}this.list.push(e),t.timeout>0&&setTimeout(()=>{this.remove(e)},t.timeout)},remove(t){const e=this.list.indexOf(t);e!==-1&&this.list.splice(e,1)}},getters:{isEmpty:t=>t.list.length===0},state:()=>({list:[]})}),et=(t,e)=>{const n=t.__vccOpts||t;for(const[s,i]of e)n[s]=i;return n},sC={name:"ListNotifications",setup(){return{notificationsStore:Ka()}}},iC={key:0,class:"notifications"},rC={class:"columns is-centered"},oC={class:"column is-half"},aC=["onClick"],lC=["textContent"];function cC(t,e,n,s,i,r){return s.notificationsStore.isEmpty?vt("",!0):(O(),F("section",iC,[N("div",rC,[N("div",oC,[(O(!0),F(rt,null,de(s.notificationsStore.list,(o,a)=>(O(),F("div",{key:a,class:Gt(["notification",o.type?`is-${o.type}`:""])},[N("button",{class:"delete",onClick:l=>s.notificationsStore.remove(o)},null,8,aC),N("div",{class:"text",textContent:nt(o.text)},null,8,lC)],2))),128))])])]))}const uC=et(sC,[["render",cC],["__scopeId","data-v-1e835d55"]]),dC={name:"ControlPinField",props:{placeholder:{required:!0,type:String}},emits:["input"],data(){return{value:""}},mounted(){setTimeout(()=>{this.$refs.input.focus()},10)},methods:{validate(t){const{validity:e}=t.target,n=e.patternMismatch||e.valueMissing;this.$emit("input",this.value,n)}}},fC={class:"field is-grouped"},hC={class:"control"},pC=["placeholder"];function mC(t,e,n,s,i,r){return O(),F("div",fC,[N("div",hC,[ms(N("input",{ref:"input","onUpdate:modelValue":e[0]||(e[0]=o=>i.value=o),class:"input",inputmode:"numeric",pattern:"[\\d]{4}",placeholder:n.placeholder,onInput:e[1]||(e[1]=(...o)=>r.validate&&r.validate(...o))},null,40,pC),[[Qs,i.value]])]),ue(t.$slots,"default")])}const d0=et(dC,[["render",mC]]),gC={name:"ModalDialog",props:{actions:{required:!0,type:Array},show:Boolean,title:{default:"",type:String}},emits:["close"],watch:{show(t){const{classList:e}=document.querySelector("html");t?e.add("is-clipped"):e.remove("is-clipped")}}},yC={key:0,class:"modal is-active"},bC={class:"modal-content"},vC={class:"card is-shadowless"},_C={class:"card-header"},SC=["textContent"],EC={class:"card-header-icon"},wC={class:"card-content"},kC={key:0,class:"card-footer"},CC=["disabled","onClick"],TC=["textContent"];function AC(t,e,n,s,i,r){const o=w("mdicon");return O(),pt(Hv,{name:"fade"},{default:L(()=>[n.show?(O(),F("div",yC,[N("div",{class:"modal-background",onClick:e[0]||(e[0]=a=>t.$emit("close"))}),N("div",bC,[N("div",vC,[N("div",_C,[n.title?(O(),F("div",{key:0,class:"card-header-title",textContent:nt(n.title)},null,8,SC)):vt("",!0),N("div",EC,[N("button",{class:"delete",onClick:e[1]||(e[1]=a=>t.$emit("close"))})])]),N("div",wC,[ue(t.$slots,"content",{},void 0,!0)]),n.actions.length?(O(),F("footer",kC,[(O(!0),F(rt,null,de(n.actions,a=>(O(),F("button",{key:a.key,class:Gt(["card-footer-item is-small",{"is-disabled":a.disabled}]),disabled:a.disabled,onClick:a.handler},[S(o,{class:"icon",name:a.icon,size:"16"},null,8,["name"]),N("span",{class:"is-size-7",textContent:nt(t.$t(a.key))},null,8,TC)],10,CC))),128))])):vt("",!0)])])])):vt("",!0)]),_:3})}const rr=et(gC,[["render",AC],["__scopeId","data-v-45d42f1a"]]);function f0(t,e){return function(){return t.apply(e,arguments)}}const{toString:OC}=Object.prototype,{getPrototypeOf:dp}=Object,{iterator:$u,toStringTag:h0}=Symbol,Fu=(t=>e=>{const n=OC.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ms=t=>(t=t.toLowerCase(),e=>Fu(e)===t),Vu=t=>e=>typeof e===t,{isArray:Uo}=Array,ko=Vu("undefined");function hl(t){return t!==null&&!ko(t)&&t.constructor!==null&&!ko(t.constructor)&&Hn(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const p0=Ms("ArrayBuffer");function xC(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&p0(t.buffer),e}const IC=Vu("string"),Hn=Vu("function"),m0=Vu("number"),pl=t=>t!==null&&typeof t=="object",NC=t=>t===!0||t===!1,dc=t=>{if(Fu(t)!=="object")return!1;const e=dp(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(h0 in t)&&!($u in t)},PC=t=>{if(!pl(t)||hl(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},RC=Ms("Date"),DC=Ms("File"),LC=Ms("Blob"),MC=Ms("FileList"),$C=t=>pl(t)&&Hn(t.pipe),FC=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||Hn(t.append)&&((e=Fu(t))==="formdata"||e==="object"&&Hn(t.toString)&&t.toString()==="[object FormData]"))},VC=Ms("URLSearchParams"),[UC,HC,jC,BC]=["ReadableStream","Request","Response","Headers"].map(Ms),WC=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ml(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let s,i;if(typeof t!="object"&&(t=[t]),Uo(t))for(s=0,i=t.length;s0;)if(i=n[s],e===i.toLowerCase())return i;return null}const br=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,y0=t=>!ko(t)&&t!==br;function zf(){const{caseless:t,skipUndefined:e}=y0(this)&&this||{},n={},s=(i,r)=>{const o=t&&g0(n,r)||r;dc(n[o])&&dc(i)?n[o]=zf(n[o],i):dc(i)?n[o]=zf({},i):Uo(i)?n[o]=i.slice():(!e||!ko(i))&&(n[o]=i)};for(let i=0,r=arguments.length;i(ml(e,(i,r)=>{n&&Hn(i)?t[r]=f0(i,n):t[r]=i},{allOwnKeys:s}),t),KC=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),zC=(t,e,n,s)=>{t.prototype=Object.create(e.prototype,s),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},qC=(t,e,n,s)=>{let i,r,o;const a={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),r=i.length;r-- >0;)o=i[r],(!s||s(o,t,e))&&!a[o]&&(e[o]=t[o],a[o]=!0);t=n!==!1&&dp(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},XC=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const s=t.indexOf(e,n);return s!==-1&&s===n},YC=t=>{if(!t)return null;if(Uo(t))return t;let e=t.length;if(!m0(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},ZC=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&dp(Uint8Array)),JC=(t,e)=>{const s=(t&&t[$u]).call(t);let i;for(;(i=s.next())&&!i.done;){const r=i.value;e.call(t,r[0],r[1])}},QC=(t,e)=>{let n;const s=[];for(;(n=t.exec(e))!==null;)s.push(n);return s},tT=Ms("HTMLFormElement"),eT=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,s,i){return s.toUpperCase()+i}),yg=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),nT=Ms("RegExp"),b0=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),s={};ml(n,(i,r)=>{let o;(o=e(i,r,t))!==!1&&(s[r]=o||i)}),Object.defineProperties(t,s)},sT=t=>{b0(t,(e,n)=>{if(Hn(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const s=t[n];if(Hn(s)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},iT=(t,e)=>{const n={},s=i=>{i.forEach(r=>{n[r]=!0})};return Uo(t)?s(t):s(String(t).split(e)),n},rT=()=>{},oT=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function aT(t){return!!(t&&Hn(t.append)&&t[h0]==="FormData"&&t[$u])}const lT=t=>{const e=new Array(10),n=(s,i)=>{if(pl(s)){if(e.indexOf(s)>=0)return;if(hl(s))return s;if(!("toJSON"in s)){e[i]=s;const r=Uo(s)?[]:{};return ml(s,(o,a)=>{const l=n(o,i+1);!ko(l)&&(r[a]=l)}),e[i]=void 0,r}}return s};return n(t,0)},cT=Ms("AsyncFunction"),uT=t=>t&&(pl(t)||Hn(t))&&Hn(t.then)&&Hn(t.catch),v0=((t,e)=>t?setImmediate:e?((n,s)=>(br.addEventListener("message",({source:i,data:r})=>{i===br&&r===n&&s.length&&s.shift()()},!1),i=>{s.push(i),br.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Hn(br.postMessage)),dT=typeof queueMicrotask<"u"?queueMicrotask.bind(br):typeof process<"u"&&process.nextTick||v0,fT=t=>t!=null&&Hn(t[$u]),Y={isArray:Uo,isArrayBuffer:p0,isBuffer:hl,isFormData:FC,isArrayBufferView:xC,isString:IC,isNumber:m0,isBoolean:NC,isObject:pl,isPlainObject:dc,isEmptyObject:PC,isReadableStream:UC,isRequest:HC,isResponse:jC,isHeaders:BC,isUndefined:ko,isDate:RC,isFile:DC,isBlob:LC,isRegExp:nT,isFunction:Hn,isStream:$C,isURLSearchParams:VC,isTypedArray:ZC,isFileList:MC,forEach:ml,merge:zf,extend:GC,trim:WC,stripBOM:KC,inherits:zC,toFlatObject:qC,kindOf:Fu,kindOfTest:Ms,endsWith:XC,toArray:YC,forEachEntry:JC,matchAll:QC,isHTMLForm:tT,hasOwnProperty:yg,hasOwnProp:yg,reduceDescriptors:b0,freezeMethods:sT,toObjectSet:iT,toCamelCase:eT,noop:rT,toFiniteNumber:oT,findKey:g0,global:br,isContextDefined:y0,isSpecCompliantForm:aT,toJSONObject:lT,isAsyncFn:cT,isThenable:uT,setImmediate:v0,asap:dT,isIterable:fT};function Bt(t,e,n,s,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),s&&(this.request=s),i&&(this.response=i,this.status=i.status?i.status:null)}Y.inherits(Bt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Y.toJSONObject(this.config),code:this.code,status:this.status}}});const _0=Bt.prototype,S0={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{S0[t]={value:t}});Object.defineProperties(Bt,S0);Object.defineProperty(_0,"isAxiosError",{value:!0});Bt.from=(t,e,n,s,i,r)=>{const o=Object.create(_0);Y.toFlatObject(t,o,function(u){return u!==Error.prototype},c=>c!=="isAxiosError");const a=t&&t.message?t.message:"Error",l=e==null&&t?t.code:e;return Bt.call(o,a,l,n,s,i),t&&o.cause==null&&Object.defineProperty(o,"cause",{value:t,configurable:!0}),o.name=t&&t.name||"Error",r&&Object.assign(o,r),o};const hT=null;function qf(t){return Y.isPlainObject(t)||Y.isArray(t)}function E0(t){return Y.endsWith(t,"[]")?t.slice(0,-2):t}function bg(t,e,n){return t?t.concat(e).map(function(i,r){return i=E0(i),!n&&r?"["+i+"]":i}).join(n?".":""):e}function pT(t){return Y.isArray(t)&&!t.some(qf)}const mT=Y.toFlatObject(Y,{},null,function(e){return/^is[A-Z]/.test(e)});function Uu(t,e,n){if(!Y.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=Y.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,v){return!Y.isUndefined(v[m])});const s=n.metaTokens,i=n.visitor||u,r=n.dots,o=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&Y.isSpecCompliantForm(e);if(!Y.isFunction(i))throw new TypeError("visitor must be a function");function c(p){if(p===null)return"";if(Y.isDate(p))return p.toISOString();if(Y.isBoolean(p))return p.toString();if(!l&&Y.isBlob(p))throw new Bt("Blob is not supported. Use a Buffer instead.");return Y.isArrayBuffer(p)||Y.isTypedArray(p)?l&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function u(p,m,v){let y=p;if(p&&!v&&typeof p=="object"){if(Y.endsWith(m,"{}"))m=s?m:m.slice(0,-2),p=JSON.stringify(p);else if(Y.isArray(p)&&pT(p)||(Y.isFileList(p)||Y.endsWith(m,"[]"))&&(y=Y.toArray(p)))return m=E0(m),y.forEach(function(g,b){!(Y.isUndefined(g)||g===null)&&e.append(o===!0?bg([m],b,r):o===null?m:m+"[]",c(g))}),!1}return qf(p)?!0:(e.append(bg(v,m,r),c(p)),!1)}const d=[],f=Object.assign(mT,{defaultVisitor:u,convertValue:c,isVisitable:qf});function h(p,m){if(!Y.isUndefined(p)){if(d.indexOf(p)!==-1)throw Error("Circular reference detected in "+m.join("."));d.push(p),Y.forEach(p,function(y,_){(!(Y.isUndefined(y)||y===null)&&i.call(e,y,Y.isString(_)?_.trim():_,m,f))===!0&&h(y,m?m.concat(_):[_])}),d.pop()}}if(!Y.isObject(t))throw new TypeError("data must be an object");return h(t),e}function vg(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(s){return e[s]})}function fp(t,e){this._pairs=[],t&&Uu(t,this,e)}const w0=fp.prototype;w0.append=function(e,n){this._pairs.push([e,n])};w0.toString=function(e){const n=e?function(s){return e.call(this,s,vg)}:vg;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function gT(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function k0(t,e,n){if(!e)return t;const s=n&&n.encode||gT;Y.isFunction(n)&&(n={serialize:n});const i=n&&n.serialize;let r;if(i?r=i(e,n):r=Y.isURLSearchParams(e)?e.toString():new fp(e,n).toString(s),r){const o=t.indexOf("#");o!==-1&&(t=t.slice(0,o)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}class _g{constructor(){this.handlers=[]}use(e,n,s){return this.handlers.push({fulfilled:e,rejected:n,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){Y.forEach(this.handlers,function(s){s!==null&&e(s)})}}const C0={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},yT=typeof URLSearchParams<"u"?URLSearchParams:fp,bT=typeof FormData<"u"?FormData:null,vT=typeof Blob<"u"?Blob:null,_T={isBrowser:!0,classes:{URLSearchParams:yT,FormData:bT,Blob:vT},protocols:["http","https","file","blob","url","data"]},hp=typeof window<"u"&&typeof document<"u",Xf=typeof navigator=="object"&&navigator||void 0,ST=hp&&(!Xf||["ReactNative","NativeScript","NS"].indexOf(Xf.product)<0),ET=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",wT=hp&&window.location.href||"http://localhost",kT=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:hp,hasStandardBrowserEnv:ST,hasStandardBrowserWebWorkerEnv:ET,navigator:Xf,origin:wT},Symbol.toStringTag,{value:"Module"})),_n={...kT,..._T};function CT(t,e){return Uu(t,new _n.classes.URLSearchParams,{visitor:function(n,s,i,r){return _n.isNode&&Y.isBuffer(n)?(this.append(s,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...e})}function TT(t){return Y.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function AT(t){const e={},n=Object.keys(t);let s;const i=n.length;let r;for(s=0;s=n.length;return o=!o&&Y.isArray(i)?i.length:o,l?(Y.hasOwnProp(i,o)?i[o]=[i[o],s]:i[o]=s,!a):((!i[o]||!Y.isObject(i[o]))&&(i[o]=[]),e(n,s,i[o],r)&&Y.isArray(i[o])&&(i[o]=AT(i[o])),!a)}if(Y.isFormData(t)&&Y.isFunction(t.entries)){const n={};return Y.forEachEntry(t,(s,i)=>{e(TT(s),i,n,0)}),n}return null}function OT(t,e,n){if(Y.isString(t))try{return(e||JSON.parse)(t),Y.trim(t)}catch(s){if(s.name!=="SyntaxError")throw s}return(n||JSON.stringify)(t)}const gl={transitional:C0,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){const s=n.getContentType()||"",i=s.indexOf("application/json")>-1,r=Y.isObject(e);if(r&&Y.isHTMLForm(e)&&(e=new FormData(e)),Y.isFormData(e))return i?JSON.stringify(T0(e)):e;if(Y.isArrayBuffer(e)||Y.isBuffer(e)||Y.isStream(e)||Y.isFile(e)||Y.isBlob(e)||Y.isReadableStream(e))return e;if(Y.isArrayBufferView(e))return e.buffer;if(Y.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(r){if(s.indexOf("application/x-www-form-urlencoded")>-1)return CT(e,this.formSerializer).toString();if((a=Y.isFileList(e))||s.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Uu(a?{"files[]":e}:e,l&&new l,this.formSerializer)}}return r||i?(n.setContentType("application/json",!1),OT(e)):e}],transformResponse:[function(e){const n=this.transitional||gl.transitional,s=n&&n.forcedJSONParsing,i=this.responseType==="json";if(Y.isResponse(e)||Y.isReadableStream(e))return e;if(e&&Y.isString(e)&&(s&&!this.responseType||i)){const o=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(e,this.parseReviver)}catch(a){if(o)throw a.name==="SyntaxError"?Bt.from(a,Bt.ERR_BAD_RESPONSE,this,null,this.response):a}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:_n.classes.FormData,Blob:_n.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Y.forEach(["delete","get","head","post","put","patch"],t=>{gl.headers[t]={}});const xT=Y.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),IT=t=>{const e={};let n,s,i;return t&&t.split(` +`).forEach(function(o){i=o.indexOf(":"),n=o.substring(0,i).trim().toLowerCase(),s=o.substring(i+1).trim(),!(!n||e[n]&&xT[n])&&(n==="set-cookie"?e[n]?e[n].push(s):e[n]=[s]:e[n]=e[n]?e[n]+", "+s:s)}),e},Sg=Symbol("internals");function Qo(t){return t&&String(t).trim().toLowerCase()}function fc(t){return t===!1||t==null?t:Y.isArray(t)?t.map(fc):String(t)}function NT(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=n.exec(t);)e[s[1]]=s[2];return e}const PT=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function jd(t,e,n,s,i){if(Y.isFunction(s))return s.call(this,e,n);if(i&&(e=n),!!Y.isString(e)){if(Y.isString(s))return e.indexOf(s)!==-1;if(Y.isRegExp(s))return s.test(e)}}function RT(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,s)=>n.toUpperCase()+s)}function DT(t,e){const n=Y.toCamelCase(" "+e);["get","set","has"].forEach(s=>{Object.defineProperty(t,s+n,{value:function(i,r,o){return this[s].call(this,e,i,r,o)},configurable:!0})})}let jn=class{constructor(e){e&&this.set(e)}set(e,n,s){const i=this;function r(a,l,c){const u=Qo(l);if(!u)throw new Error("header name must be a non-empty string");const d=Y.findKey(i,u);(!d||i[d]===void 0||c===!0||c===void 0&&i[d]!==!1)&&(i[d||l]=fc(a))}const o=(a,l)=>Y.forEach(a,(c,u)=>r(c,u,l));if(Y.isPlainObject(e)||e instanceof this.constructor)o(e,n);else if(Y.isString(e)&&(e=e.trim())&&!PT(e))o(IT(e),n);else if(Y.isObject(e)&&Y.isIterable(e)){let a={},l,c;for(const u of e){if(!Y.isArray(u))throw TypeError("Object iterator must return a key-value pair");a[c=u[0]]=(l=a[c])?Y.isArray(l)?[...l,u[1]]:[l,u[1]]:u[1]}o(a,n)}else e!=null&&r(n,e,s);return this}get(e,n){if(e=Qo(e),e){const s=Y.findKey(this,e);if(s){const i=this[s];if(!n)return i;if(n===!0)return NT(i);if(Y.isFunction(n))return n.call(this,i,s);if(Y.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=Qo(e),e){const s=Y.findKey(this,e);return!!(s&&this[s]!==void 0&&(!n||jd(this,this[s],s,n)))}return!1}delete(e,n){const s=this;let i=!1;function r(o){if(o=Qo(o),o){const a=Y.findKey(s,o);a&&(!n||jd(s,s[a],a,n))&&(delete s[a],i=!0)}}return Y.isArray(e)?e.forEach(r):r(e),i}clear(e){const n=Object.keys(this);let s=n.length,i=!1;for(;s--;){const r=n[s];(!e||jd(this,this[r],r,e,!0))&&(delete this[r],i=!0)}return i}normalize(e){const n=this,s={};return Y.forEach(this,(i,r)=>{const o=Y.findKey(s,r);if(o){n[o]=fc(i),delete n[r];return}const a=e?RT(r):String(r).trim();a!==r&&delete n[r],n[a]=fc(i),s[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return Y.forEach(this,(s,i)=>{s!=null&&s!==!1&&(n[i]=e&&Y.isArray(s)?s.join(", "):s)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){const s=new this(e);return n.forEach(i=>s.set(i)),s}static accessor(e){const s=(this[Sg]=this[Sg]={accessors:{}}).accessors,i=this.prototype;function r(o){const a=Qo(o);s[a]||(DT(i,o),s[a]=!0)}return Y.isArray(e)?e.forEach(r):r(e),this}};jn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Y.reduceDescriptors(jn.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(s){this[n]=s}}});Y.freezeMethods(jn);function Bd(t,e){const n=this||gl,s=e||n,i=jn.from(s.headers);let r=s.data;return Y.forEach(t,function(a){r=a.call(n,r,i.normalize(),e?e.status:void 0)}),i.normalize(),r}function A0(t){return!!(t&&t.__CANCEL__)}function Ho(t,e,n){Bt.call(this,t??"canceled",Bt.ERR_CANCELED,e,n),this.name="CanceledError"}Y.inherits(Ho,Bt,{__CANCEL__:!0});function O0(t,e,n){const s=n.config.validateStatus;!n.status||!s||s(n.status)?t(n):e(new Bt("Request failed with status code "+n.status,[Bt.ERR_BAD_REQUEST,Bt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function LT(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function MT(t,e){t=t||10;const n=new Array(t),s=new Array(t);let i=0,r=0,o;return e=e!==void 0?e:1e3,function(l){const c=Date.now(),u=s[r];o||(o=c),n[i]=l,s[i]=c;let d=r,f=0;for(;d!==i;)f+=n[d++],d=d%t;if(i=(i+1)%t,i===r&&(r=(r+1)%t),c-o{n=u,i=null,r&&(clearTimeout(r),r=null),t(...c)};return[(...c)=>{const u=Date.now(),d=u-n;d>=s?o(c,u):(i=c,r||(r=setTimeout(()=>{r=null,o(i)},s-d)))},()=>i&&o(i)]}const zc=(t,e,n=3)=>{let s=0;const i=MT(50,250);return $T(r=>{const o=r.loaded,a=r.lengthComputable?r.total:void 0,l=o-s,c=i(l),u=o<=a;s=o;const d={loaded:o,total:a,progress:a?o/a:void 0,bytes:l,rate:c||void 0,estimated:c&&a&&u?(a-o)/c:void 0,event:r,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(d)},n)},Eg=(t,e)=>{const n=t!=null;return[s=>e[0]({lengthComputable:n,total:t,loaded:s}),e[1]]},wg=t=>(...e)=>Y.asap(()=>t(...e)),FT=_n.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,_n.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(_n.origin),_n.navigator&&/(msie|trident)/i.test(_n.navigator.userAgent)):()=>!0,VT=_n.hasStandardBrowserEnv?{write(t,e,n,s,i,r){const o=[t+"="+encodeURIComponent(e)];Y.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),Y.isString(s)&&o.push("path="+s),Y.isString(i)&&o.push("domain="+i),r===!0&&o.push("secure"),document.cookie=o.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function UT(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function HT(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function x0(t,e,n){let s=!UT(e);return t&&(s||n==!1)?HT(t,e):e}const kg=t=>t instanceof jn?{...t}:t;function Rr(t,e){e=e||{};const n={};function s(c,u,d,f){return Y.isPlainObject(c)&&Y.isPlainObject(u)?Y.merge.call({caseless:f},c,u):Y.isPlainObject(u)?Y.merge({},u):Y.isArray(u)?u.slice():u}function i(c,u,d,f){if(Y.isUndefined(u)){if(!Y.isUndefined(c))return s(void 0,c,d,f)}else return s(c,u,d,f)}function r(c,u){if(!Y.isUndefined(u))return s(void 0,u)}function o(c,u){if(Y.isUndefined(u)){if(!Y.isUndefined(c))return s(void 0,c)}else return s(void 0,u)}function a(c,u,d){if(d in e)return s(c,u);if(d in t)return s(void 0,c)}const l={url:r,method:r,data:r,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(c,u,d)=>i(kg(c),kg(u),d,!0)};return Y.forEach(Object.keys({...t,...e}),function(u){const d=l[u]||i,f=d(t[u],e[u],u);Y.isUndefined(f)&&d!==a||(n[u]=f)}),n}const I0=t=>{const e=Rr({},t);let{data:n,withXSRFToken:s,xsrfHeaderName:i,xsrfCookieName:r,headers:o,auth:a}=e;if(e.headers=o=jn.from(o),e.url=k0(x0(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),a&&o.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),Y.isFormData(n)){if(_n.hasStandardBrowserEnv||_n.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(Y.isFunction(n.getHeaders)){const l=n.getHeaders(),c=["content-type","content-length"];Object.entries(l).forEach(([u,d])=>{c.includes(u.toLowerCase())&&o.set(u,d)})}}if(_n.hasStandardBrowserEnv&&(s&&Y.isFunction(s)&&(s=s(e)),s||s!==!1&&FT(e.url))){const l=i&&r&&VT.read(r);l&&o.set(i,l)}return e},jT=typeof XMLHttpRequest<"u",BT=jT&&function(t){return new Promise(function(n,s){const i=I0(t);let r=i.data;const o=jn.from(i.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:c}=i,u,d,f,h,p;function m(){h&&h(),p&&p(),i.cancelToken&&i.cancelToken.unsubscribe(u),i.signal&&i.signal.removeEventListener("abort",u)}let v=new XMLHttpRequest;v.open(i.method.toUpperCase(),i.url,!0),v.timeout=i.timeout;function y(){if(!v)return;const g=jn.from("getAllResponseHeaders"in v&&v.getAllResponseHeaders()),E={data:!a||a==="text"||a==="json"?v.responseText:v.response,status:v.status,statusText:v.statusText,headers:g,config:t,request:v};O0(function(I){n(I),m()},function(I){s(I),m()},E),v=null}"onloadend"in v?v.onloadend=y:v.onreadystatechange=function(){!v||v.readyState!==4||v.status===0&&!(v.responseURL&&v.responseURL.indexOf("file:")===0)||setTimeout(y)},v.onabort=function(){v&&(s(new Bt("Request aborted",Bt.ECONNABORTED,t,v)),v=null)},v.onerror=function(b){const E=b&&b.message?b.message:"Network Error",k=new Bt(E,Bt.ERR_NETWORK,t,v);k.event=b||null,s(k),v=null},v.ontimeout=function(){let b=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const E=i.transitional||C0;i.timeoutErrorMessage&&(b=i.timeoutErrorMessage),s(new Bt(b,E.clarifyTimeoutError?Bt.ETIMEDOUT:Bt.ECONNABORTED,t,v)),v=null},r===void 0&&o.setContentType(null),"setRequestHeader"in v&&Y.forEach(o.toJSON(),function(b,E){v.setRequestHeader(E,b)}),Y.isUndefined(i.withCredentials)||(v.withCredentials=!!i.withCredentials),a&&a!=="json"&&(v.responseType=i.responseType),c&&([f,p]=zc(c,!0),v.addEventListener("progress",f)),l&&v.upload&&([d,h]=zc(l),v.upload.addEventListener("progress",d),v.upload.addEventListener("loadend",h)),(i.cancelToken||i.signal)&&(u=g=>{v&&(s(!g||g.type?new Ho(null,t,v):g),v.abort(),v=null)},i.cancelToken&&i.cancelToken.subscribe(u),i.signal&&(i.signal.aborted?u():i.signal.addEventListener("abort",u)));const _=LT(i.url);if(_&&_n.protocols.indexOf(_)===-1){s(new Bt("Unsupported protocol "+_+":",Bt.ERR_BAD_REQUEST,t));return}v.send(r||null)})},WT=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let s=new AbortController,i;const r=function(c){if(!i){i=!0,a();const u=c instanceof Error?c:this.reason;s.abort(u instanceof Bt?u:new Ho(u instanceof Error?u.message:u))}};let o=e&&setTimeout(()=>{o=null,r(new Bt(`timeout ${e} of ms exceeded`,Bt.ETIMEDOUT))},e);const a=()=>{t&&(o&&clearTimeout(o),o=null,t.forEach(c=>{c.unsubscribe?c.unsubscribe(r):c.removeEventListener("abort",r)}),t=null)};t.forEach(c=>c.addEventListener("abort",r));const{signal:l}=s;return l.unsubscribe=()=>Y.asap(a),l}},GT=function*(t,e){let n=t.byteLength;if(n{const i=KT(t,e);let r=0,o,a=l=>{o||(o=!0,s&&s(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await i.next();if(c){a(),l.close();return}let d=u.byteLength;if(n){let f=r+=d;n(f)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),i.return()}},{highWaterMark:2})},Tg=64*1024,{isFunction:Vl}=Y,qT=(({Request:t,Response:e})=>({Request:t,Response:e}))(Y.global),{ReadableStream:Ag,TextEncoder:Og}=Y.global,xg=(t,...e)=>{try{return!!t(...e)}catch{return!1}},XT=t=>{t=Y.merge.call({skipUndefined:!0},qT,t);const{fetch:e,Request:n,Response:s}=t,i=e?Vl(e):typeof fetch=="function",r=Vl(n),o=Vl(s);if(!i)return!1;const a=i&&Vl(Ag),l=i&&(typeof Og=="function"?(p=>m=>p.encode(m))(new Og):async p=>new Uint8Array(await new n(p).arrayBuffer())),c=r&&a&&xg(()=>{let p=!1;const m=new n(_n.origin,{body:new Ag,method:"POST",get duplex(){return p=!0,"half"}}).headers.has("Content-Type");return p&&!m}),u=o&&a&&xg(()=>Y.isReadableStream(new s("").body)),d={stream:u&&(p=>p.body)};i&&["text","arrayBuffer","blob","formData","stream"].forEach(p=>{!d[p]&&(d[p]=(m,v)=>{let y=m&&m[p];if(y)return y.call(m);throw new Bt(`Response type '${p}' is not supported`,Bt.ERR_NOT_SUPPORT,v)})});const f=async p=>{if(p==null)return 0;if(Y.isBlob(p))return p.size;if(Y.isSpecCompliantForm(p))return(await new n(_n.origin,{method:"POST",body:p}).arrayBuffer()).byteLength;if(Y.isArrayBufferView(p)||Y.isArrayBuffer(p))return p.byteLength;if(Y.isURLSearchParams(p)&&(p=p+""),Y.isString(p))return(await l(p)).byteLength},h=async(p,m)=>{const v=Y.toFiniteNumber(p.getContentLength());return v??f(m)};return async p=>{let{url:m,method:v,data:y,signal:_,cancelToken:g,timeout:b,onDownloadProgress:E,onUploadProgress:k,responseType:I,headers:D,withCredentials:C="same-origin",fetchOptions:R}=I0(p),j=e||fetch;I=I?(I+"").toLowerCase():"text";let M=WT([_,g&&g.toAbortSignal()],b),H=null;const q=M&&M.unsubscribe&&(()=>{M.unsubscribe()});let ot;try{if(k&&c&&v!=="get"&&v!=="head"&&(ot=await h(D,y))!==0){let xt=new n(m,{method:"POST",body:y,duplex:"half"}),Dt;if(Y.isFormData(y)&&(Dt=xt.headers.get("content-type"))&&D.setContentType(Dt),xt.body){const[re,oe]=Eg(ot,zc(wg(k)));y=Cg(xt.body,Tg,re,oe)}}Y.isString(C)||(C=C?"include":"omit");const W=r&&"credentials"in n.prototype,Q={...R,signal:M,method:v.toUpperCase(),headers:D.normalize().toJSON(),body:y,duplex:"half",credentials:W?C:void 0};H=r&&new n(m,Q);let it=await(r?j(H,R):j(m,Q));const St=u&&(I==="stream"||I==="response");if(u&&(E||St&&q)){const xt={};["status","statusText","headers"].forEach(pe=>{xt[pe]=it[pe]});const Dt=Y.toFiniteNumber(it.headers.get("content-length")),[re,oe]=E&&Eg(Dt,zc(wg(E),!0))||[];it=new s(Cg(it.body,Tg,re,()=>{oe&&oe(),q&&q()}),xt)}I=I||"text";let zt=await d[Y.findKey(d,I)||"text"](it,p);return!St&&q&&q(),await new Promise((xt,Dt)=>{O0(xt,Dt,{data:zt,headers:jn.from(it.headers),status:it.status,statusText:it.statusText,config:p,request:H})})}catch(W){throw q&&q(),W&&W.name==="TypeError"&&/Load failed|fetch/i.test(W.message)?Object.assign(new Bt("Network Error",Bt.ERR_NETWORK,p,H),{cause:W.cause||W}):Bt.from(W,W&&W.code,p,H)}}},YT=new Map,N0=t=>{let e=t?t.env:{};const{fetch:n,Request:s,Response:i}=e,r=[s,i,n];let o=r.length,a=o,l,c,u=YT;for(;a--;)l=r[a],c=u.get(l),c===void 0&&u.set(l,c=a?new Map:XT(e)),u=c;return c};N0();const Yf={http:hT,xhr:BT,fetch:{get:N0}};Y.forEach(Yf,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const Ig=t=>`- ${t}`,ZT=t=>Y.isFunction(t)||t===null||t===!1,P0={getAdapter:(t,e)=>{t=Y.isArray(t)?t:[t];const{length:n}=t;let s,i;const r={};for(let o=0;o`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let a=n?o.length>1?`since : +`+o.map(Ig).join(` +`):" "+Ig(o[0]):"as no adapter specified";throw new Bt("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return i},adapters:Yf};function Wd(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Ho(null,t)}function Ng(t){return Wd(t),t.headers=jn.from(t.headers),t.data=Bd.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),P0.getAdapter(t.adapter||gl.adapter,t)(t).then(function(s){return Wd(t),s.data=Bd.call(t,t.transformResponse,s),s.headers=jn.from(s.headers),s},function(s){return A0(s)||(Wd(t),s&&s.response&&(s.response.data=Bd.call(t,t.transformResponse,s.response),s.response.headers=jn.from(s.response.headers))),Promise.reject(s)})}const R0="1.12.2",Hu={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Hu[t]=function(s){return typeof s===t||"a"+(e<1?"n ":" ")+t}});const Pg={};Hu.transitional=function(e,n,s){function i(r,o){return"[Axios v"+R0+"] Transitional option '"+r+"'"+o+(s?". "+s:"")}return(r,o,a)=>{if(e===!1)throw new Bt(i(o," has been removed"+(n?" in "+n:"")),Bt.ERR_DEPRECATED);return n&&!Pg[o]&&(Pg[o]=!0,console.warn(i(o," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(r,o,a):!0}};Hu.spelling=function(e){return(n,s)=>(console.warn(`${s} is likely a misspelling of ${e}`),!0)};function JT(t,e,n){if(typeof t!="object")throw new Bt("options must be an object",Bt.ERR_BAD_OPTION_VALUE);const s=Object.keys(t);let i=s.length;for(;i-- >0;){const r=s[i],o=e[r];if(o){const a=t[r],l=a===void 0||o(a,r,t);if(l!==!0)throw new Bt("option "+r+" must be "+l,Bt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Bt("Unknown option "+r,Bt.ERR_BAD_OPTION)}}const hc={assertOptions:JT,validators:Hu},Us=hc.validators;let Or=class{constructor(e){this.defaults=e||{},this.interceptors={request:new _g,response:new _g}}async request(e,n){try{return await this._request(e,n)}catch(s){if(s instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const r=i.stack?i.stack.replace(/^.+\n/,""):"";try{s.stack?r&&!String(s.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(s.stack+=` +`+r):s.stack=r}catch{}}throw s}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=Rr(this.defaults,n);const{transitional:s,paramsSerializer:i,headers:r}=n;s!==void 0&&hc.assertOptions(s,{silentJSONParsing:Us.transitional(Us.boolean),forcedJSONParsing:Us.transitional(Us.boolean),clarifyTimeoutError:Us.transitional(Us.boolean)},!1),i!=null&&(Y.isFunction(i)?n.paramsSerializer={serialize:i}:hc.assertOptions(i,{encode:Us.function,serialize:Us.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),hc.assertOptions(n,{baseUrl:Us.spelling("baseURL"),withXsrfToken:Us.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=r&&Y.merge(r.common,r[n.method]);r&&Y.forEach(["delete","get","head","post","put","patch","common"],p=>{delete r[p]}),n.headers=jn.concat(o,r);const a=[];let l=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(n)===!1||(l=l&&m.synchronous,a.unshift(m.fulfilled,m.rejected))});const c=[];this.interceptors.response.forEach(function(m){c.push(m.fulfilled,m.rejected)});let u,d=0,f;if(!l){const p=[Ng.bind(this),void 0];for(p.unshift(...a),p.push(...c),f=p.length,u=Promise.resolve(n);d{if(!s._listeners)return;let r=s._listeners.length;for(;r-- >0;)s._listeners[r](i);s._listeners=null}),this.promise.then=i=>{let r;const o=new Promise(a=>{s.subscribe(a),r=a}).then(i);return o.cancel=function(){s.unsubscribe(r)},o},e(function(r,o,a){s.reason||(s.reason=new Ho(r,o,a),n(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=s=>{e.abort(s)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new D0(function(i){e=i}),cancel:e}}};function tA(t){return function(n){return t.apply(null,n)}}function eA(t){return Y.isObject(t)&&t.isAxiosError===!0}const Zf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Zf).forEach(([t,e])=>{Zf[e]=t});function L0(t){const e=new Or(t),n=f0(Or.prototype.request,e);return Y.extend(n,Or.prototype,e,{allOwnKeys:!0}),Y.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return L0(Rr(t,i))},n}const ut=L0(gl);ut.Axios=Or;ut.CanceledError=Ho;ut.CancelToken=QT;ut.isCancel=A0;ut.VERSION=R0;ut.toFormData=Uu;ut.AxiosError=Bt;ut.Cancel=ut.CanceledError;ut.all=function(e){return Promise.all(e)};ut.spread=tA;ut.isAxiosError=eA;ut.mergeConfig=Rr;ut.AxiosHeaders=jn;ut.formToJSON=t=>T0(Y.isHTMLForm(t)?new FormData(t):t);ut.getAdapter=P0.getAdapter;ut.HttpStatusCode=Zf;ut.default=ut;const{Axios:ej,AxiosError:nj,CanceledError:sj,isCancel:ij,CancelToken:rj,VERSION:oj,all:aj,Cancel:lj,isAxiosError:cj,spread:uj,toFormData:dj,AxiosHeaders:fj,HttpStatusCode:hj,formToJSON:pj,getAdapter:mj,mergeConfig:gj}=ut;/*! * shared v11.1.12 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function iA(t,e){typeof console<"u"&&(console.warn("[intlify] "+t),e&&console.warn(e.stack))}const zc=typeof window<"u",or=(t,e=!1)=>e?Symbol.for(t):Symbol(t),rA=(t,e,n)=>oA({l:t,k:e,s:n}),oA=t=>JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Xe=t=>typeof t=="number"&&isFinite(t),aA=t=>yp(t)==="[object Date]",Xc=t=>yp(t)==="[object RegExp]",Bu=t=>re(t)&&Object.keys(t).length===0,tn=Object.assign,lA=Object.create,Ee=(t=null)=>lA(t);let Pg;const gp=()=>Pg||(Pg=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ee());function Rg(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Dg(t){return t.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function cA(t){return t=t.replace(/(\w+)\s*=\s*"([^"]*)"/g,(s,i,r)=>`${i}="${Dg(r)}"`),t=t.replace(/(\w+)\s*=\s*'([^']*)'/g,(s,i,r)=>`${i}='${Dg(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(t)&&(t=t.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(s=>{t=t.replace(s,"$1javascript:")}),t}const uA=Object.prototype.hasOwnProperty;function Os(t,e){return uA.call(t,e)}const je=Array.isArray,Pe=t=>typeof t=="function",_t=t=>typeof t=="string",Re=t=>typeof t=="boolean",pe=t=>t!==null&&typeof t=="object",dA=t=>pe(t)&&Pe(t.then)&&Pe(t.catch),M0=Object.prototype.toString,yp=t=>M0.call(t),re=t=>yp(t)==="[object Object]",fA=t=>t==null?"":je(t)||re(t)&&t.toString===M0?JSON.stringify(t,null,2):String(t);function bp(t,e=""){return t.reduce((n,s,i)=>i===0?n+s:n+e+s,"")}const Vl=t=>!pe(t)||je(t);function hc(t,e){if(Vl(t)||Vl(e))throw new Error("Invalid value");const n=[{src:t,des:e}];for(;n.length;){const{src:s,des:i}=n.pop();Object.keys(s).forEach(r=>{r!=="__proto__"&&(pe(s[r])&&!pe(i[r])&&(i[r]=Array.isArray(s[r])?[]:Ee()),Vl(i[r])||Vl(s[r])?i[r]=s[r]:n.push({src:s[r],des:i[r]}))})}}/*! + */function nA(t,e){typeof console<"u"&&(console.warn("[intlify] "+t),e&&console.warn(e.stack))}const qc=typeof window<"u",or=(t,e=!1)=>e?Symbol.for(t):Symbol(t),sA=(t,e,n)=>iA({l:t,k:e,s:n}),iA=t=>JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Xe=t=>typeof t=="number"&&isFinite(t),rA=t=>mp(t)==="[object Date]",Xc=t=>mp(t)==="[object RegExp]",ju=t=>ae(t)&&Object.keys(t).length===0,tn=Object.assign,oA=Object.create,Ee=(t=null)=>oA(t);let Rg;const pp=()=>Rg||(Rg=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ee());function Dg(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Lg(t){return t.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function aA(t){return t=t.replace(/(\w+)\s*=\s*"([^"]*)"/g,(s,i,r)=>`${i}="${Lg(r)}"`),t=t.replace(/(\w+)\s*=\s*'([^']*)'/g,(s,i,r)=>`${i}='${Lg(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(t)&&(t=t.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(s=>{t=t.replace(s,"$1javascript:")}),t}const lA=Object.prototype.hasOwnProperty;function Os(t,e){return lA.call(t,e)}const je=Array.isArray,Pe=t=>typeof t=="function",_t=t=>typeof t=="string",Re=t=>typeof t=="boolean",ye=t=>t!==null&&typeof t=="object",cA=t=>ye(t)&&Pe(t.then)&&Pe(t.catch),M0=Object.prototype.toString,mp=t=>M0.call(t),ae=t=>mp(t)==="[object Object]",uA=t=>t==null?"":je(t)||ae(t)&&t.toString===M0?JSON.stringify(t,null,2):String(t);function gp(t,e=""){return t.reduce((n,s,i)=>i===0?n+s:n+e+s,"")}const Ul=t=>!ye(t)||je(t);function pc(t,e){if(Ul(t)||Ul(e))throw new Error("Invalid value");const n=[{src:t,des:e}];for(;n.length;){const{src:s,des:i}=n.pop();Object.keys(s).forEach(r=>{r!=="__proto__"&&(ye(s[r])&&!ye(i[r])&&(i[r]=Array.isArray(s[r])?[]:Ee()),Ul(i[r])||Ul(s[r])?i[r]=s[r]:n.push({src:s[r],des:i[r]}))})}}/*! * message-compiler v11.1.12 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function hA(t,e,n){return{line:t,column:e,offset:n}}function th(t,e,n){return{start:t,end:e}}const be={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},pA=17;function Wu(t,e,n={}){const{domain:s,messages:i,args:r}=n,o=t,a=new SyntaxError(String(o));return a.code=t,e&&(a.location=e),a.domain=s,a}function mA(t){throw t}const Hs=" ",gA="\r",hn=` -`,yA="\u2028",bA="\u2029";function vA(t){const e=t;let n=0,s=1,i=1,r=0;const o=I=>e[I]===gA&&e[I+1]===hn,a=I=>e[I]===hn,l=I=>e[I]===bA,c=I=>e[I]===yA,u=I=>o(I)||a(I)||l(I)||c(I),d=()=>n,f=()=>s,h=()=>i,p=()=>r,m=I=>o(I)||l(I)||c(I)?hn:e[I],_=()=>m(n),y=()=>m(n+r);function v(){return r=0,u(n)&&(s++,i=0),o(n)&&n++,n++,i++,e[n]}function g(){return o(n+r)&&r++,r++,e[n+r]}function b(){n=0,s=1,i=1,r=0}function S(I=0){r=I}function k(){const I=n+r;for(;I!==n;)v();r=0}return{index:d,line:f,column:h,peekOffset:p,charAt:m,currentChar:_,currentPeek:y,next:v,peek:g,reset:b,resetPeek:S,skipToPeek:k}}const si=void 0,_A=".",Lg="'",SA="tokenizer";function EA(t,e={}){const n=e.location!==!1,s=vA(t),i=()=>s.index(),r=()=>hA(s.line(),s.column(),s.index()),o=r(),a=i(),l={currentType:13,offset:a,startLoc:o,endLoc:o,lastType:13,lastOffset:a,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=e;function d(T,x,V,...K){const Q=c();if(x.column+=V,x.offset+=V,u){const lt=n?th(Q.startLoc,x):null,M=Wu(T,lt,{domain:SA,args:K});u(M)}}function f(T,x,V){T.endLoc=r(),T.currentType=x;const K={type:x};return n&&(K.loc=th(T.startLoc,T.endLoc)),V!=null&&(K.value=V),K}const h=T=>f(T,13);function p(T,x){return T.currentChar()===x?(T.next(),x):(d(be.EXPECTED_TOKEN,r(),0,x),"")}function m(T){let x="";for(;T.currentPeek()===Hs||T.currentPeek()===hn;)x+=T.currentPeek(),T.peek();return x}function _(T){const x=m(T);return T.skipToPeek(),x}function y(T){if(T===si)return!1;const x=T.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x===95}function v(T){if(T===si)return!1;const x=T.charCodeAt(0);return x>=48&&x<=57}function g(T,x){const{currentType:V}=x;if(V!==2)return!1;m(T);const K=y(T.currentPeek());return T.resetPeek(),K}function b(T,x){const{currentType:V}=x;if(V!==2)return!1;m(T);const K=T.currentPeek()==="-"?T.peek():T.currentPeek(),Q=v(K);return T.resetPeek(),Q}function S(T,x){const{currentType:V}=x;if(V!==2)return!1;m(T);const K=T.currentPeek()===Lg;return T.resetPeek(),K}function k(T,x){const{currentType:V}=x;if(V!==7)return!1;m(T);const K=T.currentPeek()===".";return T.resetPeek(),K}function I(T,x){const{currentType:V}=x;if(V!==8)return!1;m(T);const K=y(T.currentPeek());return T.resetPeek(),K}function D(T,x){const{currentType:V}=x;if(!(V===7||V===11))return!1;m(T);const K=T.currentPeek()===":";return T.resetPeek(),K}function C(T,x){const{currentType:V}=x;if(V!==9)return!1;const K=()=>{const lt=T.currentPeek();return lt==="{"?y(T.peek()):lt==="@"||lt==="|"||lt===":"||lt==="."||lt===Hs||!lt?!1:lt===hn?(T.peek(),K()):B(T,!1)},Q=K();return T.resetPeek(),Q}function R(T){m(T);const x=T.currentPeek()==="|";return T.resetPeek(),x}function B(T,x=!0){const V=(Q=!1,lt="")=>{const M=T.currentPeek();return M==="{"||M==="@"||!M?Q:M==="|"?!(lt===Hs||lt===hn):M===Hs?(T.peek(),V(!0,Hs)):M===hn?(T.peek(),V(!0,hn)):!0},K=V();return x&&T.resetPeek(),K}function $(T,x){const V=T.currentChar();return V===si?si:x(V)?(T.next(),V):null}function H(T){const x=T.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x>=48&&x<=57||x===95||x===36}function X(T){return $(T,H)}function ot(T){const x=T.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x>=48&&x<=57||x===95||x===36||x===45}function G(T){return $(T,ot)}function tt(T){const x=T.charCodeAt(0);return x>=48&&x<=57}function at(T){return $(T,tt)}function kt(T){const x=T.charCodeAt(0);return x>=48&&x<=57||x>=65&&x<=70||x>=97&&x<=102}function zt(T){return $(T,kt)}function Vt(T){let x="",V="";for(;x=at(T);)V+=x;return V}function Bt(T){let x="";for(;;){const V=T.currentChar();if(V==="{"||V==="}"||V==="@"||V==="|"||!V)break;if(V===Hs||V===hn)if(B(T))x+=V,T.next();else{if(R(T))break;x+=V,T.next()}else x+=V,T.next()}return x}function ge(T){_(T);let x="",V="";for(;x=G(T);)V+=x;const K=T.currentChar();if(K&&K!=="}"&&K!==si&&K!==Hs&&K!==hn&&K!==" "){const Q=yt(T);return d(be.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,V+Q),V+Q}return T.currentChar()===si&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),V}function _e(T){_(T);let x="";return T.currentChar()==="-"?(T.next(),x+=`-${Vt(T)}`):x+=Vt(T),T.currentChar()===si&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),x}function Se(T){return T!==Lg&&T!==hn}function Wt(T){_(T),p(T,"'");let x="",V="";for(;x=$(T,Se);)x==="\\"?V+=Y(T):V+=x;const K=T.currentChar();return K===hn||K===si?(d(be.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),K===hn&&(T.next(),p(T,"'")),V):(p(T,"'"),V)}function Y(T){const x=T.currentChar();switch(x){case"\\":case"'":return T.next(),`\\${x}`;case"u":return dt(T,x,4);case"U":return dt(T,x,6);default:return d(be.UNKNOWN_ESCAPE_SEQUENCE,r(),0,x),""}}function dt(T,x,V){p(T,x);let K="";for(let Q=0;Q{const K=T.currentChar();return K==="{"||K==="@"||K==="|"||K==="("||K===")"||!K||K===Hs?V:(V+=K,T.next(),x(V))};return x("")}function A(T){_(T);const x=p(T,"|");return _(T),x}function P(T,x){let V=null;switch(T.currentChar()){case"{":return x.braceNest>=1&&d(be.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),T.next(),V=f(x,2,"{"),_(T),x.braceNest++,V;case"}":return x.braceNest>0&&x.currentType===2&&d(be.EMPTY_PLACEHOLDER,r(),0),T.next(),V=f(x,3,"}"),x.braceNest--,x.braceNest>0&&_(T),x.inLinked&&x.braceNest===0&&(x.inLinked=!1),V;case"@":return x.braceNest>0&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),V=W(T,x)||h(x),x.braceNest=0,V;default:{let Q=!0,lt=!0,M=!0;if(R(T))return x.braceNest>0&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),V=f(x,1,A(T)),x.braceNest=0,x.inLinked=!1,V;if(x.braceNest>0&&(x.currentType===4||x.currentType===5||x.currentType===6))return d(be.UNTERMINATED_CLOSING_BRACE,r(),0),x.braceNest=0,st(T,x);if(Q=g(T,x))return V=f(x,4,ge(T)),_(T),V;if(lt=b(T,x))return V=f(x,5,_e(T)),_(T),V;if(M=S(T,x))return V=f(x,6,Wt(T)),_(T),V;if(!Q&&!lt&&!M)return V=f(x,12,yt(T)),d(be.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,V.value),_(T),V;break}}return V}function W(T,x){const{currentType:V}=x;let K=null;const Q=T.currentChar();switch((V===7||V===8||V===11||V===9)&&(Q===hn||Q===Hs)&&d(be.INVALID_LINKED_FORMAT,r(),0),Q){case"@":return T.next(),K=f(x,7,"@"),x.inLinked=!0,K;case".":return _(T),T.next(),f(x,8,".");case":":return _(T),T.next(),f(x,9,":");default:return R(T)?(K=f(x,1,A(T)),x.braceNest=0,x.inLinked=!1,K):k(T,x)||D(T,x)?(_(T),W(T,x)):I(T,x)?(_(T),f(x,11,Ut(T))):C(T,x)?(_(T),Q==="{"?P(T,x)||K:f(x,10,Xt(T))):(V===7&&d(be.INVALID_LINKED_FORMAT,r(),0),x.braceNest=0,x.inLinked=!1,st(T,x))}}function st(T,x){let V={type:13};if(x.braceNest>0)return P(T,x)||h(x);if(x.inLinked)return W(T,x)||h(x);switch(T.currentChar()){case"{":return P(T,x)||h(x);case"}":return d(be.UNBALANCED_CLOSING_BRACE,r(),0),T.next(),f(x,3,"}");case"@":return W(T,x)||h(x);default:{if(R(T))return V=f(x,1,A(T)),x.braceNest=0,x.inLinked=!1,V;if(B(T))return f(x,0,Bt(T));break}}return V}function J(){const{currentType:T,offset:x,startLoc:V,endLoc:K}=l;return l.lastType=T,l.lastOffset=x,l.lastStartLoc=V,l.lastEndLoc=K,l.offset=i(),l.startLoc=r(),s.currentChar()===si?f(l,13):st(s,l)}return{nextToken:J,currentOffset:i,currentPosition:r,context:c}}const wA="parser",kA=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function CA(t,e,n){switch(t){case"\\\\":return"\\";case"\\'":return"'";default:{const s=parseInt(e||n,16);return s<=55295||s>=57344?String.fromCodePoint(s):"�"}}}function TA(t={}){const e=t.location!==!1,{onError:n}=t;function s(y,v,g,b,...S){const k=y.currentPosition();if(k.offset+=b,k.column+=b,n){const I=e?th(g,k):null,D=Wu(v,I,{domain:wA,args:S});n(D)}}function i(y,v,g){const b={type:y};return e&&(b.start=v,b.end=v,b.loc={start:g,end:g}),b}function r(y,v,g,b){e&&(y.end=v,y.loc&&(y.loc.end=g))}function o(y,v){const g=y.context(),b=i(3,g.offset,g.startLoc);return b.value=v,r(b,y.currentOffset(),y.currentPosition()),b}function a(y,v){const g=y.context(),{lastOffset:b,lastStartLoc:S}=g,k=i(5,b,S);return k.index=parseInt(v,10),y.nextToken(),r(k,y.currentOffset(),y.currentPosition()),k}function l(y,v){const g=y.context(),{lastOffset:b,lastStartLoc:S}=g,k=i(4,b,S);return k.key=v,y.nextToken(),r(k,y.currentOffset(),y.currentPosition()),k}function c(y,v){const g=y.context(),{lastOffset:b,lastStartLoc:S}=g,k=i(9,b,S);return k.value=v.replace(kA,CA),y.nextToken(),r(k,y.currentOffset(),y.currentPosition()),k}function u(y){const v=y.nextToken(),g=y.context(),{lastOffset:b,lastStartLoc:S}=g,k=i(8,b,S);return v.type!==11?(s(y,be.UNEXPECTED_EMPTY_LINKED_MODIFIER,g.lastStartLoc,0),k.value="",r(k,b,S),{nextConsumeToken:v,node:k}):(v.value==null&&s(y,be.UNEXPECTED_LEXICAL_ANALYSIS,g.lastStartLoc,0,js(v)),k.value=v.value||"",r(k,y.currentOffset(),y.currentPosition()),{node:k})}function d(y,v){const g=y.context(),b=i(7,g.offset,g.startLoc);return b.value=v,r(b,y.currentOffset(),y.currentPosition()),b}function f(y){const v=y.context(),g=i(6,v.offset,v.startLoc);let b=y.nextToken();if(b.type===8){const S=u(y);g.modifier=S.node,b=S.nextConsumeToken||y.nextToken()}switch(b.type!==9&&s(y,be.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,js(b)),b=y.nextToken(),b.type===2&&(b=y.nextToken()),b.type){case 10:b.value==null&&s(y,be.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,js(b)),g.key=d(y,b.value||"");break;case 4:b.value==null&&s(y,be.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,js(b)),g.key=l(y,b.value||"");break;case 5:b.value==null&&s(y,be.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,js(b)),g.key=a(y,b.value||"");break;case 6:b.value==null&&s(y,be.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,js(b)),g.key=c(y,b.value||"");break;default:{s(y,be.UNEXPECTED_EMPTY_LINKED_KEY,v.lastStartLoc,0);const S=y.context(),k=i(7,S.offset,S.startLoc);return k.value="",r(k,S.offset,S.startLoc),g.key=k,r(g,S.offset,S.startLoc),{nextConsumeToken:b,node:g}}}return r(g,y.currentOffset(),y.currentPosition()),{node:g}}function h(y){const v=y.context(),g=v.currentType===1?y.currentOffset():v.offset,b=v.currentType===1?v.endLoc:v.startLoc,S=i(2,g,b);S.items=[];let k=null;do{const C=k||y.nextToken();switch(k=null,C.type){case 0:C.value==null&&s(y,be.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,js(C)),S.items.push(o(y,C.value||""));break;case 5:C.value==null&&s(y,be.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,js(C)),S.items.push(a(y,C.value||""));break;case 4:C.value==null&&s(y,be.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,js(C)),S.items.push(l(y,C.value||""));break;case 6:C.value==null&&s(y,be.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,js(C)),S.items.push(c(y,C.value||""));break;case 7:{const R=f(y);S.items.push(R.node),k=R.nextConsumeToken||null;break}}}while(v.currentType!==13&&v.currentType!==1);const I=v.currentType===1?v.lastOffset:y.currentOffset(),D=v.currentType===1?v.lastEndLoc:y.currentPosition();return r(S,I,D),S}function p(y,v,g,b){const S=y.context();let k=b.items.length===0;const I=i(1,v,g);I.cases=[],I.cases.push(b);do{const D=h(y);k||(k=D.items.length===0),I.cases.push(D)}while(S.currentType!==13);return k&&s(y,be.MUST_HAVE_MESSAGES_IN_PLURAL,g,0),r(I,y.currentOffset(),y.currentPosition()),I}function m(y){const v=y.context(),{offset:g,startLoc:b}=v,S=h(y);return v.currentType===13?S:p(y,g,b,S)}function _(y){const v=EA(y,tn({},t)),g=v.context(),b=i(0,g.offset,g.startLoc);return e&&b.loc&&(b.loc.source=y),b.body=m(v),t.onCacheKey&&(b.cacheKey=t.onCacheKey(y)),g.currentType!==13&&s(v,be.UNEXPECTED_LEXICAL_ANALYSIS,g.lastStartLoc,0,y[g.offset]||""),r(b,v.currentOffset(),v.currentPosition()),b}return{parse:_}}function js(t){if(t.type===13)return"EOF";const e=(t.value||"").replace(/\r?\n/gu,"\\n");return e.length>10?e.slice(0,9)+"…":e}function AA(t,e={}){const n={ast:t,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function Mg(t,e){for(let n=0;n$g(n)),t}function $g(t){if(t.items.length===1){const e=t.items[0];(e.type===3||e.type===9)&&(t.static=e.value,delete e.value)}else{const e=[];for(let n=0;no;function l(m,_){o.code+=m}function c(m,_=!0){const y=_?s:"";l(i?y+" ".repeat(m):y)}function u(m=!0){const _=++o.indentLevel;m&&c(_)}function d(m=!0){const _=--o.indentLevel;m&&c(_)}function f(){c(o.indentLevel)}return{context:a,push:l,indent:u,deindent:d,newline:f,helper:m=>`_${m}`,needIndent:()=>o.needIndent}}function NA(t,e){const{helper:n}=t;t.push(`${n("linked")}(`),ko(t,e.key),e.modifier?(t.push(", "),ko(t,e.modifier),t.push(", _type")):t.push(", undefined, _type"),t.push(")")}function PA(t,e){const{helper:n,needIndent:s}=t;t.push(`${n("normalize")}([`),t.indent(s());const i=e.items.length;for(let r=0;r1){t.push(`${n("plural")}([`),t.indent(s());const i=e.cases.length;for(let r=0;r{const n=_t(e.mode)?e.mode:"normal",s=_t(e.filename)?e.filename:"message.intl";e.sourceMap;const i=e.breakLineCode!=null?e.breakLineCode:n==="arrow"?";":` -`,r=e.needIndent?e.needIndent:n!=="arrow",o=t.helpers||[],a=IA(t,{filename:s,breakLineCode:i,needIndent:r});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(r),o.length>0&&(a.push(`const { ${bp(o.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),ko(a,t),a.deindent(r),a.push("}"),delete t.helpers;const{code:l,map:c}=a.context();return{ast:t,code:l,map:c?c.toJSON():void 0}};function MA(t,e={}){const n=tn({},e),s=!!n.jit,i=!!n.minify,r=n.optimize==null?!0:n.optimize,a=TA(n).parse(t);return s?(r&&xA(a),i&&io(a),{ast:a,code:""}):(OA(a,n),LA(a,n))}/*! + */function dA(t,e,n){return{line:t,column:e,offset:n}}function Jf(t,e,n){return{start:t,end:e}}const _e={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},fA=17;function Bu(t,e,n={}){const{domain:s,messages:i,args:r}=n,o=t,a=new SyntaxError(String(o));return a.code=t,e&&(a.location=e),a.domain=s,a}function hA(t){throw t}const Hs=" ",pA="\r",hn=` +`,mA="\u2028",gA="\u2029";function yA(t){const e=t;let n=0,s=1,i=1,r=0;const o=I=>e[I]===pA&&e[I+1]===hn,a=I=>e[I]===hn,l=I=>e[I]===gA,c=I=>e[I]===mA,u=I=>o(I)||a(I)||l(I)||c(I),d=()=>n,f=()=>s,h=()=>i,p=()=>r,m=I=>o(I)||l(I)||c(I)?hn:e[I],v=()=>m(n),y=()=>m(n+r);function _(){return r=0,u(n)&&(s++,i=0),o(n)&&n++,n++,i++,e[n]}function g(){return o(n+r)&&r++,r++,e[n+r]}function b(){n=0,s=1,i=1,r=0}function E(I=0){r=I}function k(){const I=n+r;for(;I!==n;)_();r=0}return{index:d,line:f,column:h,peekOffset:p,charAt:m,currentChar:v,currentPeek:y,next:_,peek:g,reset:b,resetPeek:E,skipToPeek:k}}const si=void 0,bA=".",Mg="'",vA="tokenizer";function _A(t,e={}){const n=e.location!==!1,s=yA(t),i=()=>s.index(),r=()=>dA(s.line(),s.column(),s.index()),o=r(),a=i(),l={currentType:13,offset:a,startLoc:o,endLoc:o,lastType:13,lastOffset:a,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=e;function d(T,x,V,...K){const tt=c();if(x.column+=V,x.offset+=V,u){const lt=n?Jf(tt.startLoc,x):null,$=Bu(T,lt,{domain:vA,args:K});u($)}}function f(T,x,V){T.endLoc=r(),T.currentType=x;const K={type:x};return n&&(K.loc=Jf(T.startLoc,T.endLoc)),V!=null&&(K.value=V),K}const h=T=>f(T,13);function p(T,x){return T.currentChar()===x?(T.next(),x):(d(_e.EXPECTED_TOKEN,r(),0,x),"")}function m(T){let x="";for(;T.currentPeek()===Hs||T.currentPeek()===hn;)x+=T.currentPeek(),T.peek();return x}function v(T){const x=m(T);return T.skipToPeek(),x}function y(T){if(T===si)return!1;const x=T.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x===95}function _(T){if(T===si)return!1;const x=T.charCodeAt(0);return x>=48&&x<=57}function g(T,x){const{currentType:V}=x;if(V!==2)return!1;m(T);const K=y(T.currentPeek());return T.resetPeek(),K}function b(T,x){const{currentType:V}=x;if(V!==2)return!1;m(T);const K=T.currentPeek()==="-"?T.peek():T.currentPeek(),tt=_(K);return T.resetPeek(),tt}function E(T,x){const{currentType:V}=x;if(V!==2)return!1;m(T);const K=T.currentPeek()===Mg;return T.resetPeek(),K}function k(T,x){const{currentType:V}=x;if(V!==7)return!1;m(T);const K=T.currentPeek()===".";return T.resetPeek(),K}function I(T,x){const{currentType:V}=x;if(V!==8)return!1;m(T);const K=y(T.currentPeek());return T.resetPeek(),K}function D(T,x){const{currentType:V}=x;if(!(V===7||V===11))return!1;m(T);const K=T.currentPeek()===":";return T.resetPeek(),K}function C(T,x){const{currentType:V}=x;if(V!==9)return!1;const K=()=>{const lt=T.currentPeek();return lt==="{"?y(T.peek()):lt==="@"||lt==="|"||lt===":"||lt==="."||lt===Hs||!lt?!1:lt===hn?(T.peek(),K()):j(T,!1)},tt=K();return T.resetPeek(),tt}function R(T){m(T);const x=T.currentPeek()==="|";return T.resetPeek(),x}function j(T,x=!0){const V=(tt=!1,lt="")=>{const $=T.currentPeek();return $==="{"||$==="@"||!$?tt:$==="|"?!(lt===Hs||lt===hn):$===Hs?(T.peek(),V(!0,Hs)):$===hn?(T.peek(),V(!0,hn)):!0},K=V();return x&&T.resetPeek(),K}function M(T,x){const V=T.currentChar();return V===si?si:x(V)?(T.next(),V):null}function H(T){const x=T.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x>=48&&x<=57||x===95||x===36}function q(T){return M(T,H)}function ot(T){const x=T.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x>=48&&x<=57||x===95||x===36||x===45}function W(T){return M(T,ot)}function Q(T){const x=T.charCodeAt(0);return x>=48&&x<=57}function it(T){return M(T,Q)}function St(T){const x=T.charCodeAt(0);return x>=48&&x<=57||x>=65&&x<=70||x>=97&&x<=102}function zt(T){return M(T,St)}function xt(T){let x="",V="";for(;x=it(T);)V+=x;return V}function Dt(T){let x="";for(;;){const V=T.currentChar();if(V==="{"||V==="}"||V==="@"||V==="|"||!V)break;if(V===Hs||V===hn)if(j(T))x+=V,T.next();else{if(R(T))break;x+=V,T.next()}else x+=V,T.next()}return x}function re(T){v(T);let x="",V="";for(;x=W(T);)V+=x;const K=T.currentChar();if(K&&K!=="}"&&K!==si&&K!==Hs&&K!==hn&&K!==" "){const tt=yt(T);return d(_e.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,V+tt),V+tt}return T.currentChar()===si&&d(_e.UNTERMINATED_CLOSING_BRACE,r(),0),V}function oe(T){v(T);let x="";return T.currentChar()==="-"?(T.next(),x+=`-${xt(T)}`):x+=xt(T),T.currentChar()===si&&d(_e.UNTERMINATED_CLOSING_BRACE,r(),0),x}function pe(T){return T!==Mg&&T!==hn}function Wt(T){v(T),p(T,"'");let x="",V="";for(;x=M(T,pe);)x==="\\"?V+=Z(T):V+=x;const K=T.currentChar();return K===hn||K===si?(d(_e.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),K===hn&&(T.next(),p(T,"'")),V):(p(T,"'"),V)}function Z(T){const x=T.currentChar();switch(x){case"\\":case"'":return T.next(),`\\${x}`;case"u":return dt(T,x,4);case"U":return dt(T,x,6);default:return d(_e.UNKNOWN_ESCAPE_SEQUENCE,r(),0,x),""}}function dt(T,x,V){p(T,x);let K="";for(let tt=0;tt{const K=T.currentChar();return K==="{"||K==="@"||K==="|"||K==="("||K===")"||!K||K===Hs?V:(V+=K,T.next(),x(V))};return x("")}function A(T){v(T);const x=p(T,"|");return v(T),x}function P(T,x){let V=null;switch(T.currentChar()){case"{":return x.braceNest>=1&&d(_e.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),T.next(),V=f(x,2,"{"),v(T),x.braceNest++,V;case"}":return x.braceNest>0&&x.currentType===2&&d(_e.EMPTY_PLACEHOLDER,r(),0),T.next(),V=f(x,3,"}"),x.braceNest--,x.braceNest>0&&v(T),x.inLinked&&x.braceNest===0&&(x.inLinked=!1),V;case"@":return x.braceNest>0&&d(_e.UNTERMINATED_CLOSING_BRACE,r(),0),V=G(T,x)||h(x),x.braceNest=0,V;default:{let tt=!0,lt=!0,$=!0;if(R(T))return x.braceNest>0&&d(_e.UNTERMINATED_CLOSING_BRACE,r(),0),V=f(x,1,A(T)),x.braceNest=0,x.inLinked=!1,V;if(x.braceNest>0&&(x.currentType===4||x.currentType===5||x.currentType===6))return d(_e.UNTERMINATED_CLOSING_BRACE,r(),0),x.braceNest=0,st(T,x);if(tt=g(T,x))return V=f(x,4,re(T)),v(T),V;if(lt=b(T,x))return V=f(x,5,oe(T)),v(T),V;if($=E(T,x))return V=f(x,6,Wt(T)),v(T),V;if(!tt&&!lt&&!$)return V=f(x,12,yt(T)),d(_e.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,V.value),v(T),V;break}}return V}function G(T,x){const{currentType:V}=x;let K=null;const tt=T.currentChar();switch((V===7||V===8||V===11||V===9)&&(tt===hn||tt===Hs)&&d(_e.INVALID_LINKED_FORMAT,r(),0),tt){case"@":return T.next(),K=f(x,7,"@"),x.inLinked=!0,K;case".":return v(T),T.next(),f(x,8,".");case":":return v(T),T.next(),f(x,9,":");default:return R(T)?(K=f(x,1,A(T)),x.braceNest=0,x.inLinked=!1,K):k(T,x)||D(T,x)?(v(T),G(T,x)):I(T,x)?(v(T),f(x,11,Ht(T))):C(T,x)?(v(T),tt==="{"?P(T,x)||K:f(x,10,Xt(T))):(V===7&&d(_e.INVALID_LINKED_FORMAT,r(),0),x.braceNest=0,x.inLinked=!1,st(T,x))}}function st(T,x){let V={type:13};if(x.braceNest>0)return P(T,x)||h(x);if(x.inLinked)return G(T,x)||h(x);switch(T.currentChar()){case"{":return P(T,x)||h(x);case"}":return d(_e.UNBALANCED_CLOSING_BRACE,r(),0),T.next(),f(x,3,"}");case"@":return G(T,x)||h(x);default:{if(R(T))return V=f(x,1,A(T)),x.braceNest=0,x.inLinked=!1,V;if(j(T))return f(x,0,Dt(T));break}}return V}function J(){const{currentType:T,offset:x,startLoc:V,endLoc:K}=l;return l.lastType=T,l.lastOffset=x,l.lastStartLoc=V,l.lastEndLoc=K,l.offset=i(),l.startLoc=r(),s.currentChar()===si?f(l,13):st(s,l)}return{nextToken:J,currentOffset:i,currentPosition:r,context:c}}const SA="parser",EA=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function wA(t,e,n){switch(t){case"\\\\":return"\\";case"\\'":return"'";default:{const s=parseInt(e||n,16);return s<=55295||s>=57344?String.fromCodePoint(s):"�"}}}function kA(t={}){const e=t.location!==!1,{onError:n}=t;function s(y,_,g,b,...E){const k=y.currentPosition();if(k.offset+=b,k.column+=b,n){const I=e?Jf(g,k):null,D=Bu(_,I,{domain:SA,args:E});n(D)}}function i(y,_,g){const b={type:y};return e&&(b.start=_,b.end=_,b.loc={start:g,end:g}),b}function r(y,_,g,b){e&&(y.end=_,y.loc&&(y.loc.end=g))}function o(y,_){const g=y.context(),b=i(3,g.offset,g.startLoc);return b.value=_,r(b,y.currentOffset(),y.currentPosition()),b}function a(y,_){const g=y.context(),{lastOffset:b,lastStartLoc:E}=g,k=i(5,b,E);return k.index=parseInt(_,10),y.nextToken(),r(k,y.currentOffset(),y.currentPosition()),k}function l(y,_){const g=y.context(),{lastOffset:b,lastStartLoc:E}=g,k=i(4,b,E);return k.key=_,y.nextToken(),r(k,y.currentOffset(),y.currentPosition()),k}function c(y,_){const g=y.context(),{lastOffset:b,lastStartLoc:E}=g,k=i(9,b,E);return k.value=_.replace(EA,wA),y.nextToken(),r(k,y.currentOffset(),y.currentPosition()),k}function u(y){const _=y.nextToken(),g=y.context(),{lastOffset:b,lastStartLoc:E}=g,k=i(8,b,E);return _.type!==11?(s(y,_e.UNEXPECTED_EMPTY_LINKED_MODIFIER,g.lastStartLoc,0),k.value="",r(k,b,E),{nextConsumeToken:_,node:k}):(_.value==null&&s(y,_e.UNEXPECTED_LEXICAL_ANALYSIS,g.lastStartLoc,0,js(_)),k.value=_.value||"",r(k,y.currentOffset(),y.currentPosition()),{node:k})}function d(y,_){const g=y.context(),b=i(7,g.offset,g.startLoc);return b.value=_,r(b,y.currentOffset(),y.currentPosition()),b}function f(y){const _=y.context(),g=i(6,_.offset,_.startLoc);let b=y.nextToken();if(b.type===8){const E=u(y);g.modifier=E.node,b=E.nextConsumeToken||y.nextToken()}switch(b.type!==9&&s(y,_e.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,js(b)),b=y.nextToken(),b.type===2&&(b=y.nextToken()),b.type){case 10:b.value==null&&s(y,_e.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,js(b)),g.key=d(y,b.value||"");break;case 4:b.value==null&&s(y,_e.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,js(b)),g.key=l(y,b.value||"");break;case 5:b.value==null&&s(y,_e.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,js(b)),g.key=a(y,b.value||"");break;case 6:b.value==null&&s(y,_e.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,js(b)),g.key=c(y,b.value||"");break;default:{s(y,_e.UNEXPECTED_EMPTY_LINKED_KEY,_.lastStartLoc,0);const E=y.context(),k=i(7,E.offset,E.startLoc);return k.value="",r(k,E.offset,E.startLoc),g.key=k,r(g,E.offset,E.startLoc),{nextConsumeToken:b,node:g}}}return r(g,y.currentOffset(),y.currentPosition()),{node:g}}function h(y){const _=y.context(),g=_.currentType===1?y.currentOffset():_.offset,b=_.currentType===1?_.endLoc:_.startLoc,E=i(2,g,b);E.items=[];let k=null;do{const C=k||y.nextToken();switch(k=null,C.type){case 0:C.value==null&&s(y,_e.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,js(C)),E.items.push(o(y,C.value||""));break;case 5:C.value==null&&s(y,_e.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,js(C)),E.items.push(a(y,C.value||""));break;case 4:C.value==null&&s(y,_e.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,js(C)),E.items.push(l(y,C.value||""));break;case 6:C.value==null&&s(y,_e.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,js(C)),E.items.push(c(y,C.value||""));break;case 7:{const R=f(y);E.items.push(R.node),k=R.nextConsumeToken||null;break}}}while(_.currentType!==13&&_.currentType!==1);const I=_.currentType===1?_.lastOffset:y.currentOffset(),D=_.currentType===1?_.lastEndLoc:y.currentPosition();return r(E,I,D),E}function p(y,_,g,b){const E=y.context();let k=b.items.length===0;const I=i(1,_,g);I.cases=[],I.cases.push(b);do{const D=h(y);k||(k=D.items.length===0),I.cases.push(D)}while(E.currentType!==13);return k&&s(y,_e.MUST_HAVE_MESSAGES_IN_PLURAL,g,0),r(I,y.currentOffset(),y.currentPosition()),I}function m(y){const _=y.context(),{offset:g,startLoc:b}=_,E=h(y);return _.currentType===13?E:p(y,g,b,E)}function v(y){const _=_A(y,tn({},t)),g=_.context(),b=i(0,g.offset,g.startLoc);return e&&b.loc&&(b.loc.source=y),b.body=m(_),t.onCacheKey&&(b.cacheKey=t.onCacheKey(y)),g.currentType!==13&&s(_,_e.UNEXPECTED_LEXICAL_ANALYSIS,g.lastStartLoc,0,y[g.offset]||""),r(b,_.currentOffset(),_.currentPosition()),b}return{parse:v}}function js(t){if(t.type===13)return"EOF";const e=(t.value||"").replace(/\r?\n/gu,"\\n");return e.length>10?e.slice(0,9)+"…":e}function CA(t,e={}){const n={ast:t,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function $g(t,e){for(let n=0;nFg(n)),t}function Fg(t){if(t.items.length===1){const e=t.items[0];(e.type===3||e.type===9)&&(t.static=e.value,delete e.value)}else{const e=[];for(let n=0;no;function l(m,v){o.code+=m}function c(m,v=!0){const y=v?s:"";l(i?y+" ".repeat(m):y)}function u(m=!0){const v=++o.indentLevel;m&&c(v)}function d(m=!0){const v=--o.indentLevel;m&&c(v)}function f(){c(o.indentLevel)}return{context:a,push:l,indent:u,deindent:d,newline:f,helper:m=>`_${m}`,needIndent:()=>o.needIndent}}function xA(t,e){const{helper:n}=t;t.push(`${n("linked")}(`),Co(t,e.key),e.modifier?(t.push(", "),Co(t,e.modifier),t.push(", _type")):t.push(", undefined, _type"),t.push(")")}function IA(t,e){const{helper:n,needIndent:s}=t;t.push(`${n("normalize")}([`),t.indent(s());const i=e.items.length;for(let r=0;r1){t.push(`${n("plural")}([`),t.indent(s());const i=e.cases.length;for(let r=0;r{const n=_t(e.mode)?e.mode:"normal",s=_t(e.filename)?e.filename:"message.intl";e.sourceMap;const i=e.breakLineCode!=null?e.breakLineCode:n==="arrow"?";":` +`,r=e.needIndent?e.needIndent:n!=="arrow",o=t.helpers||[],a=OA(t,{filename:s,breakLineCode:i,needIndent:r});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(r),o.length>0&&(a.push(`const { ${gp(o.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),Co(a,t),a.deindent(r),a.push("}"),delete t.helpers;const{code:l,map:c}=a.context();return{ast:t,code:l,map:c?c.toJSON():void 0}};function DA(t,e={}){const n=tn({},e),s=!!n.jit,i=!!n.minify,r=n.optimize==null?!0:n.optimize,a=kA(n).parse(t);return s?(r&&AA(a),i&&io(a),{ast:a,code:""}):(TA(a,n),RA(a,n))}/*! * core-base v11.1.12 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function $A(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(gp().__INTLIFY_PROD_DEVTOOLS__=!1)}function Ys(t){return pe(t)&&_p(t)===0&&(Os(t,"b")||Os(t,"body"))}const $0=["b","body"];function FA(t){return ar(t,$0)}const F0=["c","cases"];function VA(t){return ar(t,F0,[])}const V0=["s","static"];function UA(t){return ar(t,V0)}const U0=["i","items"];function HA(t){return ar(t,U0,[])}const H0=["t","type"];function _p(t){return ar(t,H0)}const j0=["v","value"];function Ul(t,e){const n=ar(t,j0);if(n!=null)return n;throw qa(e)}const B0=["m","modifier"];function jA(t){return ar(t,B0)}const W0=["k","key"];function BA(t){const e=ar(t,W0);if(e)return e;throw qa(6)}function ar(t,e,n){for(let s=0;sWA(n,t)}function WA(t,e){const n=FA(e);if(n==null)throw qa(0);if(_p(n)===1){const r=VA(n);return t.plural(r.reduce((o,a)=>[...o,Fg(t,a)],[]))}else return Fg(t,n)}function Fg(t,e){const n=UA(e);if(n!=null)return t.type==="text"?n:t.normalize([n]);{const s=HA(e).reduce((i,r)=>[...i,eh(t,r)],[]);return t.normalize(s)}}function eh(t,e){const n=_p(e);switch(n){case 3:return Ul(e,n);case 9:return Ul(e,n);case 4:{const s=e;if(Os(s,"k")&&s.k)return t.interpolate(t.named(s.k));if(Os(s,"key")&&s.key)return t.interpolate(t.named(s.key));throw qa(n)}case 5:{const s=e;if(Os(s,"i")&&Xe(s.i))return t.interpolate(t.list(s.i));if(Os(s,"index")&&Xe(s.index))return t.interpolate(t.list(s.index));throw qa(n)}case 6:{const s=e,i=jA(s),r=BA(s);return t.linked(eh(t,r),i?eh(t,i):void 0,t.type)}case 7:return Ul(e,n);case 8:return Ul(e,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const GA=t=>t;let Hl=Ee();function KA(t,e={}){let n=!1;const s=e.onError||mA;return e.onError=i=>{n=!0,s(i)},{...MA(t,e),detectError:n}}function qA(t,e){if(_t(t)){Re(e.warnHtmlMessage)&&e.warnHtmlMessage;const s=(e.onCacheKey||GA)(t),i=Hl[s];if(i)return i;const{ast:r,detectError:o}=KA(t,{...e,location:!1,jit:!0}),a=Kd(r);return o?a:Hl[s]=a}else{const n=t.cacheKey;if(n){const s=Hl[n];return s||(Hl[n]=Kd(t))}else return Kd(t)}}let za=null;function zA(t){za=t}function XA(t,e,n){za&&za.emit("i18n:init",{timestamp:Date.now(),i18n:t,version:e,meta:n})}const YA=ZA("function:translate");function ZA(t){return e=>za&&za.emit(t,e)}const pi={INVALID_ARGUMENT:pA,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},JA=24;function mi(t){return Wu(t,null,void 0)}function Sp(t,e){return e.locale!=null?Vg(e.locale):Vg(t.locale)}let qd;function Vg(t){if(_t(t))return t;if(Pe(t)){if(t.resolvedOnce&&qd!=null)return qd;if(t.constructor.name==="Function"){const e=t();if(dA(e))throw mi(pi.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return qd=e}else throw mi(pi.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw mi(pi.NOT_SUPPORT_LOCALE_TYPE)}function QA(t,e,n){return[...new Set([n,...je(e)?e:pe(e)?Object.keys(e):_t(e)?[e]:[n]])]}function K0(t,e,n){const s=_t(n)?n:Yc,i=t;i.__localeChainCache||(i.__localeChainCache=new Map);let r=i.__localeChainCache.get(s);if(!r){r=[];let o=[n];for(;je(o);)o=Ug(r,o,e);const a=je(e)||!re(e)?e:e.default?e.default:null;o=_t(a)?[a]:a,je(o)&&Ug(r,o,!1),i.__localeChainCache.set(s,r)}return r}function Ug(t,e,n){let s=!0;for(let i=0;i{o===void 0?o=a:o+=a},f[1]=()=>{o!==void 0&&(e.push(o),o=void 0)},f[2]=()=>{f[0](),i++},f[3]=()=>{if(i>0)i--,s=4,f[0]();else{if(i=0,o===void 0||(o=oO(o),o===!1))return!1;f[1]()}};function h(){const p=t[n+1];if(s===5&&p==="'"||s===6&&p==='"')return n++,a="\\"+p,f[0](),!0}for(;s!==null;)if(n++,r=t[n],!(r==="\\"&&h())){if(l=rO(r),d=lr[s],c=d[l]||d.l||8,c===8||(s=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(a=r,u()===!1))))return;if(s===7)return e}}const Hg=new Map;function lO(t,e){return pe(t)?t[e]:null}function cO(t,e){if(!pe(t))return null;let n=Hg.get(e);if(n||(n=aO(e),n&&Hg.set(e,n)),!n)return null;const s=n.length;let i=t,r=0;for(;r`${t.charAt(0).toLocaleUpperCase()}${t.substr(1)}`;function dO(){return{upper:(t,e)=>e==="text"&&_t(t)?t.toUpperCase():e==="vnode"&&pe(t)&&"__v_isVNode"in t?t.children.toUpperCase():t,lower:(t,e)=>e==="text"&&_t(t)?t.toLowerCase():e==="vnode"&&pe(t)&&"__v_isVNode"in t?t.children.toLowerCase():t,capitalize:(t,e)=>e==="text"&&_t(t)?Bg(t):e==="vnode"&&pe(t)&&"__v_isVNode"in t?Bg(t.children):t}}let q0;function fO(t){q0=t}let z0;function hO(t){z0=t}let X0;function pO(t){X0=t}let Y0=null;const mO=t=>{Y0=t},gO=()=>Y0;let Z0=null;const Wg=t=>{Z0=t},yO=()=>Z0;let Gg=0;function bO(t={}){const e=Pe(t.onWarn)?t.onWarn:iA,n=_t(t.version)?t.version:uO,s=_t(t.locale)||Pe(t.locale)?t.locale:Yc,i=Pe(s)?Yc:s,r=je(t.fallbackLocale)||re(t.fallbackLocale)||_t(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:i,o=re(t.messages)?t.messages:zd(i),a=re(t.datetimeFormats)?t.datetimeFormats:zd(i),l=re(t.numberFormats)?t.numberFormats:zd(i),c=tn(Ee(),t.modifiers,dO()),u=t.pluralRules||Ee(),d=Pe(t.missing)?t.missing:null,f=Re(t.missingWarn)||Xc(t.missingWarn)?t.missingWarn:!0,h=Re(t.fallbackWarn)||Xc(t.fallbackWarn)?t.fallbackWarn:!0,p=!!t.fallbackFormat,m=!!t.unresolving,_=Pe(t.postTranslation)?t.postTranslation:null,y=re(t.processor)?t.processor:null,v=Re(t.warnHtmlMessage)?t.warnHtmlMessage:!0,g=!!t.escapeParameter,b=Pe(t.messageCompiler)?t.messageCompiler:q0,S=Pe(t.messageResolver)?t.messageResolver:z0||lO,k=Pe(t.localeFallbacker)?t.localeFallbacker:X0||QA,I=pe(t.fallbackContext)?t.fallbackContext:void 0,D=t,C=pe(D.__datetimeFormatters)?D.__datetimeFormatters:new Map,R=pe(D.__numberFormatters)?D.__numberFormatters:new Map,B=pe(D.__meta)?D.__meta:{};Gg++;const $={version:n,cid:Gg,locale:s,fallbackLocale:r,messages:o,modifiers:c,pluralRules:u,missing:d,missingWarn:f,fallbackWarn:h,fallbackFormat:p,unresolving:m,postTranslation:_,processor:y,warnHtmlMessage:v,escapeParameter:g,messageCompiler:b,messageResolver:S,localeFallbacker:k,fallbackContext:I,onWarn:e,__meta:B};return $.datetimeFormats=a,$.numberFormats=l,$.__datetimeFormatters=C,$.__numberFormatters=R,__INTLIFY_PROD_DEVTOOLS__&&XA($,n,B),$}const zd=t=>({[t]:Ee()});function Ep(t,e,n,s,i){const{missing:r,onWarn:o}=t;if(r!==null){const a=r(t,n,e,i);return _t(a)?a:e}else return e}function Qo(t,e,n){const s=t;s.__localeChainCache=new Map,t.localeFallbacker(t,n,e)}function vO(t,e){return t===e?!1:t.split("-")[0]===e.split("-")[0]}function _O(t,e){const n=e.indexOf(t);if(n===-1)return!1;for(let s=n+1;s{J0.includes(l)?o[l]=n[l]:r[l]=n[l]}),_t(s)?r.locale=s:re(s)&&(o=s),re(i)&&(o=i),[r.key||"",a,r,o]}function qg(t,e,n){const s=t;for(const i in n){const r=`${e}__${i}`;s.__datetimeFormatters.has(r)&&s.__datetimeFormatters.delete(r)}}function zg(t,...e){const{numberFormats:n,unresolving:s,fallbackLocale:i,onWarn:r,localeFallbacker:o}=t,{__numberFormatters:a}=t,[l,c,u,d]=sh(...e),f=Re(u.missingWarn)?u.missingWarn:t.missingWarn;Re(u.fallbackWarn)?u.fallbackWarn:t.fallbackWarn;const h=!!u.part,p=Sp(t,u),m=o(t,i,p);if(!_t(l)||l==="")return new Intl.NumberFormat(p,d).format(c);let _={},y,v=null;const g="number format";for(let k=0;k{Q0.includes(l)?o[l]=n[l]:r[l]=n[l]}),_t(s)?r.locale=s:re(s)&&(o=s),re(i)&&(o=i),[r.key||"",a,r,o]}function Xg(t,e,n){const s=t;for(const i in n){const r=`${e}__${i}`;s.__numberFormatters.has(r)&&s.__numberFormatters.delete(r)}}const SO=t=>t,EO=t=>"",wO="text",kO=t=>t.length===0?"":bp(t),CO=fA;function Yg(t,e){return t=Math.abs(t),e===2?t?t>1?1:0:1:t?Math.min(t,2):0}function TO(t){const e=Xe(t.pluralIndex)?t.pluralIndex:-1;return t.named&&(Xe(t.named.count)||Xe(t.named.n))?Xe(t.named.count)?t.named.count:Xe(t.named.n)?t.named.n:e:e}function AO(t,e){e.count||(e.count=t),e.n||(e.n=t)}function OO(t={}){const e=t.locale,n=TO(t),s=pe(t.pluralRules)&&_t(e)&&Pe(t.pluralRules[e])?t.pluralRules[e]:Yg,i=pe(t.pluralRules)&&_t(e)&&Pe(t.pluralRules[e])?Yg:void 0,r=y=>y[s(n,y.length,i)],o=t.list||[],a=y=>o[y],l=t.named||Ee();Xe(t.pluralIndex)&&AO(n,l);const c=y=>l[y];function u(y,v){const g=Pe(t.messages)?t.messages(y,!!v):pe(t.messages)?t.messages[y]:!1;return g||(t.parent?t.parent.message(y):EO)}const d=y=>t.modifiers?t.modifiers[y]:SO,f=re(t.processor)&&Pe(t.processor.normalize)?t.processor.normalize:kO,h=re(t.processor)&&Pe(t.processor.interpolate)?t.processor.interpolate:CO,p=re(t.processor)&&_t(t.processor.type)?t.processor.type:wO,_={list:a,named:c,plural:r,linked:(y,...v)=>{const[g,b]=v;let S="text",k="";v.length===1?pe(g)?(k=g.modifier||k,S=g.type||S):_t(g)&&(k=g||k):v.length===2&&(_t(g)&&(k=g||k),_t(b)&&(S=b||S));const I=u(y,!0)(_),D=S==="vnode"&&je(I)&&k?I[0]:I;return k?d(k)(D,S):D},message:u,type:p,interpolate:h,normalize:f,values:tn(Ee(),o,l)};return _}const Zg=()=>"",os=t=>Pe(t);function Jg(t,...e){const{fallbackFormat:n,postTranslation:s,unresolving:i,messageCompiler:r,fallbackLocale:o,messages:a}=t,[l,c]=ih(...e),u=Re(c.missingWarn)?c.missingWarn:t.missingWarn,d=Re(c.fallbackWarn)?c.fallbackWarn:t.fallbackWarn,f=Re(c.escapeParameter)?c.escapeParameter:t.escapeParameter,h=!!c.resolvedMessage,p=_t(c.default)||Re(c.default)?Re(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:null,m=n||p!=null&&(_t(p)||Pe(p)),_=Sp(t,c);f&&xO(c);let[y,v,g]=h?[l,_,a[_]||Ee()]:t_(t,l,_,o,d,u),b=y,S=l;if(!h&&!(_t(b)||Ys(b)||os(b))&&m&&(b=p,S=b),!h&&(!(_t(b)||Ys(b)||os(b))||!_t(v)))return i?Gu:l;let k=!1;const I=()=>{k=!0},D=os(b)?b:e_(t,l,v,b,S,I);if(k)return b;const C=PO(t,v,g,c),R=OO(C),B=IO(t,D,R);let $=s?s(B,l):B;if(f&&_t($)&&($=cA($)),__INTLIFY_PROD_DEVTOOLS__){const H={timestamp:Date.now(),key:_t(l)?l:os(b)?b.key:"",locale:v||(os(b)?b.locale:""),format:_t(b)?b:os(b)?b.source:"",message:$};H.meta=tn({},t.__meta,gO()||{}),YA(H)}return $}function xO(t){je(t.list)?t.list=t.list.map(e=>_t(e)?Rg(e):e):pe(t.named)&&Object.keys(t.named).forEach(e=>{_t(t.named[e])&&(t.named[e]=Rg(t.named[e]))})}function t_(t,e,n,s,i,r){const{messages:o,onWarn:a,messageResolver:l,localeFallbacker:c}=t,u=c(t,s,n);let d=Ee(),f,h=null;const p="translate";for(let m=0;ms);return c.locale=n,c.key=e,c}const l=o(s,NO(t,n,i,s,a,r));return l.locale=n,l.key=e,l.source=s,l}function IO(t,e,n){return e(n)}function ih(...t){const[e,n,s]=t,i=Ee();if(!_t(e)&&!Xe(e)&&!os(e)&&!Ys(e))throw mi(pi.INVALID_ARGUMENT);const r=Xe(e)?String(e):(os(e),e);return Xe(n)?i.plural=n:_t(n)?i.default=n:re(n)&&!Bu(n)?i.named=n:je(n)&&(i.list=n),Xe(s)?i.plural=s:_t(s)?i.default=s:re(s)&&tn(i,s),[r,i]}function NO(t,e,n,s,i,r){return{locale:e,key:n,warnHtmlMessage:i,onError:o=>{throw r&&r(o),o},onCacheKey:o=>rA(e,n,o)}}function PO(t,e,n,s){const{modifiers:i,pluralRules:r,messageResolver:o,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=t,f={locale:e,modifiers:i,pluralRules:r,messages:(h,p)=>{let m=o(n,h);if(m==null&&(u||p)){const[,,_]=t_(u||t,h,e,a,l,c);m=o(_,h)}if(_t(m)||Ys(m)){let _=!1;const v=e_(t,h,e,m,h,()=>{_=!0});return _?Zg:v}else return os(m)?m:Zg}};return t.processor&&(f.processor=t.processor),s.list&&(f.list=s.list),s.named&&(f.named=s.named),Xe(s.plural)&&(f.pluralIndex=s.plural),f}$A();/*! + */function LA(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(pp().__INTLIFY_PROD_DEVTOOLS__=!1)}function Ys(t){return ye(t)&&bp(t)===0&&(Os(t,"b")||Os(t,"body"))}const $0=["b","body"];function MA(t){return ar(t,$0)}const F0=["c","cases"];function $A(t){return ar(t,F0,[])}const V0=["s","static"];function FA(t){return ar(t,V0)}const U0=["i","items"];function VA(t){return ar(t,U0,[])}const H0=["t","type"];function bp(t){return ar(t,H0)}const j0=["v","value"];function Hl(t,e){const n=ar(t,j0);if(n!=null)return n;throw za(e)}const B0=["m","modifier"];function UA(t){return ar(t,B0)}const W0=["k","key"];function HA(t){const e=ar(t,W0);if(e)return e;throw za(6)}function ar(t,e,n){for(let s=0;sjA(n,t)}function jA(t,e){const n=MA(e);if(n==null)throw za(0);if(bp(n)===1){const r=$A(n);return t.plural(r.reduce((o,a)=>[...o,Vg(t,a)],[]))}else return Vg(t,n)}function Vg(t,e){const n=FA(e);if(n!=null)return t.type==="text"?n:t.normalize([n]);{const s=VA(e).reduce((i,r)=>[...i,Qf(t,r)],[]);return t.normalize(s)}}function Qf(t,e){const n=bp(e);switch(n){case 3:return Hl(e,n);case 9:return Hl(e,n);case 4:{const s=e;if(Os(s,"k")&&s.k)return t.interpolate(t.named(s.k));if(Os(s,"key")&&s.key)return t.interpolate(t.named(s.key));throw za(n)}case 5:{const s=e;if(Os(s,"i")&&Xe(s.i))return t.interpolate(t.list(s.i));if(Os(s,"index")&&Xe(s.index))return t.interpolate(t.list(s.index));throw za(n)}case 6:{const s=e,i=UA(s),r=HA(s);return t.linked(Qf(t,r),i?Qf(t,i):void 0,t.type)}case 7:return Hl(e,n);case 8:return Hl(e,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const BA=t=>t;let jl=Ee();function WA(t,e={}){let n=!1;const s=e.onError||hA;return e.onError=i=>{n=!0,s(i)},{...DA(t,e),detectError:n}}function GA(t,e){if(_t(t)){Re(e.warnHtmlMessage)&&e.warnHtmlMessage;const s=(e.onCacheKey||BA)(t),i=jl[s];if(i)return i;const{ast:r,detectError:o}=WA(t,{...e,location:!1,jit:!0}),a=Gd(r);return o?a:jl[s]=a}else{const n=t.cacheKey;if(n){const s=jl[n];return s||(jl[n]=Gd(t))}else return Gd(t)}}let qa=null;function KA(t){qa=t}function zA(t,e,n){qa&&qa.emit("i18n:init",{timestamp:Date.now(),i18n:t,version:e,meta:n})}const qA=XA("function:translate");function XA(t){return e=>qa&&qa.emit(t,e)}const pi={INVALID_ARGUMENT:fA,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},YA=24;function mi(t){return Bu(t,null,void 0)}function vp(t,e){return e.locale!=null?Ug(e.locale):Ug(t.locale)}let Kd;function Ug(t){if(_t(t))return t;if(Pe(t)){if(t.resolvedOnce&&Kd!=null)return Kd;if(t.constructor.name==="Function"){const e=t();if(cA(e))throw mi(pi.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Kd=e}else throw mi(pi.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw mi(pi.NOT_SUPPORT_LOCALE_TYPE)}function ZA(t,e,n){return[...new Set([n,...je(e)?e:ye(e)?Object.keys(e):_t(e)?[e]:[n]])]}function K0(t,e,n){const s=_t(n)?n:Yc,i=t;i.__localeChainCache||(i.__localeChainCache=new Map);let r=i.__localeChainCache.get(s);if(!r){r=[];let o=[n];for(;je(o);)o=Hg(r,o,e);const a=je(e)||!ae(e)?e:e.default?e.default:null;o=_t(a)?[a]:a,je(o)&&Hg(r,o,!1),i.__localeChainCache.set(s,r)}return r}function Hg(t,e,n){let s=!0;for(let i=0;i{o===void 0?o=a:o+=a},f[1]=()=>{o!==void 0&&(e.push(o),o=void 0)},f[2]=()=>{f[0](),i++},f[3]=()=>{if(i>0)i--,s=4,f[0]();else{if(i=0,o===void 0||(o=iO(o),o===!1))return!1;f[1]()}};function h(){const p=t[n+1];if(s===5&&p==="'"||s===6&&p==='"')return n++,a="\\"+p,f[0](),!0}for(;s!==null;)if(n++,r=t[n],!(r==="\\"&&h())){if(l=sO(r),d=lr[s],c=d[l]||d.l||8,c===8||(s=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(a=r,u()===!1))))return;if(s===7)return e}}const jg=new Map;function oO(t,e){return ye(t)?t[e]:null}function aO(t,e){if(!ye(t))return null;let n=jg.get(e);if(n||(n=rO(e),n&&jg.set(e,n)),!n)return null;const s=n.length;let i=t,r=0;for(;r`${t.charAt(0).toLocaleUpperCase()}${t.substr(1)}`;function cO(){return{upper:(t,e)=>e==="text"&&_t(t)?t.toUpperCase():e==="vnode"&&ye(t)&&"__v_isVNode"in t?t.children.toUpperCase():t,lower:(t,e)=>e==="text"&&_t(t)?t.toLowerCase():e==="vnode"&&ye(t)&&"__v_isVNode"in t?t.children.toLowerCase():t,capitalize:(t,e)=>e==="text"&&_t(t)?Wg(t):e==="vnode"&&ye(t)&&"__v_isVNode"in t?Wg(t.children):t}}let z0;function uO(t){z0=t}let q0;function dO(t){q0=t}let X0;function fO(t){X0=t}let Y0=null;const hO=t=>{Y0=t},pO=()=>Y0;let Z0=null;const Gg=t=>{Z0=t},mO=()=>Z0;let Kg=0;function gO(t={}){const e=Pe(t.onWarn)?t.onWarn:nA,n=_t(t.version)?t.version:lO,s=_t(t.locale)||Pe(t.locale)?t.locale:Yc,i=Pe(s)?Yc:s,r=je(t.fallbackLocale)||ae(t.fallbackLocale)||_t(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:i,o=ae(t.messages)?t.messages:zd(i),a=ae(t.datetimeFormats)?t.datetimeFormats:zd(i),l=ae(t.numberFormats)?t.numberFormats:zd(i),c=tn(Ee(),t.modifiers,cO()),u=t.pluralRules||Ee(),d=Pe(t.missing)?t.missing:null,f=Re(t.missingWarn)||Xc(t.missingWarn)?t.missingWarn:!0,h=Re(t.fallbackWarn)||Xc(t.fallbackWarn)?t.fallbackWarn:!0,p=!!t.fallbackFormat,m=!!t.unresolving,v=Pe(t.postTranslation)?t.postTranslation:null,y=ae(t.processor)?t.processor:null,_=Re(t.warnHtmlMessage)?t.warnHtmlMessage:!0,g=!!t.escapeParameter,b=Pe(t.messageCompiler)?t.messageCompiler:z0,E=Pe(t.messageResolver)?t.messageResolver:q0||oO,k=Pe(t.localeFallbacker)?t.localeFallbacker:X0||ZA,I=ye(t.fallbackContext)?t.fallbackContext:void 0,D=t,C=ye(D.__datetimeFormatters)?D.__datetimeFormatters:new Map,R=ye(D.__numberFormatters)?D.__numberFormatters:new Map,j=ye(D.__meta)?D.__meta:{};Kg++;const M={version:n,cid:Kg,locale:s,fallbackLocale:r,messages:o,modifiers:c,pluralRules:u,missing:d,missingWarn:f,fallbackWarn:h,fallbackFormat:p,unresolving:m,postTranslation:v,processor:y,warnHtmlMessage:_,escapeParameter:g,messageCompiler:b,messageResolver:E,localeFallbacker:k,fallbackContext:I,onWarn:e,__meta:j};return M.datetimeFormats=a,M.numberFormats=l,M.__datetimeFormatters=C,M.__numberFormatters=R,__INTLIFY_PROD_DEVTOOLS__&&zA(M,n,j),M}const zd=t=>({[t]:Ee()});function _p(t,e,n,s,i){const{missing:r,onWarn:o}=t;if(r!==null){const a=r(t,n,e,i);return _t(a)?a:e}else return e}function ta(t,e,n){const s=t;s.__localeChainCache=new Map,t.localeFallbacker(t,n,e)}function yO(t,e){return t===e?!1:t.split("-")[0]===e.split("-")[0]}function bO(t,e){const n=e.indexOf(t);if(n===-1)return!1;for(let s=n+1;s{J0.includes(l)?o[l]=n[l]:r[l]=n[l]}),_t(s)?r.locale=s:ae(s)&&(o=s),ae(i)&&(o=i),[r.key||"",a,r,o]}function qg(t,e,n){const s=t;for(const i in n){const r=`${e}__${i}`;s.__datetimeFormatters.has(r)&&s.__datetimeFormatters.delete(r)}}function Xg(t,...e){const{numberFormats:n,unresolving:s,fallbackLocale:i,onWarn:r,localeFallbacker:o}=t,{__numberFormatters:a}=t,[l,c,u,d]=eh(...e),f=Re(u.missingWarn)?u.missingWarn:t.missingWarn;Re(u.fallbackWarn)?u.fallbackWarn:t.fallbackWarn;const h=!!u.part,p=vp(t,u),m=o(t,i,p);if(!_t(l)||l==="")return new Intl.NumberFormat(p,d).format(c);let v={},y,_=null;const g="number format";for(let k=0;k{Q0.includes(l)?o[l]=n[l]:r[l]=n[l]}),_t(s)?r.locale=s:ae(s)&&(o=s),ae(i)&&(o=i),[r.key||"",a,r,o]}function Yg(t,e,n){const s=t;for(const i in n){const r=`${e}__${i}`;s.__numberFormatters.has(r)&&s.__numberFormatters.delete(r)}}const vO=t=>t,_O=t=>"",SO="text",EO=t=>t.length===0?"":gp(t),wO=uA;function Zg(t,e){return t=Math.abs(t),e===2?t?t>1?1:0:1:t?Math.min(t,2):0}function kO(t){const e=Xe(t.pluralIndex)?t.pluralIndex:-1;return t.named&&(Xe(t.named.count)||Xe(t.named.n))?Xe(t.named.count)?t.named.count:Xe(t.named.n)?t.named.n:e:e}function CO(t,e){e.count||(e.count=t),e.n||(e.n=t)}function TO(t={}){const e=t.locale,n=kO(t),s=ye(t.pluralRules)&&_t(e)&&Pe(t.pluralRules[e])?t.pluralRules[e]:Zg,i=ye(t.pluralRules)&&_t(e)&&Pe(t.pluralRules[e])?Zg:void 0,r=y=>y[s(n,y.length,i)],o=t.list||[],a=y=>o[y],l=t.named||Ee();Xe(t.pluralIndex)&&CO(n,l);const c=y=>l[y];function u(y,_){const g=Pe(t.messages)?t.messages(y,!!_):ye(t.messages)?t.messages[y]:!1;return g||(t.parent?t.parent.message(y):_O)}const d=y=>t.modifiers?t.modifiers[y]:vO,f=ae(t.processor)&&Pe(t.processor.normalize)?t.processor.normalize:EO,h=ae(t.processor)&&Pe(t.processor.interpolate)?t.processor.interpolate:wO,p=ae(t.processor)&&_t(t.processor.type)?t.processor.type:SO,v={list:a,named:c,plural:r,linked:(y,..._)=>{const[g,b]=_;let E="text",k="";_.length===1?ye(g)?(k=g.modifier||k,E=g.type||E):_t(g)&&(k=g||k):_.length===2&&(_t(g)&&(k=g||k),_t(b)&&(E=b||E));const I=u(y,!0)(v),D=E==="vnode"&&je(I)&&k?I[0]:I;return k?d(k)(D,E):D},message:u,type:p,interpolate:h,normalize:f,values:tn(Ee(),o,l)};return v}const Jg=()=>"",os=t=>Pe(t);function Qg(t,...e){const{fallbackFormat:n,postTranslation:s,unresolving:i,messageCompiler:r,fallbackLocale:o,messages:a}=t,[l,c]=nh(...e),u=Re(c.missingWarn)?c.missingWarn:t.missingWarn,d=Re(c.fallbackWarn)?c.fallbackWarn:t.fallbackWarn,f=Re(c.escapeParameter)?c.escapeParameter:t.escapeParameter,h=!!c.resolvedMessage,p=_t(c.default)||Re(c.default)?Re(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:null,m=n||p!=null&&(_t(p)||Pe(p)),v=vp(t,c);f&&AO(c);let[y,_,g]=h?[l,v,a[v]||Ee()]:t_(t,l,v,o,d,u),b=y,E=l;if(!h&&!(_t(b)||Ys(b)||os(b))&&m&&(b=p,E=b),!h&&(!(_t(b)||Ys(b)||os(b))||!_t(_)))return i?Wu:l;let k=!1;const I=()=>{k=!0},D=os(b)?b:e_(t,l,_,b,E,I);if(k)return b;const C=IO(t,_,g,c),R=TO(C),j=OO(t,D,R);let M=s?s(j,l):j;if(f&&_t(M)&&(M=aA(M)),__INTLIFY_PROD_DEVTOOLS__){const H={timestamp:Date.now(),key:_t(l)?l:os(b)?b.key:"",locale:_||(os(b)?b.locale:""),format:_t(b)?b:os(b)?b.source:"",message:M};H.meta=tn({},t.__meta,pO()||{}),qA(H)}return M}function AO(t){je(t.list)?t.list=t.list.map(e=>_t(e)?Dg(e):e):ye(t.named)&&Object.keys(t.named).forEach(e=>{_t(t.named[e])&&(t.named[e]=Dg(t.named[e]))})}function t_(t,e,n,s,i,r){const{messages:o,onWarn:a,messageResolver:l,localeFallbacker:c}=t,u=c(t,s,n);let d=Ee(),f,h=null;const p="translate";for(let m=0;ms);return c.locale=n,c.key=e,c}const l=o(s,xO(t,n,i,s,a,r));return l.locale=n,l.key=e,l.source=s,l}function OO(t,e,n){return e(n)}function nh(...t){const[e,n,s]=t,i=Ee();if(!_t(e)&&!Xe(e)&&!os(e)&&!Ys(e))throw mi(pi.INVALID_ARGUMENT);const r=Xe(e)?String(e):(os(e),e);return Xe(n)?i.plural=n:_t(n)?i.default=n:ae(n)&&!ju(n)?i.named=n:je(n)&&(i.list=n),Xe(s)?i.plural=s:_t(s)?i.default=s:ae(s)&&tn(i,s),[r,i]}function xO(t,e,n,s,i,r){return{locale:e,key:n,warnHtmlMessage:i,onError:o=>{throw r&&r(o),o},onCacheKey:o=>sA(e,n,o)}}function IO(t,e,n,s){const{modifiers:i,pluralRules:r,messageResolver:o,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=t,f={locale:e,modifiers:i,pluralRules:r,messages:(h,p)=>{let m=o(n,h);if(m==null&&(u||p)){const[,,v]=t_(u||t,h,e,a,l,c);m=o(v,h)}if(_t(m)||Ys(m)){let v=!1;const _=e_(t,h,e,m,h,()=>{v=!0});return v?Jg:_}else return os(m)?m:Jg}};return t.processor&&(f.processor=t.processor),s.list&&(f.list=s.list),s.named&&(f.named=s.named),Xe(s.plural)&&(f.pluralIndex=s.plural),f}LA();/*! * vue-i18n v11.1.12 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const RO="11.1.12";function DO(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(gp().__INTLIFY_PROD_DEVTOOLS__=!1)}const gs={UNEXPECTED_RETURN_TYPE:JA,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function Ps(t,...e){return Wu(t,null,void 0)}const rh=or("__translateVNode"),oh=or("__datetimeParts"),ah=or("__numberParts"),LO=or("__setPluralRules"),MO=or("__injectWithOption"),lh=or("__dispose");function Xa(t){if(!pe(t)||Ys(t))return t;for(const e in t)if(Os(t,e))if(!e.includes("."))pe(t[e])&&Xa(t[e]);else{const n=e.split("."),s=n.length-1;let i=t,r=!1;for(let o=0;o{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(o[l]=o[l]||Ee(),hc(c,o[l])):hc(c,o)}else _t(a)&&hc(JSON.parse(a),o)}),i==null&&r)for(const a in o)Os(o,a)&&Xa(o[a]);return o}function s_(t){return t.type}function $O(t,e,n){let s=pe(e.messages)?e.messages:Ee();"__i18nGlobal"in n&&(s=n_(t.locale.value,{messages:s,__i18n:n.__i18nGlobal}));const i=Object.keys(s);i.length&&i.forEach(r=>{t.mergeLocaleMessage(r,s[r])});{if(pe(e.datetimeFormats)){const r=Object.keys(e.datetimeFormats);r.length&&r.forEach(o=>{t.mergeDateTimeFormat(o,e.datetimeFormats[o])})}if(pe(e.numberFormats)){const r=Object.keys(e.numberFormats);r.length&&r.forEach(o=>{t.mergeNumberFormat(o,e.numberFormats[o])})}}}function Qg(t){return E(yi,null,t,0)}const ty="__INTLIFY_META__",ey=()=>[],FO=()=>!1;let ny=0;function sy(t){return((e,n,s,i)=>t(n,s,cn()||void 0,i))}const VO=()=>{const t=cn();let e=null;return t&&(e=s_(t)[ty])?{[ty]:e}:null};function i_(t={}){const{__root:e,__injectWithOption:n}=t,s=e===void 0,i=t.flatJson,r=zc?cs:Au;let o=Re(t.inheritLocale)?t.inheritLocale:!0;const a=r(e&&o?e.locale.value:_t(t.locale)?t.locale:Yc),l=r(e&&o?e.fallbackLocale.value:_t(t.fallbackLocale)||je(t.fallbackLocale)||re(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:a.value),c=r(n_(a.value,t)),u=r(re(t.datetimeFormats)?t.datetimeFormats:{[a.value]:{}}),d=r(re(t.numberFormats)?t.numberFormats:{[a.value]:{}});let f=e?e.missingWarn:Re(t.missingWarn)||Xc(t.missingWarn)?t.missingWarn:!0,h=e?e.fallbackWarn:Re(t.fallbackWarn)||Xc(t.fallbackWarn)?t.fallbackWarn:!0,p=e?e.fallbackRoot:Re(t.fallbackRoot)?t.fallbackRoot:!0,m=!!t.fallbackFormat,_=Pe(t.missing)?t.missing:null,y=Pe(t.missing)?sy(t.missing):null,v=Pe(t.postTranslation)?t.postTranslation:null,g=e?e.warnHtmlMessage:Re(t.warnHtmlMessage)?t.warnHtmlMessage:!0,b=!!t.escapeParameter;const S=e?e.modifiers:re(t.modifiers)?t.modifiers:{};let k=t.pluralRules||e&&e.pluralRules,I;I=(()=>{s&&Wg(null);const M={version:RO,locale:a.value,fallbackLocale:l.value,messages:c.value,modifiers:S,pluralRules:k,missing:y===null?void 0:y,missingWarn:f,fallbackWarn:h,fallbackFormat:m,unresolving:!0,postTranslation:v===null?void 0:v,warnHtmlMessage:g,escapeParameter:b,messageResolver:t.messageResolver,messageCompiler:t.messageCompiler,__meta:{framework:"vue"}};M.datetimeFormats=u.value,M.numberFormats=d.value,M.__datetimeFormatters=re(I)?I.__datetimeFormatters:void 0,M.__numberFormatters=re(I)?I.__numberFormatters:void 0;const q=bO(M);return s&&Wg(q),q})(),Qo(I,a.value,l.value);function C(){return[a.value,l.value,c.value,u.value,d.value]}const R=Je({get:()=>a.value,set:M=>{I.locale=M,a.value=M}}),B=Je({get:()=>l.value,set:M=>{I.fallbackLocale=M,l.value=M,Qo(I,a.value,M)}}),$=Je(()=>c.value),H=Je(()=>u.value),X=Je(()=>d.value);function ot(){return Pe(v)?v:null}function G(M){v=M,I.postTranslation=M}function tt(){return _}function at(M){M!==null&&(y=sy(M)),_=M,I.missing=y}const kt=(M,q,ht,St,Kt,U)=>{C();let j;try{__INTLIFY_PROD_DEVTOOLS__,s||(I.fallbackContext=e?yO():void 0),j=M(I)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(I.fallbackContext=void 0)}if(ht!=="translate exists"&&Xe(j)&&j===Gu||ht==="translate exists"&&!j){const[z,rt]=q();return e&&p?St(e):Kt(z)}else{if(U(j))return j;throw Ps(gs.UNEXPECTED_RETURN_TYPE)}};function zt(...M){return kt(q=>Reflect.apply(Jg,null,[q,...M]),()=>ih(...M),"translate",q=>Reflect.apply(q.t,q,[...M]),q=>q,q=>_t(q))}function Vt(...M){const[q,ht,St]=M;if(St&&!pe(St))throw Ps(gs.INVALID_ARGUMENT);return zt(q,ht,tn({resolvedMessage:!0},St||{}))}function Bt(...M){return kt(q=>Reflect.apply(Kg,null,[q,...M]),()=>nh(...M),"datetime format",q=>Reflect.apply(q.d,q,[...M]),()=>jg,q=>_t(q)||je(q))}function ge(...M){return kt(q=>Reflect.apply(zg,null,[q,...M]),()=>sh(...M),"number format",q=>Reflect.apply(q.n,q,[...M]),()=>jg,q=>_t(q)||je(q))}function _e(M){return M.map(q=>_t(q)||Xe(q)||Re(q)?Qg(String(q)):q)}const Wt={normalize:_e,interpolate:M=>M,type:"vnode"};function Y(...M){return kt(q=>{let ht;const St=q;try{St.processor=Wt,ht=Reflect.apply(Jg,null,[St,...M])}finally{St.processor=null}return ht},()=>ih(...M),"translate",q=>q[rh](...M),q=>[Qg(q)],q=>je(q))}function dt(...M){return kt(q=>Reflect.apply(zg,null,[q,...M]),()=>sh(...M),"number format",q=>q[ah](...M),ey,q=>_t(q)||je(q))}function ct(...M){return kt(q=>Reflect.apply(Kg,null,[q,...M]),()=>nh(...M),"datetime format",q=>q[oh](...M),ey,q=>_t(q)||je(q))}function yt(M){k=M,I.pluralRules=k}function Ut(M,q){return kt(()=>{if(!M)return!1;const ht=_t(q)?q:a.value,St=P(ht),Kt=I.messageResolver(St,M);return Ys(Kt)||os(Kt)||_t(Kt)},()=>[M],"translate exists",ht=>Reflect.apply(ht.te,ht,[M,q]),FO,ht=>Re(ht))}function Xt(M){let q=null;const ht=K0(I,l.value,a.value);for(let St=0;St{o&&(a.value=M,I.locale=M,Qo(I,a.value,l.value))}),Zn(e.fallbackLocale,M=>{o&&(l.value=M,I.fallbackLocale=M,Qo(I,a.value,l.value))}));const lt={id:ny,locale:R,fallbackLocale:B,get inheritLocale(){return o},set inheritLocale(M){o=M,M&&e&&(a.value=e.locale.value,l.value=e.fallbackLocale.value,Qo(I,a.value,l.value))},get availableLocales(){return Object.keys(c.value).sort()},messages:$,get modifiers(){return S},get pluralRules(){return k||{}},get isGlobal(){return s},get missingWarn(){return f},set missingWarn(M){f=M,I.missingWarn=f},get fallbackWarn(){return h},set fallbackWarn(M){h=M,I.fallbackWarn=h},get fallbackRoot(){return p},set fallbackRoot(M){p=M},get fallbackFormat(){return m},set fallbackFormat(M){m=M,I.fallbackFormat=m},get warnHtmlMessage(){return g},set warnHtmlMessage(M){g=M,I.warnHtmlMessage=M},get escapeParameter(){return b},set escapeParameter(M){b=M,I.escapeParameter=M},t:zt,getLocaleMessage:P,setLocaleMessage:W,mergeLocaleMessage:st,getPostTranslationHandler:ot,setPostTranslationHandler:G,getMissingHandler:tt,setMissingHandler:at,[LO]:yt};return lt.datetimeFormats=H,lt.numberFormats=X,lt.rt=Vt,lt.te=Ut,lt.tm=A,lt.d=Bt,lt.n=ge,lt.getDateTimeFormat=J,lt.setDateTimeFormat=T,lt.mergeDateTimeFormat=x,lt.getNumberFormat=V,lt.setNumberFormat=K,lt.mergeNumberFormat=Q,lt[MO]=n,lt[rh]=Y,lt[oh]=ct,lt[ah]=dt,lt}const wp={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:t=>t==="parent"||t==="global",default:"parent"},i18n:{type:Object}};function UO({slots:t},e){return e.length===1&&e[0]==="default"?(t.default?t.default():[]).reduce((s,i)=>[...s,...i.type===it?i.children:[i]],[]):e.reduce((n,s)=>{const i=t[s];return i&&(n[s]=i()),n},Ee())}function r_(){return it}const HO=Oi({name:"i18n-t",props:tn({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:t=>Xe(t)||!isNaN(t)}},wp),setup(t,e){const{slots:n,attrs:s}=e,i=t.i18n||kp({useScope:t.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(d=>d[0]!=="_"),o=Ee();t.locale&&(o.locale=t.locale),t.plural!==void 0&&(o.plural=_t(t.plural)?+t.plural:t.plural);const a=UO(e,r),l=i[rh](t.keypath,a,o),c=tn(Ee(),s),u=_t(t.tag)||pe(t.tag)?t.tag:r_();return qs(u,c,l)}}}),iy=HO;function jO(t){return je(t)&&!_t(t[0])}function o_(t,e,n,s){const{slots:i,attrs:r}=e;return()=>{const o={part:!0};let a=Ee();t.locale&&(o.locale=t.locale),_t(t.format)?o.key=t.format:pe(t.format)&&(_t(t.format.key)&&(o.key=t.format.key),a=Object.keys(t.format).reduce((f,h)=>n.includes(h)?tn(Ee(),f,{[h]:t.format[h]}):f,Ee()));const l=s(t.value,o,a);let c=[o.key];je(l)?c=l.map((f,h)=>{const p=i[f.type],m=p?p({[f.type]:f.value,index:h,parts:l}):[f.value];return jO(m)&&(m[0].key=`${f.type}-${h}`),m}):_t(l)&&(c=[l]);const u=tn(Ee(),r),d=_t(t.tag)||pe(t.tag)?t.tag:r_();return qs(d,u,c)}}const BO=Oi({name:"i18n-n",props:tn({value:{type:Number,required:!0},format:{type:[String,Object]}},wp),setup(t,e){const n=t.i18n||kp({useScope:t.scope,__useComponent:!0});return o_(t,e,Q0,(...s)=>n[ah](...s))}}),ry=BO;function WO(t,e){const n=t;if(t.mode==="composition")return n.__getInstance(e)||t.global;{const s=n.__getInstance(e);return s!=null?s.__composer:t.global.__composer}}function GO(t){const e=o=>{const{instance:a,value:l}=o;if(!a||!a.$)throw Ps(gs.UNEXPECTED_ERROR);const c=WO(t,a.$),u=oy(l);return[Reflect.apply(c.t,c,[...ay(u)]),c]};return{created:(o,a)=>{const[l,c]=e(a);zc&&t.global===c&&(o.__i18nWatcher=Zn(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),o.__composer=c,o.textContent=l},unmounted:o=>{zc&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:a})=>{if(o.__composer){const l=o.__composer,c=oy(a);o.textContent=Reflect.apply(l.t,l,[...ay(c)])}},getSSRProps:o=>{const[a]=e(o);return{textContent:a}}}}function oy(t){if(_t(t))return{path:t};if(re(t)){if(!("path"in t))throw Ps(gs.REQUIRED_VALUE,"path");return t}else throw Ps(gs.INVALID_VALUE)}function ay(t){const{path:e,locale:n,args:s,choice:i,plural:r}=t,o={},a=s||{};return _t(n)&&(o.locale=n),Xe(i)&&(o.plural=i),Xe(r)&&(o.plural=r),[e,a,o]}function KO(t,e,...n){const s=re(n[0])?n[0]:{};(Re(s.globalInstall)?s.globalInstall:!0)&&([iy.name,"I18nT"].forEach(r=>t.component(r,iy)),[ry.name,"I18nN"].forEach(r=>t.component(r,ry)),[cy.name,"I18nD"].forEach(r=>t.component(r,cy))),t.directive("t",GO(e))}const qO=or("global-vue-i18n");function zO(t={}){const e=Re(t.globalInjection)?t.globalInjection:!0,n=new Map,[s,i]=XO(t),r=or("");function o(u){return n.get(u)||null}function a(u,d){n.set(u,d)}function l(u){n.delete(u)}const c={get mode(){return"composition"},async install(u,...d){if(u.__VUE_I18N_SYMBOL__=r,u.provide(u.__VUE_I18N_SYMBOL__,c),re(d[0])){const p=d[0];c.__composerExtend=p.__composerExtend,c.__vueI18nExtend=p.__vueI18nExtend}let f=null;e&&(f=sx(u,c.global)),KO(u,c,...d);const h=u.unmount;u.unmount=()=>{f&&f(),c.dispose(),h()}},get global(){return i},dispose(){s.stop()},__instances:n,__getInstance:o,__setInstance:a,__deleteInstance:l};return c}function kp(t={}){const e=cn();if(e==null)throw Ps(gs.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw Ps(gs.NOT_INSTALLED);const n=YO(e),s=JO(n),i=s_(e),r=ZO(t,i);if(r==="global")return $O(s,t,i),s;if(r==="parent"){let l=QO(n,e,t.__useComponent);return l==null&&(l=s),l}const o=n;let a=o.__getInstance(e);if(a==null){const l=tn({},t);"__i18n"in i&&(l.__i18n=i.__i18n),s&&(l.__root=s),a=i_(l),o.__composerExtend&&(a[lh]=o.__composerExtend(a)),ex(o,e,a),o.__setInstance(e,a)}return a}function XO(t,e){const n=_u(),s=n.run(()=>i_(t));if(s==null)throw Ps(gs.UNEXPECTED_ERROR);return[n,s]}function YO(t){const e=us(t.isCE?qO:t.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw Ps(t.isCE?gs.NOT_INSTALLED_WITH_PROVIDE:gs.UNEXPECTED_ERROR);return e}function ZO(t,e){return Bu(t)?"__i18n"in e?"local":"global":t.useScope?t.useScope:"local"}function JO(t){return t.mode==="composition"?t.global:t.global.__composer}function QO(t,e,n=!1){let s=null;const i=e.root;let r=tx(e,n);for(;r!=null;){const o=t;if(t.mode==="composition"&&(s=o.__getInstance(r)),s!=null||i===r)break;r=r.parent}return s}function tx(t,e=!1){return t==null?null:e&&t.vnode.ctx||t.parent}function ex(t,e,n){Fo(()=>{},e),cl(()=>{const s=n;t.__deleteInstance(e);const i=s[lh];i&&(i(),delete s[lh])},e)}const nx=["locale","fallbackLocale","availableLocales"],ly=["t","rt","d","n","tm","te"];function sx(t,e){const n=Object.create(null);return nx.forEach(i=>{const r=Object.getOwnPropertyDescriptor(e,i);if(!r)throw Ps(gs.UNEXPECTED_ERROR);const o=Ie(r.value)?{get(){return r.value.value},set(a){r.value.value=a}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,i,o)}),t.config.globalProperties.$i18n=n,ly.forEach(i=>{const r=Object.getOwnPropertyDescriptor(e,i);if(!r||!r.value)throw Ps(gs.UNEXPECTED_ERROR);Object.defineProperty(t.config.globalProperties,`$${i}`,r)}),()=>{delete t.config.globalProperties.$i18n,ly.forEach(i=>{delete t.config.globalProperties[`$${i}`]})}}const ix=Oi({name:"i18n-d",props:tn({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},wp),setup(t,e){const n=t.i18n||kp({useScope:t.scope,__useComponent:!0});return o_(t,e,J0,(...s)=>n[oh](...s))}}),cy=ix;DO();fO(qA);hO(cO);pO(K0);if(__INTLIFY_PROD_DEVTOOLS__){const t=gp();t.__INTLIFY__=!0,zA(t.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Xd=t=>t&&typeof t=="object"&&!Array.isArray(t),ch=(t,...e)=>{if(!e.length)return t;const n=e.shift();if(Xd(t)&&Xd(n))for(const s in n)Xd(n[s])?(t[s]||Object.assign(t,{[s]:{}}),ch(t[s],n[s])):Object.assign(t,{[s]:n[s]});return ch(t,...e)},rx=ch({},{de:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Hinzufügen"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Als nächstes hinzufügen"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Stream hinzufügen"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Abbrechen"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Alle entfernen"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Bearbeiten"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Vorherige verbergen"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Einloggen"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Ausloggen"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Alle abgespielten markieren"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Markiere als neu"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Markiere als gespielt"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Remote paaren"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Spielen"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Entfernen"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Speichern"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Zeige mehr"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Zufallswiedergabe"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Verifizieren"}}},data:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Alben"}]}]}},artists:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" Künstler"}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbuch"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbuch"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbücher"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Autor"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Autor"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Autoren"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponisten"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Genres"}]}]}},kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"Datei"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Stream"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Playlisten"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Stationen"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Tracks"}]}]}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"Hinzufügen eines Podcasts führt zur Anlage einer RSS-Playlist, so kann OwnTone das Podcast-Abo verwalten."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Verarbeite…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcast hinzufügen"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Lade…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Verarbeite…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Stream hinzufügen"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Playlistname"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Speichere…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Warteschlange als Playlist speichern"}}}},podcast:{remove:{info:{t:0,b:{t:2,i:[{t:3,v:"Permanently remove this podcast from your library?"},{t:4,k:"separator"},{t:3,v:"(This will also remove the RSS playlist "},{t:4,k:"name"},{t:3,v:")"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcast enfernen"}}}},"queue-item":{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing-Code"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Remote-Paarungs-Anfrage"}}},track:{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},rating:{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Alles neu einlesen"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Nur RSS-Feeds neu einlesen"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Suche nach neuen, gelöschten und veränderten Dateien"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Nur lokale Bibliothek neu einlesen"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek wird neu eingelesen…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Metadata von unveränderten Dateien neu einlesen"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Nur Spotify neu einlesen"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek neu einlesen"}}}},"grouped-list":{"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Letzer Monat"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"Letzte Woche"}},today:{t:0,b:{t:2,i:[{t:3}],s:"Heute"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Unbestimmt"}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"Deutsch"}},en:{t:0,b:{t:2,i:[{t:3}],s:"Englisch (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Französisch (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Vereinfachtes Chinesisch (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Traditionelles Chinesisch (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Diesen Podcast dauerhaft aus der Bibliothek löschen?"},{t:4,k:"separator"},{t:3,v:"(Damit wird auch die RSS-Playliste "},{t:4,k:"name"},{t:3,v:" gelöscht)"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"Track kann nicht gespielt werden"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", Beschränkungsgrund: "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Hörbuch"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"Über"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},outputs:{t:0,b:{t:2,i:[{t:3}],s:"Ausgänge"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP-stream"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek neu einlesen"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Lautstärke"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Verbirgt Singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"Wenn aktiv, blendet Singles und alles, was mit ihnen verbunden ist, aus."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Verbirgt Spotify-Inhalt"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"Wenn aktiv, blendet Inhalte aus, die von Spotify stammen."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filtern"}}},sort:{"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Künstler › Erscheinungsdatum"}},"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Künstler › Name"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Namen"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Bewertung"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich erschienen"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsdatum"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Sortieren"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Oberfläche erstellt mit "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" und "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compiliert mit Unterstützung von "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek"}},more:{t:0,b:{t:2,i:[{t:3}],s:"mehr"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Autoren"}}},tabs:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},authors:{t:0,b:{t:2,i:[{t:3}],s:"Autoren"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich gespielt"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Verlauf"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},outputs:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ausgänge"}}},player:{info:{t:0,b:{t:2,i:[{t:3}],s:"Tracks durch Auswählen aus der Bibliothek anfügen"}},time:{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Live"},{t:2,i:[{t:4,k:"time"}]},{t:2,i:[{t:4,k:"time"}]}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Deine Playliste ist leer."}}},playlists:{title:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"name"}]},{t:2,i:[{t:3}],s:"Playlisten"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"Neue Episoden"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"Warteschlange"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"Ausdrücken"}},help:{t:0,b:{t:2,i:[{t:3,v:"Tip: Du kannst mit einer Smart-Playlist-Abfrage-Sprache nach "},{t:4,k:"help"},{t:3,v:" suchen wenn Du dem Ausdruck ein "},{t:4,k:"query"},{t:3,v:" voranstellst."}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Keine Ergebnisse gefunden"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige das Album"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Alben"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Künstler"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Künstler"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige das Buch"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Hörbücher"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Komponist"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Komponisten"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige die Playlist"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Playlisten"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Podcast"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Track"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Tracks"}]}]}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}}},settings:{tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"Fernbedienungen und Ausgänge"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Online-Services"}},webinterface:{t:0,b:{t:2,i:[{t:3}],s:"Allgemein"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Ausgezeichnete Playlisten"}},"followed-artists":{t:0,b:{t:2,i:[{t:3}],s:"Verfolgte Künstler"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"Neuvorstellung"}}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Verlauf löschen"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergabe anhalten"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergeben"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Alle Tracks wiederholen"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Tracks einmal lesen"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Aktuellen Track wiederholen"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Rückwärts im Track suchen"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Vorwärts im Track suchen"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Tracks zufällig wiedergeben"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Tracks in Reihenfolge wiedergeben"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Zum vorherigen Track springen"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Zum nächsten Track springen"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergabe stoppen"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Liedtexte anzeigen/verbergen"}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Ordner"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Einfache"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Intelligente"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Hinzugefügt am"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Album-Künstler"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Kommentar"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Komponist"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Dauer"}},folders:{t:0,b:{t:2,i:[{t:3}],s:"Ordner"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Besitzer"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Pfad"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Spielzeit"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularität / Followers"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disc / Track"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Qualität"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Bewertung"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsdatum"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Art"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Neu eingelesen"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Laufzeit"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Jahr"}}},server:{"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Track an die Abspielliste angehängt"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Tracks an die Abspielliste angehängt"}]}]}},"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Fehler bei Verbindung zum OwnTone-Server"}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"Warteschlange zu Playlist "},{t:4,k:"name"},{t:3,v:" gesichert"}]}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"Anfrage gescheitert (Status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}}},settings:{appearance:{auto:{t:0,b:{t:2,i:[{t:3}],s:"Automatisch"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"Dunkel"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Hell"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsbild"}}},artwork:{"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone verarbeitet PNG- und JPEG-Artwork, welches in einer eigenen Datei in der Bibliothek, in die Dateien eingebettet oder online von Radiostationen bereitgestellt werden kann."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"Zusätzlich kann auf folgende Artwork-Anbieter zugegriffen werden:"}},"show-cover-artwork-in-album-lists":{t:0,b:{t:2,i:[{t:3}],s:"Zeige Cover-Artwork in der Albumliste"}},"streamurl-ignore":{t:0,b:{t:2,i:[{t:3}],s:"Bereitgestellte Artwork von Radiostationen ignorieren"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},"use-artwork-source-coverartarchive":{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},"use-artwork-source-discogs":{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"use-artwork-source-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Keine aktive Pairing-Anfrage"}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Pairing Remote"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing-Code"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Remote-Pairing-Anfrage von "}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Lautsprecher-Pairing und Geräteverifikation"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"Wenn der Laufsprecher PIN-basiertes Pairing verlangt, aktiviere ihn hier und gib dann den hier PIN an, der am Lautsprecher angezeigt wird."}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Verifikationscode"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Melde Dich mit Deinem Last.fm-Benutzernamen und Passwort an, um Scrobbeln zu aktivieren."}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wird den Benutzernamen und das Passwort von last.fm nicht speichern, nur den Sitzungs-Schlüssel. Dieser läuft nicht ab."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wurde ohne Unterstützung für Last.fm erstellt."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Passwort"}},spotify:{authorize:{t:0,b:{t:2,i:[{t:3}],s:"Authorisiere API-Zugriff"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Zugriff auf die Spotify API gestatten."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wurde entweder ohne Unterstützung für Spotify erstellt oder libspotify ist nicht installiert."}},reauthorize:{t:0,b:{t:2,i:[{t:3,v:"Bitte den Zugriff der API durch setzen folgender Zugriffsrechte für OwnTone: "},{t:4,k:"scopes"},{t:3,v:"."}]}},requirements:{t:0,b:{t:2,i:[{t:3,v:"Spotify Premium Abo erforderlich. Zugriff auf die Spotify API ermöglicht scannen der Spotify-Blibliothek. Erforderliche scopes sind: "},{t:4,k:"scopes"},{t:3,v:"."}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},user:{t:0,b:{t:2,i:[{t:3,v:"Zugriff gestattet für "},{t:4,k:"user"},{t:3,v:"."}]}}},username:{t:0,b:{t:2,i:[{t:3}],s:"Benutzername"}}},webinterface:{genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Sprache"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Wähle hier die Einträge des oberen Navigationsmenüs"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"Auf den Bildschirmen mobiler Geräte wird nur das Burger-Menü angezeigt."}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Navigationsmenüs"}},"player-page":{t:0,b:{t:2,i:[{t:3}],s:"Aktuell läuft-Seite"}},"recently-added-limit":{t:0,b:{t:2,i:[{t:3}],s:"Beschränkte die Zahl der Alben"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt-Seite"}},"show-composer-for-genre":{t:0,b:{t:2,i:[{t:3}],s:"Zeige den Komponisten für die aufgelisteten Genres an"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Komma getrennte Liste der Genres, für die der Komponist angezeigt werden soll."},{t:5,i:0},{t:3,v:"Leer lassen, um den Komponisten immer anzuzeigen."},{t:5,i:0},{t:3,v:'Der Genre-Tag des aktuellen Tracks wird abgeglichen als Teil-String des Genre-Tags. Z.B. "classical, soundtrack" wird den Komponisten beim Genre-Tag "Contemporary Classical" anzeigen'}]}},"show-composer-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Komponisten anzeigen"}},"show-filepath-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Dateipfad anzeigen"}},"show-menu-item-audiobooks":{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},"show-menu-item-files":{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}},"show-menu-item-music":{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},"show-menu-item-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},"show-menu-item-podcasts":{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-menu-item-radio":{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"show-menu-item-search":{t:0,b:{t:2,i:[{t:3}],s:"Suche"}}}}}},{en:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Add"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Add Next"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Add stream"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Cancel"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Clear"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Edit"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Hide previous"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Login"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Logout"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Mark All Played"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Mark as new"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Mark as played"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Pair Remote"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Play"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Remove"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Rescan"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Save"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Show more"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Shuffle"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Verify"}}},data:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" albums"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" artist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artists"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobook"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobook"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobooks"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" author"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" author"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" authors"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" channel"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" channels"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" composer"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" composer"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" composers"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genres"}]}]}},kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"File"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Stream"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" playlists"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" stations"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" tracks"}]}]}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"Adding a podcast includes creating an RSS playlist, that will allow OwnTone to manage the podcast subscription."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Processing…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Add podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Processing…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Add stream"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Playlist name"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Saving…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Save queue to playlist"}}}},podcast:{remove:{info:{t:0,b:{t:2,i:[{t:3,v:"Permanently remove this podcast from your library?"},{t:4,k:"separator"},{t:3,v:"(This will also remove the RSS playlist "},{t:4,k:"name"},{t:3,v:")"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Delete the podcast"}}}},"queue-item":{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing code"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Remote pairing request"}}},track:{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},rating:{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Update everything"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Only update RSS feeds"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Scan for new, deleted and modified files"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Only update local library"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Library update in progress…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Rescan metadata of unmodified files"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Only update Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Update library"}}}},"grouped-list":{"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Last month"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"Last week"}},today:{t:0,b:{t:2,i:[{t:3}],s:"Today"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Undefined"}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"German (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"English"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"French (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Simplified Chinese (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Traditional Chinese (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Permanently remove this podcast from your library?"},{t:4,k:"separator"},{t:3,v:"(This will also remove the RSS playlist "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"Track is not playable"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", restriction reason: "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Audiobook"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Music"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"About"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Files"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Music"}},outputs:{t:0,b:{t:2,i:[{t:3}],s:"Outputs"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP stream"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Update Library"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Volume"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Hide singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"If active, hides singles and anything associated with them."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Hide Spotify content"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"If active, hides content from Spotify."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filter"}}},sort:{"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Artist › Release date"}},"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Artist › Name"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Rating"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Recently added"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Recently released"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Release date"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Sort"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Web interface built with "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" and "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compiled with support for "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Library"}},more:{t:0,b:{t:2,i:[{t:3}],s:"more"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Authors"}}},tabs:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},authors:{t:0,b:{t:2,i:[{t:3}],s:"Authors"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Files"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Recently added"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Recently played"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"History"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},outputs:{title:{t:0,b:{t:2,i:[{t:3}],s:"Outputs"}}},player:{info:{t:0,b:{t:2,i:[{t:3}],s:"Add some tracks by browsing your library"}},time:{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Live"},{t:2,i:[{t:4,k:"time"}]},{t:2,i:[{t:4,k:"time"}]}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Your play queue is empty"}}},playlists:{title:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"name"}]},{t:2,i:[{t:3}],s:"Playlists"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"New Episodes"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"Queue"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"expression"}},help:{t:0,b:{t:2,i:[{t:3,v:"Tip: you can search by a smart playlist query language "},{t:4,k:"help"},{t:3,v:" if you prefix it with "},{t:4,k:"query"},{t:3,v:"."}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"No results found"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the album"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the artist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" artists"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the audiobook"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" audiobooks"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the composer"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" composers"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the playlist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" playlists"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the podcast"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the track"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" tracks"}]}]}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Library"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}}},settings:{tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"Remotes and Outputs"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Online Services"}},webinterface:{t:0,b:{t:2,i:[{t:3}],s:"General"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Featured Playlists"}},"followed-artists":{t:0,b:{t:2,i:[{t:3}],s:"Followed Artists"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"New Releases"}}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Clear history"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Pause"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Play"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Repeat all tracks"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Read tracks once"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Repeat current track"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Seek backward in the track"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Seek forward in the track"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Play tracks randomly"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Play tracks in order"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Skip to previous track"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Skip to next track"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Stop"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Toggle lyrics"}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Folder"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Plain"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Smart"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Added On"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Album Artist"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Artist"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Comment"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Composer"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Duration"}},folders:{t:0,b:{t:2,i:[{t:3}],s:"Folders"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Owner"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Path"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Playtime"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularity / Followers"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disc / Track"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Quality"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Rating"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Release Date"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Updated"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Uptime"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Year"}}},server:{"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" track appended to the queue"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" tracks appended to the queue"}]}]}},"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Failed to connect to OwnTone server"}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"Queue saved to playlist "},{t:4,k:"name"}]}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"Request failed (status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}}},settings:{appearance:{auto:{t:0,b:{t:2,i:[{t:3}],s:"Auto"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"Dark"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Light"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Appearance"}}},artwork:{"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone supports PNG and JPEG artwork which is either placed as separate image files in the library, embedded in the media files or made available online by radio stations."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"In addition to that, you can enable fetching artwork from the following artwork providers:"}},"show-cover-artwork-in-album-lists":{t:0,b:{t:2,i:[{t:3}],s:"Show cover artwork in album list"}},"streamurl-ignore":{t:0,b:{t:2,i:[{t:3}],s:"Ignore artwork provided by radio stations"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},"use-artwork-source-coverartarchive":{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},"use-artwork-source-discogs":{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"use-artwork-source-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"No active pairing request."}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Remote Pairing"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing code"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Remote pairing request from "}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Speaker pairing and device verification"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"If your speaker requires pairing then activate it below and enter the PIN that it displays."}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Verification code"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Login with your Last.fm username and password to enable scrobbling."}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone will not store your Last.fm username/password, only the session key. The session key does not expire."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone was built without support for Last.fm."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Password"}},spotify:{authorize:{t:0,b:{t:2,i:[{t:3}],s:"Authorize API access"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Grant access to the Spotify API."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone was either built without support for Spotify or libspotify is not installed."}},reauthorize:{t:0,b:{t:2,i:[{t:3,v:"Please reauthorize API access to grant OwnTone the following additional access rights: "},{t:4,k:"scopes"},{t:3,v:"."}]}},requirements:{t:0,b:{t:2,i:[{t:3,v:"You must have a Spotify premium account. Access to the Spotify API enables scanning of your Spotify library. Required scopes are: "},{t:4,k:"scopes"},{t:3,v:"."}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},user:{t:0,b:{t:2,i:[{t:3,v:"Access granted for "},{t:4,k:"user"}]}}},username:{t:0,b:{t:2,i:[{t:3}],s:"Username"}}},webinterface:{genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Language"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Select the top navigation bar menu items"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"On mobile device screens, only the burger menu is displayed."}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Navigation Bar"}},"player-page":{t:0,b:{t:2,i:[{t:3}],s:"Player page"}},"recently-added-limit":{t:0,b:{t:2,i:[{t:3}],s:"Limit the number of albums displayed"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Recently added page"}},"show-composer-for-genre":{t:0,b:{t:2,i:[{t:3}],s:"Show composer only for listed genres"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Comma-separated list of genres, for which the composer must be displayed."},{t:5,i:0},{t:3,v:"Leave empty to always show the composer."},{t:5,i:0},{t:3,v:'The genre tag of the current track is matched by checking, if one of the defined genres are included. For example setting to "classical, soundtrack" will show the composer for tracks with a genre tag of "Contemporary Classical"'}]}},"show-composer-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Show composer"}},"show-filepath-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Show filepath"}},"show-menu-item-audiobooks":{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},"show-menu-item-files":{t:0,b:{t:2,i:[{t:3}],s:"Files"}},"show-menu-item-music":{t:0,b:{t:2,i:[{t:3}],s:"Music"}},"show-menu-item-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},"show-menu-item-podcasts":{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-menu-item-radio":{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"show-menu-item-search":{t:0,b:{t:2,i:[{t:3}],s:"Search"}}}}}},{fr:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Ajouter ensuite"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un flux"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Annuler"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Effacer"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Éditer"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Masquer l’historique"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Se connecter"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Se déconnecter"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme lus"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme nouveau"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme lu"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Jumeler la télécommande"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Lire"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Analyser"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Afficher plus"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Lecture aléatoire"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Vérifier"}}},data:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" albums"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" artiste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artiste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artistes"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" livre audio"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" livre audio"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" livres audio"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" auteur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" auteur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" auteurs"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeurs"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genres"}]}]}},kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"Fichier"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Flux"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" liste de lecture"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" liste de lecture"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" listes de lecture"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" stations"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" piste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" piste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" pistes"}]}]}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"L’ajout d’un podcast inclut la création d’une liste de lecture RSS, qui permettra à OwnTone de gérer l’abonnement au podcast."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-du-flux-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Traitement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Chargement…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-du-flux"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Traitement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un flux"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Nom de la liste de lecture"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer la file d’attente dans une liste de lecture"}}}},podcast:{remove:{info:{t:0,b:{t:2,i:[{t:3,v:"Supprimer ce podcast de manière permanente de la bibliothèque ?"},{t:4,k:"separator"},{t:3,v:"(Cela supprimera également la liste de lecture RSS "},{t:4,k:"name"},{t:3,v:")"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer le podcast"}}}},"queue-item":{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de jumelage"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Demande de jumelage de télécommande"}}},track:{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},rating:{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Tout actualiser"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement les flux RSS"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Recherche les fichiers ajoutés, supprimés et modifiés"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement la bibliothèque locale"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Actualisation de la bibliothèque en cours…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Analyser les métadonnées des fichiers non modifiés"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser la bibliothèque"}}}},"grouped-list":{"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Le mois dernier"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"La semaine dernière"}},today:{t:0,b:{t:2,i:[{t:3}],s:"Aujourd’hui"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Indéfini"}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"Allemand (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"Anglais (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Français"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Chinois simplifié (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Chinois traditionnel (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Supprimer définitivement ce podcast de votre bibliothèque ?"},{t:4,k:"separator"},{t:3,v:"(Cela supprimera également la liste de lecture RSS "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"La piste ne peut pas être lue"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", raison de la restriction : "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Livre audio"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"À propos"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},outputs:{t:0,b:{t:2,i:[{t:3}],s:"Sorties"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Réglages"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"Flux HTTP"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Actualiser la bibliothèque"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Volume"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Masquer les singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"Si actif, masque les singles et tout ce qui leur est associé."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Masquer le contenu de Spotify"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"Si actif, masque le contenu qui provient de Spotify."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filtrer"}}},sort:{"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Artiste › Date de sortie"}},"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Artiste › Nom"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Nom"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Classement"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Ajouts récents"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Sorties récentes"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Date de sortie"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Trier"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Interface utilisateur construite avec "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" et "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compilé avec les options "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothèque"}},more:{t:0,b:{t:2,i:[{t:3}],s:"plus"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Auteurs"}}},tabs:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},authors:{t:0,b:{t:2,i:[{t:3}],s:"Auteurs"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouts récents"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Lectures récentes"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Historique"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},outputs:{title:{t:0,b:{t:2,i:[{t:3}],s:"Sorties"}}},player:{info:{t:0,b:{t:2,i:[{t:3}],s:"Ajoutez des pistes en parcourant votre bibliothèque"}},time:{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"En direct"},{t:2,i:[{t:4,k:"time"}]},{t:2,i:[{t:4,k:"time"}]}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"La file d’attente est vide"}}},playlists:{title:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"name"}]},{t:2,i:[{t:3}],s:"Listes de lecture"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"Nouveaux épisodes"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"File d’attente"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"expression"}},help:{t:0,b:{t:2,i:[{t:3,v:"Astuce : vous pouvez effectuer une recherche avec une "},{t:4,k:"help"},{t:3,v:" du langage de requête de liste de lecture intelligente en préfixant votre requête avec "},{t:4,k:"query"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Aucun résultat trouvé"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’album"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’artiste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" artistes"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le livre audio"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" livres audio"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le compositeur"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" compositeurs"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la liste de lecture"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" listes de lecture"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le podcast"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la piste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" pistes"}]}]}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothèque"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Pistes"}}},settings:{tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Illustrations"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"Télécommandes et sorties"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Services en ligne"}},webinterface:{t:0,b:{t:2,i:[{t:3}],s:"Général"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture en vedette"}},"followed-artists":{t:0,b:{t:2,i:[{t:3}],s:"Artistes suivis"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"Nouvelle sorties"}}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Effacer l’historique"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Mettre la lecture en pause"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Lire"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Répéter toutes les pistes"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes une fois"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Répéter la piste en cours"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Reculer dans la piste"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Avancer dans la piste"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes aléatoirement"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes dans l’ordre"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Reculer à la piste précédente"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Avancer à la piste suivante"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Arrêter la lecture"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Voir/Cacher les paroles"}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Dossier"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Simple"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Intelligente"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Ajouté le"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Artiste de l’album"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Artiste"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Commentaire"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Compositeur"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Durée"}},folders:{t:0,b:{t:2,i:[{t:3}],s:"Dossiers"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Nom"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Propriétaire"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Emplacement"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Temps de lecture"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularité / Abonnements"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disque / Piste"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Qualité"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Classement"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Date de sortie"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Pistes"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Mise à jour"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Temps de fonctionnement"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Année"}}},server:{"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" piste ajoutée à la file d’attente"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" pistes ajoutées à la file d’attente"}]}]}},"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Échec de connexion au serveur"}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"La file d’attente enregistrée dans la liste de lecture "},{t:4,k:"name"}]}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"La requête a échoué (status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}}},settings:{appearance:{auto:{t:0,b:{t:2,i:[{t:3}],s:"Automatique"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"Sombre"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Clair"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Mode d’apparence"}}},artwork:{"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone prend en charge les illustrations au format PNG et JPEG qui sont soit placées dans la bibliothèque en tant que fichiers image séparés, soit intégrées dans les fichiers média, soit mises à disposition en ligne par les stations de radio."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"En outre, vous pouvez activer la récupération des illustrations à partir des fournisseurs d’illustrations suivants :"}},"show-cover-artwork-in-album-lists":{t:0,b:{t:2,i:[{t:3}],s:"Afficher les illustrations dans la liste d’albums"}},"streamurl-ignore":{t:0,b:{t:2,i:[{t:3}],s:"Ignorer les illustrations fournies par les stations de radio"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Illustrations"}},"use-artwork-source-coverartarchive":{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},"use-artwork-source-discogs":{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"use-artwork-source-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Aucune demande de jumelage active."}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Jumelage de télécommande"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de jumelage"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Demande de jumelage de télécommande "}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Jumelage d’enceinte et vérification d’appareil"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"Si votre enceinte nécessite un jumelage, activez-la ci-dessous et entrez le code PIN qu’elle affiche."}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de vérification"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Connectez-vous avec votre nom d’utilisateur et votre mot de passe Last.fm pour activer le scrobbling."}},info:{t:0,b:{t:2,i:[{t:3}],s:"Le nom d’utilisateur et le mot de passe Last.fm ne sont pas enregistrés, uniquement la clé de session. La clé de session n’expire pas."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"L’option Last.fm n’est pas présente."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Mot de passe"}},spotify:{authorize:{t:0,b:{t:2,i:[{t:3}],s:"Autoriser l’accès à l’API"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Accordez l’accès à l’API de Spotify."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"L’option Spotify n’est pas présente."}},reauthorize:{t:0,b:{t:2,i:[{t:3,v:"Veuillez autoriser à nouveau l’accès à l’API pour accorder à OwnTone les droits d’accès supplémentaires suivants : "},{t:4,k:"scopes"},{t:3,v:"."}]}},requirements:{t:0,b:{t:2,i:[{t:3,v:"Vous devez posséder un compte Spotify Premium. L’accès à l’API de Spotify permet l’analyse de votre bibliothèque Spotify. Les champs d’application requis sont les suivants : "},{t:4,k:"scopes"},{t:3,v:"."}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},user:{t:0,b:{t:2,i:[{t:3,v:"Accès autorisé pour "},{t:4,k:"user"},{t:3,v:"."}]}}},username:{t:0,b:{t:2,i:[{t:3}],s:"Nom d’utilisateur"}}},webinterface:{genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Langue"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Sélectionnez les éléments de la barre de navigation supérieure"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"Sur les écrans des appareils mobiles, seul le menu est affiché."}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Barre de navigation"}},"player-page":{t:0,b:{t:2,i:[{t:3}],s:"Page « En cours de lecture »"}},"recently-added-limit":{t:0,b:{t:2,i:[{t:3}],s:"Limiter le nombre d’albums affichés"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Page « Ajouts récents »"}},"show-composer-for-genre":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le compositeur uniquement pour les genres listés"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Liste de genres séparés par des virgules pour lesquels le compositeur doit être affiché."},{t:5,i:0},{t:3,v:"Laissez vide pour toujours afficher le compositeur."},{t:5,i:0},{t:3,v:'L’étiquette de genre de la piste actuelle est comparée en vérifiant si l’un des genres définis est inclus. Par exemple, en choisissant "classique, bande sonore", le compositeur pour les pistes dont l’étiquette de genre est "classique contemporain" sera affiché.'}]}},"show-composer-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le compositeur"}},"show-filepath-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le chemin du fichier"}},"show-menu-item-audiobooks":{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},"show-menu-item-files":{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}},"show-menu-item-music":{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},"show-menu-item-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},"show-menu-item-podcasts":{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-menu-item-radio":{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"show-menu-item-search":{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}}}}}},{"zh-CN":{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"添加"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"插播"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"添加流"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"清除"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"编辑"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"隐藏历史"}},login:{t:0,b:{t:2,i:[{t:3}],s:"登入"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"退出"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"全部标记为已播放"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"标记为最新"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"标记为已播放"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"遥控配对"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"移除"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"重新扫描"}},save:{t:0,b:{t:2,i:[{t:3}],s:"保存"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"显示更多"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"随机播放"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"验证"}}},data:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 张专辑"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 张专辑"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位艺人"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位艺人"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个有声读物"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个有声读物"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个流派"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个流派"}]}]}},kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"流"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},url:{t:0,b:{t:2,i:[{t:3}],s:"链接"}}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播放列表"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播放列表"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播客"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播客"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个电台"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个电台"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 只曲目"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"添加一个可生成播放列表的播客RSS链接,这将允许OwnTone管理订阅"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"处理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"添加播客"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"处理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"添加流"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"播放列表名称"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"保存中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"保存播放清单到列表"}}}},podcast:{remove:{info:{t:0,b:{t:2,i:[{t:3,v:"从资料库中永久移除该播客?"},{t:4,k:"separator"},{t:3,v:"(这也将移除该播客RSS列表 "},{t:4,k:"name"},{t:3,v:")"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"移除播客"}}}},"queue-item":{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配对码"}},title:{t:0,b:{t:2,i:[{t:3}],s:"请求遥控配对"}}},track:{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},rating:{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"更新所有内容"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"仅更新RSS订阅内容"}},info:{t:0,b:{t:2,i:[{t:3}],s:"扫描新的、删除的和修改的文件"}},local:{t:0,b:{t:2,i:[{t:3}],s:"仅更新本地资料库"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"正在更新本地资料库…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"重新扫描未修改文件的元数据"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"仅更新Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"更新资料库"}}}},"grouped-list":{"last-month":{t:0,b:{t:2,i:[{t:3}],s:"上月"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"上周"}},today:{t:0,b:{t:2,i:[{t:3}],s:"今日"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"未定义"}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"德语 (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"英语 (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"法语 (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"简体中文"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"繁體中文"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"从资料库中永久移除该播客吗?"},{t:4,k:"separator"},{t:3,v:"(这也将移除RSS播放列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"曲目无法播放"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:",被限制原因:"},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"播客"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"关于"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},outputs:{t:0,b:{t:2,i:[{t:3}],s:"输出"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP流"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"更新资料库"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"音量"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"隐藏单曲"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"如果处于活动状态,则隐藏单曲和与其关联的任何内容"}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"隐藏来自Spotify的内容"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"如果处于活动状态,则隐藏 Spotify 中的内容"}},title:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}}},sort:{"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"艺人 › 发行日期"}},"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"艺人 › 名称"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"评级"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"最近添加"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"最近发行"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"发行日期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"分类"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"界面贡献者包括 "},{t:4,k:"bulma"},{t:3,v:","},{t:4,k:"mdi"},{t:3,v:","},{t:4,k:"vuejs"},{t:3,v:","},{t:4,k:"axios"},{t:3,v:" 和 "},{t:4,k:"others"}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"编译支持来自于 "},{t:4,k:"options"}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"资料库"}},more:{t:0,b:{t:2,i:[{t:3}],s:"更多"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},version:{t:0,b:{t:2,i:[{t:3,v:"版本 "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"张专辑"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"作者"}}},tabs:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},authors:{t:0,b:{t:2,i:[{t:3}],s:"作者"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"文件"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"流派"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近添加"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近播放"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},history:{t:0,b:{t:2,i:[{t:3}],s:"历史"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},outputs:{title:{t:0,b:{t:2,i:[{t:3}],s:"输出"}}},player:{info:{t:0,b:{t:2,i:[{t:3}],s:"浏览资料库添加曲目"}},time:{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"直播"},{t:2,i:[{t:4,k:"time"}]},{t:2,i:[{t:4,k:"time"}]}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"播放清单是空的"}}},playlists:{title:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"name"}]},{t:2,i:[{t:3}],s:"播放列表"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"最新单集"}},title:{t:0,b:{t:2,i:[{t:3}],s:"播客"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"清单"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"表达式"}},help:{t:0,b:{t:2,i:[{t:3,v:"提示:如果您使用 "},{t:4,k:"query"},{t:3,v:" 前缀,则可以通过智能播放列表查询语言 "},{t:4,k:"help"},{t:3,v:" 进行搜索"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到结果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示专辑"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个专辑"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示艺人"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 位艺人"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示有声书"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 本有声书"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示作曲家"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示播放列表"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个播放列表"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示播客"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个播客"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示曲目"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"资料库"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}}},settings:{tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"遥控和输出"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"在线服务"}},webinterface:{t:0,b:{t:2,i:[{t:3}],s:"概览"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"特色列表"}},"followed-artists":{t:0,b:{t:2,i:[{t:3}],s:"关注的艺人"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"最新发行"}}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"清除历史"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"暂停"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"重复播放所有曲目"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"所有曲目仅播放一遍"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"重复当前曲目"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"在当前曲目后退"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"在当前曲目前进"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"随机播放曲目"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"按顺序播放曲目"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"播放上一首"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"播放下一首"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"显示/隐藏歌词"}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"文件夹"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"简单"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"智能"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"添加时间"}},album:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"专辑艺人"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"张专辑"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"专辑艺人"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"评论"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"时长"}},folders:{t:0,b:{t:2,i:[{t:3}],s:"文件夹"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"所有者"}},path:{t:0,b:{t:2,i:[{t:3}],s:"路径"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"总播放时长"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"流行度 / 粉丝数"}},position:{t:0,b:{t:2,i:[{t:3}],s:"盘符 / 曲目"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"质量"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"评级"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"发行日期"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"只曲目"}},type:{t:0,b:{t:2,i:[{t:3}],s:"类型"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"更新于"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"运行时长"}},year:{t:0,b:{t:2,i:[{t:3}],s:"年份"}}},server:{"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"已附加到队列的 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]},{t:2,i:[{t:3,v:"已附加到队列的 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}},"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"无法连接到 OwnTone 服务器"}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"清单以添加到播放列表 "},{t:4,k:"name"}]}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"请求失败 (状态:"},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}}},settings:{appearance:{auto:{t:0,b:{t:2,i:[{t:3}],s:"自动"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"深色"}},light:{t:0,b:{t:2,i:[{t:3}],s:"浅色"}},title:{t:0,b:{t:2,i:[{t:3}],s:"外观"}}},artwork:{"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone支持PNG和 JPEG封面,这些封面可以作为单独的图像文件放置在库中或嵌入到媒体文件中,也可以通过广播电台在线提供"}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"除此之外,您还可以从以下素材提供者获取封面:"}},"show-cover-artwork-in-album-lists":{t:0,b:{t:2,i:[{t:3}],s:"在专辑列表中显示封面艺术作品"}},"streamurl-ignore":{t:0,b:{t:2,i:[{t:3}],s:"忽略广播电台提供的作品"}},title:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},"use-artwork-source-coverartarchive":{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},"use-artwork-source-discogs":{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"use-artwork-source-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"没有活跃的配对请求"}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"遥控配对"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配对代码"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"远程配对请求来自于 "}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"扬声器配对和设备验证"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您的扬声器需要配对,请在下面输入它显示的 PIN以激活"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"验证码"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"使用您的 Last.fm 用户名和密码登录以启用记录功能"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone不会存储您的 Last.fm 用户名/密码,仅存储会话密钥。会话密钥不会过期"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone的构建没有来自Last.fm的官方支持"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"密码"}},spotify:{authorize:{t:0,b:{t:2,i:[{t:3}],s:"授权 API 访问"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"授予对 Spotify API 的访问权限"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone的构建没有来自 Spotify 官方的支持,也未安装 libspotify"}},reauthorize:{t:0,b:{t:2,i:[{t:3,v:"请重新授权 API 访问权限,以授予 OwnTone 以下附加访问权限:"},{t:4,k:"scopes"}]}},requirements:{t:0,b:{t:2,i:[{t:3,v:"您必须拥有 Spotify付费帐户。访问 Spotify API 可以扫描您的 Spotify库。所需范围是:"},{t:4,k:"scopes"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},user:{t:0,b:{t:2,i:[{t:3,v:"授予访问权限 "},{t:4,k:"user"}]}}},username:{t:0,b:{t:2,i:[{t:3}],s:"用户名"}}},webinterface:{genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},language:{t:0,b:{t:2,i:[{t:3}],s:"语言"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"选择顶部导航栏菜单项"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"在移动设备屏幕上,只显示汉堡菜单"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"导航条"}},"player-page":{t:0,b:{t:2,i:[{t:3}],s:"“正在播放”页面"}},"recently-added-limit":{t:0,b:{t:2,i:[{t:3}],s:"限制显示的相册数量"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"“最近添加”页面"}},"show-composer-for-genre":{t:0,b:{t:2,i:[{t:3}],s:"仅显示列出的流派的作曲家"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"以逗号分隔的流派列表,必须显示作曲家所属的流派"},{t:5,i:0},{t:3,v:"留空以始终显示作曲家"},{t:5,i:0},{t:3,v:"通过检查是否包含定义的流派之一来匹配当前曲目的流派标签。例如,设置为“古典、原声带”将显示流派标签为“当代古典”的曲目的作曲家"}]}},"show-composer-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"显示作曲家"}},"show-filepath-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"显示文件路径"}},"show-menu-item-audiobooks":{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},"show-menu-item-files":{t:0,b:{t:2,i:[{t:3}],s:"文件"}},"show-menu-item-music":{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},"show-menu-item-playlists":{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},"show-menu-item-podcasts":{t:0,b:{t:2,i:[{t:3}],s:"播客"}},"show-menu-item-radio":{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}},"show-menu-item-search":{t:0,b:{t:2,i:[{t:3}],s:"搜索"}}}}}},{"zh-TW":{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"新增"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"插播"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"新增串流"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"清除"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"編輯"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"隱藏歷史"}},login:{t:0,b:{t:2,i:[{t:3}],s:"登入"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"退出"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"全部標記為已播放"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"標記為最新"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"標記為已播放"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"遙控配對"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"移除"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"重新掃描"}},save:{t:0,b:{t:2,i:[{t:3}],s:"儲存"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"顯示更多"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"隨機播放"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"驗證"}}},data:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 張專輯"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 張專輯"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位藝人"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位藝人"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個有聲書"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個有聲書"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 信道"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 信道"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個音樂類型"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個音樂類型"}]}]}},kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"串流"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},url:{t:0,b:{t:2,i:[{t:3}],s:"鏈接"}}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個播放列表"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個播放列表"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個Podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個Podcast"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個電台"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個電台"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 首曲目"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"新增一個可生成播放列表的Podcast RSS鏈接,這將允許OwnTone管理訂閱"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"處理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"新增Podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"載入中…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"處理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"新增串流"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"播放列表名稱"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"儲存中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"儲存播放清單到列表"}}}},podcast:{remove:{info:{t:0,b:{t:2,i:[{t:3,v:"從資料庫中永久移除該Podcast?"},{t:4,k:"separator"},{t:3,v:"(這也將移除該PodcastRSS列表 "},{t:4,k:"name"},{t:3,v:")"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"移除Podcast"}}}},"queue-item":{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配對碼"}},title:{t:0,b:{t:2,i:[{t:3}],s:"請求遙控配對"}}},track:{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},rating:{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"更新所有內容"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"僅更新RSS訂閱內容"}},info:{t:0,b:{t:2,i:[{t:3}],s:"掃描新的、刪除的和修改的文件"}},local:{t:0,b:{t:2,i:[{t:3}],s:"僅更新本地資料庫"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"正在更新本地資料庫…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"重新掃描未修改文件的中繼資料"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"僅更新Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"更新資料庫"}}}},"grouped-list":{"last-month":{t:0,b:{t:2,i:[{t:3}],s:"上月"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"上周"}},today:{t:0,b:{t:2,i:[{t:3}],s:"今日"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"未定義"}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"德語 (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"英語 (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"法語 (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"簡體中文"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"繁體中文"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"從資料庫中永久移除該Podcast嗎?"},{t:4,k:"separator"},{t:3,v:"(這也將移除RSS播放列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"曲目無法播放"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:",被限制原因:"},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"關於"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},outputs:{t:0,b:{t:2,i:[{t:3}],s:"輸出"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"電台"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"設定"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP串流"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"更新資料庫"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"音量"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"隱藏單曲"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"如果處於活動狀態,則隱藏單曲和與其關聯的任何內容"}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"隱藏來自Spotify的內容"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"如果處於活動狀態,則隱藏 Spotify 中的內容"}},title:{t:0,b:{t:2,i:[{t:3}],s:"篩選"}}},sort:{"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"藝人 › 發行日期"}},"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"藝人 › 名稱"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名稱"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"評級"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"最近新增"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"最近發行"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"發行日期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"分類"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"界面貢獻者包括 "},{t:4,k:"bulma"},{t:3,v:","},{t:4,k:"mdi"},{t:3,v:","},{t:4,k:"vuejs"},{t:3,v:","},{t:4,k:"axios"},{t:3,v:" 和 "},{t:4,k:"others"}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"編譯支持來自於 "},{t:4,k:"options"}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"資料庫"}},more:{t:0,b:{t:2,i:[{t:3}],s:"更多"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},version:{t:0,b:{t:2,i:[{t:3,v:"版本 "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"作者"}}},tabs:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},authors:{t:0,b:{t:2,i:[{t:3}],s:"作者"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"文件"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近新增"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近播放"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},history:{t:0,b:{t:2,i:[{t:3}],s:"歷史"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},outputs:{title:{t:0,b:{t:2,i:[{t:3}],s:"輸出"}}},player:{info:{t:0,b:{t:2,i:[{t:3}],s:"瀏覽資料庫新增曲目"}},time:{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"直播"},{t:2,i:[{t:4,k:"time"}]},{t:2,i:[{t:4,k:"time"}]}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"播放清單是空的"}}},playlists:{title:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"name"}]},{t:2,i:[{t:3}],s:"播放列表"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"最新單集"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"清單"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"電台"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"表達式"}},help:{t:0,b:{t:2,i:[{t:3,v:"提示:如果您使用 "},{t:4,k:"query"},{t:3,v:" 前綴,則可以通過智能播放列表查詢語言 "},{t:4,k:"help"},{t:3,v:" 進行搜尋"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到結果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示專輯"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個專輯"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示藝人"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 位藝人"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示有聲書"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 本有聲書"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示作曲家"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示播放列表"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個播放列表"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示Podcast"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個Podcast"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示曲目"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"資料庫"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}}},settings:{tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"遙控和輸出"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"在線服務"}},webinterface:{t:0,b:{t:2,i:[{t:3}],s:"概覽"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"特色列表"}},"followed-artists":{t:0,b:{t:2,i:[{t:3}],s:"關注的藝人"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"最新發行"}}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"清除歷史"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"暫停"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"重復播放所有曲目"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"所有曲目僅播放一遍"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"重復當前曲目"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"在當前曲目後退"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"在當前曲目前進"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"隨機播放曲目"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"按順序播放曲目"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"播放上一首"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"播放下一首"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"顯示/隱藏歌詞"}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"檔案夾"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"簡單"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"智能"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"新增時間"}},album:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"專輯藝人"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"張專輯"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"專輯藝人"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"評論"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"時長"}},folders:{t:0,b:{t:2,i:[{t:3}],s:"檔案夾"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名稱"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"所有者"}},path:{t:0,b:{t:2,i:[{t:3}],s:"路徑"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"總播放時長"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"流行度 / 粉絲數"}},position:{t:0,b:{t:2,i:[{t:3}],s:"盤符 / 曲目"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"品質"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"評級"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"發行日期"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}},type:{t:0,b:{t:2,i:[{t:3}],s:"類型"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"更新於"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"運行時長"}},year:{t:0,b:{t:2,i:[{t:3}],s:"年份"}}},server:{"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"已附加到隊列的 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]},{t:2,i:[{t:3,v:"已附加到隊列的 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}},"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"無法連接到 OwnTone 伺服器"}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"清單以新增到播放列表 "},{t:4,k:"name"}]}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"請求失敗 (狀態:"},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}}},settings:{appearance:{auto:{t:0,b:{t:2,i:[{t:3}],s:"自動"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"深色"}},light:{t:0,b:{t:2,i:[{t:3}],s:"淺色"}},title:{t:0,b:{t:2,i:[{t:3}],s:"外觀"}}},artwork:{"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone支持PNG和 JPEG封面,這些封面可以作為單獨的圖像文件放置在庫中或嵌入到媒體文件中,也可以通過電台在線提供"}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"除此之外,您還可以從以下素材提供者獲取封面:"}},"show-cover-artwork-in-album-lists":{t:0,b:{t:2,i:[{t:3}],s:"在專輯列表中顯示封面藝術作品"}},"streamurl-ignore":{t:0,b:{t:2,i:[{t:3}],s:"忽略電台提供的作品"}},title:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},"use-artwork-source-coverartarchive":{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},"use-artwork-source-discogs":{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"use-artwork-source-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"沒有活躍的配對請求"}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"遙控配對"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配對代碼"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"遠程配對請求來自於 "}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"揚聲器配對和設備驗證"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您的揚聲器需要配對,請在下面輸入它顯示的 PIN以啓用"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"驗證碼"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"使用您的 Last.fm 用戶名和密碼登入以啓用記錄功能"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone不會存儲您的 Last.fm 用戶名/密碼,僅存儲會話密鑰。會話密鑰不會過期"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone並無Last.fm的官方支持"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"密碼"}},spotify:{authorize:{t:0,b:{t:2,i:[{t:3}],s:"授權 API 訪問"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"授予對 Spotify API 的訪問權限"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone並無 Spotify 官方的支持,也未安裝 libspotify"}},reauthorize:{t:0,b:{t:2,i:[{t:3,v:"請重新授權 API 訪問權限,以授予 OwnTone 以下附加訪問權限:"},{t:4,k:"scopes"}]}},requirements:{t:0,b:{t:2,i:[{t:3,v:"您必須擁有 Spotify付費帳戶。訪問 Spotify API 可以掃描您的 Spotify庫。所需範圍是:"},{t:4,k:"scopes"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},user:{t:0,b:{t:2,i:[{t:3,v:"授予訪問權限 "},{t:4,k:"user"}]}}},username:{t:0,b:{t:2,i:[{t:3}],s:"用戶名"}}},webinterface:{genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},language:{t:0,b:{t:2,i:[{t:3}],s:"語言"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"選擇頂部導航欄菜單項"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"在行動裝置螢幕上,只會顯示漢堡菜單"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"導航條"}},"player-page":{t:0,b:{t:2,i:[{t:3}],s:"“正在播放”頁面"}},"recently-added-limit":{t:0,b:{t:2,i:[{t:3}],s:"限制顯示的相簿數量"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"“最近新增”頁面"}},"show-composer-for-genre":{t:0,b:{t:2,i:[{t:3}],s:"僅顯示列出的音樂類型的作曲家"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"以逗號分隔的音樂類型清單,將顯示作曲家的音樂類型"},{t:5,i:0},{t:3,v:"留空以始終顯示作曲家"},{t:5,i:0},{t:3,v:"通過檢查是否包含定義的音樂類型之一來匹配當前曲目的音樂類型標籤。例如,設定為“古典、原聲帶”將顯示音樂類型標籤為“當代古典”的曲目的作曲家"}]}},"show-composer-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"顯示作曲家"}},"show-filepath-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"顯示檔案路徑"}},"show-menu-item-audiobooks":{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},"show-menu-item-files":{t:0,b:{t:2,i:[{t:3}],s:"文件"}},"show-menu-item-music":{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},"show-menu-item-playlists":{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},"show-menu-item-podcasts":{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},"show-menu-item-radio":{t:0,b:{t:2,i:[{t:3}],s:"電台"}},"show-menu-item-search":{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}}}}}}),zs=zO({fallbackLocale:"en",fallbackWarn:!1,locale:navigator.language,messages:rx,missingWarn:!1}),{t:ox}=zs.global;ut.interceptors.response.use(t=>t.data,t=>(t.request.status&&t.request.responseURL&&Ga().add({text:ox("server.request-failed",{cause:t.request.statusText,status:t.request.status,url:t.request.responseURL}),type:"danger"}),Promise.reject(t)));const uy="./api/pairing",Cp={pair(t){return ut.post(uy,{pin:t})},state(){return ut.get(uy)}},Tp=Ls("RemotesStore",{actions:{async initialise(){this.$state=await Cp.state()}},state:()=>({active:!1,remote:""})}),ax={name:"ModalDialogRemotePairing",components:{ControlPinField:u0,ModalDialog:rr},props:{show:Boolean},emits:["close"],setup(){return{remoteStore:Tp()}},data(){return{disabled:!0,pin:""}},computed:{actions(){return[{handler:this.cancel,icon:"cancel",key:"actions.cancel"},{disabled:this.disabled,handler:this.pair,icon:"vector-link",key:"actions.pair"}]}},methods:{cancel(){this.$emit("close")},onPinChange(t,e){this.pin=t,this.disabled=e},pair(){Cp.pair(this.pin).then(()=>{this.pin=""})}}},lx=["textContent"];function cx(t,e,n,s,i,r){const o=w("control-pin-field"),a=w("modal-dialog");return O(),pt(a,{actions:r.actions,show:n.show,title:t.$t("dialog.remote-pairing.title"),onClose:e[1]||(e[1]=l=>t.$emit("close"))},{content:L(()=>[N("form",{onSubmit:e[0]||(e[0]=Bn((...l)=>r.pair&&r.pair(...l),["prevent"]))},[N("label",{class:"label",textContent:nt(s.remoteStore.remote)},null,8,lx),E(o,{placeholder:t.$t("dialog.remote-pairing.pairing-code"),onInput:r.onPinChange},null,8,["placeholder","onInput"])],32)]),_:1},8,["actions","show","title"])}const ux=et(ax,[["render",cx]]),dx={name:"ControlSwitch",props:{modelValue:Boolean},emits:["update:modelValue"]},fx={class:"field mb-0 is-flex is-align-items-center"},hx={class:"toggle is-flex is-align-items-center"},px={class:"control is-flex is-align-items-center"},mx=["checked"],gx={key:0,class:"help mb-4"};function yx(t,e,n,s,i,r){return O(),F(it,null,[N("div",fx,[N("label",hx,[N("div",px,[N("input",{checked:n.modelValue,type:"checkbox",class:"toggle-checkbox is-hidden",onChange:e[0]||(e[0]=o=>t.$emit("update:modelValue",!n.modelValue))},null,40,mx),e[1]||(e[1]=N("div",{class:"toggle-switch"},null,-1))]),le(t.$slots,"label",{},void 0,!0)])]),t.$slots.help?(O(),F("div",gx,[le(t.$slots,"help",{},void 0,!0)])):vt("",!0)],64)}const Hr=et(dx,[["render",yx],["__scopeId","data-v-f999a158"]]),Ge="./api/library",_s="./api/search",Tt={add(t){return ut.post(`${Ge}/add`,null,{params:{url:t}})},album(t){return ut.get(`${Ge}/albums/${t}`)},albumTracks(t,e={limit:-1,offset:0}){return ut.get(`${Ge}/albums/${t}/tracks`,{params:e})},albums(t){return ut.get(`${Ge}/albums`,{params:{media_kind:t}})},artist(t){return ut.get(`${Ge}/artists/${t}`)},artistAlbums(t){return ut.get(`${Ge}/artists/${t}/albums`)},async artistTracks(t){const e={expression:`songartistid is "${t}"`,type:"tracks"};return(await ut.get(_s,{params:e})).tracks},artists(t){return ut.get(`${Ge}/artists`,{params:{media_kind:t}})},composer(t){return ut.get(`${Ge}/composers/${encodeURIComponent(t)}`)},async composerAlbums(t){const e={expression:`composer is "${t}" and media_kind is music`,type:"albums"};return(await ut.get(_s,{params:e})).albums},async composerTracks(t){const e={expression:`composer is "${t}" and media_kind is music`,type:"tracks"};return(await ut.get(_s,{params:e})).tracks},composers(t){return ut.get(`${Ge}/composers`,{params:{media_kind:t}})},files(t){return ut.get(`${Ge}/files`,{params:{directory:t}})},async genre(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"genres"};return(await ut.get(_s,{params:n})).genres},async genreAlbums(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"albums"};return(await ut.get(_s,{params:n})).albums},async genreTracks(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"tracks"};return(await ut.get(_s,{params:n})).tracks},async genres(t){const e={expression:`media_kind is ${t}`,type:"genres"};return(await ut.get(_s,{params:e})).genres},async newPodcastEpisodes(){const t={expression:"media_kind is podcast and play_count = 0 ORDER BY time_added DESC",type:"tracks"};return(await ut.get(_s,{params:t})).tracks},playlist(t){return ut.get(`${Ge}/playlists/${t}`)},playlistDelete(t){return ut.delete(`${Ge}/playlists/${t}`)},playlistFolder(t=0){return ut.get(`${Ge}/playlists/${t}/playlists`)},playlistTracks(t){return ut.get(`${Ge}/playlists/${t}/tracks`)},async podcastEpisodes(t){const e={expression:`media_kind is podcast and songalbumid is "${t}" ORDER BY date_released DESC`,type:"tracks"};return(await ut.get(_s,{params:e})).tracks},async radioStreams(){const t={expression:"data_kind is url and song_length = 0",media_kind:"music",type:"tracks"};return(await ut.get(_s,{params:t})).tracks},rescan(t){return ut.put("./api/rescan",null,{params:{scan_kind:t}})},rssCount(){return ut.get(`${Ge}/count`,{params:{expression:"scan_kind is rss"}})},search(t){return ut.get(_s,{params:t})},state(){return ut.get(Ge)},track(t){return ut.get(`${Ge}/tracks/${t}`)},trackPlaylists(t){return ut.get(`${Ge}/tracks/${t}/playlists`)},update(t){return ut.put("./api/update",null,{params:{scan_kind:t}})},updateAlbum(t,e){return ut.put(`${Ge}/albums/${t}/tracks`,null,{params:e})},updateTrack(t,e={}){return ut.put(`${Ge}/tracks/${t}`,null,{params:e})}},Ku=Ls("LibraryStore",{actions:{async initialise(){this.$state=await Tt.state()}},state:()=>({albums:0,artists:0,db_playtime:0,songs:0,started_at:"01",update_dialog_scan_kind:"",updated_at:"01",updating:!1})});class We{api;constructor(e){this.api=e}async getRequest(e){return await this.api.makeRequest("GET",e)}async postRequest(e,n,s=void 0){return await this.api.makeRequest("POST",e,n,s)}async putRequest(e,n,s=void 0){return await this.api.makeRequest("PUT",e,n,s)}async deleteRequest(e,n){return await this.api.makeRequest("DELETE",e,n)}paramsFor(e){const n=new URLSearchParams;for(let s of Object.getOwnPropertyNames(e))(e[s]||e[s]===0||!e[s]&&typeof e[s]=="boolean")&&n.append(s,e[s].toString());return[...n].length>0?`?${n.toString()}`:""}}class bx extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return await this.getRequest(`albums/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`albums${s}`)).albums}tracks(e,n,s,i){const r=this.paramsFor({market:n,limit:s,offset:i});return this.getRequest(`albums/${e}/tracks${r}`)}}class vx extends We{async get(e){if(typeof e=="string")return this.getRequest(`artists/${e}`);const n=this.paramsFor({ids:e});return(await this.getRequest(`artists${n}`)).artists}albums(e,n,s,i,r){const o=this.paramsFor({include_groups:n,market:s,limit:i,offset:r});return this.getRequest(`artists/${e}/albums${o}`)}topTracks(e,n){const s=this.paramsFor({market:n});return this.getRequest(`artists/${e}/top-tracks${s}`)}relatedArtists(e){return this.getRequest(`artists/${e}/related-artists`)}}class _x extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return this.getRequest(`audiobooks/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`audiobooks${s}`)).audiobooks}getAudiobookChapters(e,n,s,i){const r=this.paramsFor({market:n,limit:s,offset:i});return this.getRequest(`audiobooks/${e}/chapters${r}`)}}class Sx extends We{getCategories(e,n,s,i){const r=this.paramsFor({country:e,locale:n,limit:s,offset:i});return this.getRequest(`browse/categories${r}`)}getCategory(e,n,s){const i=this.paramsFor({country:n,locale:s});return this.getRequest(`browse/categories/${e}${i}`)}getNewReleases(e,n,s){const i=this.paramsFor({country:e,limit:n,offset:s});return this.getRequest(`browse/new-releases${i}`)}getFeaturedPlaylists(e,n,s,i,r){const o=this.paramsFor({country:e,locale:n,timestamp:s,limit:i,offset:r});return this.getRequest(`browse/featured-playlists${o}`)}getPlaylistsForCategory(e,n,s,i){const r=this.paramsFor({country:n,limit:s,offset:i});return this.getRequest(`browse/categories/${e}/playlists${r}`)}}class Ex extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return this.getRequest(`chapters/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`chapters${s}`)).chapters}}class wx extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return this.getRequest(`episodes/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`episodes${s}`)).episodes}}class kx extends We{get(e){const n=this.paramsFor(e);return this.getRequest(`recommendations${n}`)}genreSeeds(){return this.getRequest("recommendations/available-genre-seeds")}}class Cx extends We{getAvailableMarkets(){return this.getRequest("markets")}}class Tx extends We{getPlaybackState(e,n){const s=this.paramsFor({market:e,additional_types:n});return this.getRequest(`me/player${s}`)}getAvailableDevices(){return this.getRequest("me/player/devices")}getCurrentlyPlayingTrack(e,n){const s=this.paramsFor({market:e,additional_types:n});return this.getRequest(`me/player/currently-playing${s}`)}getRecentlyPlayedTracks(e,n){const s={limit:e};n&&(n.type==="before"?s.before=n.timestamp:n.type==="after"&&(s.after=n.timestamp));const i=this.paramsFor(s);return this.getRequest(`me/player/recently-played${i}`)}getUsersQueue(){return this.getRequest("me/player/queue")}async transferPlayback(e,n){if(e.length>1)throw new Error("Although an array is accepted, only a single device_id is currently supported. Supplying more than one will return 400 Bad Request");await this.putRequest("me/player",{device_ids:e,play:n})}async startResumePlayback(e,n,s,i,r){const o=this.paramsFor({device_id:e});await this.putRequest(`me/player/play${o}`,{context_uri:n,uris:s,offset:i,positionMs:r})}async pausePlayback(e){const n=this.paramsFor({device_id:e});await this.putRequest(`me/player/pause${n}`)}async skipToNext(e){const n=this.paramsFor({device_id:e});await this.postRequest(`me/player/next${n}`)}async skipToPrevious(e){const n=this.paramsFor({device_id:e});await this.postRequest(`me/player/previous${n}`)}async seekToPosition(e,n){const s=this.paramsFor({position_ms:e,device_id:n});await this.putRequest(`me/player/seek${s}`)}async setRepeatMode(e,n){const s=this.paramsFor({state:e,device_id:n});await this.putRequest(`me/player/repeat${s}`)}async setPlaybackVolume(e,n){const s=this.paramsFor({volume_percent:e,device_id:n});await this.putRequest(`me/player/volume${s}`)}async togglePlaybackShuffle(e,n){const s=this.paramsFor({state:e,device_id:n});await this.putRequest(`me/player/shuffle${s}`)}async addItemToPlaybackQueue(e,n){const s=this.paramsFor({uri:e,device_id:n});await this.postRequest(`me/player/queue${s}`)}}class Ax extends We{getPlaylist(e,n,s,i){const r=this.paramsFor({market:n,fields:s,additional_types:i?.join(",")});return this.getRequest(`playlists/${e}${r}`)}getPlaylistItems(e,n,s,i,r,o){const a=this.paramsFor({market:n,fields:s,limit:i,offset:r,additional_types:o?.join(",")});return this.getRequest(`playlists/${e}/tracks${a}`)}async changePlaylistDetails(e,n){await this.putRequest(`playlists/${e}`,n)}movePlaylistItems(e,n,s,i){return this.updatePlaylistItems(e,{range_start:n,range_length:s,insert_before:i})}updatePlaylistItems(e,n){return this.putRequest(`playlists/${e}/tracks`,n)}async addItemsToPlaylist(e,n,s){await this.postRequest(`playlists/${e}/tracks`,{position:s,uris:n})}async removeItemsFromPlaylist(e,n){await this.deleteRequest(`playlists/${e}/tracks`,n)}getUsersPlaylists(e,n,s){const i=this.paramsFor({limit:n,offset:s});return this.getRequest(`users/${e}/playlists${i}`)}createPlaylist(e,n){return this.postRequest(`users/${e}/playlists`,n)}getPlaylistCoverImage(e){return this.getRequest(`playlists/${e}/images`)}async addCustomPlaylistCoverImage(e,n){let s="";if(n instanceof Buffer)s=n.toString("base64");else if(n instanceof HTMLCanvasElement)s=n.toDataURL("image/jpeg").split(";base64,")[1];else if(n instanceof HTMLImageElement){const i=document.createElement("canvas");i.width=n.width,i.height=n.height;const r=i.getContext("2d");if(!r)throw new Error("Could not get canvas context");r.drawImage(n,0,0),s=i.toDataURL("image/jpeg").split(";base64,")[1]}else if(typeof n=="string")s=n;else throw new Error("ImageData must be a Buffer, HTMLImageElement, HTMLCanvasElement, or string containing a base64 encoded jpeg");await this.addCustomPlaylistCoverImageFromBase64String(e,s)}async addCustomPlaylistCoverImageFromBase64String(e,n){await this.putRequest(`playlists/${e}/images`,n,"image/jpeg")}}class Ox extends We{async execute(e,n,s,i,r,o){const a=this.paramsFor({q:e,type:n,market:s,limit:i,offset:r,include_external:o});return await this.getRequest(`search${a}`)}}class xx extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return this.getRequest(`shows/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`shows${s}`)).shows}episodes(e,n,s,i){const r=this.paramsFor({market:n,limit:s,offset:i});return this.getRequest(`shows/${e}/episodes${r}`)}}class Ix extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return this.getRequest(`tracks/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`tracks${s}`)).tracks}async audioFeatures(e){if(typeof e=="string")return this.getRequest(`audio-features/${e}`);const n=this.paramsFor({ids:e});return(await this.getRequest(`audio-features${n}`)).audio_features}audioAnalysis(e){return this.getRequest(`audio-analysis/${e}`)}}const Ap={access_token:"emptyAccessToken",token_type:"",expires_in:0,refresh_token:"",expires:-1};function aa(t){return t===Ap}class Nx extends We{profile(e){return this.getRequest(`users/${e}`)}}class Px extends We{albums;audiobooks;episodes;playlists;shows;tracks;constructor(e){super(e),this.albums=new Rx(e),this.audiobooks=new Dx(e),this.episodes=new Lx(e),this.playlists=new Mx(e),this.shows=new $x(e),this.tracks=new Fx(e)}profile(){return this.getRequest("me")}topItems(e,n,s,i){const r=this.paramsFor({time_range:n,limit:s,offset:i});return this.getRequest(`me/top/${e}${r}`)}followedArtists(e,n){const s=this.paramsFor({type:"artist",after:e,limit:n});return this.getRequest(`me/following${s}`)}async followArtistsOrUsers(e,n){const s=this.paramsFor({type:n});await this.putRequest(`me/following${s}`,{ids:e})}async unfollowArtistsOrUsers(e,n){const s=this.paramsFor({type:n});await this.deleteRequest(`me/following${s}`,{ids:e})}followsArtistsOrUsers(e,n){const s=this.paramsFor({ids:e,type:n});return this.getRequest(`me/following/contains${s}`)}}class Rx extends We{savedAlbums(e,n,s){const i=this.paramsFor({limit:e,offset:n,market:s});return this.getRequest(`me/albums${i}`)}async saveAlbums(e){await this.putRequest("me/albums",e)}async removeSavedAlbums(e){await this.deleteRequest("me/albums",e)}hasSavedAlbums(e){const n=this.paramsFor({ids:e});return this.getRequest(`me/albums/contains${n}`)}}class Dx extends We{savedAudiobooks(e,n){const s=this.paramsFor({limit:e,offset:n});return this.getRequest(`me/audiobooks${s}`)}async saveAudiobooks(e){await this.putRequest("me/audiobooks",e)}async removeSavedAudiobooks(e){await this.deleteRequest("me/audiobooks",e)}hasSavedAudiobooks(e){const n=this.paramsFor({ids:e});return this.getRequest(`me/audiobooks/contains${n}`)}}class Lx extends We{savedEpisodes(e,n,s){const i=this.paramsFor({market:e,limit:n,offset:s});return this.getRequest(`me/episodes${i}`)}async saveEpisodes(e){await this.putRequest("me/episodes",e)}async removeSavedEpisodes(e){await this.deleteRequest("me/episodes",e)}hasSavedEpisodes(e){const n=this.paramsFor({ids:e});return this.getRequest(`me/episodes/contains${n}`)}}class Mx extends We{playlists(e,n){const s=this.paramsFor({limit:e,offset:n});return this.getRequest(`me/playlists${s}`)}async follow(e){await this.putRequest(`playlists/${e}/followers`)}async unfollow(e){await this.deleteRequest(`playlists/${e}/followers`)}isFollowing(e,n){const s=this.paramsFor({ids:n});return this.getRequest(`playlists/${e}/followers/contains${s}`)}}class $x extends We{savedShows(e,n){const s=this.paramsFor({limit:e,offset:n});return this.getRequest(`me/shows${s}`)}saveShows(e){const n=this.paramsFor({ids:e});return this.putRequest(`me/shows${n}`)}removeSavedShows(e,n){const s=this.paramsFor({ids:e,market:n});return this.deleteRequest(`me/shows${s}`)}hasSavedShow(e){const n=this.paramsFor({ids:e});return this.getRequest(`me/shows/contains${n}`)}}class Fx extends We{savedTracks(e,n,s){const i=this.paramsFor({limit:e,offset:n,market:s});return this.getRequest(`me/tracks${i}`)}async saveTracks(e){await this.putRequest("me/tracks",e)}async removeSavedTracks(e){await this.deleteRequest("me/tracks",e)}hasSavedTracks(e){const n=this.paramsFor({ids:e});return this.getRequest(`me/tracks/contains${n}`)}}class Vx{static get current(){return this.hasSubtleCrypto?window.crypto:this.tryLoadNodeWebCrypto()}static get hasSubtleCrypto(){return typeof window<"u"&&typeof window.crypto<"u"&&typeof window.crypto.subtle<"u"}static tryLoadNodeWebCrypto(){try{const{webcrypto:e}=require("crypto");return e}catch(e){throw e}}}class zn{static async refreshCachedAccessToken(e,n){const s=await zn.refreshToken(e,n.refresh_token);return zn.toCachable(s)}static toCachable(e){return e.expires&&e.expires===-1?e:{...e,expires:this.calculateExpiry(e)}}static calculateExpiry(e){return Date.now()+e.expires_in*1e3}static async refreshToken(e,n){const s=new URLSearchParams;s.append("client_id",e),s.append("grant_type","refresh_token"),s.append("refresh_token",n);const i=await fetch("https://accounts.spotify.com/api/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s}),r=await i.text();if(!i.ok)throw new Error(`Failed to refresh token: ${i.statusText}, ${r}`);return JSON.parse(r)}static generateCodeVerifier(e){let n="",s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let i=0;i{const n=await this.getTokenFromApi();return zn.toCachable(n)},async n=>{const s=await this.getTokenFromApi();return zn.toCachable(s)})}async getAccessToken(){return await this.cache.get(wa.cacheKey)}removeAccessToken(){this.cache.remove(wa.cacheKey)}async getTokenFromApi(){const e={grant_type:"client_credentials",scope:this.scopes.join(" ")},n=Object.keys(e).map(l=>l+"="+e[l]).join("&"),s=typeof Buffer<"u",i=`${this.clientId}:${this.clientSecret}`,r=s?Buffer.from(i).toString("base64"):btoa(i),o=await fetch("https://accounts.spotify.com/api/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:`Basic ${r}`},body:n});if(o.status!==200)throw new Error("Failed to get access token.");return await o.json()}}class ka{clientId;redirectUri;scopes;static cacheKey="spotify-sdk:ImplicitGrantStrategy:token";configuration=null;get cache(){return this.configuration.cachingStrategy}constructor(e,n,s){this.clientId=e,this.redirectUri=n,this.scopes=s}setConfiguration(e){this.configuration=e}async getOrCreateAccessToken(){return await this.cache.getOrCreate(ka.cacheKey,async()=>{const n=await this.redirectOrVerifyToken();return zn.toCachable(n)},async n=>zn.refreshCachedAccessToken(this.clientId,n))}async getAccessToken(){return await this.cache.get(ka.cacheKey)}removeAccessToken(){this.cache.remove(ka.cacheKey)}async redirectOrVerifyToken(){const e=new URLSearchParams(window.location.hash.substring(1)),n=e.get("access_token");if(n)return Promise.resolve({access_token:n,token_type:e.get("token_type")??"",expires_in:parseInt(e.get("expires_in")??"0"),refresh_token:e.get("refresh_token")??"",expires:Number(e.get("expires"))||0});var i=(this.scopes??[]).join(" ");const r=new URLSearchParams;r.append("client_id",this.clientId),r.append("response_type","token"),r.append("redirect_uri",this.redirectUri),r.append("scope",i);const o="https://accounts.spotify.com/authorize?"+r.toString();return this.configuration.redirectionStrategy.redirect(o),Ap}}class go{clientId;redirectUri;scopes;static cacheKey="spotify-sdk:AuthorizationCodeWithPKCEStrategy:token";configuration=null;get cache(){return this.configuration.cachingStrategy}constructor(e,n,s){this.clientId=e,this.redirectUri=n,this.scopes=s}setConfiguration(e){this.configuration=e}async getOrCreateAccessToken(){return await this.cache.getOrCreate(go.cacheKey,async()=>{const n=await this.redirectOrVerifyToken();return zn.toCachable(n)},async n=>zn.refreshCachedAccessToken(this.clientId,n))}async getAccessToken(){return await this.cache.get(go.cacheKey)}removeAccessToken(){this.cache.remove(go.cacheKey)}async redirectOrVerifyToken(){const n=new URLSearchParams(window.location.search).get("code");if(n){const s=await this.verifyAndExchangeCode(n);return this.removeCodeFromUrl(),s}return this.redirectToSpotify(),Ap}async redirectToSpotify(){const e=zn.generateCodeVerifier(128),n=await zn.generateCodeChallenge(e),s={verifier:e,expiresOnAccess:!0};this.cache.setCacheItem("spotify-sdk:verifier",s);const i=await this.generateRedirectUrlForUser(this.scopes,n);await this.configuration.redirectionStrategy.redirect(i)}async verifyAndExchangeCode(e){const s=(await this.cache.get("spotify-sdk:verifier"))?.verifier;if(!s)throw new Error("No verifier found in cache - can't validate query string callback parameters.");return await this.configuration.redirectionStrategy.onReturnFromRedirect(),await this.exchangeCodeForToken(e,s)}removeCodeFromUrl(){const e=new URL(window.location.href);e.searchParams.delete("code");const n=e.search?e.href:e.href.replace("?","");window.history.replaceState({},document.title,n)}async generateRedirectUrlForUser(e,n){const s=e.join(" "),i=new URLSearchParams;return i.append("client_id",this.clientId),i.append("response_type","code"),i.append("redirect_uri",this.redirectUri),i.append("scope",s),i.append("code_challenge_method","S256"),i.append("code_challenge",n),`https://accounts.spotify.com/authorize?${i.toString()}`}async exchangeCodeForToken(e,n){const s=new URLSearchParams;s.append("client_id",this.clientId),s.append("grant_type","authorization_code"),s.append("code",e),s.append("redirect_uri",this.redirectUri),s.append("code_verifier",n);const i=await fetch("https://accounts.spotify.com/api/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s}),r=await i.text();if(!i.ok)throw new Error(`Failed to exchange code for token: ${i.statusText}, ${r}`);return JSON.parse(r)}}class Ux{async deserialize(e){const n=await e.text();return n.length>0?JSON.parse(n):null}}class Hx{async validateResponse(e){switch(e.status){case 401:throw new Error("Bad or expired token. This can happen if the user revoked a token or the access token has expired. You should re-authenticate the user.");case 403:const n=await e.text();throw new Error(`Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here. Body: ${n}`);case 429:throw new Error("The app has exceeded its rate limits.");default:if(!e.status.toString().startsWith("20")){const s=await e.text();throw new Error(`Unrecognised response code: ${e.status} - ${e.statusText}. Body: ${s}`)}}}}class jx{async handleErrors(e){return!1}}class Bx{async redirect(e){document.location=e.toString()}async onReturnFromRedirect(){}}class a_{storage;updateFunctions;autoRenewInterval;autoRenewWindow;constructor(e,n=new Map,s=0,i=120*1e3){this.storage=e,this.updateFunctions=n,this.autoRenewInterval=s,this.autoRenewWindow=i,this.autoRenewInterval>0&&setInterval(()=>this.autoRenewRenewableItems(),this.autoRenewInterval)}async getOrCreate(e,n,s){s&&this.updateFunctions.set(e,s);const i=await this.get(e);if(i)return i;const r=await n();if(!r)throw new Error("Could not create cache item");return aa(r)||this.setCacheItem(e,r),r}async get(e){let n=this.storage.get(e),s=n?JSON.parse(n):null;if(this.itemDueToExpire(s)&&this.updateFunctions.has(e)){const i=this.updateFunctions.get(e);await this.tryUpdateItem(e,s,i),n=this.storage.get(e),s=n?JSON.parse(n):null}return s?s.expires&&(s.expires===-1||s.expires<=Date.now())?(this.remove(e),null):(s.expiresOnAccess&&s.expiresOnAccess===!0&&this.remove(e),s):null}set(e,n,s){const i=Date.now()+s,r={...n,expires:i};this.setCacheItem(e,r)}setCacheItem(e,n){const s=JSON.stringify(n);this.storage.set(e,s)}remove(e){this.storage.remove(e)}itemDueToExpire(e){return!e||!e.expires?!1:e.expires-Date.now(){const s=await this.get(n);s&&e&&this.itemDueToExpire(s)&&await this.tryUpdateItem(n,s,e)})}async tryUpdateItem(e,n,s){try{const i=await s(n);i&&this.setCacheItem(e,i)}catch(i){console.error(i)}}}class Wx extends a_{constructor(){super(new Gx)}}class Gx{get(e){return localStorage.getItem(e)}set(e,n){localStorage.setItem(e,n)}remove(e){localStorage.removeItem(e)}}class Kx extends a_{constructor(){super(new qx)}}class qx{cache=new Map;get(e){return this.cache.get(e)??null}set(e,n){this.cache.set(e,n)}remove(e){this.cache.delete(e)}}class zx{clientId;accessToken;refreshTokenAction;constructor(e,n,s){this.clientId=e,this.accessToken=n,this.refreshTokenAction=s||zn.refreshCachedAccessToken,this.accessToken.expires||(this.accessToken.expires=zn.calculateExpiry(this.accessToken))}setConfiguration(e){}async getOrCreateAccessToken(){if(this.accessToken.expires&&this.accessToken.expires<=Date.now()){const e=await this.refreshTokenAction(this.clientId,this.accessToken);this.accessToken=e}return this.accessToken}async getAccessToken(){return this.accessToken}removeAccessToken(){this.accessToken={access_token:"",token_type:"",expires_in:0,refresh_token:"",expires:0}}}class ji{sdkConfig;static rootUrl="https://api.spotify.com/v1/";authenticationStrategy;albums;artists;audiobooks;browse;chapters;episodes;recommendations;markets;player;playlists;shows;tracks;users;search;currentUser;constructor(e,n){this.sdkConfig=this.initializeSdk(n),this.albums=new bx(this),this.artists=new vx(this),this.audiobooks=new _x(this),this.browse=new Sx(this),this.chapters=new Ex(this),this.episodes=new wx(this),this.recommendations=new kx(this),this.markets=new Cx(this),this.player=new Tx(this),this.playlists=new Ax(this),this.shows=new xx(this),this.tracks=new Ix(this),this.users=new Nx(this),this.currentUser=new Px(this);const s=new Ox(this);this.search=s.execute.bind(s),this.authenticationStrategy=e,this.authenticationStrategy.setConfiguration(this.sdkConfig)}async makeRequest(e,n,s=void 0,i=void 0){try{const r=await this.authenticationStrategy.getOrCreateAccessToken();if(aa(r))return console.warn("No access token found, authenticating now."),null;const o=r?.access_token,a=ji.rootUrl+n,l={method:e,headers:{Authorization:`Bearer ${o}`,"Content-Type":i??"application/json"},body:s?typeof s=="string"?s:JSON.stringify(s):void 0};this.sdkConfig.beforeRequest(a,l);const c=await this.sdkConfig.fetch(a,l);return this.sdkConfig.afterRequest(a,l,c),c.status===204?null:(await this.sdkConfig.responseValidator.validateResponse(c),this.sdkConfig.deserializer.deserialize(c))}catch(r){if(!await this.sdkConfig.errorHandler.handleErrors(r))throw r;return null}}initializeSdk(e){const n=typeof window<"u";return{...{fetch:(i,r)=>fetch(i,r),beforeRequest:(i,r)=>{},afterRequest:(i,r,o)=>{},deserializer:new Ux,responseValidator:new Hx,errorHandler:new jx,redirectionStrategy:new Bx,cachingStrategy:n?new Wx:new Kx},...e}}switchAuthenticationStrategy(e){this.authenticationStrategy=e,this.authenticationStrategy.setConfiguration(this.sdkConfig),this.authenticationStrategy.getOrCreateAccessToken()}async authenticate(){const e=await this.authenticationStrategy.getOrCreateAccessToken();return{authenticated:e.expires>Date.now()&&!aa(e),accessToken:e}}async getAccessToken(){return this.authenticationStrategy.getAccessToken()}logOut(){this.authenticationStrategy.removeAccessToken()}static withUserAuthorization(e,n,s=[],i){const r=new go(e,n,s);return new ji(r,i)}static withClientCredentials(e,n,s=[],i){const r=new wa(e,n,s);return new ji(r,i)}static withImplicitGrant(e,n,s=[],i){const r=new ka(e,n,s);return new ji(r,i)}static withAccessToken(e,n,s){const i=new zx(e,n);return new ji(i,s)}static async performUserAuthorization(e,n,s,i,r){const o=new go(e,n,s),l=await new ji(o,r).authenticationStrategy.getOrCreateAccessToken();return aa(l)||(typeof i=="string"?(console.log("Posting access token to postback URL."),await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)})):await i(l)),{authenticated:l.expires>Date.now()&&!aa(l),accessToken:l}}}const kn={lastfm(){return ut.get("./api/lastfm")},loginLastfm(t){return ut.post("./api/lastfm-login",t)},logoutLastfm(){return ut.get("./api/lastfm-logout")},logoutSpotify(){return ut.get("./api/spotify-logout")},spotify(){return ut.get("./api/spotify").then(t=>({api:ji.withAccessToken(t.webapi_client_id,{access_token:t.webapi_token},{errorHandler:{handleErrors:()=>!0}}),configuration:t}))}},Qn=Ls("ServicesStore",{actions:{async initialiseLastfm(){this.lastfm=await kn.lastfm()},initialiseSpotify(){kn.spotify().then(({configuration:t})=>{this.spotify=t})}},getters:{grantedSpotifyScopes:t=>t.spotify.webapi_granted_scope?.split(" ")??[],hasMissingSpotifyScopes:t=>t.missingSpotifyScopes.length>0,isAuthorizationRequired:t=>!t.isSpotifyActive||t.hasMissingSpotifyScopes,isLastfmActive:t=>t.lastfm.scrobbling_enabled,isLastfmEnabled:t=>t.lastfm.enabled,isSpotifyActive:t=>t.spotify.webapi_token_valid,isSpotifyEnabled:t=>t.spotify.spotify_installed,missingSpotifyScopes(t){const e=new Set(t.grantedSpotifyScopes);return t.requiredSpotifyScopes.filter(n=>!e.has(n))??[]},requiredSpotifyScopes:t=>t.spotify.webapi_required_scope?.split(" ")??[]},state:()=>({lastfm:{},spotify:{}})}),Xx={name:"ModalDialogUpdate",components:{ControlSwitch:Hr,ModalDialog:rr},props:{show:Boolean},emits:["close"],setup(){return{libraryStore:Ku(),servicesStore:Qn()}},data(){return{rescanMetadata:!1}},computed:{actions(){const t=[{handler:this.cancel,icon:"cancel",key:"actions.cancel"}];return this.libraryStore.updating||t.push({handler:this.analyse,icon:"check",key:"actions.rescan"}),t}},methods:{analyse(){this.rescanMetadata?Tt.rescan(this.libraryStore.update_dialog_scan_kind):Tt.update(this.libraryStore.update_dialog_scan_kind)},cancel(){this.$emit("close"),this.libraryStore.update_dialog_scan_kind=""}}},Yx={key:0},Zx={key:0,class:"field"},Jx=["textContent"],Qx={class:"control"},tI={class:"select is-small"},eI=["textContent"],nI=["textContent"],sI=["textContent"],iI=["textContent"],rI=["textContent"],oI={key:1},aI=["textContent"];function lI(t,e,n,s,i,r){const o=w("control-switch"),a=w("modal-dialog");return O(),pt(a,{actions:r.actions,show:n.show,title:t.$t("dialog.update.title"),onClose:e[2]||(e[2]=l=>t.$emit("close"))},{content:L(()=>[s.libraryStore.updating?(O(),F("div",oI,[N("div",{class:"mb-3",textContent:nt(t.$t("dialog.update.progress"))},null,8,aI)])):(O(),F("div",Yx,[s.servicesStore.isSpotifyActive?(O(),F("div",Zx,[N("label",{class:"label",textContent:nt(t.$t("dialog.update.info"))},null,8,Jx),N("div",Qx,[N("div",tI,[ms(N("select",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.libraryStore.update_dialog_scan_kind=l)},[N("option",{value:"",textContent:nt(t.$t("dialog.update.all"))},null,8,eI),N("option",{value:"files",textContent:nt(t.$t("dialog.update.local"))},null,8,nI),s.servicesStore.isSpotifyActive?(O(),F("option",{key:0,value:"spotify",textContent:nt(t.$t("dialog.update.spotify"))},null,8,sI)):vt("",!0),N("option",{value:"rss",textContent:nt(t.$t("dialog.update.feeds"))},null,8,iI)],512),[[fp,s.libraryStore.update_dialog_scan_kind]])])])])):vt("",!0),E(o,{modelValue:i.rescanMetadata,"onUpdate:modelValue":e[1]||(e[1]=l=>i.rescanMetadata=l)},{label:L(()=>[N("span",{textContent:nt(t.$t("dialog.update.rescan-metadata"))},null,8,rI)]),_:1},8,["modelValue"])]))]),_:1},8,["actions","show","title"])}const cI=et(Xx,[["render",lI]]),ts=Ls("UIStore",{actions:{hideMenus(){this.showBurgerMenu=!1,this.showPlayerMenu=!1},toggleBurgerMenu(){this.showPlayerMenu=!1,this.showBurgerMenu=!this.showBurgerMenu},toggleHideReadItems(){this.hideReadItems=!this.hideReadItems},togglePlayerMenu(){this.showBurgerMenu=!1,this.showPlayerMenu=!this.showPlayerMenu}},state:()=>({albumsSort:1,artistAlbumsSort:1,artistTracksSort:1,artistsSort:1,composerTracksSort:1,genreTracksSort:1,hideReadItems:!1,hideSingles:!1,hideSpotify:!1,showBurgerMenu:!1,showPlayerMenu:!1,showUpdateDialog:!1})}),uI={name:"ControlLink",props:{to:{required:!0,type:Object}},setup(){return{uiStore:ts()}},methods:{open(){this.uiStore.hideMenus(),this.$router.push(this.to)}}},dI=["href"];function fI(t,e,n,s,i,r){return O(),F("a",{href:t.$router.resolve(n.to).href,onClick:e[0]||(e[0]=Bn((...o)=>r.open&&r.open(...o),["stop","prevent"]))},[le(t.$slots,"default")],8,dI)}const l_=et(uI,[["render",fI]]),Op={name:"ControlSlider",props:{disabled:Boolean,max:{required:!0,type:Number},value:{required:!0,type:Number}},emits:["update:value"],computed:{ratio(){return this.value/this.max}}},dy=()=>{cp(t=>({"71a992eb":t.ratio}))},fy=Op.setup;Op.setup=fy?(t,e)=>(dy(),fy(t,e)):dy;const hI=["value","disabled","max"];function pI(t,e,n,s,i,r){return O(),F("input",{value:n.value,disabled:n.disabled,class:Gt(["slider",{"is-inactive":n.disabled}]),max:n.max,type:"range",onInput:e[0]||(e[0]=o=>t.$emit("update:value",o.target.valueAsNumber))},null,42,hI)}const qu=et(Op,[["render",pI],["__scopeId","data-v-460ca666"]]),ss="./api/player",en={consume(t){return ut.put(`${ss}/consume`,null,{params:{state:t}})},next(){return ut.put(`${ss}/next`)},pause(){return ut.put(`${ss}/pause`)},play(t={}){return ut.put(`${ss}/play`,null,{params:t})},previous(){return ut.put(`${ss}/previous`)},repeat(t){return ut.put(`${ss}/repeat`,null,{params:{state:t}})},seek(t){return ut.put(`${ss}/seek`,null,{params:{seek_ms:t}})},seekToPosition(t){return ut.put(`${ss}/seek`,null,{params:{position_ms:t}})},setVolume(t,e=null){const n={volume:t,...e!==null&&{output_id:e}};return ut.put(`${ss}/volume`,null,{params:n})},shuffle(t){return ut.put(`${ss}/shuffle`,null,{params:{state:t}})},state(){return ut.get(ss)},stop(){return ut.put(`${ss}/stop`)}},{t:hy}=zs.global,Pi="./api/queue",ae={async add(t,e=!1){if(e){const{current:s}=$s();s?.id&&(t.position=s.position+1)}const n=await ut.post(`${Pi}/items/add`,null,{params:t});return Ga().add({text:hy("server.appended-tracks",{count:n.count}),timeout:2e3,type:"info"}),n},addExpression(t,e=!1){return this.add({expression:t},e)},addUri(t,e=!1){return this.add({uris:t},e)},clear(){return ut.put(`${Pi}/clear`)},move(t,e){return ut.put(`${Pi}/items/${t}`,null,{params:{new_position:e}})},playExpression(t,e,n){const s={clear:"true",expression:t,playback:"start",playback_from_position:n,shuffle:e};return ut.post(`${Pi}/items/add`,null,{params:s})},playUri(t,e,n){const s={clear:"true",playback:"start",playback_from_position:n,shuffle:e,uris:t};return ut.post(`${Pi}/items/add`,null,{params:s})},remove(t){return ut.delete(`${Pi}/items/${t}`)},async saveToPlaylist(t){const{data:e}=await ut.post(`${Pi}/save`,null,{params:{name:t}});return Ga().add({text:hy("server.queue-saved",{name:t}),timeout:2e3,type:"info"}),e},state(){return ut.get(Pi)}},mI={state(){return ut.get("./api/config")}},Ho=Ls("ConfigurationStore",{actions:{async initialise(){this.$state=await mI.state()}},state:()=>({allow_modifying_stored_playlists:!1,buildoptions:[],default_playlist_directory:"",directories:[],hide_singles:!1,library_name:"",radio_playlists:!1,version:"",websocket_port:0})}),$s=Ls("QueueStore",{actions:{async initialise(){this.$state=await ae.state()}},getters:{current(t){const e=Wn();return e.initialise(),t.items.find(n=>n.id===e.item_id)??{}},isEmpty(t){return t.count===0},isPauseAllowed(t){return t.current&&t.current.data_kind!=="pipe"},isSavingAllowed(){const t=Ho();return t.allow_modifying_stored_playlists&&t.default_playlist_directory}},state:()=>({count:0,items:[],version:0})}),Wn=Ls("PlayerStore",{actions:{async initialise(){this.$state=await en.state();const t=$s();t.current.track_id&&Tt.track(t.current.track_id).then(e=>{this.lyricsContent=e.lyrics||""})}},getters:{isMuted:t=>t.volume===0,isPlaying:t=>t.state==="play",isRepeatAll:t=>t.repeat==="all",isRepeatOff:t=>t.repeat==="off",isRepeatSingle:t=>t.repeat==="single",isStopped:t=>t.state==="stop"},state:()=>({consume:!1,item_id:0,item_length_ms:0,item_progress_ms:0,lyricsContent:"",repeat:"off",showLyrics:!1,shuffle:!1,state:"stop",volume:0})}),gI={name:"ControlVolume",components:{ControlSlider:qu},setup(){return{playerStore:Wn()}},data(){return{volume:0}},computed:{icon(){return this.playerStore.isMuted?"volume-off":"volume-high"}},watch:{"playerStore.volume"(){this.playerStore.isMuted||(this.volume=this.playerStore.volume)}},methods:{changeVolume(){en.setVolume(this.playerStore.volume)},toggle(){this.playerStore.isMuted?this.playerStore.volume=this.volume:this.playerStore.volume=0,this.changeVolume()}}},yI={class:"media is-align-items-center mb-0"},bI={class:"media-left"},vI={class:"media-content"},_I=["textContent"];function SI(t,e,n,s,i,r){const o=w("mdicon"),a=w("control-slider");return O(),F("div",yI,[N("div",bI,[N("button",{class:"button is-small",onClick:e[0]||(e[0]=(...l)=>r.toggle&&r.toggle(...l))},[E(o,{class:"icon",name:r.icon},null,8,["name"])])]),N("div",vI,[N("div",{class:"is-size-7 is-uppercase",textContent:nt(t.$t("navigation.volume"))},null,8,_I),E(a,{value:s.playerStore.volume,"onUpdate:value":e[1]||(e[1]=l=>s.playerStore.volume=l),max:100,onChange:r.changeVolume},null,8,["value","onChange"])])])}const c_=et(gI,[["render",SI]]),Yd="./api/outputs",Zc={state(){return ut.get(Yd)},toggle(t){return ut.put(`${Yd}/${t}/toggle`)},update(t,e){return ut.put(`${Yd}/${t}`,e)}},EI={name:"ControlOutputVolume",components:{ControlSlider:qu},props:{output:{required:!0,type:Object}},data(){return{volume:this.output.volume}},computed:{icon(){return this.output.type.startsWith("AirPlay")?"cast-variant":this.output.type==="Chromecast"?"cast":this.output.type==="fifo"?"pipe":"server"}},watch:{output(){this.volume=this.output.volume}},methods:{changeVolume(){en.setVolume(this.volume,this.output.id)},toggle(){Zc.update(this.output.id,{selected:!this.output.selected})}}},wI={class:"media is-align-items-center mb-0"},kI={class:"media-left"},CI={class:"media-content"},TI=["textContent"];function AI(t,e,n,s,i,r){const o=w("mdicon"),a=w("control-slider");return O(),F("div",wI,[N("div",kI,[N("button",{class:Gt(["button is-small",{"has-text-grey-light":!n.output.selected}]),onClick:e[0]||(e[0]=(...l)=>r.toggle&&r.toggle(...l))},[E(o,{class:"icon",name:r.icon,title:n.output.type},null,8,["name","title"])],2)]),N("div",CI,[N("div",{class:Gt(["is-size-7 is-uppercase",{"has-text-grey-light":!n.output.selected}]),textContent:nt(n.output.name)},null,10,TI),E(a,{value:i.volume,"onUpdate:value":e[1]||(e[1]=l=>i.volume=l),disabled:!n.output.selected,max:100,onChange:r.changeVolume},null,8,["value","disabled","onChange"])])])}const u_=et(EI,[["render",AI]]),OI={name:"ControlPlayerBack",props:{offset:{required:!0,type:Number}},setup(){return{playerStore:Wn(),queueStore:$s()}},computed:{disabled(){return this.queueStore.isEmpty||this.playerStore.isStopped},visible(){return["podcast","audiobook"].includes(this.queueStore.current.media_kind)}},methods:{seek(){en.seek(this.offset*-1)}}},xI=["disabled"];function II(t,e,n,s,i,r){const o=w("mdicon");return r.visible?(O(),F("button",{key:0,disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.seek&&r.seek(...a))},[E(o,{class:"icon",name:"rewind-10",title:t.$t("player.button.seek-backward")},null,8,["title"])],8,xI)):vt("",!0)}const NI=et(OI,[["render",II]]),PI={name:"ControlPlayerConsume",setup(){return{playerStore:Wn()}},methods:{toggle(){en.consume(!this.playerStore.consume)}}};function RI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{class:Gt({"is-dark":s.playerStore.consume}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:"fire",size:"16",title:t.$t("player.button.consume")},null,8,["title"])],2)}const DI=et(PI,[["render",RI]]),LI={name:"ControlPlayerForward",props:{offset:{required:!0,type:Number}},setup(){return{playerStore:Wn(),queueStore:$s()}},computed:{disabled(){return this.queueStore.isEmpty||this.playerStore.isStopped},visible(){return["podcast","audiobook"].includes(this.queueStore.current.media_kind)}},methods:{seek(){en.seek(this.offset)}}},MI=["disabled"];function $I(t,e,n,s,i,r){const o=w("mdicon");return r.visible?(O(),F("button",{key:0,disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.seek&&r.seek(...a))},[E(o,{class:"icon",name:"fast-forward-30",title:t.$t("player.button.seek-forward")},null,8,["title"])],8,MI)):vt("",!0)}const FI=et(LI,[["render",$I]]),VI={name:"ControlPlayerLyrics",setup(){return{playerStore:Wn()}},computed:{icon(){return this.playerStore.showLyrics?"script-text-play":"script-text-outline"}},methods:{toggle(){this.playerStore.showLyrics=!this.playerStore.showLyrics}}};function UI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{class:Gt({"is-dark":s.playerStore.showLyrics}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:r.icon,size:16,title:t.$t("player.button.toggle-lyrics")},null,8,["name","title"])],2)}const HI=et(VI,[["render",UI]]),jI={name:"ControlPlayerNext",setup(){return{queueStore:$s()}},computed:{disabled(){return this.queueStore.isEmpty}},methods:{next(){en.next()}}},BI=["disabled"];function WI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.next&&r.next(...a))},[E(o,{class:"icon",name:"skip-forward",title:t.$t("player.button.skip-forward")},null,8,["title"])],8,BI)}const GI=et(jI,[["render",WI]]),KI={name:"ControlPlayerPlay",setup(){return{playerStore:Wn(),queueStore:$s()}},computed:{disabled(){return this.queueStore.isEmpty},icon(){if(this.playerStore.isPlaying){if(this.queueStore.isPauseAllowed)return"pause"}else return"play";return"stop"}},methods:{toggle(){this.playerStore.isPlaying&&this.queueStore.isPauseAllowed?en.pause():this.playerStore.isPlaying&&!this.queueStore.isPauseAllowed?en.stop():en.play()}}},qI=["disabled"];function zI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:r.icon,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],8,qI)}const XI=et(KI,[["render",zI]]),YI={name:"ControlPlayerPrevious",setup(){return{queueStore:$s()}},computed:{disabled(){return this.queueStore.isEmpty}},methods:{previous(){en.previous()}}},ZI=["disabled"];function JI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.previous&&r.previous(...a))},[E(o,{class:"icon",name:"skip-backward",title:t.$t("player.button.skip-backward")},null,8,["title"])],8,ZI)}const QI=et(YI,[["render",JI]]),tN={name:"ControlPlayerRepeat",setup(){return{playerStore:Wn()}},computed:{icon(){return this.playerStore.isRepeatAll?"repeat":this.playerStore.isRepeatSingle?"repeat-once":"repeat-off"}},methods:{toggle(){this.playerStore.isRepeatAll?en.repeat("single"):this.playerStore.isRepeatSingle?en.repeat("off"):en.repeat("all")}}};function eN(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{class:Gt({"is-dark":!s.playerStore.isRepeatOff}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:r.icon,size:16,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],2)}const nN=et(tN,[["render",eN]]),sN={name:"ControlPlayerShuffle",setup(){return{playerStore:Wn()}},computed:{icon(){return this.playerStore.shuffle?"shuffle":"shuffle-disabled"}},methods:{toggle(){en.shuffle(!this.playerStore.shuffle)}}};function iN(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{class:Gt({"is-dark":s.playerStore.shuffle}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:r.icon,size:16,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],2)}const rN=et(sN,[["render",iN]]),jl={audio:null,play(t){this.audio=new Audio(`${String(t||"")}?x=${Date.now()}`),this.audio.crossOrigin="anonymous";const e=new(window.AudioContext||window.webkitAudioContext);e.createMediaElementSource(this.audio).connect(e.destination),this.audio.addEventListener("canplay",()=>{e.resume().then(()=>{this.audio.play()})}),this.audio.load()},setVolume(t){this.audio&&(this.audio.volume=Math.max(0,Math.min(1,Number(t)||0)))},stop(){try{this.audio?.pause()}catch{}}},oN={name:"ControlStreamVolume",components:{ControlSlider:qu},emits:["change","mute"],data(){return{loading:!1,playing:!1,volume:10}},unmounted(){this.closeAudio()},methods:{changeVolume(){jl.setVolume(this.volume/100)},closeAudio(){jl.stop(),this.playing=!1,this.loading=!1},playChannel(){this.loading=!0,jl.play("/stream.mp3"),this.changeVolume();const t=jl.audio;t&&(t.addEventListener("waiting",()=>{this.playing=!1,this.loading=!0}),t.addEventListener("playing",()=>{this.playing=!0,this.loading=!1}),t.addEventListener("ended",()=>{this.playing=!1,this.loading=!1}),t.addEventListener("error",()=>{this.closeAudio()}))},togglePlay(){this.playing||this.loading?this.closeAudio():this.playChannel()}}},aN={class:"media is-align-items-center mb-0"},lN={class:"media-left"},cN={class:"media-content is-align-items-center"},uN=["textContent"],dN={href:"stream.mp3",class:"ml-2",target:"_blank"};function fN(t,e,n,s,i,r){const o=w("mdicon"),a=w("control-slider");return O(),F("div",aN,[N("div",lN,[N("button",{class:Gt(["button is-small",{"has-text-grey-light":!i.playing&&!i.loading,"is-loading":i.loading}]),onClick:e[0]||(e[0]=(...l)=>r.togglePlay&&r.togglePlay(...l))},[E(o,{class:"icon",name:"broadcast"})],2)]),N("div",cN,[N("div",{class:Gt(["is-flex",{"has-text-grey-light":!i.playing}])},[N("div",{class:"is-size-7 is-uppercase",textContent:nt(t.$t("navigation.stream"))},null,8,uN),N("a",dN,[E(o,{class:"icon is-small",name:"open-in-new"})])],2),E(a,{value:i.volume,"onUpdate:value":e[1]||(e[1]=l=>i.volume=l),disabled:!i.playing,max:100,onChange:r.changeVolume},null,8,["value","disabled","onChange"])])])}const d_=et(oN,[["render",fN]]),zu=Ls("OutputsStore",{actions:{async initialise(){this.$state=await Zc.state()}},state:()=>({outputs:[]})}),hN={name:"NavbarBottom",components:{ControlLink:l_,ControlMainVolume:c_,ControlOutputVolume:u_,ControlPlayerBack:NI,ControlPlayerConsume:DI,ControlPlayerForward:FI,ControlPlayerLyrics:HI,ControlPlayerNext:GI,ControlPlayerPlay:XI,ControlPlayerPrevious:QI,ControlPlayerRepeat:nN,ControlPlayerShuffle:rN,ControlStreamVolume:d_},setup(){return{outputsStore:zu(),queueStore:$s(),uiStore:ts()}},computed:{isPlayerPage(){return this.$route.name==="player"},metadata(){const{current:t}=this.queueStore;return[t.artist,t.album].filter(Boolean).join(" - ")}}},pN={class:"navbar-brand is-flex-grow-1"},mN={class:"is-text-clipped"},gN=["textContent"],yN=["textContent"],bN={class:"dropdown-menu is-mobile"},vN={class:"dropdown-content"},_N={class:"dropdown-item pt-0"},SN={class:"dropdown-item is-flex is-justify-content-center"},EN={class:"buttons has-addons"};function wN(t,e,n,s,i,r){const o=w("mdicon"),a=w("control-link"),l=w("control-player-previous"),c=w("control-player-back"),u=w("control-player-play"),d=w("control-player-forward"),f=w("control-player-next"),h=w("control-main-volume"),p=w("control-output-volume"),m=w("control-stream-volume"),_=w("control-player-repeat"),y=w("control-player-shuffle"),v=w("control-player-consume"),g=w("control-player-lyrics");return O(),F("nav",{class:Gt(["navbar is-fixed-bottom",{"is-bottom":!r.isPlayerPage}])},[N("div",pN,[E(a,{class:"navbar-item",to:{name:"queue"}},{default:L(()=>[E(o,{class:"icon",name:"playlist-play"})]),_:1}),r.isPlayerPage?(O(),F(it,{key:0},[E(l,{class:"navbar-item ml-auto"}),E(c,{class:"navbar-item",offset:1e4}),E(u,{class:"navbar-item"}),E(d,{class:"navbar-item",offset:3e4}),E(f,{class:"navbar-item mr-auto"})],64)):(O(),F(it,{key:1},[E(a,{to:{name:"player"},exact:"",class:"navbar-item is-justify-content-flex-start is-expanded is-clipped is-size-7"},{default:L(()=>[N("div",mN,[N("strong",{textContent:nt(s.queueStore.current.title)},null,8,gN),e[1]||(e[1]=N("br",null,null,-1)),N("span",{textContent:nt(r.metadata)},null,8,yN)])]),_:1}),E(u,{class:"navbar-item"})],64)),N("a",{class:"navbar-item",onClick:e[0]||(e[0]=(...b)=>s.uiStore.togglePlayerMenu&&s.uiStore.togglePlayerMenu(...b))},[E(o,{class:"icon",name:s.uiStore.showPlayerMenu?"chevron-down":"chevron-up"},null,8,["name"])]),N("div",{class:Gt(["dropdown is-up is-right",{"is-active":s.uiStore.showPlayerMenu}])},[N("div",bN,[N("div",vN,[N("div",_N,[E(h),(O(!0),F(it,null,ce(s.outputsStore.outputs,b=>(O(),pt(p,{key:b.id,output:b},null,8,["output"]))),128)),E(m)]),e[2]||(e[2]=N("hr",{class:"dropdown-divider"},null,-1)),N("div",SN,[N("div",EN,[E(_,{class:"button"}),E(y,{class:"button"}),E(v,{class:"button"}),E(g,{class:"button"})])])])])],2)])],2)}const kN=et(hN,[["render",wN],["__scopeId","data-v-f7cc344c"]]),Xu=Ls("SearchStore",{actions:{add(t){const e=this.history.indexOf(t);e!==-1&&this.history.splice(e,1),this.history.unshift(t),this.history.length>5&&this.history.pop()},remove(t){const e=this.history.indexOf(t);e!==-1&&this.history.splice(e,1)}},state:()=>({history:[],query:"",source:"search-library"})}),py="./api/settings",f_={state(){return ut.get(py)},update(t){return ut.put(`${py}/${t.category}/${t.name}`,t)}},{t:Bl,availableLocales:my}=zs.global,ti=Ls("SettingsStore",{actions:{currentAppearance(){return this.$state.appearance},currentLocale(){const t=my;let e=t.find(s=>s===zs.global.locale.value);const[n]=zs.global.locale.value.split("-");return e||(e=t.find(s=>s===n)),e||(e=t.find(s=>s.split("-")[0]===n)),e||(e=zs.global.fallbackLocale),e},get(t,e){return this.categories.find(n=>n.name===t)?.options.find(n=>n.name===e)??{}},async initialise(){this.$state=await f_.state()},setAppearance(t){this.$state.appearance=t;const e=document.documentElement;t==="auto"?e.removeAttribute("data-theme"):e.setAttribute("data-theme",t)},setLocale(t){zs.global.locale.value=t},update(t){const e=this.categories.find(s=>s.name===t.category);if(!e)return;const n=e.options.find(s=>s.name===t.name);n&&(n.value=t.value)}},getters:{appearances(){return[{id:"auto",name:Bl("settings.appearance.auto")},{id:"light",name:Bl("settings.appearance.light")},{id:"dark",name:Bl("settings.appearance.dark")}]},locales(){return my.map(t=>({id:t,name:Bl(`language.${t}`)}))},recentlyAddedLimit:t=>t.get("webinterface","recently_added_limit")?.value??100,showComposerForGenre:t=>t.get("webinterface","show_composer_for_genre")?.value??null,showComposerNowPlaying:t=>t.get("webinterface","show_composer_now_playing")?.value??!1,showCoverArtworkInAlbumLists:t=>t.get("artwork","show_cover_artwork_in_album_lists")?.value??!1,showFilepathNowPlaying:t=>t.get("webinterface","show_filepath_now_playing")?.value??!1,showMenuItemAudiobooks:t=>t.get("webinterface","show_menu_item_audiobooks")?.value??!1,showMenuItemFiles:t=>t.get("webinterface","show_menu_item_files")?.value??!1,showMenuItemMusic:t=>t.get("webinterface","show_menu_item_music")?.value??!1,showMenuItemPlaylists:t=>t.get("webinterface","show_menu_item_playlists")?.value??!1,showMenuItemPodcasts:t=>t.get("webinterface","show_menu_item_podcasts")?.value??!1,showMenuItemRadio:t=>t.get("webinterface","show_menu_item_radio")?.value??!1,showMenuItemSearch:t=>t.get("webinterface","show_menu_item_search")?.value??!1},state:()=>({appearance:"auto",categories:[]})}),CN={name:"NavbarTop",components:{ControlLink:l_},setup(){return{searchStore:Xu(),servicesStore:Qn(),settingsStore:ti(),uiStore:ts()}},computed:{menus(){return[{icon:"music-box-multiple",key:"navigation.playlists",name:"playlists",show:this.settingsStore.showMenuItemPlaylists},{icon:"music",key:"navigation.music",name:"music",show:this.settingsStore.showMenuItemMusic},{key:"navigation.artists",name:"music-artists",sub:!0},{key:"navigation.albums",name:"music-albums",sub:!0},{key:"navigation.genres",name:"music-genres",sub:!0},{key:"navigation.composers",name:"music-composers",sub:!0},{key:"navigation.spotify",name:"music-spotify",show:this.servicesStore.isSpotifyActive,sub:!0},{icon:"microphone",key:"navigation.podcasts",name:"podcasts",show:this.settingsStore.showMenuItemPodcasts},{icon:"book-open-variant",key:"navigation.audiobooks",name:"audiobooks",show:this.settingsStore.showMenuItemAudiobooks},{icon:"radio",key:"navigation.radio",name:"radio",show:this.settingsStore.showMenuItemRadio},{icon:"folder-open",key:"navigation.files",name:"files",show:this.settingsStore.showMenuItemFiles},{icon:"magnify",key:"navigation.search",name:this.searchStore.source,show:this.settingsStore.showMenuItemSearch},{separator:!0},{key:"navigation.settings",name:"settings-webinterface"},{key:"navigation.outputs",name:"outputs"},{action:this.openUpdateDialog,key:"navigation.update-library"},{key:"navigation.about",name:"about"}]}},methods:{openUpdateDialog(){this.uiStore.showUpdateDialog=!0,this.uiStore.hideMenus()}}},TN={class:"navbar is-fixed-top is-top"},AN={class:"navbar-brand is-fullwidth"},ON={class:"is-flex is-clipped"},xN={class:"dropdown-menu is-mobile"},IN={class:"dropdown-content"},NN={key:0,class:"my-3"},PN=["onClick","textContent"],RN={key:0,class:"icon-text"},DN=["textContent"];function LN(t,e,n,s,i,r){const o=w("mdicon"),a=w("control-link");return O(),F("nav",TN,[N("div",AN,[N("div",ON,[(O(!0),F(it,null,ce(r.menus.filter(l=>l.show&&!l.sub),l=>(O(),pt(a,{key:l.name,to:{name:l.name},class:"navbar-item"},{default:L(()=>[E(o,{class:"icon",name:l.icon,size:"16"},null,8,["name"])]),_:2},1032,["to"]))),128))]),N("a",{class:"navbar-item ml-auto",onClick:e[0]||(e[0]=(...l)=>s.uiStore.toggleBurgerMenu&&s.uiStore.toggleBurgerMenu(...l))},[E(o,{class:"icon",name:s.uiStore.showBurgerMenu?"close":"menu"},null,8,["name"])]),N("div",{class:Gt(["dropdown is-right",{"is-active":s.uiStore.showBurgerMenu}])},[N("div",xN,[N("div",IN,[(O(!0),F(it,null,ce(r.menus,l=>(O(),F(it,{key:l.name},[l.separator?(O(),F("hr",NN)):l.action?(O(),F("a",{key:1,class:"dropdown-item",onClick:Bn(l.action,["stop","prevent"]),textContent:nt(t.$t(l.key))},null,8,PN)):(O(),pt(a,{key:2,to:{name:l.name},class:"dropdown-item"},{default:L(()=>[l.icon?(O(),F("span",RN,[E(o,{class:"icon",name:l.icon,size:"16"},null,8,["name"])])):vt("",!0),N("span",{class:Gt({"pl-5":l.sub,"has-text-weight-semibold":l.icon}),textContent:nt(t.$t(l.key))},null,10,DN)]),_:2},1032,["to"]))],64))),128))])])],2)])])}const MN=et(CN,[["render",LN],["__scopeId","data-v-d084054e"]]);function xp(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Yu(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var n=function s(){var i=!1;try{i=this instanceof s}catch{}return i?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(s){var i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(n,s,i.get?i:{enumerable:!0,get:function(){return t[s]}})}),n}var pc={exports:{}},$N=pc.exports,gy;function FN(){return gy||(gy=1,(function(t){(function(e,n){t.exports?t.exports=n():e.ReconnectingWebSocket=n()})($N,function(){if(!("WebSocket"in window))return;function e(n,s,i){var r={debug:!1,automaticOpen:!0,reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:2e3,maxReconnectAttempts:null};i||(i={});for(var o in r)typeof i[o]<"u"?this[o]=i[o]:this[o]=r[o];this.url=n,this.reconnectAttempts=0,this.readyState=WebSocket.CONNECTING,this.protocol=null;var a=this,l,c=!1,u=!1,d=document.createElement("div");d.addEventListener("open",function(h){a.onopen(h)}),d.addEventListener("close",function(h){a.onclose(h)}),d.addEventListener("connecting",function(h){a.onconnecting(h)}),d.addEventListener("message",function(h){a.onmessage(h)}),d.addEventListener("error",function(h){a.onerror(h)}),this.addEventListener=d.addEventListener.bind(d),this.removeEventListener=d.removeEventListener.bind(d),this.dispatchEvent=d.dispatchEvent.bind(d);function f(h,p){var m=document.createEvent("CustomEvent");return m.initCustomEvent(h,!1,!1,p),m}this.open=function(h){if(l=new WebSocket(a.url,s||[]),h){if(this.maxReconnectAttempts&&this.reconnectAttempts>this.maxReconnectAttempts)return}else d.dispatchEvent(f("connecting")),this.reconnectAttempts=0;(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",a.url);var p=l,m=setTimeout(function(){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",a.url),u=!0,p.close(),u=!1},a.timeoutInterval);l.onopen=function(_){clearTimeout(m),(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onopen",a.url),a.protocol=l.protocol,a.readyState=WebSocket.OPEN,a.reconnectAttempts=0;var y=f("open");y.isReconnect=h,h=!1,d.dispatchEvent(y)},l.onclose=function(_){if(clearTimeout(v),l=null,c)a.readyState=WebSocket.CLOSED,d.dispatchEvent(f("close"));else{a.readyState=WebSocket.CONNECTING;var y=f("connecting");y.code=_.code,y.reason=_.reason,y.wasClean=_.wasClean,d.dispatchEvent(y),!h&&!u&&((a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onclose",a.url),d.dispatchEvent(f("close")));var v=a.reconnectInterval*Math.pow(a.reconnectDecay,a.reconnectAttempts);setTimeout(function(){a.reconnectAttempts++,a.open(!0)},v>a.maxReconnectInterval?a.maxReconnectInterval:v)}},l.onmessage=function(_){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",a.url,_.data);var y=f("message");y.data=_.data,d.dispatchEvent(y)},l.onerror=function(_){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onerror",a.url,_),d.dispatchEvent(f("error"))}},this.automaticOpen==!0&&this.open(!1),this.send=function(h){if(l)return(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","send",a.url,h),l.send(h);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(h,p){typeof h>"u"&&(h=1e3),c=!0,l&&l.close(h,p)},this.refresh=function(){l&&l.close()}}return e.prototype.onopen=function(n){},e.prototype.onclose=function(n){},e.prototype.onconnecting=function(n){},e.prototype.onmessage=function(n){},e.prototype.onerror=function(n){},e.debugAll=!1,e.CONNECTING=WebSocket.CONNECTING,e.OPEN=WebSocket.OPEN,e.CLOSING=WebSocket.CLOSING,e.CLOSED=WebSocket.CLOSED,e})})(pc)),pc.exports}var VN=FN();const UN=xp(VN),HN={name:"App",components:{ListNotifications:uC,ModalDialogRemotePairing:ux,ModalDialogUpdate:cI,NavbarBottom:kN,NavbarTop:MN},setup(){return{configurationStore:Ho(),libraryStore:Ku(),notificationsStore:Ga(),outputsStore:zu(),playerStore:Wn(),queueStore:$s(),remotesStore:Tp(),servicesStore:Qn(),settingsStore:ti(),uiStore:ts()}},data(){return{handlers:{},scheduledHandlers:new Map}},watch:{"uiStore.showBurgerMenu"(){this.updateClipping()},"uiStore.showPlayerMenu"(){this.updateClipping()}},created(){this.handlers={database:[this.libraryStore.initialise],lastfm:[this.servicesStore.initialiseLastfm],options:[this.playerStore.initialise],outputs:[this.outputsStore.initialise],pairing:[this.remotesStore.initialise],player:[this.playerStore.initialise],queue:[this.queueStore.initialise],settings:[this.settingsStore.initialise],spotify:[this.servicesStore.initialiseSpotify],update:[this.libraryStore.initialise],volume:[this.playerStore.initialise,this.outputsStore.initialise]},this.$router.beforeEach(async(t,e,n)=>{await this.configurationStore.initialise(),this.updateClipping(),t.path===e.path&&t.hash||this.$Progress.start(),n()}),this.$router.afterEach(()=>{this.$Progress.finish()}),this.connect()},beforeUnmount(){this.scheduledHandlers.forEach(t=>clearTimeout(t)),this.scheduledHandlers.clear()},methods:{async connect(){try{await this.configurationStore.initialise(),this.uiStore.hideSingles=this.configurationStore.hide_singles,document.title=this.configurationStore.library_name,this.openWebsocket()}catch{this.notificationsStore.add({text:this.$t("server.connection-failed"),topic:"connection",type:"danger"})}},createWebsocket(){const t=window.location.protocol.replace("http","ws"),e=window.location.hostname,n=this.configurationStore.websocket_port||`${window.location.port}/ws`,s=`${t}${e}:${n}`;return new UN(s,"notify",{maxReconnectInterval:2e3,reconnectInterval:1e3})},handleEvents(t=[]){t.forEach(e=>{(this.handlers[e]||[]).forEach(s=>{if(!this.scheduledHandlers.has(s)){const i=setTimeout(()=>{s.call(this),this.scheduledHandlers.delete(s)},50);this.scheduledHandlers.set(s,i)}})})},openWebsocket(){const t=this.createWebsocket(),e=["database","lastfm","options","outputs","pairing","player","queue","settings","spotify","update","volume"];t.onopen=()=>{t.send(JSON.stringify({notify:e})),this.handleEvents(e)},window.addEventListener("focus",()=>{this.handleEvents(e)}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&this.handleEvents(e)}),t.onmessage=n=>{const s=JSON.parse(n.data).notify;this.handleEvents(s)}},updateClipping(){this.uiStore.showBurgerMenu||this.uiStore.showPlayerMenu?document.querySelector("html").classList.add("is-clipped"):document.querySelector("html").classList.remove("is-clipped")}}};function jN(t,e,n,s,i,r){const o=w("vue-progress-bar"),a=w("navbar-top"),l=w("router-view"),c=w("modal-dialog-remote-pairing"),u=w("modal-dialog-update"),d=w("list-notifications"),f=w("navbar-bottom");return O(),F(it,null,[E(o,{class:"has-background-primary"}),E(a),E(l,null,{default:L(({Component:h})=>[(O(),pt(tp(h)))]),_:1}),E(c,{show:s.remotesStore.active,onClose:e[0]||(e[0]=h=>s.remotesStore.active=!1)},null,8,["show"]),E(u,{show:s.uiStore.showUpdateDialog,onClose:e[1]||(e[1]=h=>s.uiStore.showUpdateDialog=!1)},null,8,["show"]),ms(E(d,null,null,512),[[jc,!s.uiStore.showBurgerMenu]]),E(f),ms(N("div",{class:"overlay-fullscreen",onClick:e[2]||(e[2]=(...h)=>s.uiStore.hideMenus&&s.uiStore.hideMenus(...h))},null,512),[[jc,s.uiStore.showBurgerMenu||s.uiStore.showPlayerMenu]])],64)}const BN=et(HN,[["render",jN]]),h_=function(){return document.ontouchstart!==null?"click":"touchstart"},Jc="__vue_click_away__",p_=function(t,e,n){m_(t);let s=n.context,i=e.value,r=!1;setTimeout(function(){r=!0},0),t[Jc]=function(o){if((!t||!t.contains(o.target))&&i&&r&&typeof i=="function")return i.call(s,o)},document.addEventListener(h_(),t[Jc],!1)},m_=function(t){document.removeEventListener(h_(),t[Jc],!1),delete t[Jc]},WN=function(t,e,n){e.value!==e.oldValue&&p_(t,e,n)},GN={install:function(t){t.directive("click-away",KN)}},KN={mounted:p_,updated:WN,unmounted:m_};var Ws=(t=>(t.LOADING="loading",t.LOADED="loaded",t.ERROR="error",t))(Ws||{});const qN=typeof window<"u"&&window!==null,zN=JN(),XN=Object.prototype.propertyIsEnumerable,yy=Object.getOwnPropertySymbols;function Ca(t){return typeof t=="function"||toString.call(t)==="[object Object]"}function YN(t){return typeof t=="object"?t===null:typeof t!="function"}function ZN(t){return t!=="__proto__"&&t!=="constructor"&&t!=="prototype"}function JN(){return qN&&"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype?("isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get(){return this.intersectionRatio>0}}),!0):!1}function QN(t,...e){if(!Ca(t))throw new TypeError("expected the first argument to be an object");if(e.length===0||typeof Symbol!="function"||typeof yy!="function")return t;for(const n of e){const s=yy(n);for(const i of s)XN.call(n,i)&&(t[i]=n[i])}return t}function g_(t,...e){let n=0;for(YN(t)&&(t=e[n++]),t||(t={});n{this._logger("Not support IntersectionObserver!")})),this._initIntersectionObserver(e,s,r,o,a)}update(e,n){if(!e)return;this._realObserver(e)?.unobserve(e);const{src:s,error:i,lifecycle:r,delay:o}=this._valueFormatter(typeof n=="string"?n:n.value);this._initIntersectionObserver(e,s,i,r,o)}unmount(e){e&&(this._realObserver(e)?.unobserve(e),this._images.delete(e))}loadImages(e,n,s,i){this._setImageSrc(e,n,s,i)}_setImageSrc(e,n,s,i){e.tagName.toLowerCase()==="img"?(n&&e.getAttribute("src")!==n&&e.setAttribute("src",n),this._listenImageStatus(e,()=>{this._lifecycle(Ws.LOADED,i,e)},()=>{e.onload=null,this._lifecycle(Ws.ERROR,i,e),this._realObserver(e)?.disconnect(),s&&e.getAttribute("src")!==s&&e.setAttribute("src",s),this._log(()=>{this._logger(`Image failed to load!And failed src was: ${n} `)})})):e.style.backgroundImage=`url('${n}')`}_initIntersectionObserver(e,n,s,i,r){const o=this.options.observerOptions;this._images.set(e,new IntersectionObserver(a=>{Array.prototype.forEach.call(a,l=>{r&&r>0?this._delayedIntersectionCallback(e,l,r,n,s,i):this._intersectionCallback(e,l,n,s,i)})},o)),this._realObserver(e)?.observe(e)}_intersectionCallback(e,n,s,i,r){n.isIntersecting&&(this._realObserver(e)?.unobserve(n.target),this._setImageSrc(e,s,i,r))}_delayedIntersectionCallback(e,n,s,i,r,o){if(n.isIntersecting){if(n.target.hasAttribute(zr))return;const a=setTimeout(()=>{this._intersectionCallback(e,n,i,r,o),n.target.removeAttribute(zr)},s);n.target.setAttribute(zr,String(a))}else n.target.hasAttribute(zr)&&(clearTimeout(Number(n.target.getAttribute(zr))),n.target.removeAttribute(zr))}_listenImageStatus(e,n,s){e.onload=n,e.onerror=s}_valueFormatter(e){let n=e,s=this.options.loading,i=this.options.error,r=this.options.lifecycle,o=this.options.delay;return Ca(e)&&(n=e.src,s=e.loading||this.options.loading,i=e.error||this.options.error,r=e.lifecycle||this.options.lifecycle,o=e.delay||this.options.delay),{src:n,loading:s,error:i,lifecycle:r,delay:o}}_log(e){this.options.log&&e()}_lifecycle(e,n,s){switch(e){case Ws.LOADING:s?.setAttribute("lazy",Ws.LOADING),n?.loading&&n.loading(s);break;case Ws.LOADED:s?.setAttribute("lazy",Ws.LOADED),n?.loaded&&n.loaded(s);break;case Ws.ERROR:s?.setAttribute("lazy",Ws.ERROR),n?.error&&n.error(s);break}}_realObserver(e){return this._images.get(e)}_logger(e,...n){let s=console.error;switch(this.options.logLevel){case"error":s=console.error;break;case"warn":s=console.warn;break;case"info":s=console.info;break;case"debug":s=console.debug;break}s(e,n)}}const sP={install(t,e){const n=new nP(e);t.config.globalProperties.$Lazyload=n,t.provide("Lazyload",n),t.directive("lazy",{mounted:n.mount.bind(n),updated:n.update.bind(n),unmounted:n.unmount.bind(n)})}};var Zd={exports:{}},Jd={exports:{}},Qd={};/** + */const NO="11.1.12";function PO(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(pp().__INTLIFY_PROD_DEVTOOLS__=!1)}const gs={UNEXPECTED_RETURN_TYPE:YA,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function Ps(t,...e){return Bu(t,null,void 0)}const sh=or("__translateVNode"),ih=or("__datetimeParts"),rh=or("__numberParts"),RO=or("__setPluralRules"),DO=or("__injectWithOption"),oh=or("__dispose");function Xa(t){if(!ye(t)||Ys(t))return t;for(const e in t)if(Os(t,e))if(!e.includes("."))ye(t[e])&&Xa(t[e]);else{const n=e.split("."),s=n.length-1;let i=t,r=!1;for(let o=0;o{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(o[l]=o[l]||Ee(),pc(c,o[l])):pc(c,o)}else _t(a)&&pc(JSON.parse(a),o)}),i==null&&r)for(const a in o)Os(o,a)&&Xa(o[a]);return o}function s_(t){return t.type}function LO(t,e,n){let s=ye(e.messages)?e.messages:Ee();"__i18nGlobal"in n&&(s=n_(t.locale.value,{messages:s,__i18n:n.__i18nGlobal}));const i=Object.keys(s);i.length&&i.forEach(r=>{t.mergeLocaleMessage(r,s[r])});{if(ye(e.datetimeFormats)){const r=Object.keys(e.datetimeFormats);r.length&&r.forEach(o=>{t.mergeDateTimeFormat(o,e.datetimeFormats[o])})}if(ye(e.numberFormats)){const r=Object.keys(e.numberFormats);r.length&&r.forEach(o=>{t.mergeNumberFormat(o,e.numberFormats[o])})}}}function ty(t){return S(yi,null,t,0)}const ey="__INTLIFY_META__",ny=()=>[],MO=()=>!1;let sy=0;function iy(t){return((e,n,s,i)=>t(n,s,cn()||void 0,i))}const $O=()=>{const t=cn();let e=null;return t&&(e=s_(t)[ey])?{[ey]:e}:null};function i_(t={}){const{__root:e,__injectWithOption:n}=t,s=e===void 0,i=t.flatJson,r=qc?cs:Au;let o=Re(t.inheritLocale)?t.inheritLocale:!0;const a=r(e&&o?e.locale.value:_t(t.locale)?t.locale:Yc),l=r(e&&o?e.fallbackLocale.value:_t(t.fallbackLocale)||je(t.fallbackLocale)||ae(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:a.value),c=r(n_(a.value,t)),u=r(ae(t.datetimeFormats)?t.datetimeFormats:{[a.value]:{}}),d=r(ae(t.numberFormats)?t.numberFormats:{[a.value]:{}});let f=e?e.missingWarn:Re(t.missingWarn)||Xc(t.missingWarn)?t.missingWarn:!0,h=e?e.fallbackWarn:Re(t.fallbackWarn)||Xc(t.fallbackWarn)?t.fallbackWarn:!0,p=e?e.fallbackRoot:Re(t.fallbackRoot)?t.fallbackRoot:!0,m=!!t.fallbackFormat,v=Pe(t.missing)?t.missing:null,y=Pe(t.missing)?iy(t.missing):null,_=Pe(t.postTranslation)?t.postTranslation:null,g=e?e.warnHtmlMessage:Re(t.warnHtmlMessage)?t.warnHtmlMessage:!0,b=!!t.escapeParameter;const E=e?e.modifiers:ae(t.modifiers)?t.modifiers:{};let k=t.pluralRules||e&&e.pluralRules,I;I=(()=>{s&&Gg(null);const $={version:NO,locale:a.value,fallbackLocale:l.value,messages:c.value,modifiers:E,pluralRules:k,missing:y===null?void 0:y,missingWarn:f,fallbackWarn:h,fallbackFormat:m,unresolving:!0,postTranslation:_===null?void 0:_,warnHtmlMessage:g,escapeParameter:b,messageResolver:t.messageResolver,messageCompiler:t.messageCompiler,__meta:{framework:"vue"}};$.datetimeFormats=u.value,$.numberFormats=d.value,$.__datetimeFormatters=ae(I)?I.__datetimeFormatters:void 0,$.__numberFormatters=ae(I)?I.__numberFormatters:void 0;const z=gO($);return s&&Gg(z),z})(),ta(I,a.value,l.value);function C(){return[a.value,l.value,c.value,u.value,d.value]}const R=Je({get:()=>a.value,set:$=>{I.locale=$,a.value=$}}),j=Je({get:()=>l.value,set:$=>{I.fallbackLocale=$,l.value=$,ta(I,a.value,$)}}),M=Je(()=>c.value),H=Je(()=>u.value),q=Je(()=>d.value);function ot(){return Pe(_)?_:null}function W($){_=$,I.postTranslation=$}function Q(){return v}function it($){$!==null&&(y=iy($)),v=$,I.missing=y}const St=($,z,ht,Et,Kt,U)=>{C();let B;try{__INTLIFY_PROD_DEVTOOLS__,s||(I.fallbackContext=e?mO():void 0),B=$(I)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(I.fallbackContext=void 0)}if(ht!=="translate exists"&&Xe(B)&&B===Wu||ht==="translate exists"&&!B){const[X,at]=z();return e&&p?Et(e):Kt(X)}else{if(U(B))return B;throw Ps(gs.UNEXPECTED_RETURN_TYPE)}};function zt(...$){return St(z=>Reflect.apply(Qg,null,[z,...$]),()=>nh(...$),"translate",z=>Reflect.apply(z.t,z,[...$]),z=>z,z=>_t(z))}function xt(...$){const[z,ht,Et]=$;if(Et&&!ye(Et))throw Ps(gs.INVALID_ARGUMENT);return zt(z,ht,tn({resolvedMessage:!0},Et||{}))}function Dt(...$){return St(z=>Reflect.apply(zg,null,[z,...$]),()=>th(...$),"datetime format",z=>Reflect.apply(z.d,z,[...$]),()=>Bg,z=>_t(z)||je(z))}function re(...$){return St(z=>Reflect.apply(Xg,null,[z,...$]),()=>eh(...$),"number format",z=>Reflect.apply(z.n,z,[...$]),()=>Bg,z=>_t(z)||je(z))}function oe($){return $.map(z=>_t(z)||Xe(z)||Re(z)?ty(String(z)):z)}const Wt={normalize:oe,interpolate:$=>$,type:"vnode"};function Z(...$){return St(z=>{let ht;const Et=z;try{Et.processor=Wt,ht=Reflect.apply(Qg,null,[Et,...$])}finally{Et.processor=null}return ht},()=>nh(...$),"translate",z=>z[sh](...$),z=>[ty(z)],z=>je(z))}function dt(...$){return St(z=>Reflect.apply(Xg,null,[z,...$]),()=>eh(...$),"number format",z=>z[rh](...$),ny,z=>_t(z)||je(z))}function ct(...$){return St(z=>Reflect.apply(zg,null,[z,...$]),()=>th(...$),"datetime format",z=>z[ih](...$),ny,z=>_t(z)||je(z))}function yt($){k=$,I.pluralRules=k}function Ht($,z){return St(()=>{if(!$)return!1;const ht=_t(z)?z:a.value,Et=P(ht),Kt=I.messageResolver(Et,$);return Ys(Kt)||os(Kt)||_t(Kt)},()=>[$],"translate exists",ht=>Reflect.apply(ht.te,ht,[$,z]),MO,ht=>Re(ht))}function Xt($){let z=null;const ht=K0(I,l.value,a.value);for(let Et=0;Et{o&&(a.value=$,I.locale=$,ta(I,a.value,l.value))}),Zn(e.fallbackLocale,$=>{o&&(l.value=$,I.fallbackLocale=$,ta(I,a.value,l.value))}));const lt={id:sy,locale:R,fallbackLocale:j,get inheritLocale(){return o},set inheritLocale($){o=$,$&&e&&(a.value=e.locale.value,l.value=e.fallbackLocale.value,ta(I,a.value,l.value))},get availableLocales(){return Object.keys(c.value).sort()},messages:M,get modifiers(){return E},get pluralRules(){return k||{}},get isGlobal(){return s},get missingWarn(){return f},set missingWarn($){f=$,I.missingWarn=f},get fallbackWarn(){return h},set fallbackWarn($){h=$,I.fallbackWarn=h},get fallbackRoot(){return p},set fallbackRoot($){p=$},get fallbackFormat(){return m},set fallbackFormat($){m=$,I.fallbackFormat=m},get warnHtmlMessage(){return g},set warnHtmlMessage($){g=$,I.warnHtmlMessage=$},get escapeParameter(){return b},set escapeParameter($){b=$,I.escapeParameter=$},t:zt,getLocaleMessage:P,setLocaleMessage:G,mergeLocaleMessage:st,getPostTranslationHandler:ot,setPostTranslationHandler:W,getMissingHandler:Q,setMissingHandler:it,[RO]:yt};return lt.datetimeFormats=H,lt.numberFormats=q,lt.rt=xt,lt.te=Ht,lt.tm=A,lt.d=Dt,lt.n=re,lt.getDateTimeFormat=J,lt.setDateTimeFormat=T,lt.mergeDateTimeFormat=x,lt.getNumberFormat=V,lt.setNumberFormat=K,lt.mergeNumberFormat=tt,lt[DO]=n,lt[sh]=Z,lt[ih]=ct,lt[rh]=dt,lt}const Sp={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:t=>t==="parent"||t==="global",default:"parent"},i18n:{type:Object}};function FO({slots:t},e){return e.length===1&&e[0]==="default"?(t.default?t.default():[]).reduce((s,i)=>[...s,...i.type===rt?i.children:[i]],[]):e.reduce((n,s)=>{const i=t[s];return i&&(n[s]=i()),n},Ee())}function r_(){return rt}const VO=Oi({name:"i18n-t",props:tn({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:t=>Xe(t)||!isNaN(t)}},Sp),setup(t,e){const{slots:n,attrs:s}=e,i=t.i18n||Ep({useScope:t.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(d=>d[0]!=="_"),o=Ee();t.locale&&(o.locale=t.locale),t.plural!==void 0&&(o.plural=_t(t.plural)?+t.plural:t.plural);const a=FO(e,r),l=i[sh](t.keypath,a,o),c=tn(Ee(),s),u=_t(t.tag)||ye(t.tag)?t.tag:r_();return zs(u,c,l)}}}),ry=VO;function UO(t){return je(t)&&!_t(t[0])}function o_(t,e,n,s){const{slots:i,attrs:r}=e;return()=>{const o={part:!0};let a=Ee();t.locale&&(o.locale=t.locale),_t(t.format)?o.key=t.format:ye(t.format)&&(_t(t.format.key)&&(o.key=t.format.key),a=Object.keys(t.format).reduce((f,h)=>n.includes(h)?tn(Ee(),f,{[h]:t.format[h]}):f,Ee()));const l=s(t.value,o,a);let c=[o.key];je(l)?c=l.map((f,h)=>{const p=i[f.type],m=p?p({[f.type]:f.value,index:h,parts:l}):[f.value];return UO(m)&&(m[0].key=`${f.type}-${h}`),m}):_t(l)&&(c=[l]);const u=tn(Ee(),r),d=_t(t.tag)||ye(t.tag)?t.tag:r_();return zs(d,u,c)}}const HO=Oi({name:"i18n-n",props:tn({value:{type:Number,required:!0},format:{type:[String,Object]}},Sp),setup(t,e){const n=t.i18n||Ep({useScope:t.scope,__useComponent:!0});return o_(t,e,Q0,(...s)=>n[rh](...s))}}),oy=HO;function jO(t,e){const n=t;if(t.mode==="composition")return n.__getInstance(e)||t.global;{const s=n.__getInstance(e);return s!=null?s.__composer:t.global.__composer}}function BO(t){const e=o=>{const{instance:a,value:l}=o;if(!a||!a.$)throw Ps(gs.UNEXPECTED_ERROR);const c=jO(t,a.$),u=ay(l);return[Reflect.apply(c.t,c,[...ly(u)]),c]};return{created:(o,a)=>{const[l,c]=e(a);qc&&t.global===c&&(o.__i18nWatcher=Zn(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),o.__composer=c,o.textContent=l},unmounted:o=>{qc&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:a})=>{if(o.__composer){const l=o.__composer,c=ay(a);o.textContent=Reflect.apply(l.t,l,[...ly(c)])}},getSSRProps:o=>{const[a]=e(o);return{textContent:a}}}}function ay(t){if(_t(t))return{path:t};if(ae(t)){if(!("path"in t))throw Ps(gs.REQUIRED_VALUE,"path");return t}else throw Ps(gs.INVALID_VALUE)}function ly(t){const{path:e,locale:n,args:s,choice:i,plural:r}=t,o={},a=s||{};return _t(n)&&(o.locale=n),Xe(i)&&(o.plural=i),Xe(r)&&(o.plural=r),[e,a,o]}function WO(t,e,...n){const s=ae(n[0])?n[0]:{};(Re(s.globalInstall)?s.globalInstall:!0)&&([ry.name,"I18nT"].forEach(r=>t.component(r,ry)),[oy.name,"I18nN"].forEach(r=>t.component(r,oy)),[uy.name,"I18nD"].forEach(r=>t.component(r,uy))),t.directive("t",BO(e))}const GO=or("global-vue-i18n");function KO(t={}){const e=Re(t.globalInjection)?t.globalInjection:!0,n=new Map,[s,i]=zO(t),r=or("");function o(u){return n.get(u)||null}function a(u,d){n.set(u,d)}function l(u){n.delete(u)}const c={get mode(){return"composition"},async install(u,...d){if(u.__VUE_I18N_SYMBOL__=r,u.provide(u.__VUE_I18N_SYMBOL__,c),ae(d[0])){const p=d[0];c.__composerExtend=p.__composerExtend,c.__vueI18nExtend=p.__vueI18nExtend}let f=null;e&&(f=ex(u,c.global)),WO(u,c,...d);const h=u.unmount;u.unmount=()=>{f&&f(),c.dispose(),h()}},get global(){return i},dispose(){s.stop()},__instances:n,__getInstance:o,__setInstance:a,__deleteInstance:l};return c}function Ep(t={}){const e=cn();if(e==null)throw Ps(gs.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw Ps(gs.NOT_INSTALLED);const n=qO(e),s=YO(n),i=s_(e),r=XO(t,i);if(r==="global")return LO(s,t,i),s;if(r==="parent"){let l=ZO(n,e,t.__useComponent);return l==null&&(l=s),l}const o=n;let a=o.__getInstance(e);if(a==null){const l=tn({},t);"__i18n"in i&&(l.__i18n=i.__i18n),s&&(l.__root=s),a=i_(l),o.__composerExtend&&(a[oh]=o.__composerExtend(a)),QO(o,e,a),o.__setInstance(e,a)}return a}function zO(t,e){const n=_u(),s=n.run(()=>i_(t));if(s==null)throw Ps(gs.UNEXPECTED_ERROR);return[n,s]}function qO(t){const e=us(t.isCE?GO:t.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw Ps(t.isCE?gs.NOT_INSTALLED_WITH_PROVIDE:gs.UNEXPECTED_ERROR);return e}function XO(t,e){return ju(t)?"__i18n"in e?"local":"global":t.useScope?t.useScope:"local"}function YO(t){return t.mode==="composition"?t.global:t.global.__composer}function ZO(t,e,n=!1){let s=null;const i=e.root;let r=JO(e,n);for(;r!=null;){const o=t;if(t.mode==="composition"&&(s=o.__getInstance(r)),s!=null||i===r)break;r=r.parent}return s}function JO(t,e=!1){return t==null?null:e&&t.vnode.ctx||t.parent}function QO(t,e,n){Vo(()=>{},e),cl(()=>{const s=n;t.__deleteInstance(e);const i=s[oh];i&&(i(),delete s[oh])},e)}const tx=["locale","fallbackLocale","availableLocales"],cy=["t","rt","d","n","tm","te"];function ex(t,e){const n=Object.create(null);return tx.forEach(i=>{const r=Object.getOwnPropertyDescriptor(e,i);if(!r)throw Ps(gs.UNEXPECTED_ERROR);const o=Ie(r.value)?{get(){return r.value.value},set(a){r.value.value=a}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,i,o)}),t.config.globalProperties.$i18n=n,cy.forEach(i=>{const r=Object.getOwnPropertyDescriptor(e,i);if(!r||!r.value)throw Ps(gs.UNEXPECTED_ERROR);Object.defineProperty(t.config.globalProperties,`$${i}`,r)}),()=>{delete t.config.globalProperties.$i18n,cy.forEach(i=>{delete t.config.globalProperties[`$${i}`]})}}const nx=Oi({name:"i18n-d",props:tn({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Sp),setup(t,e){const n=t.i18n||Ep({useScope:t.scope,__useComponent:!0});return o_(t,e,J0,(...s)=>n[ih](...s))}}),uy=nx;PO();uO(GA);dO(aO);fO(K0);if(__INTLIFY_PROD_DEVTOOLS__){const t=pp();t.__INTLIFY__=!0,KA(t.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const qd=t=>t&&typeof t=="object"&&!Array.isArray(t),ah=(t,...e)=>{if(!e.length)return t;const n=e.shift();if(qd(t)&&qd(n))for(const s in n)qd(n[s])?(t[s]||Object.assign(t,{[s]:{}}),ah(t[s],n[s])):Object.assign(t,{[s]:n[s]});return ah(t,...e)},sx=ah({},{de:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Hinzufügen"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Als nächstes hinzufügen"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Stream hinzufügen"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Abbrechen"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Alle entfernen"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Bearbeiten"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Vorherige verbergen"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Einloggen"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Ausloggen"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Alle abgespielten markieren"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Markiere als neu"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Markiere als gespielt"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Remote paaren"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Spielen"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Entfernen"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Speichern"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Zeige mehr"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Zufallswiedergabe"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Verifizieren"}}},data:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Alben"}]}]}},artists:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" Künstler"}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbuch"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbuch"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbücher"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Autor"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Autor"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Autoren"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponisten"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Genres"}]}]}},kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"Datei"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Stream"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Playlisten"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Stationen"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Tracks"}]}]}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"Hinzufügen eines Podcasts führt zur Anlage einer RSS-Playlist, so kann OwnTone das Podcast-Abo verwalten."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Verarbeite…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcast hinzufügen"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Lade…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Verarbeite…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Stream hinzufügen"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Playlistname"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Speichere…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Warteschlange als Playlist speichern"}}}},podcast:{remove:{info:{t:0,b:{t:2,i:[{t:3,v:"Permanently remove this podcast from your library?"},{t:4,k:"separator"},{t:3,v:"(This will also remove the RSS playlist "},{t:4,k:"name"},{t:3,v:")"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcast enfernen"}}}},"queue-item":{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing-Code"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Remote-Paarungs-Anfrage"}}},track:{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},rating:{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Alles neu einlesen"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Nur RSS-Feeds neu einlesen"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Suche nach neuen, gelöschten und veränderten Dateien"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Nur lokale Bibliothek neu einlesen"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek wird neu eingelesen…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Metadata von unveränderten Dateien neu einlesen"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Nur Spotify neu einlesen"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek neu einlesen"}}}},"grouped-list":{"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Letzer Monat"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"Letzte Woche"}},today:{t:0,b:{t:2,i:[{t:3}],s:"Heute"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Unbestimmt"}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"Deutsch"}},en:{t:0,b:{t:2,i:[{t:3}],s:"Englisch (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Französisch (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Vereinfachtes Chinesisch (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Traditionelles Chinesisch (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Diesen Podcast dauerhaft aus der Bibliothek löschen?"},{t:4,k:"separator"},{t:3,v:"(Damit wird auch die RSS-Playliste "},{t:4,k:"name"},{t:3,v:" gelöscht)"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"Track kann nicht gespielt werden"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", Beschränkungsgrund: "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Hörbuch"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"Über"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},outputs:{t:0,b:{t:2,i:[{t:3}],s:"Ausgänge"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP-stream"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek neu einlesen"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Lautstärke"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Verbirgt Singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"Wenn aktiv, blendet Singles und alles, was mit ihnen verbunden ist, aus."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Verbirgt Spotify-Inhalt"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"Wenn aktiv, blendet Inhalte aus, die von Spotify stammen."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filtern"}}},sort:{"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Künstler › Erscheinungsdatum"}},"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Künstler › Name"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Namen"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Bewertung"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich erschienen"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsdatum"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Sortieren"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Oberfläche erstellt mit "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" und "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compiliert mit Unterstützung von "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek"}},more:{t:0,b:{t:2,i:[{t:3}],s:"mehr"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Autoren"}}},tabs:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},authors:{t:0,b:{t:2,i:[{t:3}],s:"Autoren"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich gespielt"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Verlauf"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},outputs:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ausgänge"}}},player:{info:{t:0,b:{t:2,i:[{t:3}],s:"Tracks durch Auswählen aus der Bibliothek anfügen"}},time:{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Live"},{t:2,i:[{t:4,k:"time"}]},{t:2,i:[{t:4,k:"time"}]}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Deine Playliste ist leer."}}},playlists:{title:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"name"}]},{t:2,i:[{t:3}],s:"Playlisten"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"Neue Episoden"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"Warteschlange"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"Ausdrücken"}},help:{t:0,b:{t:2,i:[{t:3,v:"Tip: Du kannst mit einer Smart-Playlist-Abfrage-Sprache nach "},{t:4,k:"help"},{t:3,v:" suchen wenn Du dem Ausdruck ein "},{t:4,k:"query"},{t:3,v:" voranstellst."}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Keine Ergebnisse gefunden"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige das Album"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Alben"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Künstler"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Künstler"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige das Buch"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Hörbücher"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Komponist"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Komponisten"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige die Playlist"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Playlisten"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Podcast"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Track"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Tracks"}]}]}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}}},settings:{tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"Fernbedienungen und Ausgänge"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Online-Services"}},webinterface:{t:0,b:{t:2,i:[{t:3}],s:"Allgemein"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Ausgezeichnete Playlisten"}},"followed-artists":{t:0,b:{t:2,i:[{t:3}],s:"Verfolgte Künstler"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"Neuvorstellung"}}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Verlauf löschen"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergabe anhalten"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergeben"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Alle Tracks wiederholen"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Tracks einmal lesen"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Aktuellen Track wiederholen"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Rückwärts im Track suchen"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Vorwärts im Track suchen"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Tracks zufällig wiedergeben"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Tracks in Reihenfolge wiedergeben"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Zum vorherigen Track springen"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Zum nächsten Track springen"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergabe stoppen"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Liedtexte anzeigen/verbergen"}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Ordner"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Einfache"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Intelligente"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Hinzugefügt am"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Album-Künstler"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Kommentar"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Komponist"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Dauer"}},folders:{t:0,b:{t:2,i:[{t:3}],s:"Ordner"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Besitzer"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Pfad"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Spielzeit"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularität / Followers"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disc / Track"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Qualität"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Bewertung"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsdatum"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Art"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Neu eingelesen"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Laufzeit"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Jahr"}}},server:{"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Track an die Abspielliste angehängt"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Tracks an die Abspielliste angehängt"}]}]}},"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Fehler bei Verbindung zum OwnTone-Server"}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"Warteschlange zu Playlist "},{t:4,k:"name"},{t:3,v:" gesichert"}]}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"Anfrage gescheitert (Status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}}},settings:{appearance:{auto:{t:0,b:{t:2,i:[{t:3}],s:"Automatisch"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"Dunkel"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Hell"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsbild"}}},artwork:{"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone verarbeitet PNG- und JPEG-Artwork, welches in einer eigenen Datei in der Bibliothek, in die Dateien eingebettet oder online von Radiostationen bereitgestellt werden kann."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"Zusätzlich kann auf folgende Artwork-Anbieter zugegriffen werden:"}},"show-cover-artwork-in-album-lists":{t:0,b:{t:2,i:[{t:3}],s:"Zeige Cover-Artwork in der Albumliste"}},"streamurl-ignore":{t:0,b:{t:2,i:[{t:3}],s:"Bereitgestellte Artwork von Radiostationen ignorieren"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},"use-artwork-source-coverartarchive":{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},"use-artwork-source-discogs":{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"use-artwork-source-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Keine aktive Pairing-Anfrage"}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Pairing Remote"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing-Code"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Remote-Pairing-Anfrage von "}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Lautsprecher-Pairing und Geräteverifikation"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"Wenn der Laufsprecher PIN-basiertes Pairing verlangt, aktiviere ihn hier und gib dann den hier PIN an, der am Lautsprecher angezeigt wird."}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Verifikationscode"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Melde Dich mit Deinem Last.fm-Benutzernamen und Passwort an, um Scrobbeln zu aktivieren."}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wird den Benutzernamen und das Passwort von last.fm nicht speichern, nur den Sitzungs-Schlüssel. Dieser läuft nicht ab."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wurde ohne Unterstützung für Last.fm erstellt."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Passwort"}},spotify:{authorize:{t:0,b:{t:2,i:[{t:3}],s:"Authorisiere API-Zugriff"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Zugriff auf die Spotify API gestatten."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wurde entweder ohne Unterstützung für Spotify erstellt oder libspotify ist nicht installiert."}},reauthorize:{t:0,b:{t:2,i:[{t:3,v:"Bitte den Zugriff der API durch setzen folgender Zugriffsrechte für OwnTone: "},{t:4,k:"scopes"},{t:3,v:"."}]}},requirements:{t:0,b:{t:2,i:[{t:3,v:"Spotify Premium Abo erforderlich. Zugriff auf die Spotify API ermöglicht scannen der Spotify-Blibliothek. Erforderliche scopes sind: "},{t:4,k:"scopes"},{t:3,v:"."}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},user:{t:0,b:{t:2,i:[{t:3,v:"Zugriff gestattet für "},{t:4,k:"user"},{t:3,v:"."}]}}},username:{t:0,b:{t:2,i:[{t:3}],s:"Benutzername"}}},webinterface:{genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Sprache"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Wähle hier die Einträge des oberen Navigationsmenüs"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"Auf den Bildschirmen mobiler Geräte wird nur das Burger-Menü angezeigt."}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Navigationsmenüs"}},"player-page":{t:0,b:{t:2,i:[{t:3}],s:"Aktuell läuft-Seite"}},"recently-added-limit":{t:0,b:{t:2,i:[{t:3}],s:"Beschränkte die Zahl der Alben"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt-Seite"}},"show-composer-for-genre":{t:0,b:{t:2,i:[{t:3}],s:"Zeige den Komponisten für die aufgelisteten Genres an"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Komma getrennte Liste der Genres, für die der Komponist angezeigt werden soll."},{t:5,i:0},{t:3,v:"Leer lassen, um den Komponisten immer anzuzeigen."},{t:5,i:0},{t:3,v:'Der Genre-Tag des aktuellen Tracks wird abgeglichen als Teil-String des Genre-Tags. Z.B. "classical, soundtrack" wird den Komponisten beim Genre-Tag "Contemporary Classical" anzeigen'}]}},"show-composer-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Komponisten anzeigen"}},"show-filepath-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Dateipfad anzeigen"}},"show-menu-item-audiobooks":{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},"show-menu-item-files":{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}},"show-menu-item-music":{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},"show-menu-item-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},"show-menu-item-podcasts":{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-menu-item-radio":{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"show-menu-item-search":{t:0,b:{t:2,i:[{t:3}],s:"Suche"}}}}}},{en:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Add"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Add Next"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Add stream"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Cancel"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Clear"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Edit"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Hide previous"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Login"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Logout"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Mark All Played"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Mark as new"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Mark as played"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Pair Remote"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Play"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Remove"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Rescan"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Save"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Show more"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Shuffle"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Verify"}}},data:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" albums"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" artist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artists"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobook"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobook"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobooks"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" author"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" author"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" authors"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" channel"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" channels"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" composer"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" composer"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" composers"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genres"}]}]}},kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"File"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Stream"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" playlists"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" stations"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" tracks"}]}]}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"Adding a podcast includes creating an RSS playlist, that will allow OwnTone to manage the podcast subscription."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Processing…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Add podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Processing…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Add stream"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Playlist name"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Saving…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Save queue to playlist"}}}},podcast:{remove:{info:{t:0,b:{t:2,i:[{t:3,v:"Permanently remove this podcast from your library?"},{t:4,k:"separator"},{t:3,v:"(This will also remove the RSS playlist "},{t:4,k:"name"},{t:3,v:")"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Delete the podcast"}}}},"queue-item":{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing code"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Remote pairing request"}}},track:{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},rating:{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Update everything"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Only update RSS feeds"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Scan for new, deleted and modified files"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Only update local library"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Library update in progress…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Rescan metadata of unmodified files"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Only update Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Update library"}}}},"grouped-list":{"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Last month"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"Last week"}},today:{t:0,b:{t:2,i:[{t:3}],s:"Today"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Undefined"}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"German (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"English"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"French (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Simplified Chinese (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Traditional Chinese (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Permanently remove this podcast from your library?"},{t:4,k:"separator"},{t:3,v:"(This will also remove the RSS playlist "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"Track is not playable"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", restriction reason: "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Audiobook"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Music"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"About"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Files"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Music"}},outputs:{t:0,b:{t:2,i:[{t:3}],s:"Outputs"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP stream"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Update Library"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Volume"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Hide singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"If active, hides singles and anything associated with them."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Hide Spotify content"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"If active, hides content from Spotify."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filter"}}},sort:{"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Artist › Release date"}},"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Artist › Name"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Rating"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Recently added"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Recently released"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Release date"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Sort"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Web interface built with "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" and "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compiled with support for "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Library"}},more:{t:0,b:{t:2,i:[{t:3}],s:"more"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Authors"}}},tabs:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},authors:{t:0,b:{t:2,i:[{t:3}],s:"Authors"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Files"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Recently added"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Recently played"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"History"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},outputs:{title:{t:0,b:{t:2,i:[{t:3}],s:"Outputs"}}},player:{info:{t:0,b:{t:2,i:[{t:3}],s:"Add some tracks by browsing your library"}},time:{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Live"},{t:2,i:[{t:4,k:"time"}]},{t:2,i:[{t:4,k:"time"}]}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Your play queue is empty"}}},playlists:{title:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"name"}]},{t:2,i:[{t:3}],s:"Playlists"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"New Episodes"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"Queue"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"expression"}},help:{t:0,b:{t:2,i:[{t:3,v:"Tip: you can search by a smart playlist query language "},{t:4,k:"help"},{t:3,v:" if you prefix it with "},{t:4,k:"query"},{t:3,v:"."}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"No results found"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the album"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the artist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" artists"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the audiobook"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" audiobooks"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the composer"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" composers"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the playlist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" playlists"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the podcast"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the track"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" tracks"}]}]}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Library"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}}},settings:{tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"Remotes and Outputs"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Online Services"}},webinterface:{t:0,b:{t:2,i:[{t:3}],s:"General"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Featured Playlists"}},"followed-artists":{t:0,b:{t:2,i:[{t:3}],s:"Followed Artists"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"New Releases"}}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Clear history"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Pause"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Play"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Repeat all tracks"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Read tracks once"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Repeat current track"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Seek backward in the track"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Seek forward in the track"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Play tracks randomly"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Play tracks in order"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Skip to previous track"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Skip to next track"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Stop"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Toggle lyrics"}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Folder"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Plain"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Smart"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Added On"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Album Artist"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Artist"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Comment"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Composer"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Duration"}},folders:{t:0,b:{t:2,i:[{t:3}],s:"Folders"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Owner"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Path"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Playtime"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularity / Followers"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disc / Track"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Quality"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Rating"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Release Date"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Updated"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Uptime"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Year"}}},server:{"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" track appended to the queue"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" tracks appended to the queue"}]}]}},"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Failed to connect to OwnTone server"}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"Queue saved to playlist "},{t:4,k:"name"}]}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"Request failed (status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}}},settings:{appearance:{auto:{t:0,b:{t:2,i:[{t:3}],s:"Auto"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"Dark"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Light"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Appearance"}}},artwork:{"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone supports PNG and JPEG artwork which is either placed as separate image files in the library, embedded in the media files or made available online by radio stations."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"In addition to that, you can enable fetching artwork from the following artwork providers:"}},"show-cover-artwork-in-album-lists":{t:0,b:{t:2,i:[{t:3}],s:"Show cover artwork in album list"}},"streamurl-ignore":{t:0,b:{t:2,i:[{t:3}],s:"Ignore artwork provided by radio stations"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},"use-artwork-source-coverartarchive":{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},"use-artwork-source-discogs":{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"use-artwork-source-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"No active pairing request."}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Remote Pairing"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing code"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Remote pairing request from "}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Speaker pairing and device verification"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"If your speaker requires pairing then activate it below and enter the PIN that it displays."}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Verification code"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Login with your Last.fm username and password to enable scrobbling."}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone will not store your Last.fm username/password, only the session key. The session key does not expire."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone was built without support for Last.fm."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Password"}},spotify:{authorize:{t:0,b:{t:2,i:[{t:3}],s:"Authorize API access"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Grant access to the Spotify API."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone was either built without support for Spotify or libspotify is not installed."}},reauthorize:{t:0,b:{t:2,i:[{t:3,v:"Please reauthorize API access to grant OwnTone the following additional access rights: "},{t:4,k:"scopes"},{t:3,v:"."}]}},requirements:{t:0,b:{t:2,i:[{t:3,v:"You must have a Spotify premium account. Access to the Spotify API enables scanning of your Spotify library. Required scopes are: "},{t:4,k:"scopes"},{t:3,v:"."}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},user:{t:0,b:{t:2,i:[{t:3,v:"Access granted for "},{t:4,k:"user"}]}}},username:{t:0,b:{t:2,i:[{t:3}],s:"Username"}}},webinterface:{genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Language"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Select the top navigation bar menu items"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"On mobile device screens, only the burger menu is displayed."}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Navigation Bar"}},"player-page":{t:0,b:{t:2,i:[{t:3}],s:"Player page"}},"recently-added-limit":{t:0,b:{t:2,i:[{t:3}],s:"Limit the number of albums displayed"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Recently added page"}},"show-composer-for-genre":{t:0,b:{t:2,i:[{t:3}],s:"Show composer only for listed genres"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Comma-separated list of genres, for which the composer must be displayed."},{t:5,i:0},{t:3,v:"Leave empty to always show the composer."},{t:5,i:0},{t:3,v:'The genre tag of the current track is matched by checking, if one of the defined genres are included. For example setting to "classical, soundtrack" will show the composer for tracks with a genre tag of "Contemporary Classical"'}]}},"show-composer-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Show composer"}},"show-filepath-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Show filepath"}},"show-menu-item-audiobooks":{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},"show-menu-item-files":{t:0,b:{t:2,i:[{t:3}],s:"Files"}},"show-menu-item-music":{t:0,b:{t:2,i:[{t:3}],s:"Music"}},"show-menu-item-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},"show-menu-item-podcasts":{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-menu-item-radio":{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"show-menu-item-search":{t:0,b:{t:2,i:[{t:3}],s:"Search"}}}}}},{fr:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Ajouter ensuite"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un flux"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Annuler"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Effacer"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Éditer"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Masquer l’historique"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Se connecter"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Se déconnecter"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme lus"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme nouveau"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme lu"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Jumeler la télécommande"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Lire"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Analyser"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Afficher plus"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Lecture aléatoire"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Vérifier"}}},data:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" albums"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" artiste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artiste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artistes"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" livre audio"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" livre audio"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" livres audio"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" auteur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" auteur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" auteurs"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeurs"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genres"}]}]}},kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"Fichier"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Flux"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" liste de lecture"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" liste de lecture"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" listes de lecture"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" stations"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" piste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" piste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" pistes"}]}]}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"L’ajout d’un podcast inclut la création d’une liste de lecture RSS, qui permettra à OwnTone de gérer l’abonnement au podcast."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-du-flux-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Traitement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Chargement…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-du-flux"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Traitement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un flux"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Nom de la liste de lecture"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer la file d’attente dans une liste de lecture"}}}},podcast:{remove:{info:{t:0,b:{t:2,i:[{t:3,v:"Supprimer ce podcast de manière permanente de la bibliothèque ?"},{t:4,k:"separator"},{t:3,v:"(Cela supprimera également la liste de lecture RSS "},{t:4,k:"name"},{t:3,v:")"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer le podcast"}}}},"queue-item":{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de jumelage"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Demande de jumelage de télécommande"}}},track:{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},rating:{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Tout actualiser"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement les flux RSS"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Recherche les fichiers ajoutés, supprimés et modifiés"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement la bibliothèque locale"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Actualisation de la bibliothèque en cours…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Analyser les métadonnées des fichiers non modifiés"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser la bibliothèque"}}}},"grouped-list":{"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Le mois dernier"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"La semaine dernière"}},today:{t:0,b:{t:2,i:[{t:3}],s:"Aujourd’hui"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Indéfini"}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"Allemand (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"Anglais (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Français"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Chinois simplifié (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Chinois traditionnel (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Supprimer définitivement ce podcast de votre bibliothèque ?"},{t:4,k:"separator"},{t:3,v:"(Cela supprimera également la liste de lecture RSS "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"La piste ne peut pas être lue"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", raison de la restriction : "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Livre audio"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"À propos"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},outputs:{t:0,b:{t:2,i:[{t:3}],s:"Sorties"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Réglages"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"Flux HTTP"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Actualiser la bibliothèque"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Volume"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Masquer les singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"Si actif, masque les singles et tout ce qui leur est associé."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Masquer le contenu de Spotify"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"Si actif, masque le contenu qui provient de Spotify."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filtrer"}}},sort:{"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Artiste › Date de sortie"}},"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Artiste › Nom"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Nom"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Classement"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Ajouts récents"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Sorties récentes"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Date de sortie"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Trier"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Interface utilisateur construite avec "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" et "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compilé avec les options "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothèque"}},more:{t:0,b:{t:2,i:[{t:3}],s:"plus"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Auteurs"}}},tabs:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},authors:{t:0,b:{t:2,i:[{t:3}],s:"Auteurs"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouts récents"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Lectures récentes"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Historique"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},outputs:{title:{t:0,b:{t:2,i:[{t:3}],s:"Sorties"}}},player:{info:{t:0,b:{t:2,i:[{t:3}],s:"Ajoutez des pistes en parcourant votre bibliothèque"}},time:{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"En direct"},{t:2,i:[{t:4,k:"time"}]},{t:2,i:[{t:4,k:"time"}]}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"La file d’attente est vide"}}},playlists:{title:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"name"}]},{t:2,i:[{t:3}],s:"Listes de lecture"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"Nouveaux épisodes"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"File d’attente"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"expression"}},help:{t:0,b:{t:2,i:[{t:3,v:"Astuce : vous pouvez effectuer une recherche avec une "},{t:4,k:"help"},{t:3,v:" du langage de requête de liste de lecture intelligente en préfixant votre requête avec "},{t:4,k:"query"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Aucun résultat trouvé"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’album"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’artiste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" artistes"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le livre audio"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" livres audio"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le compositeur"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" compositeurs"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la liste de lecture"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" listes de lecture"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le podcast"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la piste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" pistes"}]}]}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothèque"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Pistes"}}},settings:{tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Illustrations"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"Télécommandes et sorties"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Services en ligne"}},webinterface:{t:0,b:{t:2,i:[{t:3}],s:"Général"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture en vedette"}},"followed-artists":{t:0,b:{t:2,i:[{t:3}],s:"Artistes suivis"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"Nouvelle sorties"}}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Effacer l’historique"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Mettre la lecture en pause"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Lire"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Répéter toutes les pistes"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes une fois"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Répéter la piste en cours"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Reculer dans la piste"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Avancer dans la piste"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes aléatoirement"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes dans l’ordre"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Reculer à la piste précédente"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Avancer à la piste suivante"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Arrêter la lecture"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Voir/Cacher les paroles"}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Dossier"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Simple"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Intelligente"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Ajouté le"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Artiste de l’album"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Artiste"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Commentaire"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Compositeur"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Durée"}},folders:{t:0,b:{t:2,i:[{t:3}],s:"Dossiers"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Nom"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Propriétaire"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Emplacement"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Temps de lecture"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularité / Abonnements"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disque / Piste"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Qualité"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Classement"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Date de sortie"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Pistes"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Mise à jour"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Temps de fonctionnement"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Année"}}},server:{"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" piste ajoutée à la file d’attente"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" pistes ajoutées à la file d’attente"}]}]}},"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Échec de connexion au serveur"}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"La file d’attente enregistrée dans la liste de lecture "},{t:4,k:"name"}]}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"La requête a échoué (status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}}},settings:{appearance:{auto:{t:0,b:{t:2,i:[{t:3}],s:"Automatique"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"Sombre"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Clair"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Mode d’apparence"}}},artwork:{"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone prend en charge les illustrations au format PNG et JPEG qui sont soit placées dans la bibliothèque en tant que fichiers image séparés, soit intégrées dans les fichiers média, soit mises à disposition en ligne par les stations de radio."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"En outre, vous pouvez activer la récupération des illustrations à partir des fournisseurs d’illustrations suivants :"}},"show-cover-artwork-in-album-lists":{t:0,b:{t:2,i:[{t:3}],s:"Afficher les illustrations dans la liste d’albums"}},"streamurl-ignore":{t:0,b:{t:2,i:[{t:3}],s:"Ignorer les illustrations fournies par les stations de radio"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Illustrations"}},"use-artwork-source-coverartarchive":{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},"use-artwork-source-discogs":{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"use-artwork-source-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Aucune demande de jumelage active."}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Jumelage de télécommande"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de jumelage"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Demande de jumelage de télécommande "}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Jumelage d’enceinte et vérification d’appareil"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"Si votre enceinte nécessite un jumelage, activez-la ci-dessous et entrez le code PIN qu’elle affiche."}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de vérification"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Connectez-vous avec votre nom d’utilisateur et votre mot de passe Last.fm pour activer le scrobbling."}},info:{t:0,b:{t:2,i:[{t:3}],s:"Le nom d’utilisateur et le mot de passe Last.fm ne sont pas enregistrés, uniquement la clé de session. La clé de session n’expire pas."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"L’option Last.fm n’est pas présente."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Mot de passe"}},spotify:{authorize:{t:0,b:{t:2,i:[{t:3}],s:"Autoriser l’accès à l’API"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Accordez l’accès à l’API de Spotify."}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"L’option Spotify n’est pas présente."}},reauthorize:{t:0,b:{t:2,i:[{t:3,v:"Veuillez autoriser à nouveau l’accès à l’API pour accorder à OwnTone les droits d’accès supplémentaires suivants : "},{t:4,k:"scopes"},{t:3,v:"."}]}},requirements:{t:0,b:{t:2,i:[{t:3,v:"Vous devez posséder un compte Spotify Premium. L’accès à l’API de Spotify permet l’analyse de votre bibliothèque Spotify. Les champs d’application requis sont les suivants : "},{t:4,k:"scopes"},{t:3,v:"."}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},user:{t:0,b:{t:2,i:[{t:3,v:"Accès autorisé pour "},{t:4,k:"user"},{t:3,v:"."}]}}},username:{t:0,b:{t:2,i:[{t:3}],s:"Nom d’utilisateur"}}},webinterface:{genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Langue"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Sélectionnez les éléments de la barre de navigation supérieure"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"Sur les écrans des appareils mobiles, seul le menu est affiché."}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Barre de navigation"}},"player-page":{t:0,b:{t:2,i:[{t:3}],s:"Page « En cours de lecture »"}},"recently-added-limit":{t:0,b:{t:2,i:[{t:3}],s:"Limiter le nombre d’albums affichés"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Page « Ajouts récents »"}},"show-composer-for-genre":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le compositeur uniquement pour les genres listés"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Liste de genres séparés par des virgules pour lesquels le compositeur doit être affiché."},{t:5,i:0},{t:3,v:"Laissez vide pour toujours afficher le compositeur."},{t:5,i:0},{t:3,v:'L’étiquette de genre de la piste actuelle est comparée en vérifiant si l’un des genres définis est inclus. Par exemple, en choisissant "classique, bande sonore", le compositeur pour les pistes dont l’étiquette de genre est "classique contemporain" sera affiché.'}]}},"show-composer-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le compositeur"}},"show-filepath-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le chemin du fichier"}},"show-menu-item-audiobooks":{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},"show-menu-item-files":{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}},"show-menu-item-music":{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},"show-menu-item-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},"show-menu-item-podcasts":{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-menu-item-radio":{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"show-menu-item-search":{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}}}}}},{"zh-CN":{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"添加"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"插播"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"添加流"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"清除"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"编辑"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"隐藏历史"}},login:{t:0,b:{t:2,i:[{t:3}],s:"登入"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"退出"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"全部标记为已播放"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"标记为最新"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"标记为已播放"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"遥控配对"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"移除"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"重新扫描"}},save:{t:0,b:{t:2,i:[{t:3}],s:"保存"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"显示更多"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"随机播放"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"验证"}}},data:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 张专辑"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 张专辑"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位艺人"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位艺人"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个有声读物"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个有声读物"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个流派"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个流派"}]}]}},kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"流"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},url:{t:0,b:{t:2,i:[{t:3}],s:"链接"}}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播放列表"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播放列表"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播客"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播客"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个电台"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个电台"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 只曲目"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"添加一个可生成播放列表的播客RSS链接,这将允许OwnTone管理订阅"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"处理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"添加播客"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"处理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"添加流"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"播放列表名称"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"保存中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"保存播放清单到列表"}}}},podcast:{remove:{info:{t:0,b:{t:2,i:[{t:3,v:"从资料库中永久移除该播客?"},{t:4,k:"separator"},{t:3,v:"(这也将移除该播客RSS列表 "},{t:4,k:"name"},{t:3,v:")"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"移除播客"}}}},"queue-item":{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配对码"}},title:{t:0,b:{t:2,i:[{t:3}],s:"请求遥控配对"}}},track:{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},rating:{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"更新所有内容"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"仅更新RSS订阅内容"}},info:{t:0,b:{t:2,i:[{t:3}],s:"扫描新的、删除的和修改的文件"}},local:{t:0,b:{t:2,i:[{t:3}],s:"仅更新本地资料库"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"正在更新本地资料库…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"重新扫描未修改文件的元数据"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"仅更新Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"更新资料库"}}}},"grouped-list":{"last-month":{t:0,b:{t:2,i:[{t:3}],s:"上月"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"上周"}},today:{t:0,b:{t:2,i:[{t:3}],s:"今日"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"未定义"}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"德语 (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"英语 (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"法语 (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"简体中文"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"繁體中文"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"从资料库中永久移除该播客吗?"},{t:4,k:"separator"},{t:3,v:"(这也将移除RSS播放列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"曲目无法播放"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:",被限制原因:"},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"播客"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"关于"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},outputs:{t:0,b:{t:2,i:[{t:3}],s:"输出"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP流"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"更新资料库"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"音量"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"隐藏单曲"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"如果处于活动状态,则隐藏单曲和与其关联的任何内容"}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"隐藏来自Spotify的内容"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"如果处于活动状态,则隐藏 Spotify 中的内容"}},title:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}}},sort:{"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"艺人 › 发行日期"}},"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"艺人 › 名称"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"评级"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"最近添加"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"最近发行"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"发行日期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"分类"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"界面贡献者包括 "},{t:4,k:"bulma"},{t:3,v:","},{t:4,k:"mdi"},{t:3,v:","},{t:4,k:"vuejs"},{t:3,v:","},{t:4,k:"axios"},{t:3,v:" 和 "},{t:4,k:"others"}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"编译支持来自于 "},{t:4,k:"options"}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"资料库"}},more:{t:0,b:{t:2,i:[{t:3}],s:"更多"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},version:{t:0,b:{t:2,i:[{t:3,v:"版本 "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"张专辑"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"作者"}}},tabs:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},authors:{t:0,b:{t:2,i:[{t:3}],s:"作者"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"文件"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"流派"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近添加"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近播放"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},history:{t:0,b:{t:2,i:[{t:3}],s:"历史"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},outputs:{title:{t:0,b:{t:2,i:[{t:3}],s:"输出"}}},player:{info:{t:0,b:{t:2,i:[{t:3}],s:"浏览资料库添加曲目"}},time:{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"直播"},{t:2,i:[{t:4,k:"time"}]},{t:2,i:[{t:4,k:"time"}]}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"播放清单是空的"}}},playlists:{title:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"name"}]},{t:2,i:[{t:3}],s:"播放列表"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"最新单集"}},title:{t:0,b:{t:2,i:[{t:3}],s:"播客"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"清单"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"表达式"}},help:{t:0,b:{t:2,i:[{t:3,v:"提示:如果您使用 "},{t:4,k:"query"},{t:3,v:" 前缀,则可以通过智能播放列表查询语言 "},{t:4,k:"help"},{t:3,v:" 进行搜索"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到结果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示专辑"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个专辑"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示艺人"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 位艺人"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示有声书"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 本有声书"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示作曲家"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示播放列表"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个播放列表"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示播客"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个播客"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示曲目"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"资料库"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}}},settings:{tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"遥控和输出"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"在线服务"}},webinterface:{t:0,b:{t:2,i:[{t:3}],s:"概览"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"特色列表"}},"followed-artists":{t:0,b:{t:2,i:[{t:3}],s:"关注的艺人"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"最新发行"}}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"清除历史"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"暂停"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"重复播放所有曲目"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"所有曲目仅播放一遍"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"重复当前曲目"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"在当前曲目后退"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"在当前曲目前进"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"随机播放曲目"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"按顺序播放曲目"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"播放上一首"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"播放下一首"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"显示/隐藏歌词"}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"文件夹"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"简单"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"智能"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"添加时间"}},album:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"专辑艺人"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"张专辑"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"专辑艺人"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"评论"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"时长"}},folders:{t:0,b:{t:2,i:[{t:3}],s:"文件夹"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"所有者"}},path:{t:0,b:{t:2,i:[{t:3}],s:"路径"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"总播放时长"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"流行度 / 粉丝数"}},position:{t:0,b:{t:2,i:[{t:3}],s:"盘符 / 曲目"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"质量"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"评级"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"发行日期"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"只曲目"}},type:{t:0,b:{t:2,i:[{t:3}],s:"类型"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"更新于"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"运行时长"}},year:{t:0,b:{t:2,i:[{t:3}],s:"年份"}}},server:{"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"已附加到队列的 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]},{t:2,i:[{t:3,v:"已附加到队列的 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}},"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"无法连接到 OwnTone 服务器"}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"清单以添加到播放列表 "},{t:4,k:"name"}]}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"请求失败 (状态:"},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}}},settings:{appearance:{auto:{t:0,b:{t:2,i:[{t:3}],s:"自动"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"深色"}},light:{t:0,b:{t:2,i:[{t:3}],s:"浅色"}},title:{t:0,b:{t:2,i:[{t:3}],s:"外观"}}},artwork:{"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone支持PNG和 JPEG封面,这些封面可以作为单独的图像文件放置在库中或嵌入到媒体文件中,也可以通过广播电台在线提供"}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"除此之外,您还可以从以下素材提供者获取封面:"}},"show-cover-artwork-in-album-lists":{t:0,b:{t:2,i:[{t:3}],s:"在专辑列表中显示封面艺术作品"}},"streamurl-ignore":{t:0,b:{t:2,i:[{t:3}],s:"忽略广播电台提供的作品"}},title:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},"use-artwork-source-coverartarchive":{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},"use-artwork-source-discogs":{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"use-artwork-source-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"没有活跃的配对请求"}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"遥控配对"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配对代码"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"远程配对请求来自于 "}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"扬声器配对和设备验证"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您的扬声器需要配对,请在下面输入它显示的 PIN以激活"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"验证码"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"使用您的 Last.fm 用户名和密码登录以启用记录功能"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone不会存储您的 Last.fm 用户名/密码,仅存储会话密钥。会话密钥不会过期"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone的构建没有来自Last.fm的官方支持"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"密码"}},spotify:{authorize:{t:0,b:{t:2,i:[{t:3}],s:"授权 API 访问"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"授予对 Spotify API 的访问权限"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone的构建没有来自 Spotify 官方的支持,也未安装 libspotify"}},reauthorize:{t:0,b:{t:2,i:[{t:3,v:"请重新授权 API 访问权限,以授予 OwnTone 以下附加访问权限:"},{t:4,k:"scopes"}]}},requirements:{t:0,b:{t:2,i:[{t:3,v:"您必须拥有 Spotify付费帐户。访问 Spotify API 可以扫描您的 Spotify库。所需范围是:"},{t:4,k:"scopes"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},user:{t:0,b:{t:2,i:[{t:3,v:"授予访问权限 "},{t:4,k:"user"}]}}},username:{t:0,b:{t:2,i:[{t:3}],s:"用户名"}}},webinterface:{genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},language:{t:0,b:{t:2,i:[{t:3}],s:"语言"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"选择顶部导航栏菜单项"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"在移动设备屏幕上,只显示汉堡菜单"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"导航条"}},"player-page":{t:0,b:{t:2,i:[{t:3}],s:"“正在播放”页面"}},"recently-added-limit":{t:0,b:{t:2,i:[{t:3}],s:"限制显示的相册数量"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"“最近添加”页面"}},"show-composer-for-genre":{t:0,b:{t:2,i:[{t:3}],s:"仅显示列出的流派的作曲家"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"以逗号分隔的流派列表,必须显示作曲家所属的流派"},{t:5,i:0},{t:3,v:"留空以始终显示作曲家"},{t:5,i:0},{t:3,v:"通过检查是否包含定义的流派之一来匹配当前曲目的流派标签。例如,设置为“古典、原声带”将显示流派标签为“当代古典”的曲目的作曲家"}]}},"show-composer-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"显示作曲家"}},"show-filepath-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"显示文件路径"}},"show-menu-item-audiobooks":{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},"show-menu-item-files":{t:0,b:{t:2,i:[{t:3}],s:"文件"}},"show-menu-item-music":{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},"show-menu-item-playlists":{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},"show-menu-item-podcasts":{t:0,b:{t:2,i:[{t:3}],s:"播客"}},"show-menu-item-radio":{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}},"show-menu-item-search":{t:0,b:{t:2,i:[{t:3}],s:"搜索"}}}}}},{"zh-TW":{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"新增"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"插播"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"新增串流"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"清除"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"編輯"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"隱藏歷史"}},login:{t:0,b:{t:2,i:[{t:3}],s:"登入"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"退出"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"全部標記為已播放"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"標記為最新"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"標記為已播放"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"遙控配對"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"移除"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"重新掃描"}},save:{t:0,b:{t:2,i:[{t:3}],s:"儲存"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"顯示更多"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"隨機播放"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"驗證"}}},data:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 張專輯"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 張專輯"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位藝人"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位藝人"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個有聲書"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個有聲書"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 信道"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 信道"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個音樂類型"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個音樂類型"}]}]}},kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"串流"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},url:{t:0,b:{t:2,i:[{t:3}],s:"鏈接"}}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個播放列表"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個播放列表"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個Podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個Podcast"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個電台"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個電台"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 首曲目"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"新增一個可生成播放列表的Podcast RSS鏈接,這將允許OwnTone管理訂閱"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"處理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"新增Podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"載入中…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"處理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"新增串流"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"播放列表名稱"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"儲存中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"儲存播放清單到列表"}}}},podcast:{remove:{info:{t:0,b:{t:2,i:[{t:3,v:"從資料庫中永久移除該Podcast?"},{t:4,k:"separator"},{t:3,v:"(這也將移除該PodcastRSS列表 "},{t:4,k:"name"},{t:3,v:")"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"移除Podcast"}}}},"queue-item":{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配對碼"}},title:{t:0,b:{t:2,i:[{t:3}],s:"請求遙控配對"}}},track:{quality:{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"data.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},rating:{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"更新所有內容"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"僅更新RSS訂閱內容"}},info:{t:0,b:{t:2,i:[{t:3}],s:"掃描新的、刪除的和修改的文件"}},local:{t:0,b:{t:2,i:[{t:3}],s:"僅更新本地資料庫"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"正在更新本地資料庫…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"重新掃描未修改文件的中繼資料"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"僅更新Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"更新資料庫"}}}},"grouped-list":{"last-month":{t:0,b:{t:2,i:[{t:3}],s:"上月"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"上周"}},today:{t:0,b:{t:2,i:[{t:3}],s:"今日"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"未定義"}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"德語 (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"英語 (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"法語 (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"簡體中文"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"繁體中文"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"從資料庫中永久移除該Podcast嗎?"},{t:4,k:"separator"},{t:3,v:"(這也將移除RSS播放列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"曲目無法播放"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:",被限制原因:"},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"關於"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},outputs:{t:0,b:{t:2,i:[{t:3}],s:"輸出"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"電台"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"設定"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP串流"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"更新資料庫"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"音量"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"隱藏單曲"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"如果處於活動狀態,則隱藏單曲和與其關聯的任何內容"}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"隱藏來自Spotify的內容"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"如果處於活動狀態,則隱藏 Spotify 中的內容"}},title:{t:0,b:{t:2,i:[{t:3}],s:"篩選"}}},sort:{"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"藝人 › 發行日期"}},"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"藝人 › 名稱"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名稱"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"評級"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"最近新增"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"最近發行"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"發行日期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"分類"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"界面貢獻者包括 "},{t:4,k:"bulma"},{t:3,v:","},{t:4,k:"mdi"},{t:3,v:","},{t:4,k:"vuejs"},{t:3,v:","},{t:4,k:"axios"},{t:3,v:" 和 "},{t:4,k:"others"}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"編譯支持來自於 "},{t:4,k:"options"}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"資料庫"}},more:{t:0,b:{t:2,i:[{t:3}],s:"更多"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},version:{t:0,b:{t:2,i:[{t:3,v:"版本 "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"作者"}}},tabs:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},authors:{t:0,b:{t:2,i:[{t:3}],s:"作者"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"文件"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近新增"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近播放"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},history:{t:0,b:{t:2,i:[{t:3}],s:"歷史"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},outputs:{title:{t:0,b:{t:2,i:[{t:3}],s:"輸出"}}},player:{info:{t:0,b:{t:2,i:[{t:3}],s:"瀏覽資料庫新增曲目"}},time:{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"直播"},{t:2,i:[{t:4,k:"time"}]},{t:2,i:[{t:4,k:"time"}]}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"播放清單是空的"}}},playlists:{title:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"name"}]},{t:2,i:[{t:3}],s:"播放列表"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"最新單集"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"清單"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"電台"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"表達式"}},help:{t:0,b:{t:2,i:[{t:3,v:"提示:如果您使用 "},{t:4,k:"query"},{t:3,v:" 前綴,則可以通過智能播放列表查詢語言 "},{t:4,k:"help"},{t:3,v:" 進行搜尋"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到結果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示專輯"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個專輯"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示藝人"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 位藝人"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示有聲書"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 本有聲書"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示作曲家"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示播放列表"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個播放列表"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示Podcast"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個Podcast"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示曲目"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"資料庫"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}}},settings:{tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"遙控和輸出"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"在線服務"}},webinterface:{t:0,b:{t:2,i:[{t:3}],s:"概覽"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"特色列表"}},"followed-artists":{t:0,b:{t:2,i:[{t:3}],s:"關注的藝人"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"最新發行"}}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"清除歷史"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"暫停"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"重復播放所有曲目"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"所有曲目僅播放一遍"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"重復當前曲目"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"在當前曲目後退"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"在當前曲目前進"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"隨機播放曲目"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"按順序播放曲目"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"播放上一首"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"播放下一首"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"顯示/隱藏歌詞"}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"檔案夾"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"簡單"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"智能"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"新增時間"}},album:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"專輯藝人"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"張專輯"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"專輯藝人"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"評論"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"時長"}},folders:{t:0,b:{t:2,i:[{t:3}],s:"檔案夾"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名稱"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"所有者"}},path:{t:0,b:{t:2,i:[{t:3}],s:"路徑"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"總播放時長"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"流行度 / 粉絲數"}},position:{t:0,b:{t:2,i:[{t:3}],s:"盤符 / 曲目"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"品質"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"評級"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"發行日期"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}},type:{t:0,b:{t:2,i:[{t:3}],s:"類型"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"更新於"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"運行時長"}},year:{t:0,b:{t:2,i:[{t:3}],s:"年份"}}},server:{"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"已附加到隊列的 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]},{t:2,i:[{t:3,v:"已附加到隊列的 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}},"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"無法連接到 OwnTone 伺服器"}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"清單以新增到播放列表 "},{t:4,k:"name"}]}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"請求失敗 (狀態:"},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}}},settings:{appearance:{auto:{t:0,b:{t:2,i:[{t:3}],s:"自動"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"深色"}},light:{t:0,b:{t:2,i:[{t:3}],s:"淺色"}},title:{t:0,b:{t:2,i:[{t:3}],s:"外觀"}}},artwork:{"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone支持PNG和 JPEG封面,這些封面可以作為單獨的圖像文件放置在庫中或嵌入到媒體文件中,也可以通過電台在線提供"}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"除此之外,您還可以從以下素材提供者獲取封面:"}},"show-cover-artwork-in-album-lists":{t:0,b:{t:2,i:[{t:3}],s:"在專輯列表中顯示封面藝術作品"}},"streamurl-ignore":{t:0,b:{t:2,i:[{t:3}],s:"忽略電台提供的作品"}},title:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},"use-artwork-source-coverartarchive":{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},"use-artwork-source-discogs":{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"use-artwork-source-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"沒有活躍的配對請求"}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"遙控配對"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配對代碼"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"遠程配對請求來自於 "}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"揚聲器配對和設備驗證"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您的揚聲器需要配對,請在下面輸入它顯示的 PIN以啓用"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"驗證碼"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"使用您的 Last.fm 用戶名和密碼登入以啓用記錄功能"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone不會存儲您的 Last.fm 用戶名/密碼,僅存儲會話密鑰。會話密鑰不會過期"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone並無Last.fm的官方支持"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"密碼"}},spotify:{authorize:{t:0,b:{t:2,i:[{t:3}],s:"授權 API 訪問"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"授予對 Spotify API 的訪問權限"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone並無 Spotify 官方的支持,也未安裝 libspotify"}},reauthorize:{t:0,b:{t:2,i:[{t:3,v:"請重新授權 API 訪問權限,以授予 OwnTone 以下附加訪問權限:"},{t:4,k:"scopes"}]}},requirements:{t:0,b:{t:2,i:[{t:3,v:"您必須擁有 Spotify付費帳戶。訪問 Spotify API 可以掃描您的 Spotify庫。所需範圍是:"},{t:4,k:"scopes"}]}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},user:{t:0,b:{t:2,i:[{t:3,v:"授予訪問權限 "},{t:4,k:"user"}]}}},username:{t:0,b:{t:2,i:[{t:3}],s:"用戶名"}}},webinterface:{genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},language:{t:0,b:{t:2,i:[{t:3}],s:"語言"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"選擇頂部導航欄菜單項"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"在行動裝置螢幕上,只會顯示漢堡菜單"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"導航條"}},"player-page":{t:0,b:{t:2,i:[{t:3}],s:"“正在播放”頁面"}},"recently-added-limit":{t:0,b:{t:2,i:[{t:3}],s:"限制顯示的相簿數量"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"“最近新增”頁面"}},"show-composer-for-genre":{t:0,b:{t:2,i:[{t:3}],s:"僅顯示列出的音樂類型的作曲家"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"以逗號分隔的音樂類型清單,將顯示作曲家的音樂類型"},{t:5,i:0},{t:3,v:"留空以始終顯示作曲家"},{t:5,i:0},{t:3,v:"通過檢查是否包含定義的音樂類型之一來匹配當前曲目的音樂類型標籤。例如,設定為“古典、原聲帶”將顯示音樂類型標籤為“當代古典”的曲目的作曲家"}]}},"show-composer-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"顯示作曲家"}},"show-filepath-now-playing":{t:0,b:{t:2,i:[{t:3}],s:"顯示檔案路徑"}},"show-menu-item-audiobooks":{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},"show-menu-item-files":{t:0,b:{t:2,i:[{t:3}],s:"文件"}},"show-menu-item-music":{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},"show-menu-item-playlists":{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},"show-menu-item-podcasts":{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},"show-menu-item-radio":{t:0,b:{t:2,i:[{t:3}],s:"電台"}},"show-menu-item-search":{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}}}}}}),qs=KO({fallbackLocale:"en",fallbackWarn:!1,locale:navigator.language,messages:sx,missingWarn:!1}),{t:ix}=qs.global;ut.interceptors.response.use(t=>t.data,t=>(t.request.status&&t.request.responseURL&&Ka().add({text:ix("server.request-failed",{cause:t.request.statusText,status:t.request.status,url:t.request.responseURL}),type:"danger"}),Promise.reject(t)));const dy="./api/pairing",wp={pair(t){return ut.post(dy,{pin:t})},state(){return ut.get(dy)}},kp=Ls("RemotesStore",{actions:{async initialise(){this.$state=await wp.state()}},state:()=>({active:!1,remote:""})}),rx={name:"ModalDialogRemotePairing",components:{ControlPinField:d0,ModalDialog:rr},props:{show:Boolean},emits:["close"],setup(){return{remoteStore:kp()}},data(){return{disabled:!0,pin:""}},computed:{actions(){return[{handler:this.cancel,icon:"cancel",key:"actions.cancel"},{disabled:this.disabled,handler:this.pair,icon:"vector-link",key:"actions.pair"}]}},methods:{cancel(){this.$emit("close")},onPinChange(t,e){this.pin=t,this.disabled=e},pair(){wp.pair(this.pin).then(()=>{this.pin=""})}}},ox=["textContent"];function ax(t,e,n,s,i,r){const o=w("control-pin-field"),a=w("modal-dialog");return O(),pt(a,{actions:r.actions,show:n.show,title:t.$t("dialog.remote-pairing.title"),onClose:e[1]||(e[1]=l=>t.$emit("close"))},{content:L(()=>[N("form",{onSubmit:e[0]||(e[0]=Bn((...l)=>r.pair&&r.pair(...l),["prevent"]))},[N("label",{class:"label",textContent:nt(s.remoteStore.remote)},null,8,ox),S(o,{placeholder:t.$t("dialog.remote-pairing.pairing-code"),onInput:r.onPinChange},null,8,["placeholder","onInput"])],32)]),_:1},8,["actions","show","title"])}const lx=et(rx,[["render",ax]]),cx={name:"ControlSwitch",props:{modelValue:Boolean},emits:["update:modelValue"]},ux={class:"field mb-0 is-flex is-align-items-center"},dx={class:"toggle is-flex is-align-items-center"},fx={class:"control is-flex is-align-items-center"},hx=["checked"],px={key:0,class:"help mb-4"};function mx(t,e,n,s,i,r){return O(),F(rt,null,[N("div",ux,[N("label",dx,[N("div",fx,[N("input",{checked:n.modelValue,type:"checkbox",class:"toggle-checkbox is-hidden",onChange:e[0]||(e[0]=o=>t.$emit("update:modelValue",!n.modelValue))},null,40,hx),e[1]||(e[1]=N("div",{class:"toggle-switch"},null,-1))]),ue(t.$slots,"label",{},void 0,!0)])]),t.$slots.help?(O(),F("div",px,[ue(t.$slots,"help",{},void 0,!0)])):vt("",!0)],64)}const Hr=et(cx,[["render",mx],["__scopeId","data-v-f999a158"]]),Ge="./api/library",_s="./api/search",Tt={add(t){return ut.post(`${Ge}/add`,null,{params:{url:t}})},album(t){return ut.get(`${Ge}/albums/${t}`)},albumTracks(t,e={limit:-1,offset:0}){return ut.get(`${Ge}/albums/${t}/tracks`,{params:e})},albums(t){return ut.get(`${Ge}/albums`,{params:{media_kind:t}})},artist(t){return ut.get(`${Ge}/artists/${t}`)},artistAlbums(t){return ut.get(`${Ge}/artists/${t}/albums`)},async artistTracks(t){const e={expression:`songartistid is "${t}"`,type:"tracks"};return(await ut.get(_s,{params:e})).tracks},artists(t){return ut.get(`${Ge}/artists`,{params:{media_kind:t}})},composer(t){return ut.get(`${Ge}/composers/${encodeURIComponent(t)}`)},async composerAlbums(t){const e={expression:`composer is "${t}" and media_kind is music`,type:"albums"};return(await ut.get(_s,{params:e})).albums},async composerTracks(t){const e={expression:`composer is "${t}" and media_kind is music`,type:"tracks"};return(await ut.get(_s,{params:e})).tracks},composers(t){return ut.get(`${Ge}/composers`,{params:{media_kind:t}})},files(t){return ut.get(`${Ge}/files`,{params:{directory:t}})},async genre(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"genres"};return(await ut.get(_s,{params:n})).genres},async genreAlbums(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"albums"};return(await ut.get(_s,{params:n})).albums},async genreTracks(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"tracks"};return(await ut.get(_s,{params:n})).tracks},async genres(t){const e={expression:`media_kind is ${t}`,type:"genres"};return(await ut.get(_s,{params:e})).genres},async newPodcastEpisodes(){const t={expression:"media_kind is podcast and play_count = 0 ORDER BY time_added DESC",type:"tracks"};return(await ut.get(_s,{params:t})).tracks},playlist(t){return ut.get(`${Ge}/playlists/${t}`)},playlistDelete(t){return ut.delete(`${Ge}/playlists/${t}`)},playlistFolder(t=0){return ut.get(`${Ge}/playlists/${t}/playlists`)},playlistTracks(t){return ut.get(`${Ge}/playlists/${t}/tracks`)},async podcastEpisodes(t){const e={expression:`media_kind is podcast and songalbumid is "${t}" ORDER BY date_released DESC`,type:"tracks"};return(await ut.get(_s,{params:e})).tracks},async radioStreams(){const t={expression:"data_kind is url and song_length = 0",media_kind:"music",type:"tracks"};return(await ut.get(_s,{params:t})).tracks},rescan(t){return ut.put("./api/rescan",null,{params:{scan_kind:t}})},rssCount(){return ut.get(`${Ge}/count`,{params:{expression:"scan_kind is rss"}})},search(t){return ut.get(_s,{params:t})},state(){return ut.get(Ge)},track(t){return ut.get(`${Ge}/tracks/${t}`)},trackPlaylists(t){return ut.get(`${Ge}/tracks/${t}/playlists`)},update(t){return ut.put("./api/update",null,{params:{scan_kind:t}})},updateAlbum(t,e){return ut.put(`${Ge}/albums/${t}/tracks`,null,{params:e})},updateTrack(t,e={}){return ut.put(`${Ge}/tracks/${t}`,null,{params:e})}},Gu=Ls("LibraryStore",{actions:{async initialise(){this.$state=await Tt.state()}},state:()=>({albums:0,artists:0,db_playtime:0,songs:0,started_at:"01",update_dialog_scan_kind:"",updated_at:"01",updating:!1})});class We{api;constructor(e){this.api=e}async getRequest(e){return await this.api.makeRequest("GET",e)}async postRequest(e,n,s=void 0){return await this.api.makeRequest("POST",e,n,s)}async putRequest(e,n,s=void 0){return await this.api.makeRequest("PUT",e,n,s)}async deleteRequest(e,n){return await this.api.makeRequest("DELETE",e,n)}paramsFor(e){const n=new URLSearchParams;for(let s of Object.getOwnPropertyNames(e))(e[s]||e[s]===0||!e[s]&&typeof e[s]=="boolean")&&n.append(s,e[s].toString());return[...n].length>0?`?${n.toString()}`:""}}class gx extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return await this.getRequest(`albums/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`albums${s}`)).albums}tracks(e,n,s,i){const r=this.paramsFor({market:n,limit:s,offset:i});return this.getRequest(`albums/${e}/tracks${r}`)}}class yx extends We{async get(e){if(typeof e=="string")return this.getRequest(`artists/${e}`);const n=this.paramsFor({ids:e});return(await this.getRequest(`artists${n}`)).artists}albums(e,n,s,i,r){const o=this.paramsFor({include_groups:n,market:s,limit:i,offset:r});return this.getRequest(`artists/${e}/albums${o}`)}topTracks(e,n){const s=this.paramsFor({market:n});return this.getRequest(`artists/${e}/top-tracks${s}`)}relatedArtists(e){return this.getRequest(`artists/${e}/related-artists`)}}class bx extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return this.getRequest(`audiobooks/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`audiobooks${s}`)).audiobooks}getAudiobookChapters(e,n,s,i){const r=this.paramsFor({market:n,limit:s,offset:i});return this.getRequest(`audiobooks/${e}/chapters${r}`)}}class vx extends We{getCategories(e,n,s,i){const r=this.paramsFor({country:e,locale:n,limit:s,offset:i});return this.getRequest(`browse/categories${r}`)}getCategory(e,n,s){const i=this.paramsFor({country:n,locale:s});return this.getRequest(`browse/categories/${e}${i}`)}getNewReleases(e,n,s){const i=this.paramsFor({country:e,limit:n,offset:s});return this.getRequest(`browse/new-releases${i}`)}getFeaturedPlaylists(e,n,s,i,r){const o=this.paramsFor({country:e,locale:n,timestamp:s,limit:i,offset:r});return this.getRequest(`browse/featured-playlists${o}`)}getPlaylistsForCategory(e,n,s,i){const r=this.paramsFor({country:n,limit:s,offset:i});return this.getRequest(`browse/categories/${e}/playlists${r}`)}}class _x extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return this.getRequest(`chapters/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`chapters${s}`)).chapters}}class Sx extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return this.getRequest(`episodes/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`episodes${s}`)).episodes}}class Ex extends We{get(e){const n=this.paramsFor(e);return this.getRequest(`recommendations${n}`)}genreSeeds(){return this.getRequest("recommendations/available-genre-seeds")}}class wx extends We{getAvailableMarkets(){return this.getRequest("markets")}}class kx extends We{getPlaybackState(e,n){const s=this.paramsFor({market:e,additional_types:n});return this.getRequest(`me/player${s}`)}getAvailableDevices(){return this.getRequest("me/player/devices")}getCurrentlyPlayingTrack(e,n){const s=this.paramsFor({market:e,additional_types:n});return this.getRequest(`me/player/currently-playing${s}`)}getRecentlyPlayedTracks(e,n){const s={limit:e};n&&(n.type==="before"?s.before=n.timestamp:n.type==="after"&&(s.after=n.timestamp));const i=this.paramsFor(s);return this.getRequest(`me/player/recently-played${i}`)}getUsersQueue(){return this.getRequest("me/player/queue")}async transferPlayback(e,n){if(e.length>1)throw new Error("Although an array is accepted, only a single device_id is currently supported. Supplying more than one will return 400 Bad Request");await this.putRequest("me/player",{device_ids:e,play:n})}async startResumePlayback(e,n,s,i,r){const o=this.paramsFor({device_id:e});await this.putRequest(`me/player/play${o}`,{context_uri:n,uris:s,offset:i,positionMs:r})}async pausePlayback(e){const n=this.paramsFor({device_id:e});await this.putRequest(`me/player/pause${n}`)}async skipToNext(e){const n=this.paramsFor({device_id:e});await this.postRequest(`me/player/next${n}`)}async skipToPrevious(e){const n=this.paramsFor({device_id:e});await this.postRequest(`me/player/previous${n}`)}async seekToPosition(e,n){const s=this.paramsFor({position_ms:e,device_id:n});await this.putRequest(`me/player/seek${s}`)}async setRepeatMode(e,n){const s=this.paramsFor({state:e,device_id:n});await this.putRequest(`me/player/repeat${s}`)}async setPlaybackVolume(e,n){const s=this.paramsFor({volume_percent:e,device_id:n});await this.putRequest(`me/player/volume${s}`)}async togglePlaybackShuffle(e,n){const s=this.paramsFor({state:e,device_id:n});await this.putRequest(`me/player/shuffle${s}`)}async addItemToPlaybackQueue(e,n){const s=this.paramsFor({uri:e,device_id:n});await this.postRequest(`me/player/queue${s}`)}}class Cx extends We{getPlaylist(e,n,s,i){const r=this.paramsFor({market:n,fields:s,additional_types:i?.join(",")});return this.getRequest(`playlists/${e}${r}`)}getPlaylistItems(e,n,s,i,r,o){const a=this.paramsFor({market:n,fields:s,limit:i,offset:r,additional_types:o?.join(",")});return this.getRequest(`playlists/${e}/tracks${a}`)}async changePlaylistDetails(e,n){await this.putRequest(`playlists/${e}`,n)}movePlaylistItems(e,n,s,i){return this.updatePlaylistItems(e,{range_start:n,range_length:s,insert_before:i})}updatePlaylistItems(e,n){return this.putRequest(`playlists/${e}/tracks`,n)}async addItemsToPlaylist(e,n,s){await this.postRequest(`playlists/${e}/tracks`,{position:s,uris:n})}async removeItemsFromPlaylist(e,n){await this.deleteRequest(`playlists/${e}/tracks`,n)}getUsersPlaylists(e,n,s){const i=this.paramsFor({limit:n,offset:s});return this.getRequest(`users/${e}/playlists${i}`)}createPlaylist(e,n){return this.postRequest(`users/${e}/playlists`,n)}getPlaylistCoverImage(e){return this.getRequest(`playlists/${e}/images`)}async addCustomPlaylistCoverImage(e,n){let s="";if(n instanceof Buffer)s=n.toString("base64");else if(n instanceof HTMLCanvasElement)s=n.toDataURL("image/jpeg").split(";base64,")[1];else if(n instanceof HTMLImageElement){const i=document.createElement("canvas");i.width=n.width,i.height=n.height;const r=i.getContext("2d");if(!r)throw new Error("Could not get canvas context");r.drawImage(n,0,0),s=i.toDataURL("image/jpeg").split(";base64,")[1]}else if(typeof n=="string")s=n;else throw new Error("ImageData must be a Buffer, HTMLImageElement, HTMLCanvasElement, or string containing a base64 encoded jpeg");await this.addCustomPlaylistCoverImageFromBase64String(e,s)}async addCustomPlaylistCoverImageFromBase64String(e,n){await this.putRequest(`playlists/${e}/images`,n,"image/jpeg")}}class Tx extends We{async execute(e,n,s,i,r,o){const a=this.paramsFor({q:e,type:n,market:s,limit:i,offset:r,include_external:o});return await this.getRequest(`search${a}`)}}class Ax extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return this.getRequest(`shows/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`shows${s}`)).shows}episodes(e,n,s,i){const r=this.paramsFor({market:n,limit:s,offset:i});return this.getRequest(`shows/${e}/episodes${r}`)}}class Ox extends We{async get(e,n){if(typeof e=="string"){const r=this.paramsFor({market:n});return this.getRequest(`tracks/${e}${r}`)}const s=this.paramsFor({ids:e,market:n});return(await this.getRequest(`tracks${s}`)).tracks}async audioFeatures(e){if(typeof e=="string")return this.getRequest(`audio-features/${e}`);const n=this.paramsFor({ids:e});return(await this.getRequest(`audio-features${n}`)).audio_features}audioAnalysis(e){return this.getRequest(`audio-analysis/${e}`)}}const Cp={access_token:"emptyAccessToken",token_type:"",expires_in:0,refresh_token:"",expires:-1};function la(t){return t===Cp}class xx extends We{profile(e){return this.getRequest(`users/${e}`)}}class Ix extends We{albums;audiobooks;episodes;playlists;shows;tracks;constructor(e){super(e),this.albums=new Nx(e),this.audiobooks=new Px(e),this.episodes=new Rx(e),this.playlists=new Dx(e),this.shows=new Lx(e),this.tracks=new Mx(e)}profile(){return this.getRequest("me")}topItems(e,n,s,i){const r=this.paramsFor({time_range:n,limit:s,offset:i});return this.getRequest(`me/top/${e}${r}`)}followedArtists(e,n){const s=this.paramsFor({type:"artist",after:e,limit:n});return this.getRequest(`me/following${s}`)}async followArtistsOrUsers(e,n){const s=this.paramsFor({type:n});await this.putRequest(`me/following${s}`,{ids:e})}async unfollowArtistsOrUsers(e,n){const s=this.paramsFor({type:n});await this.deleteRequest(`me/following${s}`,{ids:e})}followsArtistsOrUsers(e,n){const s=this.paramsFor({ids:e,type:n});return this.getRequest(`me/following/contains${s}`)}}class Nx extends We{savedAlbums(e,n,s){const i=this.paramsFor({limit:e,offset:n,market:s});return this.getRequest(`me/albums${i}`)}async saveAlbums(e){await this.putRequest("me/albums",e)}async removeSavedAlbums(e){await this.deleteRequest("me/albums",e)}hasSavedAlbums(e){const n=this.paramsFor({ids:e});return this.getRequest(`me/albums/contains${n}`)}}class Px extends We{savedAudiobooks(e,n){const s=this.paramsFor({limit:e,offset:n});return this.getRequest(`me/audiobooks${s}`)}async saveAudiobooks(e){await this.putRequest("me/audiobooks",e)}async removeSavedAudiobooks(e){await this.deleteRequest("me/audiobooks",e)}hasSavedAudiobooks(e){const n=this.paramsFor({ids:e});return this.getRequest(`me/audiobooks/contains${n}`)}}class Rx extends We{savedEpisodes(e,n,s){const i=this.paramsFor({market:e,limit:n,offset:s});return this.getRequest(`me/episodes${i}`)}async saveEpisodes(e){await this.putRequest("me/episodes",e)}async removeSavedEpisodes(e){await this.deleteRequest("me/episodes",e)}hasSavedEpisodes(e){const n=this.paramsFor({ids:e});return this.getRequest(`me/episodes/contains${n}`)}}class Dx extends We{playlists(e,n){const s=this.paramsFor({limit:e,offset:n});return this.getRequest(`me/playlists${s}`)}async follow(e){await this.putRequest(`playlists/${e}/followers`)}async unfollow(e){await this.deleteRequest(`playlists/${e}/followers`)}isFollowing(e,n){const s=this.paramsFor({ids:n});return this.getRequest(`playlists/${e}/followers/contains${s}`)}}class Lx extends We{savedShows(e,n){const s=this.paramsFor({limit:e,offset:n});return this.getRequest(`me/shows${s}`)}saveShows(e){const n=this.paramsFor({ids:e});return this.putRequest(`me/shows${n}`)}removeSavedShows(e,n){const s=this.paramsFor({ids:e,market:n});return this.deleteRequest(`me/shows${s}`)}hasSavedShow(e){const n=this.paramsFor({ids:e});return this.getRequest(`me/shows/contains${n}`)}}class Mx extends We{savedTracks(e,n,s){const i=this.paramsFor({limit:e,offset:n,market:s});return this.getRequest(`me/tracks${i}`)}async saveTracks(e){await this.putRequest("me/tracks",e)}async removeSavedTracks(e){await this.deleteRequest("me/tracks",e)}hasSavedTracks(e){const n=this.paramsFor({ids:e});return this.getRequest(`me/tracks/contains${n}`)}}class $x{static get current(){return this.hasSubtleCrypto?window.crypto:this.tryLoadNodeWebCrypto()}static get hasSubtleCrypto(){return typeof window<"u"&&typeof window.crypto<"u"&&typeof window.crypto.subtle<"u"}static tryLoadNodeWebCrypto(){try{const{webcrypto:e}=require("crypto");return e}catch(e){throw e}}}class qn{static async refreshCachedAccessToken(e,n){const s=await qn.refreshToken(e,n.refresh_token);return qn.toCachable(s)}static toCachable(e){return e.expires&&e.expires===-1?e:{...e,expires:this.calculateExpiry(e)}}static calculateExpiry(e){return Date.now()+e.expires_in*1e3}static async refreshToken(e,n){const s=new URLSearchParams;s.append("client_id",e),s.append("grant_type","refresh_token"),s.append("refresh_token",n);const i=await fetch("https://accounts.spotify.com/api/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s}),r=await i.text();if(!i.ok)throw new Error(`Failed to refresh token: ${i.statusText}, ${r}`);return JSON.parse(r)}static generateCodeVerifier(e){let n="",s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let i=0;i{const n=await this.getTokenFromApi();return qn.toCachable(n)},async n=>{const s=await this.getTokenFromApi();return qn.toCachable(s)})}async getAccessToken(){return await this.cache.get(ka.cacheKey)}removeAccessToken(){this.cache.remove(ka.cacheKey)}async getTokenFromApi(){const e={grant_type:"client_credentials",scope:this.scopes.join(" ")},n=Object.keys(e).map(l=>l+"="+e[l]).join("&"),s=typeof Buffer<"u",i=`${this.clientId}:${this.clientSecret}`,r=s?Buffer.from(i).toString("base64"):btoa(i),o=await fetch("https://accounts.spotify.com/api/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:`Basic ${r}`},body:n});if(o.status!==200)throw new Error("Failed to get access token.");return await o.json()}}class Ca{clientId;redirectUri;scopes;static cacheKey="spotify-sdk:ImplicitGrantStrategy:token";configuration=null;get cache(){return this.configuration.cachingStrategy}constructor(e,n,s){this.clientId=e,this.redirectUri=n,this.scopes=s}setConfiguration(e){this.configuration=e}async getOrCreateAccessToken(){return await this.cache.getOrCreate(Ca.cacheKey,async()=>{const n=await this.redirectOrVerifyToken();return qn.toCachable(n)},async n=>qn.refreshCachedAccessToken(this.clientId,n))}async getAccessToken(){return await this.cache.get(Ca.cacheKey)}removeAccessToken(){this.cache.remove(Ca.cacheKey)}async redirectOrVerifyToken(){const e=new URLSearchParams(window.location.hash.substring(1)),n=e.get("access_token");if(n)return Promise.resolve({access_token:n,token_type:e.get("token_type")??"",expires_in:parseInt(e.get("expires_in")??"0"),refresh_token:e.get("refresh_token")??"",expires:Number(e.get("expires"))||0});var i=(this.scopes??[]).join(" ");const r=new URLSearchParams;r.append("client_id",this.clientId),r.append("response_type","token"),r.append("redirect_uri",this.redirectUri),r.append("scope",i);const o="https://accounts.spotify.com/authorize?"+r.toString();return this.configuration.redirectionStrategy.redirect(o),Cp}}class go{clientId;redirectUri;scopes;static cacheKey="spotify-sdk:AuthorizationCodeWithPKCEStrategy:token";configuration=null;get cache(){return this.configuration.cachingStrategy}constructor(e,n,s){this.clientId=e,this.redirectUri=n,this.scopes=s}setConfiguration(e){this.configuration=e}async getOrCreateAccessToken(){return await this.cache.getOrCreate(go.cacheKey,async()=>{const n=await this.redirectOrVerifyToken();return qn.toCachable(n)},async n=>qn.refreshCachedAccessToken(this.clientId,n))}async getAccessToken(){return await this.cache.get(go.cacheKey)}removeAccessToken(){this.cache.remove(go.cacheKey)}async redirectOrVerifyToken(){const n=new URLSearchParams(window.location.search).get("code");if(n){const s=await this.verifyAndExchangeCode(n);return this.removeCodeFromUrl(),s}return this.redirectToSpotify(),Cp}async redirectToSpotify(){const e=qn.generateCodeVerifier(128),n=await qn.generateCodeChallenge(e),s={verifier:e,expiresOnAccess:!0};this.cache.setCacheItem("spotify-sdk:verifier",s);const i=await this.generateRedirectUrlForUser(this.scopes,n);await this.configuration.redirectionStrategy.redirect(i)}async verifyAndExchangeCode(e){const s=(await this.cache.get("spotify-sdk:verifier"))?.verifier;if(!s)throw new Error("No verifier found in cache - can't validate query string callback parameters.");return await this.configuration.redirectionStrategy.onReturnFromRedirect(),await this.exchangeCodeForToken(e,s)}removeCodeFromUrl(){const e=new URL(window.location.href);e.searchParams.delete("code");const n=e.search?e.href:e.href.replace("?","");window.history.replaceState({},document.title,n)}async generateRedirectUrlForUser(e,n){const s=e.join(" "),i=new URLSearchParams;return i.append("client_id",this.clientId),i.append("response_type","code"),i.append("redirect_uri",this.redirectUri),i.append("scope",s),i.append("code_challenge_method","S256"),i.append("code_challenge",n),`https://accounts.spotify.com/authorize?${i.toString()}`}async exchangeCodeForToken(e,n){const s=new URLSearchParams;s.append("client_id",this.clientId),s.append("grant_type","authorization_code"),s.append("code",e),s.append("redirect_uri",this.redirectUri),s.append("code_verifier",n);const i=await fetch("https://accounts.spotify.com/api/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s}),r=await i.text();if(!i.ok)throw new Error(`Failed to exchange code for token: ${i.statusText}, ${r}`);return JSON.parse(r)}}class Fx{async deserialize(e){const n=await e.text();return n.length>0?JSON.parse(n):null}}class Vx{async validateResponse(e){switch(e.status){case 401:throw new Error("Bad or expired token. This can happen if the user revoked a token or the access token has expired. You should re-authenticate the user.");case 403:const n=await e.text();throw new Error(`Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here. Body: ${n}`);case 429:throw new Error("The app has exceeded its rate limits.");default:if(!e.status.toString().startsWith("20")){const s=await e.text();throw new Error(`Unrecognised response code: ${e.status} - ${e.statusText}. Body: ${s}`)}}}}class Ux{async handleErrors(e){return!1}}class Hx{async redirect(e){document.location=e.toString()}async onReturnFromRedirect(){}}class a_{storage;updateFunctions;autoRenewInterval;autoRenewWindow;constructor(e,n=new Map,s=0,i=120*1e3){this.storage=e,this.updateFunctions=n,this.autoRenewInterval=s,this.autoRenewWindow=i,this.autoRenewInterval>0&&setInterval(()=>this.autoRenewRenewableItems(),this.autoRenewInterval)}async getOrCreate(e,n,s){s&&this.updateFunctions.set(e,s);const i=await this.get(e);if(i)return i;const r=await n();if(!r)throw new Error("Could not create cache item");return la(r)||this.setCacheItem(e,r),r}async get(e){let n=this.storage.get(e),s=n?JSON.parse(n):null;if(this.itemDueToExpire(s)&&this.updateFunctions.has(e)){const i=this.updateFunctions.get(e);await this.tryUpdateItem(e,s,i),n=this.storage.get(e),s=n?JSON.parse(n):null}return s?s.expires&&(s.expires===-1||s.expires<=Date.now())?(this.remove(e),null):(s.expiresOnAccess&&s.expiresOnAccess===!0&&this.remove(e),s):null}set(e,n,s){const i=Date.now()+s,r={...n,expires:i};this.setCacheItem(e,r)}setCacheItem(e,n){const s=JSON.stringify(n);this.storage.set(e,s)}remove(e){this.storage.remove(e)}itemDueToExpire(e){return!e||!e.expires?!1:e.expires-Date.now(){const s=await this.get(n);s&&e&&this.itemDueToExpire(s)&&await this.tryUpdateItem(n,s,e)})}async tryUpdateItem(e,n,s){try{const i=await s(n);i&&this.setCacheItem(e,i)}catch(i){console.error(i)}}}class jx extends a_{constructor(){super(new Bx)}}class Bx{get(e){return localStorage.getItem(e)}set(e,n){localStorage.setItem(e,n)}remove(e){localStorage.removeItem(e)}}class Wx extends a_{constructor(){super(new Gx)}}class Gx{cache=new Map;get(e){return this.cache.get(e)??null}set(e,n){this.cache.set(e,n)}remove(e){this.cache.delete(e)}}class Kx{clientId;accessToken;refreshTokenAction;constructor(e,n,s){this.clientId=e,this.accessToken=n,this.refreshTokenAction=s||qn.refreshCachedAccessToken,this.accessToken.expires||(this.accessToken.expires=qn.calculateExpiry(this.accessToken))}setConfiguration(e){}async getOrCreateAccessToken(){if(this.accessToken.expires&&this.accessToken.expires<=Date.now()){const e=await this.refreshTokenAction(this.clientId,this.accessToken);this.accessToken=e}return this.accessToken}async getAccessToken(){return this.accessToken}removeAccessToken(){this.accessToken={access_token:"",token_type:"",expires_in:0,refresh_token:"",expires:0}}}class ji{sdkConfig;static rootUrl="https://api.spotify.com/v1/";authenticationStrategy;albums;artists;audiobooks;browse;chapters;episodes;recommendations;markets;player;playlists;shows;tracks;users;search;currentUser;constructor(e,n){this.sdkConfig=this.initializeSdk(n),this.albums=new gx(this),this.artists=new yx(this),this.audiobooks=new bx(this),this.browse=new vx(this),this.chapters=new _x(this),this.episodes=new Sx(this),this.recommendations=new Ex(this),this.markets=new wx(this),this.player=new kx(this),this.playlists=new Cx(this),this.shows=new Ax(this),this.tracks=new Ox(this),this.users=new xx(this),this.currentUser=new Ix(this);const s=new Tx(this);this.search=s.execute.bind(s),this.authenticationStrategy=e,this.authenticationStrategy.setConfiguration(this.sdkConfig)}async makeRequest(e,n,s=void 0,i=void 0){try{const r=await this.authenticationStrategy.getOrCreateAccessToken();if(la(r))return console.warn("No access token found, authenticating now."),null;const o=r?.access_token,a=ji.rootUrl+n,l={method:e,headers:{Authorization:`Bearer ${o}`,"Content-Type":i??"application/json"},body:s?typeof s=="string"?s:JSON.stringify(s):void 0};this.sdkConfig.beforeRequest(a,l);const c=await this.sdkConfig.fetch(a,l);return this.sdkConfig.afterRequest(a,l,c),c.status===204?null:(await this.sdkConfig.responseValidator.validateResponse(c),this.sdkConfig.deserializer.deserialize(c))}catch(r){if(!await this.sdkConfig.errorHandler.handleErrors(r))throw r;return null}}initializeSdk(e){const n=typeof window<"u";return{...{fetch:(i,r)=>fetch(i,r),beforeRequest:(i,r)=>{},afterRequest:(i,r,o)=>{},deserializer:new Fx,responseValidator:new Vx,errorHandler:new Ux,redirectionStrategy:new Hx,cachingStrategy:n?new jx:new Wx},...e}}switchAuthenticationStrategy(e){this.authenticationStrategy=e,this.authenticationStrategy.setConfiguration(this.sdkConfig),this.authenticationStrategy.getOrCreateAccessToken()}async authenticate(){const e=await this.authenticationStrategy.getOrCreateAccessToken();return{authenticated:e.expires>Date.now()&&!la(e),accessToken:e}}async getAccessToken(){return this.authenticationStrategy.getAccessToken()}logOut(){this.authenticationStrategy.removeAccessToken()}static withUserAuthorization(e,n,s=[],i){const r=new go(e,n,s);return new ji(r,i)}static withClientCredentials(e,n,s=[],i){const r=new ka(e,n,s);return new ji(r,i)}static withImplicitGrant(e,n,s=[],i){const r=new Ca(e,n,s);return new ji(r,i)}static withAccessToken(e,n,s){const i=new Kx(e,n);return new ji(i,s)}static async performUserAuthorization(e,n,s,i,r){const o=new go(e,n,s),l=await new ji(o,r).authenticationStrategy.getOrCreateAccessToken();return la(l)||(typeof i=="string"?(console.log("Posting access token to postback URL."),await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)})):await i(l)),{authenticated:l.expires>Date.now()&&!la(l),accessToken:l}}}const kn={lastfm(){return ut.get("./api/lastfm")},loginLastfm(t){return ut.post("./api/lastfm-login",t)},logoutLastfm(){return ut.get("./api/lastfm-logout")},logoutSpotify(){return ut.get("./api/spotify-logout")},spotify(){return ut.get("./api/spotify").then(t=>({api:ji.withAccessToken(t.webapi_client_id,{access_token:t.webapi_token},{errorHandler:{handleErrors:()=>!0}}),configuration:t}))}},Qn=Ls("ServicesStore",{actions:{async initialiseLastfm(){this.lastfm=await kn.lastfm()},initialiseSpotify(){kn.spotify().then(({configuration:t})=>{this.spotify=t})}},getters:{grantedSpotifyScopes:t=>t.spotify.webapi_granted_scope?.split(" ")??[],hasMissingSpotifyScopes:t=>t.missingSpotifyScopes.length>0,isAuthorizationRequired:t=>!t.isSpotifyActive||t.hasMissingSpotifyScopes,isLastfmActive:t=>t.lastfm.scrobbling_enabled,isLastfmEnabled:t=>t.lastfm.enabled,isSpotifyActive:t=>t.spotify.webapi_token_valid,isSpotifyEnabled:t=>t.spotify.spotify_installed,missingSpotifyScopes(t){const e=new Set(t.grantedSpotifyScopes);return t.requiredSpotifyScopes.filter(n=>!e.has(n))??[]},requiredSpotifyScopes:t=>t.spotify.webapi_required_scope?.split(" ")??[]},state:()=>({lastfm:{},spotify:{}})}),zx={name:"ModalDialogUpdate",components:{ControlSwitch:Hr,ModalDialog:rr},props:{show:Boolean},emits:["close"],setup(){return{libraryStore:Gu(),servicesStore:Qn()}},data(){return{rescanMetadata:!1}},computed:{actions(){const t=[{handler:this.cancel,icon:"cancel",key:"actions.cancel"}];return this.libraryStore.updating||t.push({handler:this.analyse,icon:"check",key:"actions.rescan"}),t}},methods:{analyse(){this.rescanMetadata?Tt.rescan(this.libraryStore.update_dialog_scan_kind):Tt.update(this.libraryStore.update_dialog_scan_kind)},cancel(){this.$emit("close"),this.libraryStore.update_dialog_scan_kind=""}}},qx={key:0},Xx={key:0,class:"field"},Yx=["textContent"],Zx={class:"control"},Jx={class:"select is-small"},Qx=["textContent"],tI=["textContent"],eI=["textContent"],nI=["textContent"],sI=["textContent"],iI={key:1},rI=["textContent"];function oI(t,e,n,s,i,r){const o=w("control-switch"),a=w("modal-dialog");return O(),pt(a,{actions:r.actions,show:n.show,title:t.$t("dialog.update.title"),onClose:e[2]||(e[2]=l=>t.$emit("close"))},{content:L(()=>[s.libraryStore.updating?(O(),F("div",iI,[N("div",{class:"mb-3",textContent:nt(t.$t("dialog.update.progress"))},null,8,rI)])):(O(),F("div",qx,[s.servicesStore.isSpotifyActive?(O(),F("div",Xx,[N("label",{class:"label",textContent:nt(t.$t("dialog.update.info"))},null,8,Yx),N("div",Zx,[N("div",Jx,[ms(N("select",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.libraryStore.update_dialog_scan_kind=l)},[N("option",{value:"",textContent:nt(t.$t("dialog.update.all"))},null,8,Qx),N("option",{value:"files",textContent:nt(t.$t("dialog.update.local"))},null,8,tI),s.servicesStore.isSpotifyActive?(O(),F("option",{key:0,value:"spotify",textContent:nt(t.$t("dialog.update.spotify"))},null,8,eI)):vt("",!0),N("option",{value:"rss",textContent:nt(t.$t("dialog.update.feeds"))},null,8,nI)],512),[[up,s.libraryStore.update_dialog_scan_kind]])])])])):vt("",!0),S(o,{modelValue:i.rescanMetadata,"onUpdate:modelValue":e[1]||(e[1]=l=>i.rescanMetadata=l)},{label:L(()=>[N("span",{textContent:nt(t.$t("dialog.update.rescan-metadata"))},null,8,sI)]),_:1},8,["modelValue"])]))]),_:1},8,["actions","show","title"])}const aI=et(zx,[["render",oI]]),ts=Ls("UIStore",{actions:{hideMenus(){this.showBurgerMenu=!1,this.showPlayerMenu=!1},toggleBurgerMenu(){this.showPlayerMenu=!1,this.showBurgerMenu=!this.showBurgerMenu},toggleHideReadItems(){this.hideReadItems=!this.hideReadItems},togglePlayerMenu(){this.showBurgerMenu=!1,this.showPlayerMenu=!this.showPlayerMenu}},state:()=>({albumsSort:1,artistAlbumsSort:1,artistTracksSort:1,artistsSort:1,composerTracksSort:1,genreTracksSort:1,hideReadItems:!1,hideSingles:!1,hideSpotify:!1,showBurgerMenu:!1,showPlayerMenu:!1,showUpdateDialog:!1})}),lI={name:"ControlLink",props:{to:{required:!0,type:Object}},setup(){return{uiStore:ts()}},methods:{open(){this.uiStore.hideMenus(),this.$router.push(this.to)}}},cI=["href"];function uI(t,e,n,s,i,r){return O(),F("a",{href:t.$router.resolve(n.to).href,onClick:e[0]||(e[0]=Bn((...o)=>r.open&&r.open(...o),["stop","prevent"]))},[ue(t.$slots,"default")],8,cI)}const l_=et(lI,[["render",uI]]),Tp={name:"ControlSlider",props:{disabled:Boolean,max:{required:!0,type:Number},value:{required:!0,type:Number}},emits:["update:value"],computed:{ratio(){return this.value/this.max}}},fy=()=>{ap(t=>({"71a992eb":t.ratio}))},hy=Tp.setup;Tp.setup=hy?(t,e)=>(fy(),hy(t,e)):fy;const dI=["value","disabled","max"];function fI(t,e,n,s,i,r){return O(),F("input",{value:n.value,disabled:n.disabled,class:Gt(["slider",{"is-inactive":n.disabled}]),max:n.max,type:"range",onInput:e[0]||(e[0]=o=>t.$emit("update:value",o.target.valueAsNumber))},null,42,dI)}const Ku=et(Tp,[["render",fI],["__scopeId","data-v-460ca666"]]),ss="./api/player",en={consume(t){return ut.put(`${ss}/consume`,null,{params:{state:t}})},next(){return ut.put(`${ss}/next`)},pause(){return ut.put(`${ss}/pause`)},play(t={}){return ut.put(`${ss}/play`,null,{params:t})},previous(){return ut.put(`${ss}/previous`)},repeat(t){return ut.put(`${ss}/repeat`,null,{params:{state:t}})},seek(t){return ut.put(`${ss}/seek`,null,{params:{seek_ms:t}})},seekToPosition(t){return ut.put(`${ss}/seek`,null,{params:{position_ms:t}})},setVolume(t,e=null){const n={volume:t,...e!==null&&{output_id:e}};return ut.put(`${ss}/volume`,null,{params:n})},shuffle(t){return ut.put(`${ss}/shuffle`,null,{params:{state:t}})},state(){return ut.get(ss)},stop(){return ut.put(`${ss}/stop`)}},{t:py}=qs.global,Pi="./api/queue",ce={async add(t,e=!1){if(e){const{current:s}=$s();s?.id&&(t.position=s.position+1)}const n=await ut.post(`${Pi}/items/add`,null,{params:t});return Ka().add({text:py("server.appended-tracks",{count:n.count}),timeout:2e3,type:"info"}),n},addExpression(t,e=!1){return this.add({expression:t},e)},addUri(t,e=!1){return this.add({uris:t},e)},clear(){return ut.put(`${Pi}/clear`)},move(t,e){return ut.put(`${Pi}/items/${t}`,null,{params:{new_position:e}})},playExpression(t,e,n){const s={clear:"true",expression:t,playback:"start",playback_from_position:n,shuffle:e};return ut.post(`${Pi}/items/add`,null,{params:s})},playUri(t,e,n){const s={clear:"true",playback:"start",playback_from_position:n,shuffle:e,uris:t};return ut.post(`${Pi}/items/add`,null,{params:s})},remove(t){return ut.delete(`${Pi}/items/${t}`)},async saveToPlaylist(t){const{data:e}=await ut.post(`${Pi}/save`,null,{params:{name:t}});return Ka().add({text:py("server.queue-saved",{name:t}),timeout:2e3,type:"info"}),e},state(){return ut.get(Pi)}},hI={state(){return ut.get("./api/config")}},jo=Ls("ConfigurationStore",{actions:{async initialise(){this.$state=await hI.state()}},state:()=>({allow_modifying_stored_playlists:!1,buildoptions:[],default_playlist_directory:"",directories:[],hide_singles:!1,library_name:"",radio_playlists:!1,version:"",websocket_port:0})}),$s=Ls("QueueStore",{actions:{async initialise(){this.$state=await ce.state()}},getters:{current(t){const e=Wn();return e.initialise(),t.items.find(n=>n.id===e.item_id)??{}},isEmpty(t){return t.count===0},isPauseAllowed(t){return t.current&&t.current.data_kind!=="pipe"},isSavingAllowed(){const t=jo();return t.allow_modifying_stored_playlists&&t.default_playlist_directory}},state:()=>({count:0,items:[],version:0})}),Wn=Ls("PlayerStore",{actions:{async initialise(){this.$state=await en.state();const t=$s();t.current.track_id&&Tt.track(t.current.track_id).then(e=>{this.lyricsContent=e.lyrics||""})}},getters:{isMuted:t=>t.volume===0,isPlaying:t=>t.state==="play",isRepeatAll:t=>t.repeat==="all",isRepeatOff:t=>t.repeat==="off",isRepeatSingle:t=>t.repeat==="single",isStopped:t=>t.state==="stop"},state:()=>({consume:!1,item_id:0,item_length_ms:0,item_progress_ms:0,lyricsContent:"",repeat:"off",showLyrics:!1,shuffle:!1,state:"stop",volume:0})}),pI={name:"ControlVolume",components:{ControlSlider:Ku},setup(){return{playerStore:Wn()}},data(){return{volume:0}},computed:{icon(){return this.playerStore.isMuted?"volume-off":"volume-high"}},watch:{"playerStore.volume"(){this.playerStore.isMuted||(this.volume=this.playerStore.volume)}},methods:{changeVolume(){en.setVolume(this.playerStore.volume)},toggle(){this.playerStore.isMuted?this.playerStore.volume=this.volume:this.playerStore.volume=0,this.changeVolume()}}},mI={class:"media is-align-items-center mb-0"},gI={class:"media-left"},yI={class:"media-content"},bI=["textContent"];function vI(t,e,n,s,i,r){const o=w("mdicon"),a=w("control-slider");return O(),F("div",mI,[N("div",gI,[N("button",{class:"button is-small",onClick:e[0]||(e[0]=(...l)=>r.toggle&&r.toggle(...l))},[S(o,{class:"icon",name:r.icon},null,8,["name"])])]),N("div",yI,[N("div",{class:"is-size-7 is-uppercase",textContent:nt(t.$t("navigation.volume"))},null,8,bI),S(a,{value:s.playerStore.volume,"onUpdate:value":e[1]||(e[1]=l=>s.playerStore.volume=l),max:100,onChange:r.changeVolume},null,8,["value","onChange"])])])}const c_=et(pI,[["render",vI]]),Xd="./api/outputs",Zc={state(){return ut.get(Xd)},toggle(t){return ut.put(`${Xd}/${t}/toggle`)},update(t,e){return ut.put(`${Xd}/${t}`,e)}},_I={name:"ControlOutputVolume",components:{ControlSlider:Ku},props:{output:{required:!0,type:Object}},data(){return{volume:this.output.volume}},computed:{icon(){return this.output.type.startsWith("AirPlay")?"cast-variant":this.output.type==="Chromecast"?"cast":this.output.type==="fifo"?"pipe":"server"}},watch:{output(){this.volume=this.output.volume}},methods:{changeVolume(){en.setVolume(this.volume,this.output.id)},toggle(){Zc.update(this.output.id,{selected:!this.output.selected})}}},SI={class:"media is-align-items-center mb-0"},EI={class:"media-left"},wI={class:"media-content"},kI=["textContent"];function CI(t,e,n,s,i,r){const o=w("mdicon"),a=w("control-slider");return O(),F("div",SI,[N("div",EI,[N("button",{class:Gt(["button is-small",{"has-text-grey-light":!n.output.selected}]),onClick:e[0]||(e[0]=(...l)=>r.toggle&&r.toggle(...l))},[S(o,{class:"icon",name:r.icon,title:n.output.type},null,8,["name","title"])],2)]),N("div",wI,[N("div",{class:Gt(["is-size-7 is-uppercase",{"has-text-grey-light":!n.output.selected}]),textContent:nt(n.output.name)},null,10,kI),S(a,{value:i.volume,"onUpdate:value":e[1]||(e[1]=l=>i.volume=l),disabled:!n.output.selected,max:100,onChange:r.changeVolume},null,8,["value","disabled","onChange"])])])}const u_=et(_I,[["render",CI]]),TI={name:"ControlPlayerBack",props:{offset:{required:!0,type:Number}},setup(){return{playerStore:Wn(),queueStore:$s()}},computed:{disabled(){return this.queueStore.isEmpty||this.playerStore.isStopped},visible(){return["podcast","audiobook"].includes(this.queueStore.current.media_kind)}},methods:{seek(){en.seek(this.offset*-1)}}},AI=["disabled"];function OI(t,e,n,s,i,r){const o=w("mdicon");return r.visible?(O(),F("button",{key:0,disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.seek&&r.seek(...a))},[S(o,{class:"icon",name:"rewind-10",title:t.$t("player.button.seek-backward")},null,8,["title"])],8,AI)):vt("",!0)}const xI=et(TI,[["render",OI]]),II={name:"ControlPlayerConsume",setup(){return{playerStore:Wn()}},methods:{toggle(){en.consume(!this.playerStore.consume)}}};function NI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{class:Gt({"is-dark":s.playerStore.consume}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[S(o,{class:"icon",name:"fire",size:"16",title:t.$t("player.button.consume")},null,8,["title"])],2)}const PI=et(II,[["render",NI]]),RI={name:"ControlPlayerForward",props:{offset:{required:!0,type:Number}},setup(){return{playerStore:Wn(),queueStore:$s()}},computed:{disabled(){return this.queueStore.isEmpty||this.playerStore.isStopped},visible(){return["podcast","audiobook"].includes(this.queueStore.current.media_kind)}},methods:{seek(){en.seek(this.offset)}}},DI=["disabled"];function LI(t,e,n,s,i,r){const o=w("mdicon");return r.visible?(O(),F("button",{key:0,disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.seek&&r.seek(...a))},[S(o,{class:"icon",name:"fast-forward-30",title:t.$t("player.button.seek-forward")},null,8,["title"])],8,DI)):vt("",!0)}const MI=et(RI,[["render",LI]]),$I={name:"ControlPlayerLyrics",setup(){return{playerStore:Wn()}},computed:{icon(){return this.playerStore.showLyrics?"script-text-play":"script-text-outline"}},methods:{toggle(){this.playerStore.showLyrics=!this.playerStore.showLyrics}}};function FI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{class:Gt({"is-dark":s.playerStore.showLyrics}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[S(o,{class:"icon",name:r.icon,size:16,title:t.$t("player.button.toggle-lyrics")},null,8,["name","title"])],2)}const VI=et($I,[["render",FI]]),UI={name:"ControlPlayerNext",setup(){return{queueStore:$s()}},computed:{disabled(){return this.queueStore.isEmpty}},methods:{next(){en.next()}}},HI=["disabled"];function jI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.next&&r.next(...a))},[S(o,{class:"icon",name:"skip-forward",title:t.$t("player.button.skip-forward")},null,8,["title"])],8,HI)}const BI=et(UI,[["render",jI]]),WI={name:"ControlPlayerPlay",setup(){return{playerStore:Wn(),queueStore:$s()}},computed:{disabled(){return this.queueStore.isEmpty},icon(){if(this.playerStore.isPlaying){if(this.queueStore.isPauseAllowed)return"pause"}else return"play";return"stop"}},methods:{toggle(){this.playerStore.isPlaying&&this.queueStore.isPauseAllowed?en.pause():this.playerStore.isPlaying&&!this.queueStore.isPauseAllowed?en.stop():en.play()}}},GI=["disabled"];function KI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[S(o,{class:"icon",name:r.icon,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],8,GI)}const zI=et(WI,[["render",KI]]),qI={name:"ControlPlayerPrevious",setup(){return{queueStore:$s()}},computed:{disabled(){return this.queueStore.isEmpty}},methods:{previous(){en.previous()}}},XI=["disabled"];function YI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.previous&&r.previous(...a))},[S(o,{class:"icon",name:"skip-backward",title:t.$t("player.button.skip-backward")},null,8,["title"])],8,XI)}const ZI=et(qI,[["render",YI]]),JI={name:"ControlPlayerRepeat",setup(){return{playerStore:Wn()}},computed:{icon(){return this.playerStore.isRepeatAll?"repeat":this.playerStore.isRepeatSingle?"repeat-once":"repeat-off"}},methods:{toggle(){this.playerStore.isRepeatAll?en.repeat("single"):this.playerStore.isRepeatSingle?en.repeat("off"):en.repeat("all")}}};function QI(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{class:Gt({"is-dark":!s.playerStore.isRepeatOff}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[S(o,{class:"icon",name:r.icon,size:16,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],2)}const tN=et(JI,[["render",QI]]),eN={name:"ControlPlayerShuffle",setup(){return{playerStore:Wn()}},computed:{icon(){return this.playerStore.shuffle?"shuffle":"shuffle-disabled"}},methods:{toggle(){en.shuffle(!this.playerStore.shuffle)}}};function nN(t,e,n,s,i,r){const o=w("mdicon");return O(),F("button",{class:Gt({"is-dark":s.playerStore.shuffle}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[S(o,{class:"icon",name:r.icon,size:16,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],2)}const sN=et(eN,[["render",nN]]),Bl={audio:null,play(t){this.audio=new Audio(`${String(t||"")}?x=${Date.now()}`),this.audio.crossOrigin="anonymous";const e=new(window.AudioContext||window.webkitAudioContext);e.createMediaElementSource(this.audio).connect(e.destination),this.audio.addEventListener("canplay",()=>{e.resume().then(()=>{this.audio.play()})}),this.audio.load()},setVolume(t){this.audio&&(this.audio.volume=Math.max(0,Math.min(1,Number(t)||0)))},stop(){try{this.audio?.pause()}catch{}}},iN={name:"ControlStreamVolume",components:{ControlSlider:Ku},emits:["change","mute"],data(){return{loading:!1,playing:!1,volume:10}},unmounted(){this.closeAudio()},methods:{changeVolume(){Bl.setVolume(this.volume/100)},closeAudio(){Bl.stop(),this.playing=!1,this.loading=!1},playChannel(){this.loading=!0,Bl.play("/stream.mp3"),this.changeVolume();const t=Bl.audio;t&&(t.addEventListener("waiting",()=>{this.playing=!1,this.loading=!0}),t.addEventListener("playing",()=>{this.playing=!0,this.loading=!1}),t.addEventListener("ended",()=>{this.playing=!1,this.loading=!1}),t.addEventListener("error",()=>{this.closeAudio()}))},togglePlay(){this.playing||this.loading?this.closeAudio():this.playChannel()}}},rN={class:"media is-align-items-center mb-0"},oN={class:"media-left"},aN={class:"media-content is-align-items-center"},lN=["textContent"],cN={href:"stream.mp3",class:"ml-2",target:"_blank"};function uN(t,e,n,s,i,r){const o=w("mdicon"),a=w("control-slider");return O(),F("div",rN,[N("div",oN,[N("button",{class:Gt(["button is-small",{"has-text-grey-light":!i.playing&&!i.loading,"is-loading":i.loading}]),onClick:e[0]||(e[0]=(...l)=>r.togglePlay&&r.togglePlay(...l))},[S(o,{class:"icon",name:"broadcast"})],2)]),N("div",aN,[N("div",{class:Gt(["is-flex",{"has-text-grey-light":!i.playing}])},[N("div",{class:"is-size-7 is-uppercase",textContent:nt(t.$t("navigation.stream"))},null,8,lN),N("a",cN,[S(o,{class:"icon is-small",name:"open-in-new"})])],2),S(a,{value:i.volume,"onUpdate:value":e[1]||(e[1]=l=>i.volume=l),disabled:!i.playing,max:100,onChange:r.changeVolume},null,8,["value","disabled","onChange"])])])}const d_=et(iN,[["render",uN]]),zu=Ls("OutputsStore",{actions:{async initialise(){this.$state=await Zc.state()}},state:()=>({outputs:[]})}),dN={name:"NavbarBottom",components:{ControlLink:l_,ControlMainVolume:c_,ControlOutputVolume:u_,ControlPlayerBack:xI,ControlPlayerConsume:PI,ControlPlayerForward:MI,ControlPlayerLyrics:VI,ControlPlayerNext:BI,ControlPlayerPlay:zI,ControlPlayerPrevious:ZI,ControlPlayerRepeat:tN,ControlPlayerShuffle:sN,ControlStreamVolume:d_},setup(){return{outputsStore:zu(),queueStore:$s(),uiStore:ts()}},computed:{isPlayerPage(){return this.$route.name==="player"},metadata(){const{current:t}=this.queueStore;return[t.artist,t.album].filter(Boolean).join(" - ")}}},fN={class:"navbar-brand is-flex-grow-1"},hN={class:"is-text-clipped"},pN=["textContent"],mN=["textContent"],gN={class:"dropdown-menu is-mobile"},yN={class:"dropdown-content"},bN={class:"dropdown-item pt-0"},vN={class:"dropdown-item is-flex is-justify-content-center"},_N={class:"buttons has-addons"};function SN(t,e,n,s,i,r){const o=w("mdicon"),a=w("control-link"),l=w("control-player-previous"),c=w("control-player-back"),u=w("control-player-play"),d=w("control-player-forward"),f=w("control-player-next"),h=w("control-main-volume"),p=w("control-output-volume"),m=w("control-stream-volume"),v=w("control-player-repeat"),y=w("control-player-shuffle"),_=w("control-player-consume"),g=w("control-player-lyrics");return O(),F("nav",{class:Gt(["navbar is-fixed-bottom",{"is-bottom":!r.isPlayerPage}])},[N("div",fN,[S(a,{class:"navbar-item",to:{name:"queue"}},{default:L(()=>[S(o,{class:"icon",name:"playlist-play"})]),_:1}),r.isPlayerPage?(O(),F(rt,{key:0},[S(l,{class:"navbar-item ml-auto"}),S(c,{class:"navbar-item",offset:1e4}),S(u,{class:"navbar-item"}),S(d,{class:"navbar-item",offset:3e4}),S(f,{class:"navbar-item mr-auto"})],64)):(O(),F(rt,{key:1},[S(a,{to:{name:"player"},exact:"",class:"navbar-item is-justify-content-flex-start is-expanded is-clipped is-size-7"},{default:L(()=>[N("div",hN,[N("strong",{textContent:nt(s.queueStore.current.title)},null,8,pN),e[1]||(e[1]=N("br",null,null,-1)),N("span",{textContent:nt(r.metadata)},null,8,mN)])]),_:1}),S(u,{class:"navbar-item"})],64)),N("a",{class:"navbar-item",onClick:e[0]||(e[0]=(...b)=>s.uiStore.togglePlayerMenu&&s.uiStore.togglePlayerMenu(...b))},[S(o,{class:"icon",name:s.uiStore.showPlayerMenu?"chevron-down":"chevron-up"},null,8,["name"])]),N("div",{class:Gt(["dropdown is-up is-right",{"is-active":s.uiStore.showPlayerMenu}])},[N("div",gN,[N("div",yN,[N("div",bN,[S(h),(O(!0),F(rt,null,de(s.outputsStore.outputs,b=>(O(),pt(p,{key:b.id,output:b},null,8,["output"]))),128)),S(m)]),e[2]||(e[2]=N("hr",{class:"dropdown-divider"},null,-1)),N("div",vN,[N("div",_N,[S(v,{class:"button"}),S(y,{class:"button"}),S(_,{class:"button"}),S(g,{class:"button"})])])])])],2)])],2)}const EN=et(dN,[["render",SN],["__scopeId","data-v-f7cc344c"]]),qu=Ls("SearchStore",{actions:{add(t){const e=this.history.indexOf(t);e!==-1&&this.history.splice(e,1),this.history.unshift(t),this.history.length>5&&this.history.pop()},remove(t){const e=this.history.indexOf(t);e!==-1&&this.history.splice(e,1)}},state:()=>({history:[],query:"",source:"search-library"})}),my="./api/settings",f_={state(){return ut.get(my)},update(t){return ut.put(`${my}/${t.category}/${t.name}`,t)}},{t:Wl,availableLocales:gy}=qs.global,ti=Ls("SettingsStore",{actions:{currentAppearance(){return this.$state.appearance},currentLocale(){const t=gy;let e=t.find(s=>s===qs.global.locale.value);const[n]=qs.global.locale.value.split("-");return e||(e=t.find(s=>s===n)),e||(e=t.find(s=>s.split("-")[0]===n)),e||(e=qs.global.fallbackLocale),e},get(t,e){return this.categories.find(n=>n.name===t)?.options.find(n=>n.name===e)??{}},async initialise(){this.$state=await f_.state()},setAppearance(t){this.$state.appearance=t;const e=document.documentElement;t==="auto"?e.removeAttribute("data-theme"):e.setAttribute("data-theme",t)},setLocale(t){qs.global.locale.value=t},update(t){const e=this.categories.find(s=>s.name===t.category);if(!e)return;const n=e.options.find(s=>s.name===t.name);n&&(n.value=t.value)}},getters:{appearances(){return[{id:"auto",name:Wl("settings.appearance.auto")},{id:"light",name:Wl("settings.appearance.light")},{id:"dark",name:Wl("settings.appearance.dark")}]},locales(){return gy.map(t=>({id:t,name:Wl(`language.${t}`)}))},recentlyAddedLimit:t=>t.get("webinterface","recently_added_limit")?.value??100,showComposerForGenre:t=>t.get("webinterface","show_composer_for_genre")?.value??null,showComposerNowPlaying:t=>t.get("webinterface","show_composer_now_playing")?.value??!1,showCoverArtworkInAlbumLists:t=>t.get("artwork","show_cover_artwork_in_album_lists")?.value??!1,showFilepathNowPlaying:t=>t.get("webinterface","show_filepath_now_playing")?.value??!1,showMenuItemAudiobooks:t=>t.get("webinterface","show_menu_item_audiobooks")?.value??!1,showMenuItemFiles:t=>t.get("webinterface","show_menu_item_files")?.value??!1,showMenuItemMusic:t=>t.get("webinterface","show_menu_item_music")?.value??!1,showMenuItemPlaylists:t=>t.get("webinterface","show_menu_item_playlists")?.value??!1,showMenuItemPodcasts:t=>t.get("webinterface","show_menu_item_podcasts")?.value??!1,showMenuItemRadio:t=>t.get("webinterface","show_menu_item_radio")?.value??!1,showMenuItemSearch:t=>t.get("webinterface","show_menu_item_search")?.value??!1},state:()=>({appearance:"auto",categories:[]})}),wN={name:"NavbarTop",components:{ControlLink:l_},setup(){return{searchStore:qu(),servicesStore:Qn(),settingsStore:ti(),uiStore:ts()}},computed:{menus(){return[{icon:"music-box-multiple",key:"navigation.playlists",name:"playlists",show:this.settingsStore.showMenuItemPlaylists},{icon:"music",key:"navigation.music",name:"music",show:this.settingsStore.showMenuItemMusic},{key:"navigation.artists",name:"music-artists",sub:!0},{key:"navigation.albums",name:"music-albums",sub:!0},{key:"navigation.genres",name:"music-genres",sub:!0},{key:"navigation.composers",name:"music-composers",sub:!0},{key:"navigation.spotify",name:"music-spotify",show:this.servicesStore.isSpotifyActive,sub:!0},{icon:"microphone",key:"navigation.podcasts",name:"podcasts",show:this.settingsStore.showMenuItemPodcasts},{icon:"book-open-variant",key:"navigation.audiobooks",name:"audiobooks",show:this.settingsStore.showMenuItemAudiobooks},{icon:"radio",key:"navigation.radio",name:"radio",show:this.settingsStore.showMenuItemRadio},{icon:"folder-open",key:"navigation.files",name:"files",show:this.settingsStore.showMenuItemFiles},{icon:"magnify",key:"navigation.search",name:this.searchStore.source,show:this.settingsStore.showMenuItemSearch},{separator:!0},{key:"navigation.settings",name:"settings-webinterface"},{key:"navigation.outputs",name:"outputs"},{action:this.openUpdateDialog,key:"navigation.update-library"},{key:"navigation.about",name:"about"}]}},methods:{openUpdateDialog(){this.uiStore.showUpdateDialog=!0,this.uiStore.hideMenus()}}},kN={class:"navbar is-fixed-top is-top"},CN={class:"navbar-brand is-fullwidth"},TN={class:"is-flex is-clipped"},AN={class:"dropdown-menu is-mobile"},ON={class:"dropdown-content"},xN={key:0,class:"my-3"},IN=["onClick","textContent"],NN={key:0,class:"icon-text"},PN=["textContent"];function RN(t,e,n,s,i,r){const o=w("mdicon"),a=w("control-link");return O(),F("nav",kN,[N("div",CN,[N("div",TN,[(O(!0),F(rt,null,de(r.menus.filter(l=>l.show&&!l.sub),l=>(O(),pt(a,{key:l.name,to:{name:l.name},class:"navbar-item"},{default:L(()=>[S(o,{class:"icon",name:l.icon,size:"16"},null,8,["name"])]),_:2},1032,["to"]))),128))]),N("a",{class:"navbar-item ml-auto",onClick:e[0]||(e[0]=(...l)=>s.uiStore.toggleBurgerMenu&&s.uiStore.toggleBurgerMenu(...l))},[S(o,{class:"icon",name:s.uiStore.showBurgerMenu?"close":"menu"},null,8,["name"])]),N("div",{class:Gt(["dropdown is-right",{"is-active":s.uiStore.showBurgerMenu}])},[N("div",AN,[N("div",ON,[(O(!0),F(rt,null,de(r.menus,l=>(O(),F(rt,{key:l.name},[l.separator?(O(),F("hr",xN)):l.action?(O(),F("a",{key:1,class:"dropdown-item",onClick:Bn(l.action,["stop","prevent"]),textContent:nt(t.$t(l.key))},null,8,IN)):(O(),pt(a,{key:2,to:{name:l.name},class:"dropdown-item"},{default:L(()=>[l.icon?(O(),F("span",NN,[S(o,{class:"icon",name:l.icon,size:"16"},null,8,["name"])])):vt("",!0),N("span",{class:Gt({"pl-5":l.sub,"has-text-weight-semibold":l.icon}),textContent:nt(t.$t(l.key))},null,10,PN)]),_:2},1032,["to"]))],64))),128))])])],2)])])}const DN=et(wN,[["render",RN],["__scopeId","data-v-d084054e"]]);function Ap(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Xu(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var n=function s(){var i=!1;try{i=this instanceof s}catch{}return i?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(s){var i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(n,s,i.get?i:{enumerable:!0,get:function(){return t[s]}})}),n}var mc={exports:{}},LN=mc.exports,yy;function MN(){return yy||(yy=1,(function(t){(function(e,n){t.exports?t.exports=n():e.ReconnectingWebSocket=n()})(LN,function(){if(!("WebSocket"in window))return;function e(n,s,i){var r={debug:!1,automaticOpen:!0,reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:2e3,maxReconnectAttempts:null};i||(i={});for(var o in r)typeof i[o]<"u"?this[o]=i[o]:this[o]=r[o];this.url=n,this.reconnectAttempts=0,this.readyState=WebSocket.CONNECTING,this.protocol=null;var a=this,l,c=!1,u=!1,d=document.createElement("div");d.addEventListener("open",function(h){a.onopen(h)}),d.addEventListener("close",function(h){a.onclose(h)}),d.addEventListener("connecting",function(h){a.onconnecting(h)}),d.addEventListener("message",function(h){a.onmessage(h)}),d.addEventListener("error",function(h){a.onerror(h)}),this.addEventListener=d.addEventListener.bind(d),this.removeEventListener=d.removeEventListener.bind(d),this.dispatchEvent=d.dispatchEvent.bind(d);function f(h,p){var m=document.createEvent("CustomEvent");return m.initCustomEvent(h,!1,!1,p),m}this.open=function(h){if(l=new WebSocket(a.url,s||[]),h){if(this.maxReconnectAttempts&&this.reconnectAttempts>this.maxReconnectAttempts)return}else d.dispatchEvent(f("connecting")),this.reconnectAttempts=0;(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",a.url);var p=l,m=setTimeout(function(){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",a.url),u=!0,p.close(),u=!1},a.timeoutInterval);l.onopen=function(v){clearTimeout(m),(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onopen",a.url),a.protocol=l.protocol,a.readyState=WebSocket.OPEN,a.reconnectAttempts=0;var y=f("open");y.isReconnect=h,h=!1,d.dispatchEvent(y)},l.onclose=function(v){if(clearTimeout(_),l=null,c)a.readyState=WebSocket.CLOSED,d.dispatchEvent(f("close"));else{a.readyState=WebSocket.CONNECTING;var y=f("connecting");y.code=v.code,y.reason=v.reason,y.wasClean=v.wasClean,d.dispatchEvent(y),!h&&!u&&((a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onclose",a.url),d.dispatchEvent(f("close")));var _=a.reconnectInterval*Math.pow(a.reconnectDecay,a.reconnectAttempts);setTimeout(function(){a.reconnectAttempts++,a.open(!0)},_>a.maxReconnectInterval?a.maxReconnectInterval:_)}},l.onmessage=function(v){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",a.url,v.data);var y=f("message");y.data=v.data,d.dispatchEvent(y)},l.onerror=function(v){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onerror",a.url,v),d.dispatchEvent(f("error"))}},this.automaticOpen==!0&&this.open(!1),this.send=function(h){if(l)return(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","send",a.url,h),l.send(h);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(h,p){typeof h>"u"&&(h=1e3),c=!0,l&&l.close(h,p)},this.refresh=function(){l&&l.close()}}return e.prototype.onopen=function(n){},e.prototype.onclose=function(n){},e.prototype.onconnecting=function(n){},e.prototype.onmessage=function(n){},e.prototype.onerror=function(n){},e.debugAll=!1,e.CONNECTING=WebSocket.CONNECTING,e.OPEN=WebSocket.OPEN,e.CLOSING=WebSocket.CLOSING,e.CLOSED=WebSocket.CLOSED,e})})(mc)),mc.exports}var $N=MN();const FN=Ap($N),VN={name:"App",components:{ListNotifications:uC,ModalDialogRemotePairing:lx,ModalDialogUpdate:aI,NavbarBottom:EN,NavbarTop:DN},setup(){return{configurationStore:jo(),libraryStore:Gu(),notificationsStore:Ka(),outputsStore:zu(),playerStore:Wn(),queueStore:$s(),remotesStore:kp(),servicesStore:Qn(),settingsStore:ti(),uiStore:ts()}},data(){return{handlers:{},scheduledHandlers:new Map}},watch:{"uiStore.showBurgerMenu"(){this.updateClipping()},"uiStore.showPlayerMenu"(){this.updateClipping()}},created(){this.handlers={database:[this.libraryStore.initialise],lastfm:[this.servicesStore.initialiseLastfm],options:[this.playerStore.initialise],outputs:[this.outputsStore.initialise],pairing:[this.remotesStore.initialise],player:[this.playerStore.initialise],queue:[this.queueStore.initialise],settings:[this.settingsStore.initialise],spotify:[this.servicesStore.initialiseSpotify],update:[this.libraryStore.initialise],volume:[this.playerStore.initialise,this.outputsStore.initialise]},this.$router.beforeEach(async(t,e,n)=>{await this.configurationStore.initialise(),this.updateClipping(),t.path===e.path&&t.hash||this.$Progress.start(),n()}),this.$router.afterEach(()=>{this.$Progress.finish()}),this.connect()},beforeUnmount(){this.scheduledHandlers.forEach(t=>clearTimeout(t)),this.scheduledHandlers.clear()},methods:{async connect(){try{await this.configurationStore.initialise(),this.uiStore.hideSingles=this.configurationStore.hide_singles,document.title=this.configurationStore.library_name,this.openWebsocket()}catch{this.notificationsStore.add({text:this.$t("server.connection-failed"),topic:"connection",type:"danger"})}},createWebsocket(){const t=window.location.protocol.replace("http","ws"),e=window.location.hostname,n=this.configurationStore.websocket_port||`${window.location.port}/ws`,s=`${t}${e}:${n}`;return new FN(s,"notify",{maxReconnectInterval:2e3,reconnectInterval:1e3})},handleEvents(t=[]){t.forEach(e=>{(this.handlers[e]||[]).forEach(s=>{if(!this.scheduledHandlers.has(s)){const i=setTimeout(()=>{s.call(this),this.scheduledHandlers.delete(s)},50);this.scheduledHandlers.set(s,i)}})})},openWebsocket(){const t=this.createWebsocket(),e=["database","lastfm","options","outputs","pairing","player","queue","settings","spotify","update","volume"];t.onopen=()=>{t.send(JSON.stringify({notify:e})),this.handleEvents(e)},window.addEventListener("focus",()=>{this.handleEvents(e)}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&this.handleEvents(e)}),t.onmessage=n=>{const s=JSON.parse(n.data).notify;this.handleEvents(s)}},updateClipping(){this.uiStore.showBurgerMenu||this.uiStore.showPlayerMenu?document.querySelector("html").classList.add("is-clipped"):document.querySelector("html").classList.remove("is-clipped")}}};function UN(t,e,n,s,i,r){const o=w("vue-progress-bar"),a=w("navbar-top"),l=w("router-view"),c=w("modal-dialog-remote-pairing"),u=w("modal-dialog-update"),d=w("list-notifications"),f=w("navbar-bottom");return O(),F(rt,null,[S(o,{class:"has-background-primary"}),S(a),S(l,null,{default:L(({Component:h})=>[(O(),pt(Jh(h)))]),_:1}),S(c,{show:s.remotesStore.active,onClose:e[0]||(e[0]=h=>s.remotesStore.active=!1)},null,8,["show"]),S(u,{show:s.uiStore.showUpdateDialog,onClose:e[1]||(e[1]=h=>s.uiStore.showUpdateDialog=!1)},null,8,["show"]),ms(S(d,null,null,512),[[Bc,!s.uiStore.showBurgerMenu]]),S(f),ms(N("div",{class:"overlay-fullscreen",onClick:e[2]||(e[2]=(...h)=>s.uiStore.hideMenus&&s.uiStore.hideMenus(...h))},null,512),[[Bc,s.uiStore.showBurgerMenu||s.uiStore.showPlayerMenu]])],64)}const HN=et(VN,[["render",UN]]),h_=function(){return document.ontouchstart!==null?"click":"touchstart"},Jc="__vue_click_away__",p_=function(t,e,n){m_(t);let s=n.context,i=e.value,r=!1;setTimeout(function(){r=!0},0),t[Jc]=function(o){if((!t||!t.contains(o.target))&&i&&r&&typeof i=="function")return i.call(s,o)},document.addEventListener(h_(),t[Jc],!1)},m_=function(t){document.removeEventListener(h_(),t[Jc],!1),delete t[Jc]},jN=function(t,e,n){e.value!==e.oldValue&&p_(t,e,n)},BN={install:function(t){t.directive("click-away",WN)}},WN={mounted:p_,updated:jN,unmounted:m_};var Ws=(t=>(t.LOADING="loading",t.LOADED="loaded",t.ERROR="error",t))(Ws||{});const GN=typeof window<"u"&&window!==null,KN=YN(),zN=Object.prototype.propertyIsEnumerable,by=Object.getOwnPropertySymbols;function Ta(t){return typeof t=="function"||toString.call(t)==="[object Object]"}function qN(t){return typeof t=="object"?t===null:typeof t!="function"}function XN(t){return t!=="__proto__"&&t!=="constructor"&&t!=="prototype"}function YN(){return GN&&"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype?("isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get(){return this.intersectionRatio>0}}),!0):!1}function ZN(t,...e){if(!Ta(t))throw new TypeError("expected the first argument to be an object");if(e.length===0||typeof Symbol!="function"||typeof by!="function")return t;for(const n of e){const s=by(n);for(const i of s)zN.call(n,i)&&(t[i]=n[i])}return t}function g_(t,...e){let n=0;for(qN(t)&&(t=e[n++]),t||(t={});n{this._logger("Not support IntersectionObserver!")})),this._initIntersectionObserver(e,s,r,o,a)}update(e,n){if(!e)return;this._realObserver(e)?.unobserve(e);const{src:s,error:i,lifecycle:r,delay:o}=this._valueFormatter(typeof n=="string"?n:n.value);this._initIntersectionObserver(e,s,i,r,o)}unmount(e){e&&(this._realObserver(e)?.unobserve(e),this._images.delete(e))}loadImages(e,n,s,i){this._setImageSrc(e,n,s,i)}_setImageSrc(e,n,s,i){e.tagName.toLowerCase()==="img"?(n&&e.getAttribute("src")!==n&&e.setAttribute("src",n),this._listenImageStatus(e,()=>{this._lifecycle(Ws.LOADED,i,e)},()=>{e.onload=null,this._lifecycle(Ws.ERROR,i,e),this._realObserver(e)?.disconnect(),s&&e.getAttribute("src")!==s&&e.setAttribute("src",s),this._log(()=>{this._logger(`Image failed to load!And failed src was: ${n} `)})})):e.style.backgroundImage=`url('${n}')`}_initIntersectionObserver(e,n,s,i,r){const o=this.options.observerOptions;this._images.set(e,new IntersectionObserver(a=>{Array.prototype.forEach.call(a,l=>{r&&r>0?this._delayedIntersectionCallback(e,l,r,n,s,i):this._intersectionCallback(e,l,n,s,i)})},o)),this._realObserver(e)?.observe(e)}_intersectionCallback(e,n,s,i,r){n.isIntersecting&&(this._realObserver(e)?.unobserve(n.target),this._setImageSrc(e,s,i,r))}_delayedIntersectionCallback(e,n,s,i,r,o){if(n.isIntersecting){if(n.target.hasAttribute(qr))return;const a=setTimeout(()=>{this._intersectionCallback(e,n,i,r,o),n.target.removeAttribute(qr)},s);n.target.setAttribute(qr,String(a))}else n.target.hasAttribute(qr)&&(clearTimeout(Number(n.target.getAttribute(qr))),n.target.removeAttribute(qr))}_listenImageStatus(e,n,s){e.onload=n,e.onerror=s}_valueFormatter(e){let n=e,s=this.options.loading,i=this.options.error,r=this.options.lifecycle,o=this.options.delay;return Ta(e)&&(n=e.src,s=e.loading||this.options.loading,i=e.error||this.options.error,r=e.lifecycle||this.options.lifecycle,o=e.delay||this.options.delay),{src:n,loading:s,error:i,lifecycle:r,delay:o}}_log(e){this.options.log&&e()}_lifecycle(e,n,s){switch(e){case Ws.LOADING:s?.setAttribute("lazy",Ws.LOADING),n?.loading&&n.loading(s);break;case Ws.LOADED:s?.setAttribute("lazy",Ws.LOADED),n?.loaded&&n.loaded(s);break;case Ws.ERROR:s?.setAttribute("lazy",Ws.ERROR),n?.error&&n.error(s);break}}_realObserver(e){return this._images.get(e)}_logger(e,...n){let s=console.error;switch(this.options.logLevel){case"error":s=console.error;break;case"warn":s=console.warn;break;case"info":s=console.info;break;case"debug":s=console.debug;break}s(e,n)}}const eP={install(t,e){const n=new tP(e);t.config.globalProperties.$Lazyload=n,t.provide("Lazyload",n),t.directive("lazy",{mounted:n.mount.bind(n),updated:n.update.bind(n),unmounted:n.unmount.bind(n)})}};var Yd={exports:{}},Zd={exports:{}},Jd={};/** * @vue/compiler-core v3.5.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Co=Symbol(""),yo=Symbol(""),Zu=Symbol(""),Ya=Symbol(""),Ip=Symbol(""),er=Symbol(""),Np=Symbol(""),Pp=Symbol(""),Ju=Symbol(""),Qu=Symbol(""),jo=Symbol(""),td=Symbol(""),Rp=Symbol(""),ed=Symbol(""),nd=Symbol(""),sd=Symbol(""),id=Symbol(""),rd=Symbol(""),od=Symbol(""),Dp=Symbol(""),Lp=Symbol(""),yl=Symbol(""),Za=Symbol(""),ad=Symbol(""),ld=Symbol(""),To=Symbol(""),Bo=Symbol(""),cd=Symbol(""),Qc=Symbol(""),y_=Symbol(""),tu=Symbol(""),Ja=Symbol(""),b_=Symbol(""),v_=Symbol(""),ud=Symbol(""),__=Symbol(""),S_=Symbol(""),dd=Symbol(""),Mp=Symbol(""),Dr={[Co]:"Fragment",[yo]:"Teleport",[Zu]:"Suspense",[Ya]:"KeepAlive",[Ip]:"BaseTransition",[er]:"openBlock",[Np]:"createBlock",[Pp]:"createElementBlock",[Ju]:"createVNode",[Qu]:"createElementVNode",[jo]:"createCommentVNode",[td]:"createTextVNode",[Rp]:"createStaticVNode",[ed]:"resolveComponent",[nd]:"resolveDynamicComponent",[sd]:"resolveDirective",[id]:"resolveFilter",[rd]:"withDirectives",[od]:"renderList",[Dp]:"renderSlot",[Lp]:"createSlots",[yl]:"toDisplayString",[Za]:"mergeProps",[ad]:"normalizeClass",[ld]:"normalizeStyle",[To]:"normalizeProps",[Bo]:"guardReactiveProps",[cd]:"toHandlers",[Qc]:"camelize",[y_]:"capitalize",[tu]:"toHandlerKey",[Ja]:"setBlockTracking",[b_]:"pushScopeId",[v_]:"popScopeId",[ud]:"withCtx",[__]:"unref",[S_]:"isRef",[dd]:"withMemo",[Mp]:"isMemoSame"};function E_(t){Object.getOwnPropertySymbols(t).forEach(e=>{Dr[e]=t[e]})}const iP={HTML:0,0:"HTML",SVG:1,1:"SVG",MATH_ML:2,2:"MATH_ML"},rP={ROOT:0,0:"ROOT",ELEMENT:1,1:"ELEMENT",TEXT:2,2:"TEXT",COMMENT:3,3:"COMMENT",SIMPLE_EXPRESSION:4,4:"SIMPLE_EXPRESSION",INTERPOLATION:5,5:"INTERPOLATION",ATTRIBUTE:6,6:"ATTRIBUTE",DIRECTIVE:7,7:"DIRECTIVE",COMPOUND_EXPRESSION:8,8:"COMPOUND_EXPRESSION",IF:9,9:"IF",IF_BRANCH:10,10:"IF_BRANCH",FOR:11,11:"FOR",TEXT_CALL:12,12:"TEXT_CALL",VNODE_CALL:13,13:"VNODE_CALL",JS_CALL_EXPRESSION:14,14:"JS_CALL_EXPRESSION",JS_OBJECT_EXPRESSION:15,15:"JS_OBJECT_EXPRESSION",JS_PROPERTY:16,16:"JS_PROPERTY",JS_ARRAY_EXPRESSION:17,17:"JS_ARRAY_EXPRESSION",JS_FUNCTION_EXPRESSION:18,18:"JS_FUNCTION_EXPRESSION",JS_CONDITIONAL_EXPRESSION:19,19:"JS_CONDITIONAL_EXPRESSION",JS_CACHE_EXPRESSION:20,20:"JS_CACHE_EXPRESSION",JS_BLOCK_STATEMENT:21,21:"JS_BLOCK_STATEMENT",JS_TEMPLATE_LITERAL:22,22:"JS_TEMPLATE_LITERAL",JS_IF_STATEMENT:23,23:"JS_IF_STATEMENT",JS_ASSIGNMENT_EXPRESSION:24,24:"JS_ASSIGNMENT_EXPRESSION",JS_SEQUENCE_EXPRESSION:25,25:"JS_SEQUENCE_EXPRESSION",JS_RETURN_STATEMENT:26,26:"JS_RETURN_STATEMENT"},oP={ELEMENT:0,0:"ELEMENT",COMPONENT:1,1:"COMPONENT",SLOT:2,2:"SLOT",TEMPLATE:3,3:"TEMPLATE"},aP={NOT_CONSTANT:0,0:"NOT_CONSTANT",CAN_SKIP_PATCH:1,1:"CAN_SKIP_PATCH",CAN_CACHE:2,2:"CAN_CACHE",CAN_STRINGIFY:3,3:"CAN_STRINGIFY"},Ze={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function w_(t,e=""){return{type:0,source:e,children:t,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:Ze}}function Ao(t,e,n,s,i,r,o,a=!1,l=!1,c=!1,u=Ze){return t&&(a?(t.helper(er),t.helper($r(t.inSSR,c))):t.helper(Mr(t.inSSR,c)),o&&t.helper(rd)),{type:13,tag:e,props:n,children:s,patchFlag:i,dynamicProps:r,directives:o,isBlock:a,disableTracking:l,isComponent:c,loc:u}}function Ji(t,e=Ze){return{type:17,loc:e,elements:t}}function Xn(t,e=Ze){return{type:15,loc:e,properties:t}}function Ue(t,e){return{type:16,loc:Ze,key:Rt(t)?Ft(t,!0):t,value:e}}function Ft(t,e=!1,n=Ze,s=0){return{type:4,loc:n,content:t,isStatic:e,constType:e?3:s}}function lP(t,e){return{type:5,loc:e,content:Rt(t)?Ft(t,!1,e):t}}function fs(t,e=Ze){return{type:8,loc:e,children:t}}function ze(t,e=[],n=Ze){return{type:14,loc:n,callee:t,arguments:e}}function Lr(t,e=void 0,n=!1,s=!1,i=Ze){return{type:18,params:t,returns:e,newline:n,isSlot:s,loc:i}}function eu(t,e,n,s=!0){return{type:19,test:t,consequent:e,alternate:n,newline:s,loc:Ze}}function k_(t,e,n=!1,s=!1){return{type:20,index:t,value:e,needPauseTracking:n,inVOnce:s,needArraySpread:!1,loc:Ze}}function C_(t){return{type:21,body:t,loc:Ze}}function cP(t){return{type:22,elements:t,loc:Ze}}function uP(t,e,n){return{type:23,test:t,consequent:e,alternate:n,loc:Ze}}function dP(t,e){return{type:24,left:t,right:e,loc:Ze}}function fP(t){return{type:25,expressions:t,loc:Ze}}function hP(t){return{type:26,returns:t,loc:Ze}}function Mr(t,e){return t||e?Ju:Qu}function $r(t,e){return t||e?Np:Pp}function fd(t,{helper:e,removeHelper:n,inSSR:s}){t.isBlock||(t.isBlock=!0,n(Mr(s,t.isComponent)),e(er),e($r(s,t.isComponent)))}const vy=new Uint8Array([123,123]),_y=new Uint8Array([125,125]);function Sy(t){return t>=97&&t<=122||t>=65&&t<=90}function qn(t){return t===32||t===10||t===9||t===12||t===13}function Ri(t){return t===47||t===62||qn(t)}function nu(t){const e=new Uint8Array(t.length);for(let n=0;n=0;i--){const r=this.newlines[i];if(e>r){n=i+2,s=e-r;break}}return{column:s,line:n,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){e===60?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):!this.inVPre&&e===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){const n=this.index+1-this.delimiterOpen.length;n>this.sectionStart&&this.cbs.ontext(this.sectionStart,n),this.state=3,this.sectionStart=n}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){const n=this.sequenceIndex===this.currentSequence.length;if(!(n?Ri(e):(e|32)===this.currentSequence[this.sequenceIndex]))this.inRCDATA=!1;else if(!n){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(e===62||qn(e)){const n=this.index-this.currentSequence.length;if(this.sectionStart=e||(this.state===28?this.currentSequence===dn.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):this.state===6||this.state===11||this.state===18||this.state===17||this.state===12||this.state===13||this.state===14||this.state===15||this.state===16||this.state===20||this.state===19||this.state===21||this.state===9||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,n){}}const mP={COMPILER_IS_ON_ELEMENT:"COMPILER_IS_ON_ELEMENT",COMPILER_V_BIND_SYNC:"COMPILER_V_BIND_SYNC",COMPILER_V_BIND_OBJECT_ORDER:"COMPILER_V_BIND_OBJECT_ORDER",COMPILER_V_ON_NATIVE:"COMPILER_V_ON_NATIVE",COMPILER_V_IF_V_FOR_PRECEDENCE:"COMPILER_V_IF_V_FOR_PRECEDENCE",COMPILER_NATIVE_TEMPLATE:"COMPILER_NATIVE_TEMPLATE",COMPILER_INLINE_TEMPLATE:"COMPILER_INLINE_TEMPLATE",COMPILER_FILTERS:"COMPILER_FILTERS"},gP={COMPILER_IS_ON_ELEMENT:{message:'Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".',link:"https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html"},COMPILER_V_BIND_SYNC:{message:t=>`.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${t}.sync\` should be changed to \`v-model:${t}\`.`,link:"https://v3-migration.vuejs.org/breaking-changes/v-model.html"},COMPILER_V_BIND_OBJECT_ORDER:{message:'v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.',link:"https://v3-migration.vuejs.org/breaking-changes/v-bind.html"},COMPILER_V_ON_NATIVE:{message:".native modifier for v-on has been removed as is no longer necessary.",link:"https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html"},COMPILER_V_IF_V_FOR_PRECEDENCE:{message:"v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with