diff --git a/css/main-C_6xGBMP.chunk.css b/css/main-C_6xGBMP.chunk.css deleted file mode 100644 index 75f4eccb..00000000 --- a/css/main-C_6xGBMP.chunk.css +++ /dev/null @@ -1 +0,0 @@ -.icon[data-v-ab58efea]{display:inline-flex;vertical-align:middle;margin-right:8px}.chart-wrapper[data-v-50985e28]{height:200px;width:100%}.disk-grid[data-v-67e35930]{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;margin:16px 0}.disk-grid .infobox[data-v-67e35930]{margin:0}.diskchart-container[data-v-67e35930]{position:relative;flex:0 0 auto;width:120px;margin-right:24px}.diskinfo-container[data-v-67e35930]{flex:1 1 auto;min-width:0}.diskinfo[data-v-67e35930]{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:0;margin:0;line-height:1.4}.diskinfo__row[data-v-67e35930]{display:contents}.diskinfo__row dt[data-v-67e35930]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap;text-align:end}.diskinfo__row dd[data-v-67e35930]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.info-color-label--available[data-v-67e35930]:before,.info-color-label--used[data-v-67e35930]:before{content:"";display:inline-block;width:10px;height:10px;border-radius:10px;margin-right:5px}.info-color-label--available[data-v-67e35930]:before{background-color:var(--color-border-maxcontrast)}.info-color-label--used[data-v-67e35930]:before{background-color:var(--color-primary-element)}.disk-status>p[data-v-67e35930]{margin:2px 0}@media(width<=1280px){.text-center-mobile[data-v-67e35930]{text-align:center}.diskchart-container[data-v-67e35930]{margin:0 auto}.text-center-mobile .diskinfo[data-v-67e35930]{justify-content:center}}.chart-wrapper[data-v-4eb376e5]{height:200px;width:100%}.section-skeleton .skeleton-bar[data-v-9a2b13f0]{background:var(--color-background-dark, #ededed);border-radius:var(--border-radius, 3px);animation:skeleton-pulse-9a2b13f0 1.5s ease-in-out infinite}.section-skeleton .skeleton-title[data-v-9a2b13f0]{height:24px;width:40%;margin-bottom:20px}.section-skeleton .skeleton-chart[data-v-9a2b13f0]{height:200px;margin-bottom:16px}@keyframes skeleton-pulse-9a2b13f0{50%{opacity:.5}}.server-info-wrapper{max-width:100vw}.monitoring-wrapper{display:-webkit-flex;display:flex;max-width:50%;min-width:50%}.monitoring-wrapper>input{flex:1 0 auto}.monitoring-wrapper+.settings-hint{margin-top:0}.rambox,.cpubox{height:10px;width:10px;background-color:var(--color-primary-element)}.swapbox{height:10px;width:10px;background-color:var(--color-background-darker)}.info{font-weight:700}.smallinfo{color:var(--color-text-maxcontrast)}.infobox{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:16px 0;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}@media(width<=1280px){.infobox{display:block;word-break:break-word}.monitoring-wrapper{min-width:100%;max-width:100%}}.infobox h3{font-weight:700;padding:5px 0 10px;margin:0;overflow-wrap:break-word}.chart-container{position:relative;margin:10px}.clipboardButton{display:inline-block;position:relative;top:2px;margin-left:5px}.row{display:-webkit-flex;display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap;margin-left:-15px;margin-right:-15px}.col{flex-grow:1;flex-basis:0;max-width:100%;padding-left:15px;padding-right:15px}.col-1{flex-basis:8.333%;max-width:8.333%;min-width:8.333%}.col-2{flex-basis:16.666%;max-width:16.666%;min-width:16.666%}.col-3{flex-basis:25%;max-width:25%;min-width:25%}.col-4{flex-basis:33.333%;max-width:33.333%;min-width:33.333%}.col-5{flex-basis:41.666%;max-width:41.666%;min-width:41.666%}.col-6{flex-basis:50%;max-width:50%;min-width:50%}.col-7{flex-basis:58.333%;max-width:58.333%;min-width:58.333%}.col-8{flex-basis:66.666%;max-width:66.666%;min-width:66.666%}.col-9{flex-basis:75%;max-width:75%;min-width:75%}.col-10{flex-basis:83.333%;max-width:83.333%;min-width:83.333%}.col-11{flex-basis:91.666%;max-width:91.666%;min-width:91.666%}.col-12{flex-basis:100%;max-width:100%;min-width:100%}@media only screen and (max-width:1200px){.col-xl-6{flex-basis:50%;max-width:50%;min-width:50%}}@media only screen and (max-width:1024px){.col-l-6{flex-basis:50%;max-width:50%;min-width:50%}.col-l-12{flex-basis:100%;max-width:100%;min-width:100%}}@media only screen and (max-width:768px){.col-m-6{flex-basis:50%;max-width:50%;min-width:50%}.col-m-12{flex-basis:100%;max-width:100%;min-width:100%}}.monitoring-url-params{margin-top:3px;margin-bottom:3px}.monitoring-url-param{display:flex;align-items:start;margin-bottom:3px}.monitoring-url-param input{margin-top:4px;min-height:initial;height:initial}.active-users-wrapper{flex:1;display:flex;gap:0 1rem;flex-wrap:wrap;align-items:center;justify-content:center}.active-users-box{padding:.25rem 1rem;flex:1;min-width:150px;border-left:2px solid var(--color-border)}@media(width<=1280px){.active-users-box{padding:1rem .5rem;border:none;text-align:center}}.active-users-box:first-child{border:none}.active-users-box .info{font-size:2rem}.smoothie-chart-tooltip{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:0 .25rem;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}.server-info-table table{width:100%}.server-info-table table,.server-infos-table{white-space:normal;overflow-wrap:break-word}.server-info-table td{padding:6px}.server-info__tag-wrapper{display:flex;flex-wrap:wrap}.server-info__php-extension-tag{display:inline-block;margin:2px;padding:1px 9px;border-radius:16px;border:1px solid var(--color-main-text)} diff --git a/css/main-I70ZLnyt.chunk.css b/css/main-I70ZLnyt.chunk.css new file mode 100644 index 00000000..c2cf88d0 --- /dev/null +++ b/css/main-I70ZLnyt.chunk.css @@ -0,0 +1 @@ +.section-heading[data-v-0eb9e63c]{justify-content:start}.icon[data-v-0eb9e63c]{display:inline-flex;vertical-align:middle;margin-right:8px}.chart-wrapper[data-v-50985e28]{height:200px;width:100%}.diskchart-container[data-v-025684c3]{position:relative;flex:0 0 auto;width:120px;margin-right:24px}.diskinfo-container[data-v-025684c3]{flex:1 1 auto;min-width:0}.diskinfo[data-v-025684c3]{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:0;margin:0;line-height:1.4}.diskinfo__row[data-v-025684c3]{display:contents}.diskinfo__row dt[data-v-025684c3]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap;text-align:end}.diskinfo__row dd[data-v-025684c3]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.info-color-label--available[data-v-025684c3]:before,.info-color-label--used[data-v-025684c3]:before{content:"";display:inline-block;width:10px;height:10px;border-radius:10px;margin-right:5px}.info-color-label--available[data-v-025684c3]:before{background-color:var(--color-border-maxcontrast)}.info-color-label--used[data-v-025684c3]:before{background-color:var(--color-primary-element)}.disk-status>p[data-v-025684c3]{margin:2px 0}@media(width<=1280px){.text-center-mobile[data-v-025684c3]{text-align:center}.diskchart-container[data-v-025684c3]{margin:0 auto}.text-center-mobile .diskinfo[data-v-025684c3]{justify-content:center}}.chart-wrapper[data-v-4eb376e5]{height:200px;width:100%}._material-design-icon_JPsV1{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_s7kf-{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_s7kf-._ncFormBox_row_GzYuE{flex-direction:row}._ncFormBox__item_691pI{border-radius:var(--border-radius-small)!important}._ncFormBox_col_Lt4lg{flex-direction:column}._ncFormBox_col_Lt4lg ._ncFormBox__item_691pI:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_Lt4lg ._ncFormBox__item_691pI:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_GzYuE{flex-direction:row}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI{flex:1 1}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_MaIxG{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_E8Xfr{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_8BFGk{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_Gp-TA{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);font-weight:var(--font-weight-element, normal);transition-property:color,border-color,background-color;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_Gp-TA *{cursor:inherit}._formBoxItem_Gp-TA:has(:disabled){cursor:default;opacity:.5}._formBoxItem_Gp-TA:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_Gp-TA:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem__description_UqZJ1{font-weight:var(--font-weight-default, normal)}._formBoxItem_Gp-TA._formBoxItem_legacy_dP9aJ{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_Gp-TA._formBoxItem_inverted_BU-i- ._formBoxItem__element_jHCux{color:var(--color-text-maxcontrast)}._formBoxItem_Gp-TA._formBoxItem_inverted_BU-i- ._formBoxItem__description_UqZJ1{color:inherit}._formBoxItem__content_UKovC{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_jHCux:after{content:"";position:absolute;inset:0}._formBoxItem__description_UqZJ1{color:var(--color-text-maxcontrast)}._formBoxItem__icon_AvkP3{display:flex;align-items:center;justify-content:flex-end}.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}._material-design-icon_v0XYD{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_n8432{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._material-design-icon_63AMQ{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._iconToggleSwitch_IKWaj{color:var(--v6bd152af);transition:color var(--animation-quick) ease}._iconToggleSwitch_IKWaj svg{height:auto!important}._iconToggleSwitch_IKWaj circle{cx:var(--v16fd8ca9);transition:cx var(--animation-quick) ease}._material-design-icon_2NWOj{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_P4ub1{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_P4ub1._formGroup_noGap_I25Tm{--form-group-content-gap: 0}._formGroup__label_dvGhm{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:var(--font-weight-heading, bold)}._formGroup__description_rqVc0{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_fnqsg{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_fnqsg._formGroup__content_only_G-Ivq{margin-block-start:0}.monitoring[data-v-94a398b4]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 4)}.section-skeleton .skeleton-bar[data-v-9a2b13f0]{background:var(--color-background-dark, #ededed);border-radius:var(--border-radius, 3px);animation:skeleton-pulse-9a2b13f0 1.5s ease-in-out infinite}.section-skeleton .skeleton-title[data-v-9a2b13f0]{height:24px;width:40%;margin-bottom:20px}.section-skeleton .skeleton-chart[data-v-9a2b13f0]{height:200px;margin-bottom:16px}@keyframes skeleton-pulse-9a2b13f0{50%{opacity:.5}}.rambox,.cpubox{height:10px;width:10px;background-color:var(--color-primary-element)}.swapbox{height:10px;width:10px;background-color:var(--color-background-darker)}.info{font-weight:700}.smallinfo{color:var(--color-text-maxcontrast)}.infobox{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:16px 0;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}@media(width<=1280px){.infobox{display:block;word-break:break-word}}.infobox h3{font-weight:700;padding:5px 0 10px;margin:0;overflow-wrap:break-word}.chart-container{position:relative;margin:10px}.clipboardButton{display:inline-block;position:relative;top:2px;margin-left:5px}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:30px}.row--cards{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));margin:16px 0}.row--cards .infobox{margin:0}.row>*{min-width:0}.active-users-wrapper{flex:1;display:flex;gap:0 1rem;flex-wrap:wrap;align-items:center;justify-content:center}.active-users-box{padding:.25rem 1rem;flex:1;min-width:150px;border-left:2px solid var(--color-border)}@media(width<=1280px){.active-users-box{padding:1rem .5rem;border:none;text-align:center}}.active-users-box:first-child{border:none}.active-users-box .info{font-size:2rem}.smoothie-chart-tooltip{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:0 .25rem;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}.server-info-table table{width:100%}.server-info-table table,.server-infos-table{white-space:normal;overflow-wrap:break-word}.server-info-table td{padding:6px}.server-info__tag-wrapper{display:flex;flex-wrap:wrap}.server-info__php-extension-tag{display:inline-block;margin:2px;padding:1px 9px;border-radius:16px;border:1px solid var(--color-main-text)} diff --git a/css/serverinfo-main.css b/css/serverinfo-main.css index 366c6d84..9fe167ff 100644 --- a/css/serverinfo-main.css +++ b/css/serverinfo-main.css @@ -1,2 +1,2 @@ /* extracted by css-entry-points-plugin */ -@import './main-C_6xGBMP.chunk.css'; \ No newline at end of file +@import './main-I70ZLnyt.chunk.css'; \ No newline at end of file diff --git a/js/serverinfo-main.mjs b/js/serverinfo-main.mjs index 5a1de06d..b65eb6fe 100644 --- a/js/serverinfo-main.mjs +++ b/js/serverinfo-main.mjs @@ -1,14 +1,22 @@ -const Ts=globalThis||void 0||self;function el(t){const e=Object.create(null);for(const n of t.split(","))e[n]=1;return n=>n in e}const jt={},Ii=[],_n=()=>{},nf=()=>!1,no=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),io=t=>t.startsWith("onUpdate:"),ge=Object.assign,nl=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},ig=Object.prototype.hasOwnProperty,Lt=(t,e)=>ig.call(t,e),ut=Array.isArray,Li=t=>js(t)==="[object Map]",so=t=>js(t)==="[object Set]",hc=t=>js(t)==="[object Date]",gt=t=>typeof t=="function",Zt=t=>typeof t=="string",bn=t=>typeof t=="symbol",Bt=t=>t!==null&&typeof t=="object",sf=t=>(Bt(t)||gt(t))&>(t.then)&>(t.catch),rf=Object.prototype.toString,js=t=>rf.call(t),sg=t=>js(t).slice(8,-1),of=t=>js(t)==="[object Object]",il=t=>Zt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,gs=el(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ro=t=>{const e=Object.create(null);return(n=>e[n]||(e[n]=t(n)))},rg=/-\w/g,Ce=ro(t=>t.replace(rg,e=>e.slice(1).toUpperCase())),og=/\B([A-Z])/g,yi=ro(t=>t.replace(og,"-$1").toLowerCase()),oo=ro(t=>t.charAt(0).toUpperCase()+t.slice(1)),Mo=ro(t=>t?`on${oo(t)}`:""),pn=(t,e)=>!Object.is(t,e),Er=(t,...e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:i,value:n})},ag=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let fc;const Dr=()=>fc||(fc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Ts<"u"?Ts:{});function sl(t){if(ut(t)){const e={};for(let n=0;n{if(n){const i=n.split(cg);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function rl(t){let e="";if(Zt(t))e=t;else if(ut(t))for(let n=0;nHs(n,e))}const uf=t=>!!(t&&t.__v_isRef===!0),P=t=>Zt(t)?t:t==null?"":ut(t)||Bt(t)&&(t.toString===rf||!gt(t.toString))?uf(t)?P(t.value):JSON.stringify(t,hf,2):String(t),hf=(t,e)=>uf(e)?hf(t,e.value):Li(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((n,[i,s],r)=>(n[Po(i,r)+" =>"]=s,n),{})}:so(e)?{[`Set(${e.size})`]:[...e.values()].map(n=>Po(n))}:bn(e)?Po(e):Bt(e)&&!ut(e)&&!of(e)?String(e):e,Po=(t,e="")=>{var n;return bn(t)?`Symbol(${(n=t.description)!=null?n:e})`:t};let fe;class gg{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&fe&&(fe.active?(this.parent=fe,this.index=(fe.scopes||(fe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!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){if(fe===this)fe=this.prevScope;else{let e=fe;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let n,i;for(n=0,i=this.effects.length;n0)return;if(_s){let e=_s;for(_s=void 0;e;){const n=e.next;e.next=void 0,e.flags&=-9,e=n}}let t;for(;ms;){let e=ms;for(ms=void 0;e;){const n=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){t||(t=i)}e=n}}if(t)throw t}function gf(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function mf(t){let e,n=t.depsTail,i=n;for(;i;){const s=i.prevDep;i.version===-1?(i===n&&(n=s),ll(i),_g(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=s}t.deps=e,t.depsTail=n}function Ea(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(_f(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function _f(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Rs)||(t.globalVersion=Rs,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Ea(t))))return;t.flags|=2;const e=t.dep,n=Wt,i=Je;Wt=t,Je=!0;try{gf(t);const s=t.fn(t._value);(e.version===0||pn(s,t._value))&&(t.flags|=128,t._value=s,e.version++)}catch(s){throw e.version++,s}finally{Wt=n,Je=i,mf(t),t.flags&=-3}}function ll(t,e=!1){const{dep:n,prevSub:i,nextSub:s}=t;if(i&&(i.nextSub=s,t.prevSub=void 0),s&&(s.prevSub=i,t.nextSub=void 0),n.subs===t&&(n.subs=i,!i&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)ll(r,!0)}!e&&!--n.sc&&n.map&&n.map.delete(n.key)}function _g(t){const{prevDep:e,nextDep:n}=t;e&&(e.nextDep=n,t.prevDep=void 0),n&&(n.prevDep=e,t.nextDep=void 0)}let Je=!0;const yf=[];function Pn(){yf.push(Je),Je=!1}function In(){const t=yf.pop();Je=t===void 0?!0:t}function dc(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const n=Wt;Wt=void 0;try{e()}finally{Wt=n}}}let Rs=0;class yg{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 cl{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(!Wt||!Je||Wt===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Wt)n=this.activeLink=new yg(Wt,this),Wt.deps?(n.prevDep=Wt.depsTail,Wt.depsTail.nextDep=n,Wt.depsTail=n):Wt.deps=Wt.depsTail=n,bf(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const i=n.nextDep;i.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=i),n.prevDep=Wt.depsTail,n.nextDep=void 0,Wt.depsTail.nextDep=n,Wt.depsTail=n,Wt.deps===n&&(Wt.deps=i)}return n}trigger(e){this.version++,Rs++,this.notify(e)}notify(e){ol();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{al()}}}function bf(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)bf(i)}const n=t.dep.subs;n!==t&&(t.prevSub=n,n&&(n.nextSub=t)),t.dep.subs=t}}const Aa=new WeakMap,ui=Symbol(""),Ta=Symbol(""),Os=Symbol("");function ve(t,e,n){if(Je&&Wt){let i=Aa.get(t);i||Aa.set(t,i=new Map);let s=i.get(n);s||(i.set(n,s=new cl),s.map=i,s.key=n),s.track()}}function On(t,e,n,i,s,r){const o=Aa.get(t);if(!o){Rs++;return}const a=l=>{l&&l.trigger()};if(ol(),e==="clear")o.forEach(a);else{const l=ut(t),u=l&&il(n);if(l&&n==="length"){const c=Number(i);o.forEach((f,p)=>{(p==="length"||p===Os||!bn(p)&&p>=c)&&a(f)})}else switch((n!==void 0||o.has(void 0))&&a(o.get(n)),u&&a(o.get(Os)),e){case"add":l?u&&a(o.get("length")):(a(o.get(ui)),Li(t)&&a(o.get(Ta)));break;case"delete":l||(a(o.get(ui)),Li(t)&&a(o.get(Ta)));break;case"set":Li(t)&&a(o.get(ui));break}}al()}function Si(t){const e=Rt(t);return e===t?e:(ve(e,"iterate",Os),We(t)?e:e.map(Ze))}function ao(t){return ve(t=Rt(t),"iterate",Os),t}function fn(t,e){return Ln(t)?ks(hi(t)?Ze(e):e):Ze(e)}const bg={__proto__:null,[Symbol.iterator](){return Lo(this,Symbol.iterator,t=>fn(this,t))},concat(...t){return Si(this).concat(...t.map(e=>ut(e)?Si(e):e))},entries(){return Lo(this,"entries",t=>(t[1]=fn(this,t[1]),t))},every(t,e){return vn(this,"every",t,e,void 0,arguments)},filter(t,e){return vn(this,"filter",t,e,n=>n.map(i=>fn(this,i)),arguments)},find(t,e){return vn(this,"find",t,e,n=>fn(this,n),arguments)},findIndex(t,e){return vn(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return vn(this,"findLast",t,e,n=>fn(this,n),arguments)},findLastIndex(t,e){return vn(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return vn(this,"forEach",t,e,void 0,arguments)},includes(...t){return Do(this,"includes",t)},indexOf(...t){return Do(this,"indexOf",t)},join(t){return Si(this).join(t)},lastIndexOf(...t){return Do(this,"lastIndexOf",t)},map(t,e){return vn(this,"map",t,e,void 0,arguments)},pop(){return Zi(this,"pop")},push(...t){return Zi(this,"push",t)},reduce(t,...e){return pc(this,"reduce",t,e)},reduceRight(t,...e){return pc(this,"reduceRight",t,e)},shift(){return Zi(this,"shift")},some(t,e){return vn(this,"some",t,e,void 0,arguments)},splice(...t){return Zi(this,"splice",t)},toReversed(){return Si(this).toReversed()},toSorted(t){return Si(this).toSorted(t)},toSpliced(...t){return Si(this).toSpliced(...t)},unshift(...t){return Zi(this,"unshift",t)},values(){return Lo(this,"values",t=>fn(this,t))}};function Lo(t,e,n){const i=ao(t),s=i[e]();return i!==t&&!We(t)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=n(r.value)),r}),s}const vg=Array.prototype;function vn(t,e,n,i,s,r){const o=ao(t),a=o!==t&&!We(t),l=o[e];if(l!==vg[e]){const f=l.apply(t,r);return a?Ze(f):f}let u=n;o!==t&&(a?u=function(f,p){return n.call(this,fn(t,f),p,t)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,t)}));const c=l.call(o,u,i);return a&&s?s(c):c}function pc(t,e,n,i){const s=ao(t),r=s!==t&&!We(t);let o=n,a=!1;s!==t&&(r?(a=i.length===0,o=function(u,c,f){return a&&(a=!1,u=fn(t,u)),n.call(this,u,fn(t,c),f,t)}):n.length>3&&(o=function(u,c,f){return n.call(this,u,c,f,t)}));const l=s[e](o,...i);return a?fn(t,l):l}function Do(t,e,n){const i=Rt(t);ve(i,"iterate",Os);const s=i[e](...n);return(s===-1||s===!1)&&Vs(n[0])?(n[0]=Rt(n[0]),i[e](...n)):s}function Zi(t,e,n=[]){Pn(),ol();const i=Rt(t)[e].apply(t,n);return al(),In(),i}const xg=el("__proto__,__v_isRef,__isVue"),vf=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(bn));function wg(t){bn(t)||(t=String(t));const e=Rt(this);return ve(e,"has",t),e.hasOwnProperty(t)}class xf{constructor(e=!1,n=!1){this._isReadonly=e,this._isShallow=n}get(e,n,i){if(n==="__v_skip")return e.__v_skip;const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return i===(s?r?Mg:Tf:r?Af:Ef).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const o=ut(e);if(!s){let l;if(o&&(l=bg[n]))return l;if(n==="hasOwnProperty")return wg}const a=Reflect.get(e,n,we(e)?e:i);if((bn(n)?vf.has(n):xg(n))||(s||ve(e,"get",n),r))return a;if(we(a)){const l=o&&il(n)?a:a.value;return s&&Bt(l)?Oa(l):l}return Bt(a)?s?Oa(a):ul(a):a}}class wf extends xf{constructor(e=!1){super(!1,e)}set(e,n,i,s){let r=e[n];const o=ut(e)&&il(n);if(!this._isShallow){const u=Ln(r);if(!We(i)&&!Ln(i)&&(r=Rt(r),i=Rt(i)),!o&&we(r)&&!we(i))return u||(r.value=i),!0}const a=o?Number(n)t,rr=t=>Reflect.getPrototypeOf(t);function Tg(t,e,n){return function(...i){const s=this.__v_raw,r=Rt(s),o=Li(r),a=t==="entries"||t===Symbol.iterator&&o,l=t==="keys"&&o,u=s[t](...i),c=n?Ra:e?ks:Ze;return!e&&ve(r,"iterate",l?Ta:ui),ge(Object.create(u),{next(){const{value:f,done:p}=u.next();return p?{value:f,done:p}:{value:a?[c(f[0]),c(f[1])]:c(f),done:p}}})}}function or(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function Rg(t,e){const n={get(i){const s=this.__v_raw,r=Rt(s),o=Rt(i);t||(pn(i,o)&&ve(r,"get",i),ve(r,"get",o));const{has:a}=rr(r),l=e?Ra:t?ks:Ze;if(a.call(r,i))return l(s.get(i));if(a.call(r,o))return l(s.get(o));s!==r&&s.get(i)},get size(){const i=this.__v_raw;return!t&&ve(Rt(i),"iterate",ui),i.size},has(i){const s=this.__v_raw,r=Rt(s),o=Rt(i);return t||(pn(i,o)&&ve(r,"has",i),ve(r,"has",o)),i===o?s.has(i):s.has(i)||s.has(o)},forEach(i,s){const r=this,o=r.__v_raw,a=Rt(o),l=e?Ra:t?ks:Ze;return!t&&ve(a,"iterate",ui),o.forEach((u,c)=>i.call(s,l(u),l(c),r))}};return ge(n,t?{add:or("add"),set:or("set"),delete:or("delete"),clear:or("clear")}:{add(i){const s=Rt(this),r=rr(s),o=Rt(i),a=!e&&!We(i)&&!Ln(i)?o:i;return r.has.call(s,a)||pn(i,a)&&r.has.call(s,i)||pn(o,a)&&r.has.call(s,o)||(s.add(a),On(s,"add",a,a)),this},set(i,s){!e&&!We(s)&&!Ln(s)&&(s=Rt(s));const r=Rt(this),{has:o,get:a}=rr(r);let l=o.call(r,i);l||(i=Rt(i),l=o.call(r,i));const u=a.call(r,i);return r.set(i,s),l?pn(s,u)&&On(r,"set",i,s):On(r,"add",i,s),this},delete(i){const s=Rt(this),{has:r,get:o}=rr(s);let a=r.call(s,i);a||(i=Rt(i),a=r.call(s,i)),o&&o.call(s,i);const l=s.delete(i);return a&&On(s,"delete",i,void 0),l},clear(){const i=Rt(this),s=i.size!==0,r=i.clear();return s&&On(i,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=Tg(i,t,e)}),n}function lo(t,e){const n=Rg(t,e);return(i,s,r)=>s==="__v_isReactive"?!t:s==="__v_isReadonly"?t:s==="__v_raw"?i:Reflect.get(Lt(n,s)&&s in i?n:i,s,r)}const Og={get:lo(!1,!1)},kg={get:lo(!1,!0)},Cg={get:lo(!0,!1)},QT={get:lo(!0,!0)},Ef=new WeakMap,Af=new WeakMap,Tf=new WeakMap,Mg=new WeakMap;function Pg(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ul(t){return Ln(t)?t:hl(t,!1,Sg,Og,Ef)}function Ig(t){return hl(t,!1,Ag,kg,Af)}function Oa(t){return hl(t,!0,Eg,Cg,Tf)}function hl(t,e,n,i,s){if(!Bt(t)||t.__v_raw&&!(e&&t.__v_isReactive)||t.__v_skip||!Object.isExtensible(t))return t;const r=s.get(t);if(r)return r;const o=Pg(sg(t));if(o===0)return t;const a=new Proxy(t,o===2?i:n);return s.set(t,a),a}function hi(t){return Ln(t)?hi(t.__v_raw):!!(t&&t.__v_isReactive)}function Ln(t){return!!(t&&t.__v_isReadonly)}function We(t){return!!(t&&t.__v_isShallow)}function Vs(t){return t?!!t.__v_raw:!1}function Rt(t){const e=t&&t.__v_raw;return e?Rt(e):t}function Lg(t){return!Lt(t,"__v_skip")&&Object.isExtensible(t)&&af(t,"__v_skip",!0),t}const Ze=t=>Bt(t)?ul(t):t,ks=t=>Bt(t)?Oa(t):t;function we(t){return t?t.__v_isRef===!0:!1}function yn(t){return Rf(t,!1)}function co(t){return Rf(t,!0)}function Rf(t,e){return we(t)?t:new Dg(t,e)}class Dg{constructor(e,n){this.dep=new cl,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?e:Rt(e),this._value=n?e:Ze(e),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(e){const n=this._rawValue,i=this.__v_isShallow||We(e)||Ln(e);e=i?e:Rt(e),pn(e,n)&&(this._rawValue=e,this._value=i?e:Ze(e),this.dep.trigger())}}function F(t){return we(t)?t.value:t}const Ng={get:(t,e,n)=>e==="__v_raw"?t:F(Reflect.get(t,e,n)),set:(t,e,n,i)=>{const s=t[e];return we(s)&&!we(n)?(s.value=n,!0):Reflect.set(t,e,n,i)}};function Of(t){return hi(t)?t:new Proxy(t,Ng)}class $g{constructor(e,n,i){this.fn=e,this.setter=n,this._value=void 0,this.dep=new cl(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Rs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&Wt!==this)return pf(this,!0),!0}get value(){const e=this.dep.track();return _f(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function Fg(t,e,n=!1){let i,s;return gt(t)?i=t:(i=t.get,s=t.set),new $g(i,s,n)}const ar={},Nr=new WeakMap;let ni;function Bg(t,e=!1,n=ni){if(n){let i=Nr.get(n);i||Nr.set(n,i=[]),i.push(t)}}function Ug(t,e,n=jt){const{immediate:i,deep:s,once:r,scheduler:o,augmentJob:a,call:l}=n,u=T=>s?T:We(T)||s===!1||s===0?kn(T,1):kn(T);let c,f,p,m,x=!1,_=!1;if(we(t)?(f=()=>t.value,x=We(t)):hi(t)?(f=()=>u(t),x=!0):ut(t)?(_=!0,x=t.some(T=>hi(T)||We(T)),f=()=>t.map(T=>{if(we(T))return T.value;if(hi(T))return u(T);if(gt(T))return l?l(T,2):T()})):gt(t)?e?f=l?()=>l(t,2):t:f=()=>{if(p){Pn();try{p()}finally{In()}}const T=ni;ni=c;try{return l?l(t,3,[m]):t(m)}finally{ni=T}}:f=_n,e&&s){const T=f,L=s===!0?1/0:s;f=()=>kn(T(),L)}const E=mg(),b=()=>{c.stop(),E&&E.active&&nl(E.effects,c)};if(r&&e){const T=e;e=(...L)=>{T(...L),b()}}let O=_?new Array(t.length).fill(ar):ar;const M=T=>{if(!(!(c.flags&1)||!c.dirty&&!T))if(e){const L=c.run();if(s||x||(_?L.some((tt,K)=>pn(tt,O[K])):pn(L,O))){p&&p();const tt=ni;ni=c;try{const K=[L,O===ar?void 0:_&&O[0]===ar?[]:O,m];O=L,l?l(e,3,K):e(...K)}finally{ni=tt}}}else c.run()};return a&&a(M),c=new ff(f),c.scheduler=o?()=>o(M,!1):M,m=T=>Bg(T,!1,c),p=c.onStop=()=>{const T=Nr.get(c);if(T){if(l)l(T,4);else for(const L of T)L();Nr.delete(c)}},e?i?M(!0):O=c.run():o?o(M.bind(null,!0),!0):c.run(),b.pause=c.pause.bind(c),b.resume=c.resume.bind(c),b.stop=b,b}function kn(t,e=1/0,n){if(e<=0||!Bt(t)||t.__v_skip||(n=n||new Map,(n.get(t)||0)>=e))return t;if(n.set(t,e),e--,we(t))kn(t.value,e,n);else if(ut(t))for(let i=0;i{kn(i,e,n)});else if(of(t)){for(const i in t)kn(t[i],e,n);for(const i of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,i)&&kn(t[i],e,n)}return t}function zs(t,e,n,i){try{return i?t(...i):t()}catch(s){uo(s,e,n)}}function Qe(t,e,n,i){if(gt(t)){const s=zs(t,e,n,i);return s&&sf(s)&&s.catch(r=>{uo(r,e,n)}),s}if(ut(t)){const s=[];for(let r=0;r>>1,s=Oe[i],r=Cs(s);r=Cs(n)?Oe.push(t):Oe.splice(Hg(e),0,t),t.flags|=1,Mf()}}function Mf(){$r||($r=kf.then(If))}function Vg(t){ut(t)?Di.push(...t):Fn&&t.id===-1?Fn.splice(Mi+1,0,t):t.flags&1||(Di.push(t),t.flags|=1),Mf()}function gc(t,e,n=ln+1){for(;nCs(n)-Cs(i));if(Di.length=0,Fn){Fn.push(...e);return}for(Fn=e,Mi=0;Mit.id==null?t.flags&2?-1:1/0:t.id;function If(t){try{for(ln=0;ln{i._d&&jr(-1);const r=Fr(e);let o;try{o=t(...s)}finally{Fr(r),i._d&&jr(1)}return o};return i._n=!0,i._c=!0,i._d=!0,i}function No(t,e){if(Be===null)return t;const n=mo(Be),i=t.dirs||(t.dirs=[]);for(let s=0;s1)return n&>(e)?e.call(i&&i.proxy):e}}const qg=Symbol.for("v-scx"),Yg=()=>Ar(qg);function Ni(t,e,n){return Df(t,e,n)}function Df(t,e,n=jt){const{immediate:i,deep:s,flush:r,once:o}=n,a=ge({},n),l=e&&i||!e&&r!=="post";let u;if(Ps){if(r==="sync"){const m=Yg();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=_n,m.resume=_n,m.pause=_n,m}}const c=xe;a.call=(m,x,_)=>Qe(m,c,x,_);let f=!1;r==="post"?a.scheduler=m=>{Pe(m,c&&c.suspense)}:r!=="sync"&&(f=!0,a.scheduler=(m,x)=>{x?m():fl(m)}),a.augmentJob=m=>{e&&(m.flags|=4),f&&(m.flags|=2,c&&(m.id=c.uid,m.i=c))};const p=Ug(t,e,a);return Ps&&(u?u.push(p):l&&p()),p}function Gg(t,e,n){const i=this.proxy,s=Zt(t)?t.includes(".")?Nf(i,t):()=>i[t]:t.bind(i,i);let r;gt(e)?r=e:(r=e.handler,n=e);const o=qs(this),a=Df(s,r.bind(i),n);return o(),a}function Nf(t,e){const n=e.split(".");return()=>{let i=t;for(let s=0;st.__isTeleport,$o=Symbol("_leaveCb");function dl(t,e){t.shapeFlag&6&&t.component?(t.transition=e,dl(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 Ae(t,e){return gt(t)?ge({name:t.name},e,{setup:t}):t}function $f(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function mc(t,e){let n;return!!((n=Object.getOwnPropertyDescriptor(t,e))&&!n.configurable)}const Br=new WeakMap;function ys(t,e,n,i,s=!1){if(ut(t)){t.forEach((_,E)=>ys(_,e&&(ut(e)?e[E]:e),n,i,s));return}if(bs(i)&&!s){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&ys(t,e,n,i.component.subTree);return}const r=i.shapeFlag&4?mo(i.component):i.el,o=s?null:r,{i:a,r:l}=t,u=e&&e.r,c=a.refs===jt?a.refs={}:a.refs,f=a.setupState,p=Rt(f),m=f===jt?nf:_=>mc(c,_)?!1:Lt(p,_),x=(_,E)=>!(E&&mc(c,E));if(u!=null&&u!==l){if(_c(e),Zt(u))c[u]=null,m(u)&&(f[u]=null);else if(we(u)){const _=e;x(u,_.k)&&(u.value=null),_.k&&(c[_.k]=null)}}if(gt(l))zs(l,a,12,[o,c]);else{const _=Zt(l),E=we(l);if(_||E){const b=()=>{if(t.f){const O=_?m(l)?f[l]:c[l]:x()||!t.k?l.value:c[t.k];if(s)ut(O)&&nl(O,r);else if(ut(O))O.includes(r)||O.push(r);else if(_)c[l]=[r],m(l)&&(f[l]=c[l]);else{const M=[r];x(l,t.k)&&(l.value=M),t.k&&(c[t.k]=M)}}else _?(c[l]=o,m(l)&&(f[l]=o)):E&&(x(l,t.k)&&(l.value=o),t.k&&(c[t.k]=o))};if(o){const O=()=>{b(),Br.delete(t)};O.id=-1,Br.set(t,O),Pe(O,n)}else _c(t),b()}}}function _c(t){const e=Br.get(t);e&&(e.flags|=8,Br.delete(t))}Dr().requestIdleCallback,Dr().cancelIdleCallback;const bs=t=>!!t.type.__asyncLoader,Ff=t=>t.type.__isKeepAlive;function Jg(t,e){Bf(t,"a",e)}function Zg(t,e){Bf(t,"da",e)}function Bf(t,e,n=xe){const i=t.__wdc||(t.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return t()});if(ho(e,i,n),n){let s=n.parent;for(;s&&s.parent;)Ff(s.parent.vnode)&&Qg(i,e,n,s),s=s.parent}}function Qg(t,e,n,i){const s=ho(e,t,i,!0);Ws(()=>{nl(i[e],s)},n)}function ho(t,e,n=xe,i=!1){if(n){const s=n[t]||(n[t]=[]),r=e.__weh||(e.__weh=(...o)=>{Pn();const a=qs(n),l=Qe(e,n,t,o);return a(),In(),l});return i?s.unshift(r):s.push(r),r}}const Dn=t=>(e,n=xe)=>{(!Ps||t==="sp")&&ho(t,(...i)=>e(...i),n)},tm=Dn("bm"),pl=Dn("m"),em=Dn("bu"),nm=Dn("u"),im=Dn("bum"),Ws=Dn("um"),sm=Dn("sp"),rm=Dn("rtg"),om=Dn("rtc");function am(t,e=xe){ho("ec",t,e)}const lm="components",Uf=Symbol.for("v-ndc");function cm(t){return Zt(t)?um(lm,t,!1)||t:t||Uf}function um(t,e,n=!0,i=!1){const s=Be||xe;if(s){const r=s.type;{const a=Gm(r,!1);if(a&&(a===e||a===Ce(e)||a===oo(Ce(e))))return r}const o=yc(s[t]||r[t],e)||yc(s.appContext[t],e);return!o&&i?r:o}}function yc(t,e){return t&&(t[e]||t[Ce(e)]||t[oo(Ce(e))])}function fo(t,e,n,i){let s;const r=n,o=ut(t);if(o||Zt(t)){const a=o&&hi(t);let l=!1,u=!1;a&&(l=!We(t),u=Ln(t),t=ao(t)),s=new Array(t.length);for(let c=0,f=t.length;ce(a,l,void 0,r));else{const a=Object.keys(t);s=new Array(a.length);for(let l=0,u=a.length;lt?od(t)?mo(t):ka(t.parent):null,vs=ge(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=>ka(t.parent),$root:t=>ka(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Hf(t),$forceUpdate:t=>t.f||(t.f=()=>{fl(t.update)}),$nextTick:t=>t.n||(t.n=Cf.bind(t.proxy)),$watch:t=>Gg.bind(t)}),Fo=(t,e)=>t!==jt&&!t.__isScriptSetup&&Lt(t,e),hm={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:n,setupState:i,data:s,props:r,accessCache:o,type:a,appContext:l}=t;if(e[0]!=="$"){const p=o[e];if(p!==void 0)switch(p){case 1:return i[e];case 2:return s[e];case 4:return n[e];case 3:return r[e]}else{if(Fo(i,e))return o[e]=1,i[e];if(s!==jt&&Lt(s,e))return o[e]=2,s[e];if(Lt(r,e))return o[e]=3,r[e];if(n!==jt&&Lt(n,e))return o[e]=4,n[e];Ca&&(o[e]=0)}}const u=vs[e];let c,f;if(u)return e==="$attrs"&&ve(t.attrs,"get",""),u(t);if((c=a.__cssModules)&&(c=c[e]))return c;if(n!==jt&&Lt(n,e))return o[e]=4,n[e];if(f=l.config.globalProperties,Lt(f,e))return f[e]},set({_:t},e,n){const{data:i,setupState:s,ctx:r}=t;return Fo(s,e)?(s[e]=n,!0):i!==jt&&Lt(i,e)?(i[e]=n,!0):Lt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(r[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:i,appContext:s,props:r,type:o}},a){let l;return!!(n[a]||t!==jt&&a[0]!=="$"&&Lt(t,a)||Fo(e,a)||Lt(r,a)||Lt(i,a)||Lt(vs,a)||Lt(s.config.globalProperties,a)||(l=o.__cssModules)&&l[a])},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:Lt(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}};function bc(t){return ut(t)?t.reduce((e,n)=>(e[n]=null,e),{}):t}let Ca=!0;function fm(t){const e=Hf(t),n=t.proxy,i=t.ctx;Ca=!1,e.beforeCreate&&vc(e.beforeCreate,t,"bc");const{data:s,computed:r,methods:o,watch:a,provide:l,inject:u,created:c,beforeMount:f,mounted:p,beforeUpdate:m,updated:x,activated:_,deactivated:E,beforeDestroy:b,beforeUnmount:O,destroyed:M,unmounted:T,render:L,renderTracked:tt,renderTriggered:K,errorCaptured:X,serverPrefetch:dt,expose:ot,inheritAttrs:mt,components:wt,directives:Vt,filters:It}=e;if(u&&dm(u,i,null),o)for(const st in o){const lt=o[st];gt(lt)&&(i[st]=lt.bind(n))}if(s){const st=s.call(n,n);Bt(st)&&(t.data=ul(st))}if(Ca=!0,r)for(const st in r){const lt=r[st],$t=gt(lt)?lt.bind(n,n):gt(lt.get)?lt.get.bind(n,n):_n,zt=!gt(lt)&>(lt.set)?lt.set.bind(n):_n,Yt=Bn({get:$t,set:zt});Object.defineProperty(i,st,{enumerable:!0,configurable:!0,get:()=>Yt.value,set:Tt=>Yt.value=Tt})}if(a)for(const st in a)jf(a[st],i,n,st);if(l){const st=gt(l)?l.call(n):l;Reflect.ownKeys(st).forEach(lt=>{Wg(lt,st[lt])})}c&&vc(c,t,"c");function nt(st,lt){ut(lt)?lt.forEach($t=>st($t.bind(n))):lt&&st(lt.bind(n))}if(nt(tm,f),nt(pl,p),nt(em,m),nt(nm,x),nt(Jg,_),nt(Zg,E),nt(am,X),nt(om,tt),nt(rm,K),nt(im,O),nt(Ws,T),nt(sm,dt),ut(ot))if(ot.length){const st=t.exposed||(t.exposed={});ot.forEach(lt=>{Object.defineProperty(st,lt,{get:()=>n[lt],set:$t=>n[lt]=$t,enumerable:!0})})}else t.exposed||(t.exposed={});L&&t.render===_n&&(t.render=L),mt!=null&&(t.inheritAttrs=mt),wt&&(t.components=wt),Vt&&(t.directives=Vt),dt&&$f(t)}function dm(t,e,n=_n){ut(t)&&(t=Ma(t));for(const i in t){const s=t[i];let r;Bt(s)?"default"in s?r=Ar(s.from||i,s.default,!0):r=Ar(s.from||i):r=Ar(s),we(r)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):e[i]=r}}function vc(t,e,n){Qe(ut(t)?t.map(i=>i.bind(e.proxy)):t.bind(e.proxy),e,n)}function jf(t,e,n,i){let s=i.includes(".")?Nf(n,i):()=>n[i];if(Zt(t)){const r=e[t];gt(r)&&Ni(s,r)}else if(gt(t))Ni(s,t.bind(n));else if(Bt(t))if(ut(t))t.forEach(r=>jf(r,e,n,i));else{const r=gt(t.handler)?t.handler.bind(n):e[t.handler];gt(r)&&Ni(s,r,t)}}function Hf(t){const e=t.type,{mixins:n,extends:i}=e,{mixins:s,optionsCache:r,config:{optionMergeStrategies:o}}=t.appContext,a=r.get(e);let l;return a?l=a:!s.length&&!n&&!i?l=e:(l={},s.length&&s.forEach(u=>Ur(l,u,o,!0)),Ur(l,e,o)),Bt(e)&&r.set(e,l),l}function Ur(t,e,n,i=!1){const{mixins:s,extends:r}=e;r&&Ur(t,r,n,!0),s&&s.forEach(o=>Ur(t,o,n,!0));for(const o in e)if(!(i&&o==="expose")){const a=pm[o]||n&&n[o];t[o]=a?a(t[o],e[o]):e[o]}return t}const pm={data:xc,props:wc,emits:wc,methods:cs,computed:cs,beforeCreate:Re,created:Re,beforeMount:Re,mounted:Re,beforeUpdate:Re,updated:Re,beforeDestroy:Re,beforeUnmount:Re,destroyed:Re,unmounted:Re,activated:Re,deactivated:Re,errorCaptured:Re,serverPrefetch:Re,components:cs,directives:cs,watch:mm,provide:xc,inject:gm};function xc(t,e){return e?t?function(){return ge(gt(t)?t.call(this,this):t,gt(e)?e.call(this,this):e)}:e:t}function gm(t,e){return cs(Ma(t),Ma(e))}function Ma(t){if(ut(t)){const e={};for(let n=0;ne==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ce(e)}Modifiers`]||t[`${yi(e)}Modifiers`];function vm(t,e,...n){if(t.isUnmounted)return;const i=t.vnode.props||jt;let s=n;const r=e.startsWith("update:"),o=r&&bm(i,e.slice(7));o&&(o.trim&&(s=n.map(c=>Zt(c)?c.trim():c)),o.number&&(s=n.map(ag)));let a,l=i[a=Mo(e)]||i[a=Mo(Ce(e))];!l&&r&&(l=i[a=Mo(yi(e))]),l&&Qe(l,t,6,s);const u=i[a+"Once"];if(u){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,Qe(u,t,6,s)}}const xm=new WeakMap;function zf(t,e,n=!1){const i=n?xm:e.emitsCache,s=i.get(t);if(s!==void 0)return s;const r=t.emits;let o={},a=!1;if(!gt(t)){const l=u=>{const c=zf(u,e,!0);c&&(a=!0,ge(o,c))};!n&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!r&&!a?(Bt(t)&&i.set(t,null),null):(ut(r)?r.forEach(l=>o[l]=null):ge(o,r),Bt(t)&&i.set(t,o),o)}function po(t,e){return!t||!no(e)?!1:(e=e.slice(2).replace(/Once$/,""),Lt(t,e[0].toLowerCase()+e.slice(1))||Lt(t,yi(e))||Lt(t,e))}function Sc(t){const{type:e,vnode:n,proxy:i,withProxy:s,propsOptions:[r],slots:o,attrs:a,emit:l,render:u,renderCache:c,props:f,data:p,setupState:m,ctx:x,inheritAttrs:_}=t,E=Fr(t);let b,O;try{if(n.shapeFlag&4){const T=s||i,L=T;b=dn(u.call(L,T,c,f,m,p,x)),O=a}else{const T=e;b=dn(T.length>1?T(f,{attrs:a,slots:o,emit:l}):T(f,null)),O=e.props?a:wm(a)}}catch(T){xs.length=0,uo(T,t,1),b=pt(Wn)}let M=b;if(O&&_!==!1){const T=Object.keys(O),{shapeFlag:L}=M;T.length&&L&7&&(r&&T.some(io)&&(O=Sm(O,r)),M=Bi(M,O,!1,!0))}return n.dirs&&(M=Bi(M,null,!1,!0),M.dirs=M.dirs?M.dirs.concat(n.dirs):n.dirs),n.transition&&dl(M,n.transition),b=M,Fr(E),b}const wm=t=>{let e;for(const n in t)(n==="class"||n==="style"||no(n))&&((e||(e={}))[n]=t[n]);return e},Sm=(t,e)=>{const n={};for(const i in t)(!io(i)||!(i.slice(9)in e))&&(n[i]=t[i]);return n};function Em(t,e,n){const{props:i,children:s,component:r}=t,{props:o,children:a,patchFlag:l}=e,u=r.emitsOptions;if(e.dirs||e.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return i?Ec(i,o,u):!!o;if(l&8){const c=e.dynamicProps;for(let f=0;fObject.create(qf),Gf=t=>Object.getPrototypeOf(t)===qf;function Tm(t,e,n,i=!1){const s={},r=Yf();t.propsDefaults=Object.create(null),Kf(t,e,s,r);for(const o in t.propsOptions[0])o in s||(s[o]=void 0);n?t.props=i?s:Ig(s):t.type.props?t.props=s:t.props=r,t.attrs=r}function Rm(t,e,n,i){const{props:s,attrs:r,vnode:{patchFlag:o}}=t,a=Rt(s),[l]=t.propsOptions;let u=!1;if((i||o>0)&&!(o&16)){if(o&8){const c=t.vnode.dynamicProps;for(let f=0;f{l=!0;const[p,m]=Xf(f,e,!0);ge(o,p),m&&a.push(...m)};!n&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}if(!r&&!l)return Bt(t)&&i.set(t,Ii),Ii;if(ut(r))for(let c=0;ct==="_"||t==="_ctx"||t==="$stable",ml=t=>ut(t)?t.map(dn):[dn(t)],km=(t,e,n)=>{if(e._n)return e;const i=zg((...s)=>ml(e(...s)),n);return i._c=!1,i},Jf=(t,e,n)=>{const i=t._ctx;for(const s in t){if(gl(s))continue;const r=t[s];if(gt(r))e[s]=km(s,r,i);else if(r!=null){const o=ml(r);e[s]=()=>o}}},Zf=(t,e)=>{const n=ml(e);t.slots.default=()=>n},Qf=(t,e,n)=>{for(const i in e)(n||!gl(i))&&(t[i]=e[i])},Cm=(t,e,n)=>{const i=t.slots=Yf();if(t.vnode.shapeFlag&32){const s=e._;s?(Qf(i,e,n),n&&af(i,"_",s,!0)):Jf(e,i)}else e&&Zf(t,e)},Mm=(t,e,n)=>{const{vnode:i,slots:s}=t;let r=!0,o=jt;if(i.shapeFlag&32){const a=e._;a?n&&a===1?r=!1:Qf(s,e,n):(r=!e.$stable,Jf(e,s)),o=e}else e&&(Zf(t,e),o={default:1});if(r)for(const a in s)!gl(a)&&o[a]==null&&delete s[a]},Pe=Nm;function Pm(t){return Im(t)}function Im(t,e){const n=Dr();n.__VUE__=!0;const{insert:i,remove:s,patchProp:r,createElement:o,createText:a,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:p,setScopeId:m=_n,insertStaticContent:x}=t,_=(w,S,D,$=null,B=null,C=null,V=void 0,W=null,H=!!S.dynamicChildren)=>{if(w===S)return;w&&!Qi(w,S)&&($=Qt(w),ct(w,B,C,!0),w=null),S.patchFlag===-2&&(H=!1,S.dynamicChildren=null);const{type:j,ref:et,shapeFlag:J}=S;switch(j){case go:E(w,S,D,$);break;case Wn:b(w,S,D,$);break;case Uo:w==null&&O(S,D,$,V);break;case Mt:wt(w,S,D,$,B,C,V,W,H);break;default:J&1?L(w,S,D,$,B,C,V,W,H):J&6?Vt(w,S,D,$,B,C,V,W,H):(J&64||J&128)&&j.process(w,S,D,$,B,C,V,W,H,Ye)}et!=null&&B?ys(et,w&&w.ref,C,S||w,!S):et==null&&w&&w.ref!=null&&ys(w.ref,null,C,w,!0)},E=(w,S,D,$)=>{if(w==null)i(S.el=a(S.children),D,$);else{const B=S.el=w.el;S.children!==w.children&&u(B,S.children)}},b=(w,S,D,$)=>{w==null?i(S.el=l(S.children||""),D,$):S.el=w.el},O=(w,S,D,$)=>{[w.el,w.anchor]=x(w.children,S,D,$,w.el,w.anchor)},M=({el:w,anchor:S},D,$)=>{let B;for(;w&&w!==S;)B=p(w),i(w,D,$),w=B;i(S,D,$)},T=({el:w,anchor:S})=>{let D;for(;w&&w!==S;)D=p(w),s(w),w=D;s(S)},L=(w,S,D,$,B,C,V,W,H)=>{if(S.type==="svg"?V="svg":S.type==="math"&&(V="mathml"),w==null)tt(S,D,$,B,C,V,W,H);else{const j=w.el&&w.el._isVueCE?w.el:null;try{j&&j._beginPatch(),dt(w,S,B,C,V,W,H)}finally{j&&j._endPatch()}}},tt=(w,S,D,$,B,C,V,W)=>{let H,j;const{props:et,shapeFlag:J,transition:rt,dirs:it}=w;if(H=w.el=o(w.type,C,et&&et.is,et),J&8?c(H,w.children):J&16&&X(w.children,H,null,$,B,Bo(w,C),V,W),it&&Xn(w,null,$,"created"),K(H,w,w.scopeId,V,$),et){for(const _t in et)_t!=="value"&&!gs(_t)&&r(H,_t,null,et[_t],C,$);"value"in et&&r(H,"value",null,et.value,C),(j=et.onVnodeBeforeMount)&&rn(j,$,w)}it&&Xn(w,null,$,"beforeMount");const at=Lm(B,rt);at&&rt.beforeEnter(H),i(H,S,D),((j=et&&et.onVnodeMounted)||at||it)&&Pe(()=>{j&&rn(j,$,w),at&&rt.enter(H),it&&Xn(w,null,$,"mounted")},B)},K=(w,S,D,$,B)=>{if(D&&m(w,D),$)for(let C=0;C<$.length;C++)m(w,$[C]);if(B){let C=B.subTree;if(S===C||id(C.type)&&(C.ssContent===S||C.ssFallback===S)){const V=B.vnode;K(w,V,V.scopeId,V.slotScopeIds,B.parent)}}},X=(w,S,D,$,B,C,V,W,H=0)=>{for(let j=H;j{const W=S.el=w.el;let{patchFlag:H,dynamicChildren:j,dirs:et}=S;H|=w.patchFlag&16;const J=w.props||jt,rt=S.props||jt;let it;if(D&&Jn(D,!1),(it=rt.onVnodeBeforeUpdate)&&rn(it,D,S,w),et&&Xn(S,w,D,"beforeUpdate"),D&&Jn(D,!0),(J.innerHTML&&rt.innerHTML==null||J.textContent&&rt.textContent==null)&&c(W,""),j?ot(w.dynamicChildren,j,W,D,$,Bo(S,B),C):V||$t(w,S,W,null,D,$,Bo(S,B),C,!1),H>0){if(H&16)mt(W,J,rt,D,B);else if(H&2&&J.class!==rt.class&&r(W,"class",null,rt.class,B),H&4&&r(W,"style",J.style,rt.style,B),H&8){const at=S.dynamicProps;for(let _t=0;_t{it&&rn(it,D,S,w),et&&Xn(S,w,D,"updated")},$)},ot=(w,S,D,$,B,C,V)=>{for(let W=0;W{if(S!==D){if(S!==jt)for(const C in S)!gs(C)&&!(C in D)&&r(w,C,S[C],null,B,$);for(const C in D){if(gs(C))continue;const V=D[C],W=S[C];V!==W&&C!=="value"&&r(w,C,W,V,B,$)}"value"in D&&r(w,"value",S.value,D.value,B)}},wt=(w,S,D,$,B,C,V,W,H)=>{const j=S.el=w?w.el:a(""),et=S.anchor=w?w.anchor:a("");let{patchFlag:J,dynamicChildren:rt,slotScopeIds:it}=S;it&&(W=W?W.concat(it):it),w==null?(i(j,D,$),i(et,D,$),X(S.children||[],D,et,B,C,V,W,H)):J>0&&J&64&&rt&&w.dynamicChildren&&w.dynamicChildren.length===rt.length?(ot(w.dynamicChildren,rt,D,B,C,V,W),(S.key!=null||B&&S===B.subTree)&&td(w,S,!0)):$t(w,S,D,et,B,C,V,W,H)},Vt=(w,S,D,$,B,C,V,W,H)=>{S.slotScopeIds=W,w==null?S.shapeFlag&512?B.ctx.activate(S,D,$,V,H):It(S,D,$,B,C,V,H):nt(w,S,H)},It=(w,S,D,$,B,C,V)=>{const W=w.component=Hm(w,$,B);if(Ff(w)&&(W.ctx.renderer=Ye),zm(W,!1,V),W.asyncDep){if(B&&B.registerDep(W,st,V),!w.el){const H=W.subTree=pt(Wn);b(null,H,S,D),w.placeholder=H.el}}else st(W,w,S,D,B,C,V)},nt=(w,S,D)=>{const $=S.component=w.component;if(Em(w,S,D))if($.asyncDep&&!$.asyncResolved){lt($,S,D);return}else $.next=S,$.update();else S.el=w.el,$.vnode=S},st=(w,S,D,$,B,C,V)=>{const W=()=>{if(w.isMounted){let{next:J,bu:rt,u:it,parent:at,vnode:_t}=w;{const d=ed(w);if(d){J&&(J.el=_t.el,lt(w,J,V)),d.asyncDep.then(()=>{Pe(()=>{w.isUnmounted||j()},B)});return}}let kt=J,Et;Jn(w,!1),J?(J.el=_t.el,lt(w,J,V)):J=_t,rt&&Er(rt),(Et=J.props&&J.props.onVnodeBeforeUpdate)&&rn(Et,at,J,_t),Jn(w,!0);const Gt=Sc(w),h=w.subTree;w.subTree=Gt,_(h,Gt,f(h.el),Qt(h),w,B,C),J.el=Gt.el,kt===null&&Am(w,Gt.el),it&&Pe(it,B),(Et=J.props&&J.props.onVnodeUpdated)&&Pe(()=>rn(Et,at,J,_t),B)}else{let J;const{el:rt,props:it}=S,{bm:at,m:_t,parent:kt,root:Et,type:Gt}=w,h=bs(S);Jn(w,!1),at&&Er(at),!h&&(J=it&&it.onVnodeBeforeMount)&&rn(J,kt,S),Jn(w,!0);{Et.ce&&Et.ce._hasShadowRoot()&&Et.ce._injectChildStyle(Gt,w.parent?w.parent.type:void 0);const d=w.subTree=Sc(w);_(null,d,D,$,w,B,C),S.el=d.el}if(_t&&Pe(_t,B),!h&&(J=it&&it.onVnodeMounted)){const d=S;Pe(()=>rn(J,kt,d),B)}(S.shapeFlag&256||kt&&bs(kt.vnode)&&kt.vnode.shapeFlag&256)&&w.a&&Pe(w.a,B),w.isMounted=!0,S=D=$=null}};w.scope.on();const H=w.effect=new ff(W);w.scope.off();const j=w.update=H.run.bind(H),et=w.job=H.runIfDirty.bind(H);et.i=w,et.id=w.uid,H.scheduler=()=>fl(et),Jn(w,!0),j()},lt=(w,S,D)=>{S.component=w;const $=w.vnode.props;w.vnode=S,w.next=null,Rm(w,S.props,$,D),Mm(w,S.children,D),Pn(),gc(w),In()},$t=(w,S,D,$,B,C,V,W,H=!1)=>{const j=w&&w.children,et=w?w.shapeFlag:0,J=S.children,{patchFlag:rt,shapeFlag:it}=S;if(rt>0){if(rt&128){Yt(j,J,D,$,B,C,V,W,H);return}else if(rt&256){zt(j,J,D,$,B,C,V,W,H);return}}it&8?(et&16&&ft(j,B,C),J!==j&&c(D,J)):et&16?it&16?Yt(j,J,D,$,B,C,V,W,H):ft(j,B,C,!0):(et&8&&c(D,""),it&16&&X(J,D,$,B,C,V,W,H))},zt=(w,S,D,$,B,C,V,W,H)=>{w=w||Ii,S=S||Ii;const j=w.length,et=S.length,J=Math.min(j,et);let rt;for(rt=0;rtet?ft(w,B,C,!0,!1,J):X(S,D,$,B,C,V,W,H,J)},Yt=(w,S,D,$,B,C,V,W,H)=>{let j=0;const et=S.length;let J=w.length-1,rt=et-1;for(;j<=J&&j<=rt;){const it=w[j],at=S[j]=H?Tn(S[j]):dn(S[j]);if(Qi(it,at))_(it,at,D,null,B,C,V,W,H);else break;j++}for(;j<=J&&j<=rt;){const it=w[J],at=S[rt]=H?Tn(S[rt]):dn(S[rt]);if(Qi(it,at))_(it,at,D,null,B,C,V,W,H);else break;J--,rt--}if(j>J){if(j<=rt){const it=rt+1,at=itrt)for(;j<=J;)ct(w[j],B,C,!0),j++;else{const it=j,at=j,_t=new Map;for(j=at;j<=rt;j++){const k=S[j]=H?Tn(S[j]):dn(S[j]);k.key!=null&&_t.set(k.key,j)}let kt,Et=0;const Gt=rt-at+1;let h=!1,d=0;const g=new Array(Gt);for(j=0;j=Gt){ct(k,B,C,!0);continue}let N;if(k.key!=null)N=_t.get(k.key);else for(kt=at;kt<=rt;kt++)if(g[kt-at]===0&&Qi(k,S[kt])){N=kt;break}N===void 0?ct(k,B,C,!0):(g[N-at]=j+1,N>=d?d=N:h=!0,_(k,S[N],D,null,B,C,V,W,H),Et++)}const A=h?Dm(g):Ii;for(kt=A.length-1,j=Gt-1;j>=0;j--){const k=at+j,N=S[k],q=S[k+1],Ct=k+1{const{el:C,type:V,transition:W,children:H,shapeFlag:j}=w;if(j&6){Tt(w.component.subTree,S,D,$);return}if(j&128){w.suspense.move(S,D,$);return}if(j&64){V.move(w,S,D,Ye);return}if(V===Mt){i(C,S,D);for(let et=0;etW.enter(C),B));else{const{leave:et,delayLeave:J,afterLeave:rt}=W,it=()=>{w.ctx.isUnmounted?s(C):i(C,S,D)},at=()=>{const _t=C._isLeaving||!!C[$o];C._isLeaving&&C[$o](!0),W.persisted&&!_t?it():et(C,()=>{it(),rt&&rt()})};J?J(C,it,at):at()}else i(C,S,D)},ct=(w,S,D,$=!1,B=!1)=>{const{type:C,props:V,ref:W,children:H,dynamicChildren:j,shapeFlag:et,patchFlag:J,dirs:rt,cacheIndex:it,memo:at}=w;if(J===-2&&(B=!1),W!=null&&(Pn(),ys(W,null,D,w,!0),In()),it!=null&&(S.renderCache[it]=void 0),et&256){S.ctx.deactivate(w);return}const _t=et&1&&rt,kt=!bs(w);let Et;if(kt&&(Et=V&&V.onVnodeBeforeUnmount)&&rn(Et,S,w),et&6)Ut(w.component,D,$);else{if(et&128){w.suspense.unmount(D,$);return}_t&&Xn(w,null,S,"beforeUnmount"),et&64?w.type.remove(w,S,D,Ye,$):j&&!j.hasOnce&&(C!==Mt||J>0&&J&64)?ft(j,S,D,!1,!0):(C===Mt&&J&384||!B&&et&16)&&ft(H,S,D),$&&ae(w)}const Gt=at!=null&&it==null;(kt&&(Et=V&&V.onVnodeUnmounted)||_t||Gt)&&Pe(()=>{Et&&rn(Et,S,w),_t&&Xn(w,null,S,"unmounted"),Gt&&(w.el=null)},D)},ae=w=>{const{type:S,el:D,anchor:$,transition:B}=w;if(S===Mt){bt(D,$);return}if(S===Uo){T(w);return}const C=()=>{s(D),B&&!B.persisted&&B.afterLeave&&B.afterLeave()};if(w.shapeFlag&1&&B&&!B.persisted){const{leave:V,delayLeave:W}=B,H=()=>V(D,C);W?W(w.el,C,H):H()}else C()},bt=(w,S)=>{let D;for(;w!==S;)D=p(w),s(w),w=D;s(S)},Ut=(w,S,D)=>{const{bum:$,scope:B,job:C,subTree:V,um:W,m:H,a:j}=w;Tc(H),Tc(j),$&&Er($),B.stop(),C&&(C.flags|=8,ct(V,w,S,D)),W&&Pe(W,S),Pe(()=>{w.isUnmounted=!0},S)},ft=(w,S,D,$=!1,B=!1,C=0)=>{for(let V=C;V{if(w.shapeFlag&6)return Qt(w.component.subTree);if(w.shapeFlag&128)return w.suspense.next();const S=p(w.anchor||w.el),D=S&&S[Kg];return D?p(D):S};let Ne=!1;const qe=(w,S,D)=>{let $;w==null?S._vnode&&(ct(S._vnode,null,null,!0),$=S._vnode.component):_(S._vnode||null,w,S,null,null,null,D),S._vnode=w,Ne||(Ne=!0,gc($),Pf(),Ne=!1)},Ye={p:_,um:ct,m:Tt,r:ae,mt:It,mc:X,pc:$t,pbc:ot,n:Qt,o:t};return{render:qe,hydrate:void 0,createApp:ym(qe)}}function Bo({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 Jn({effect:t,job:e},n){n?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function Lm(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function td(t,e,n=!1){const i=t.children,s=e.children;if(ut(i)&&ut(s))for(let r=0;r>1,t[n[a]]0&&(e[i]=n[r-1]),n[r]=i)}}for(r=n.length,o=n[r-1];r-- >0;)n[r]=o,o=e[o];return n}function ed(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:ed(e)}function Tc(t){if(t)for(let e=0;et.__isSuspense;function Nm(t,e){e&&e.pendingBranch?ut(t)?e.effects.push(...t):e.effects.push(t):Vg(t)}const Mt=Symbol.for("v-fgt"),go=Symbol.for("v-txt"),Wn=Symbol.for("v-cmt"),Uo=Symbol.for("v-stc"),xs=[];let Ue=null;function z(t=!1){xs.push(Ue=t?null:[])}function $m(){xs.pop(),Ue=xs[xs.length-1]||null}let Ms=1;function jr(t,e=!1){Ms+=t,t<0&&Ue&&e&&(Ue.hasOnce=!0)}function sd(t){return t.dynamicChildren=Ms>0?Ue||Ii:null,$m(),Ms>0&&Ue&&Ue.push(t),t}function G(t,e,n,i,s,r){return sd(v(t,e,n,i,s,r,!0))}function Xe(t,e,n,i,s){return sd(pt(t,e,n,i,s,!0))}function Hr(t){return t?t.__v_isVNode===!0:!1}function Qi(t,e){return t.type===e.type&&t.key===e.key}const rd=({key:t})=>t??null,Tr=({ref:t,ref_key:e,ref_for:n})=>(typeof t=="number"&&(t=""+t),t!=null?Zt(t)||we(t)||gt(t)?{i:Be,r:t,k:e,f:!!n}:t:null);function v(t,e=null,n=null,i=0,s=null,r=t===Mt?0:1,o=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&rd(e),ref:e&&Tr(e),scopeId:Lf,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:i,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Be};return a?(_l(l,n),r&128&&t.normalize(l)):n&&(l.shapeFlag|=Zt(n)?8:16),Ms>0&&!o&&Ue&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ue.push(l),l}const pt=Fm;function Fm(t,e=null,n=null,i=0,s=null,r=!1){if((!t||t===Uf)&&(t=Wn),Hr(t)){const a=Bi(t,e,!0);return n&&_l(a,n),Ms>0&&!r&&Ue&&(a.shapeFlag&6?Ue[Ue.indexOf(t)]=a:Ue.push(a)),a.patchFlag=-2,a}if(Km(t)&&(t=t.__vccOpts),e){e=Bm(e);let{class:a,style:l}=e;a&&!Zt(a)&&(e.class=rl(a)),Bt(l)&&(Vs(l)&&!ut(l)&&(l=ge({},l)),e.style=sl(l))}const o=Zt(t)?1:id(t)?128:Xg(t)?64:Bt(t)?4:gt(t)?2:0;return v(t,e,n,i,s,o,r,!0)}function Bm(t){return t?Vs(t)||Gf(t)?ge({},t):t:null}function Bi(t,e,n=!1,i=!1){const{props:s,ref:r,patchFlag:o,children:a,transition:l}=t,u=e?De(s||{},e):s,c={__v_isVNode:!0,__v_skip:!0,type:t.type,props:u,key:u&&rd(u),ref:e&&e.ref?n&&r?ut(r)?r.concat(Tr(e)):[r,Tr(e)]:Tr(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!==Mt?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&&Bi(t.ssContent),ssFallback:t.ssFallback&&Bi(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&i&&dl(c,l.clone(c)),c}function Dt(t=" ",e=0){return pt(go,null,t,e)}function Ot(t="",e=!1){return e?(z(),Xe(Wn,null,t)):pt(Wn,null,t)}function dn(t){return t==null||typeof t=="boolean"?pt(Wn):ut(t)?pt(Mt,null,t.slice()):Hr(t)?Tn(t):pt(go,null,String(t))}function Tn(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Bi(t)}function _l(t,e){let n=0;const{shapeFlag:i}=t;if(e==null)e=null;else if(ut(e))n=16;else if(typeof e=="object")if(i&65){const s=e.default;s&&(s._c&&(s._d=!1),_l(t,s()),s._c&&(s._d=!0));return}else{n=32;const s=e._;!s&&!Gf(e)?e._ctx=Be:s===3&&Be&&(Be.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else gt(e)?(e={default:e,_ctx:Be},n=32):(e=String(e),i&64?(n=16,e=[Dt(e)]):n=8);t.children=e,t.shapeFlag|=n}function De(...t){const e={};for(let n=0;nxe||Be;let Vr,Ia;{const t=Dr(),e=(n,i)=>{let s;return(s=t[n])||(s=t[n]=[]),s.push(i),r=>{s.length>1?s.forEach(o=>o(r)):s[0](r)}};Vr=e("__VUE_INSTANCE_SETTERS__",n=>xe=n),Ia=e("__VUE_SSR_SETTERS__",n=>Ps=n)}const qs=t=>{const e=xe;return Vr(t),t.scope.on(),()=>{t.scope.off(),Vr(e)}},Rc=()=>{xe&&xe.scope.off(),Vr(null)};function od(t){return t.vnode.shapeFlag&4}let Ps=!1;function zm(t,e=!1,n=!1){e&&Ia(e);const{props:i,children:s}=t.vnode,r=od(t);Tm(t,i,r,e),Cm(t,s,n||e);const o=r?Wm(t,e):void 0;return e&&Ia(!1),o}function Wm(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,hm);const{setup:i}=n;if(i){Pn();const s=t.setupContext=i.length>1?Ym(t):null,r=qs(t),o=zs(i,t,0,[t.props,s]),a=sf(o);if(In(),r(),(a||t.sp)&&!bs(t)&&$f(t),a){if(o.then(Rc,Rc),e)return o.then(l=>{Oc(t,l)}).catch(l=>{uo(l,t,0)});t.asyncDep=o}else Oc(t,o)}else ad(t)}function Oc(t,e,n){gt(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Bt(e)&&(t.setupState=Of(e)),ad(t)}function ad(t,e,n){const i=t.type;t.render||(t.render=i.render||_n);{const s=qs(t);Pn();try{fm(t)}finally{In(),s()}}}const qm={get(t,e){return ve(t,"get",""),t[e]}};function Ym(t){const e=n=>{t.exposed=n||{}};return{attrs:new Proxy(t.attrs,qm),slots:t.slots,emit:t.emit,expose:e}}function mo(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Of(Lg(t.exposed)),{get(e,n){if(n in e)return e[n];if(n in vs)return vs[n](t)},has(e,n){return n in e||n in vs}})):t.proxy}function Gm(t,e=!0){return gt(t)?t.displayName||t.name:t.name||e&&t.__name}function Km(t){return gt(t)&&"__vccOpts"in t}const Bn=(t,e)=>Fg(t,e,Ps);function La(t,e,n){try{jr(-1);const i=arguments.length;return i===2?Bt(e)&&!ut(e)?Hr(e)?pt(t,null,[e]):pt(t,e):pt(t,null,e):(i>3?n=Array.prototype.slice.call(arguments,2):i===3&&Hr(n)&&(n=[n]),pt(t,e,n))}finally{jr(1)}}const ld="3.5.35";let Da;const kc=typeof window<"u"&&window.trustedTypes;if(kc)try{Da=kc.createPolicy("vue",{createHTML:t=>t})}catch{}const cd=Da?t=>Da.createHTML(t):t=>t,Xm="http://www.w3.org/2000/svg",Jm="http://www.w3.org/1998/Math/MathML",An=typeof document<"u"?document:null,Cc=An&&An.createElement("template"),Zm={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,i)=>{const s=e==="svg"?An.createElementNS(Xm,t):e==="mathml"?An.createElementNS(Jm,t):n?An.createElement(t,{is:n}):An.createElement(t);return t==="select"&&i&&i.multiple!=null&&s.setAttribute("multiple",i.multiple),s},createText:t=>An.createTextNode(t),createComment:t=>An.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>An.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,i,s,r){const o=n?n.previousSibling:e.lastChild;if(s&&(s===r||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),n),!(s===r||!(s=s.nextSibling)););else{Cc.innerHTML=cd(i==="svg"?`${t}`:i==="mathml"?`${t}`:t);const a=Cc.content;if(i==="svg"||i==="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]}},Qm=Symbol("_vtc");function t1(t,e,n){const i=t[Qm];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}const Mc=Symbol("_vod"),e1=Symbol("_vsh"),n1=Symbol(""),i1=/(?:^|;)\s*display\s*:/;function s1(t,e,n){const i=t.style,s=Zt(n);let r=!1;if(n&&!s){if(e)if(Zt(e))for(const o of e.split(";")){const a=o.slice(0,o.indexOf(":")).trim();n[a]==null&&us(i,a,"")}else for(const o in e)n[o]==null&&us(i,o,"");for(const o in n){o==="display"&&(r=!0);const a=n[o];a!=null?o1(t,o,!Zt(e)&&e?e[o]:void 0,a)||us(i,o,a):us(i,o,"")}}else if(s){if(e!==n){const o=i[n1];o&&(n+=";"+o),i.cssText=n,r=i1.test(n)}}else e&&t.removeAttribute("style");Mc in t&&(t[Mc]=r?i.display:"",t[e1]&&(i.display="none"))}const Pc=/\s*!important$/;function us(t,e,n){if(ut(n))n.forEach(i=>us(t,e,i));else if(n==null&&(n=""),e.startsWith("--"))t.setProperty(e,n);else{const i=r1(t,e);Pc.test(n)?t.setProperty(yi(i),n.replace(Pc,""),"important"):t[i]=n}}const Ic=["Webkit","Moz","ms"],jo={};function r1(t,e){const n=jo[e];if(n)return n;let i=Ce(e);if(i!=="filter"&&i in t)return jo[e]=i;i=oo(i);for(let s=0;sHo||(u1.then(()=>Ho=0),Ho=Date.now());function f1(t,e){const n=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=n.attached)return;const s=n.value;if(ut(s)){const r=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{r.call(i),i._stopped=!0};const o=s.slice(),a=[i];for(let l=0;lt.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,d1=(t,e,n,i,s,r)=>{const o=s==="svg";e==="class"?t1(t,i,o):e==="style"?s1(t,n,i):no(e)?io(e)||l1(t,e,n,i,r):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):p1(t,e,i,o))?(Nc(t,e,i),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Dc(t,e,i,o,r,e!=="value")):t._isVueCE&&(g1(t,e)||t._def.__asyncLoader&&(/[A-Z]/.test(e)||!Zt(i)))?Nc(t,Ce(e),i,r,e):(e==="true-value"?t._trueValue=i:e==="false-value"&&(t._falseValue=i),Dc(t,e,i,o))};function p1(t,e,n,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in t&&Bc(e)&>(n));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&t.tagName==="IFRAME"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const s=t.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Bc(e)&&Zt(n)?!1:e in t}function g1(t,e){const n=t._def.props;if(!n)return!1;const i=Ce(e);return Array.isArray(n)?n.some(s=>Ce(s)===i):Object.keys(n).some(s=>Ce(s)===i)}const Uc=t=>{const e=t.props["onUpdate:modelValue"]||!1;return ut(e)?n=>Er(e,n):e},Vo=Symbol("_assign"),zo={deep:!0,created(t,e,n){t[Vo]=Uc(n),ud(t,"change",()=>{const i=t._modelValue,s=m1(t),r=t.checked,o=t[Vo];if(ut(i)){const a=cf(i,s),l=a!==-1;if(r&&!l)o(i.concat(s));else if(!r&&l){const u=[...i];u.splice(a,1),o(u)}}else if(so(i)){const a=new Set(i);r?a.add(s):a.delete(s),o(a)}else o(hd(t,r))})},mounted:jc,beforeUpdate(t,e,n){t[Vo]=Uc(n),jc(t,e,n)}};function jc(t,{value:e,oldValue:n},i){t._modelValue=e;let s;if(ut(e))s=cf(e,i.props.value)>-1;else if(so(e))s=e.has(i.props.value);else{if(e===n)return;s=Hs(e,hd(t,!0))}t.checked!==s&&(t.checked=s)}function m1(t){return"_value"in t?t._value:t.value}function hd(t,e){const n=e?"_trueValue":"_falseValue";return n in t?t[n]:e}const _1=ge({patchProp:d1},Zm);let Hc;function y1(){return Hc||(Hc=Pm(_1))}const b1=((...t)=>{const e=y1().createApp(...t),{mount:n}=e;return e.mount=i=>{const s=x1(i);if(!s)return;const r=e._component;!gt(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=n(s,!1,v1(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},e});function v1(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function x1(t){return Zt(t)?document.querySelector(t):t}const Vc=(t,e,n)=>{const i=Object.assign({escape:!0},{}),s=function(r,o){return o=o||{},r.replace(/{([^{}]*)}/g,function(a,l){const u=o[l];return i.escape?encodeURIComponent(typeof u=="string"||typeof u=="number"?u.toString():a):typeof u=="string"||typeof u=="number"?u.toString():a})};return t.charAt(0)!=="/"&&(t="/"+t),s(t,{})},yl=(t,e,n)=>{const i=Object.assign({noRewrite:!1},{}),s=w1();return window?.OC?.config?.modRewriteWorking===!0&&!i.noRewrite?s+Vc(t):s+"/index.php"+Vc(t)};function w1(){let t=window._oc_webroot;if(typeof t>"u"){t=location.pathname;const e=t.indexOf("/index.php/");if(e!==-1)t=t.slice(0,e);else{const n=t.indexOf("/",1);t=t.slice(0,n>0?n:void 0)}}return t}function zc(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n2?n-2:0),s=2;s1?e-1:0),i=1;i"u"?null:re(BigInt.prototype.toString),Xc=typeof Symbol>"u"?null:re(Symbol.prototype.toString),ce=re(Object.prototype.hasOwnProperty),es=re(Object.prototype.toString),le=re(RegExp.prototype.test),Zn=N1(TypeError);function re(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),s=1;s2&&arguments[2]!==void 0?arguments[2]:hs;if(Wc&&Wc(t,null),!Un(e))return t;let i=e.length;for(;i--;){let s=e[i];if(typeof s=="string"){const r=n(s);r!==s&&(O1(e)||(e[i]=r),s=r)}t[s]=!0}return t}function $1(t){for(let e=0;e/g),z1=me(/\${[\w\W]*/g),W1=me(/^data-[\-\w.\u00B7-\uFFFF]+$/),q1=me(/^aria-[\-\w]+$/),eu=me(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Y1=me(/^(?:\w+script|data):/i),G1=me(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),K1=me(/^html$/i),X1=me(/^[a-z][.\w]*(-[.\w]+)+$/i),nu=me(/<[/\w!]/g),iu=me(/<[/\w]/g),J1=me(/<\/no(script|embed|frames)/i),Z1=me(/\/>/i),$e={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Q1=function(){return typeof window>"u"?null:window},t0=function(t,e){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let n=null;const i="data-tt-policy-suffix";e&&e.hasAttribute(i)&&(n=e.getAttribute(i));const s="dompurify"+(n?"#"+n:"");try{return t.createPolicy(s,{createHTML(r){return r},createScriptURL(r){return r}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}},su=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},$n=function(t,e,n,i){return ce(t,e)&&Un(t[e])?At(i.base?be(i.base):{},t[e],i.transform):n};function pd(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Q1();const e=y=>pd(y);if(e.version="3.4.13",e.removed=[],!t||!t.document||t.document.nodeType!==$e.document||!t.Element)return e.isSupported=!1,e;let n=t.document;const i=n,s=i.currentScript;t.DocumentFragment;const r=t.HTMLTemplateElement,o=t.Node,a=t.Element,l=t.NodeFilter;t.NamedNodeMap===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;const c=t.DOMParser,f=t.trustedTypes,p=a.prototype,m=Ke(p,"cloneNode"),x=Ke(p,"remove"),_=Ke(p,"nextSibling"),E=Ke(p,"childNodes"),b=Ke(p,"parentNode"),O=Ke(p,"shadowRoot"),M=Ke(p,"attributes"),T=o&&o.prototype?Ke(o.prototype,"nodeType"):null,L=o&&o.prototype?Ke(o.prototype,"nodeName"):null,tt=o&&o.prototype?Ke(o.prototype,"ownerDocument"):null;if(typeof r=="function"){const y=n.createElement("template");y.content&&y.content.ownerDocument&&(n=y.content.ownerDocument)}let K,X="",dt,ot=!1,mt=0;const wt=function(){if(mt>0)throw Zn('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},Vt=function(y){wt(),mt++;try{return K.createHTML(y)}finally{mt--}},It=function(y){wt(),mt++;try{return K.createScriptURL(y)}finally{mt--}},nt=function(){return ot||(dt=t0(f,s),ot=!0),dt},st=n,lt=st.implementation,$t=st.createNodeIterator,zt=st.createDocumentFragment,Yt=st.getElementsByTagName,Tt=i.importNode;let ct=su();e.isSupported=typeof fd=="function"&&typeof b=="function"&<&<.createHTMLDocument!==void 0;const ae=H1,bt=V1,Ut=z1,ft=W1,Qt=q1,Ne=Y1,qe=G1,Ye=X1;let w=eu,S=null;const D=At({},[...Jc,...qo,...Yo,...Go,...Zc]);let $=null;const B=At({},[...Qc,...Ko,...tu,...lr]);let C=Object.seal(Pi(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),V=null,W=null;const H=Object.seal(Pi(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let j=!0,et=!0,J=!1,rt=!0,it=!1,at=!0,_t=!1,kt=!1,Et=null,Gt=null,h=!1,d=!1,g=!1,A=!1,k=!0,N=!1;const q="user-content-";let Ct=!0,te=!1,Pt={},yt=null;const Kt=At({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Xl=null;const Jl=At({},["audio","video","img","source","image","track"]);let So=null;const Zl=At({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Qs="http://www.w3.org/1998/Math/MathML",tr="http://www.w3.org/2000/svg",en="http://www.w3.org/1999/xhtml";let vi=en,Eo=!1,Ao=null;const jp=At({},[Qs,tr,en],Wo),Ql=pe(["mi","mo","mn","ms","mtext"]);let To=At({},Ql);const tc=pe(["annotation-xml"]);let Ro=At({},tc);const Hp=At({},["title","style","font","a","script"]);let Ki=null;const Vp=["application/xhtml+xml","text/html"],zp="text/html";let Xt=null,xi=null;const Wp=n.createElement("form"),ec=function(y){return y instanceof RegExp||y instanceof Function},Oo=function(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(xi&&xi===y)return;(!y||typeof y!="object")&&(y={}),y=be(y),Ki=Vp.indexOf(y.PARSER_MEDIA_TYPE)===-1?zp:y.PARSER_MEDIA_TYPE,Xt=Ki==="application/xhtml+xml"?Wo:hs,S=$n(y,"ALLOWED_TAGS",D,{transform:Xt}),$=$n(y,"ALLOWED_ATTR",B,{transform:Xt}),Ao=$n(y,"ALLOWED_NAMESPACES",jp,{transform:Wo}),So=$n(y,"ADD_URI_SAFE_ATTR",Zl,{transform:Xt,base:Zl}),Xl=$n(y,"ADD_DATA_URI_TAGS",Jl,{transform:Xt,base:Jl}),yt=$n(y,"FORBID_CONTENTS",Kt,{transform:Xt}),V=$n(y,"FORBID_TAGS",be({}),{transform:Xt}),W=$n(y,"FORBID_ATTR",be({}),{transform:Xt}),Pt=ce(y,"USE_PROFILES")?y.USE_PROFILES&&typeof y.USE_PROFILES=="object"?be(y.USE_PROFILES):y.USE_PROFILES:!1,j=y.ALLOW_ARIA_ATTR!==!1,et=y.ALLOW_DATA_ATTR!==!1,J=y.ALLOW_UNKNOWN_PROTOCOLS||!1,rt=y.ALLOW_SELF_CLOSE_IN_ATTR!==!1,it=y.SAFE_FOR_TEMPLATES||!1,at=y.SAFE_FOR_XML!==!1,_t=y.WHOLE_DOCUMENT||!1,d=y.RETURN_DOM||!1,g=y.RETURN_DOM_FRAGMENT||!1,A=y.RETURN_TRUSTED_TYPE||!1,h=y.FORCE_BODY||!1,k=y.SANITIZE_DOM!==!1,N=y.SANITIZE_NAMED_PROPS||!1,Ct=y.KEEP_CONTENT!==!1,te=y.IN_PLACE||!1,w=B1(y.ALLOWED_URI_REGEXP)?y.ALLOWED_URI_REGEXP:eu,vi=typeof y.NAMESPACE=="string"?y.NAMESPACE:en,To=ce(y,"MATHML_TEXT_INTEGRATION_POINTS")&&y.MATHML_TEXT_INTEGRATION_POINTS&&typeof y.MATHML_TEXT_INTEGRATION_POINTS=="object"?be(y.MATHML_TEXT_INTEGRATION_POINTS):At({},Ql),Ro=ce(y,"HTML_INTEGRATION_POINTS")&&y.HTML_INTEGRATION_POINTS&&typeof y.HTML_INTEGRATION_POINTS=="object"?be(y.HTML_INTEGRATION_POINTS):At({},tc);const I=ce(y,"CUSTOM_ELEMENT_HANDLING")&&y.CUSTOM_ELEMENT_HANDLING&&typeof y.CUSTOM_ELEMENT_HANDLING=="object"?be(y.CUSTOM_ELEMENT_HANDLING):Pi(null);if(C=Pi(null),ce(I,"tagNameCheck")&&ec(I.tagNameCheck)&&(C.tagNameCheck=I.tagNameCheck),ce(I,"attributeNameCheck")&&ec(I.attributeNameCheck)&&(C.attributeNameCheck=I.attributeNameCheck),ce(I,"allowCustomizedBuiltInElements")&&typeof I.allowCustomizedBuiltInElements=="boolean"&&(C.allowCustomizedBuiltInElements=I.allowCustomizedBuiltInElements),me(C),it&&(et=!1),g&&(d=!0),Pt&&(S=At({},Zc),$=Pi(null),Pt.html===!0&&(At(S,Jc),At($,Qc)),Pt.svg===!0&&(At(S,qo),At($,Ko),At($,lr)),Pt.svgFilters===!0&&(At(S,Yo),At($,Ko),At($,lr)),Pt.mathMl===!0&&(At(S,Go),At($,tu),At($,lr))),H.tagCheck=null,H.attributeCheck=null,ce(y,"ADD_TAGS")&&(typeof y.ADD_TAGS=="function"?H.tagCheck=y.ADD_TAGS:Un(y.ADD_TAGS)&&(S===D&&(S=be(S)),At(S,y.ADD_TAGS,Xt))),ce(y,"ADD_ATTR")&&(typeof y.ADD_ATTR=="function"?H.attributeCheck=y.ADD_ATTR:Un(y.ADD_ATTR)&&($===B&&($=be($)),At($,y.ADD_ATTR,Xt))),ce(y,"ADD_URI_SAFE_ATTR")&&Un(y.ADD_URI_SAFE_ATTR)&&At(So,y.ADD_URI_SAFE_ATTR,Xt),ce(y,"FORBID_CONTENTS")&&Un(y.FORBID_CONTENTS)&&(yt===Kt&&(yt=be(yt)),At(yt,y.FORBID_CONTENTS,Xt)),ce(y,"ADD_FORBID_CONTENTS")&&Un(y.ADD_FORBID_CONTENTS)&&(yt===Kt&&(yt=be(yt)),At(yt,y.ADD_FORBID_CONTENTS,Xt)),Ct&&(S["#text"]=!0),_t&&At(S,["html","head","body"]),S.table&&(At(S,["tbody"]),delete V.tbody),y.TRUSTED_TYPES_POLICY){if(typeof y.TRUSTED_TYPES_POLICY.createHTML!="function")throw Zn('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof y.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Zn('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const U=K;K=y.TRUSTED_TYPES_POLICY;try{X=Vt("")}catch(Z){throw K=U,Z}}else y.TRUSTED_TYPES_POLICY===null?(K=void 0,X=""):(K===void 0&&(K=nt()),K&&typeof X=="string"&&(X=Vt("")));pe&&pe(y),xi=y},nc=At({},[...qo,...Yo,...U1]),ic=At({},[...Go,...j1]),qp=function(y,I,U){return I.namespaceURI===en?y==="svg":I.namespaceURI===Qs?y==="svg"&&(U==="annotation-xml"||To[U]):!!nc[y]},Yp=function(y,I,U){return I.namespaceURI===en?y==="math":I.namespaceURI===tr?y==="math"&&Ro[U]:!!ic[y]},Gp=function(y,I,U){return I.namespaceURI===tr&&!Ro[U]||I.namespaceURI===Qs&&!To[U]?!1:!ic[y]&&(Hp[y]||!nc[y])},Kp=function(y){let I=b(y);(!I||!I.tagName)&&(I={namespaceURI:vi,tagName:"template"});const U=hs(y.tagName),Z=hs(I.tagName);return Ao[y.namespaceURI]?y.namespaceURI===tr?qp(U,I,Z):y.namespaceURI===Qs?Yp(U,I,Z):y.namespaceURI===en?Gp(U,I,Z):!!(Ki==="application/xhtml+xml"&&Ao[y.namespaceURI]):!1},Gn=function(y){Ai(e.removed,{element:y});try{b(y).removeChild(y)}catch{if(x(y),!b(y))throw Zn("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},er=function(y){Xi(y);const I=E(y);if(I){const Z=[];Ei(I,ht=>{Ai(Z,ht)}),Ei(Z,ht=>{try{x(ht)}catch{}})}const U=M(y);if(U)for(let Z=U.length-1;Z>=0;--Z){const ht=U[Z],vt=ht&&ht.name;if(typeof vt=="string")try{y.removeAttribute(vt)}catch{}}},Kn=function(y,I){try{Ai(e.removed,{attribute:I.getAttributeNode(y),from:I})}catch{Ai(e.removed,{attribute:null,from:I})}if(I.removeAttribute(y),y==="is")if(d||g)try{Gn(I)}catch{}else try{I.setAttribute(y,"")}catch{}},Xp=function(y){const I=M(y);if(I)for(let U=I.length-1;U>=0;--U){const Z=I[U],ht=Z&&Z.name;if(!(typeof ht!="string"||$[Xt(ht)]))try{y.removeAttribute(ht)}catch{}}},Xi=function(y){const I=[y];for(;I.length>0;){const U=I.pop();(T?T(U):U.nodeType)===$e.element&&Xp(U);const Z=E(U);if(Z)for(let ht=Z.length-1;ht>=0;--ht)I.push(Z[ht])}},Jp=function(y){if(!at)return;const I=[y];for(;I.length>0;){const U=I.pop(),Z=T?T(U):U.nodeType;if(Z===$e.processingInstruction||Z===$e.comment&&le(iu,U.data)){try{x(U)}catch{}continue}if(Z===$e.element){const vt=U,xt=Xt(L?L(U):U.nodeName);try{vt.hasAttribute&&vt.hasAttribute("patchsrc")&&vt.removeAttribute("patchsrc"),vt.hasAttribute&&vt.hasAttribute("for")&&xt!=="label"&&xt!=="output"&&vt.removeAttribute("for")}catch{}}const ht=E(U);if(ht)for(let vt=ht.length-1;vt>=0;--vt)I.push(ht[vt])}},sc=function(y){let I=null,U=null;if(h)y=""+y;else{const vt=Yc(y,/^[\r\n\t ]+/);U=vt&&vt[0]}Ki==="application/xhtml+xml"&&vi===en&&(y=''+y+"");const Z=K?Vt(y):y;if(vi===en)try{I=new c().parseFromString(Z,Ki)}catch{}if(!I||!I.documentElement){I=lt.createDocument(vi,"template",null);try{I.documentElement.innerHTML=Eo?X:Z}catch{}}const ht=I.body||I.documentElement;return y&&U&&ht.insertBefore(n.createTextNode(U),ht.childNodes[0]||null),vi===en?Yt.call(I,_t?"html":"body")[0]:_t?I.documentElement:ht},rc=function(y){const I=tt?tt(y):y.ownerDocument;return $t.call(I||y,y,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},nr=function(y){return y=ts(y,ae," "),y=ts(y,bt," "),y=ts(y,Ut," "),y},ko=function(y){var I;y.normalize();const U=tt?tt(y):y.ownerDocument,Z=$t.call(U||y,y,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null);let ht=Z.nextNode();for(;ht;)ht.data=nr(ht.data),ht=Z.nextNode();const vt=(I=y.querySelectorAll)===null||I===void 0?void 0:I.call(y,"template");vt&&Ei(vt,xt=>{wi(xt.content)&&ko(xt.content)})},ir=function(y){const I=L?L(y):null;return typeof I!="string"||Xt(I)!=="form"?!1:typeof y.nodeName!="string"||typeof y.textContent!="string"||typeof y.removeChild!="function"||y.attributes!==M(y)||typeof y.removeAttribute!="function"||typeof y.setAttribute!="function"||typeof y.namespaceURI!="string"||typeof y.insertBefore!="function"||typeof y.hasChildNodes!="function"||y.nodeType!==T(y)||y.childNodes!==E(y)},wi=function(y){if(!T||typeof y!="object"||y===null)return!1;try{return T(y)===$e.documentFragment}catch{return!1}},Ji=function(y){if(!T||typeof y!="object"||y===null)return!1;try{return typeof T(y)=="number"}catch{return!1}};function nn(y,I,U){y.length!==0&&Ei(y,Z=>{Z.call(e,I,U,xi)})}const Zp=function(y,I){return!!(at&&y.hasChildNodes()&&!Ji(y.firstElementChild)&&le(nu,y.textContent)&&le(nu,y.innerHTML)||at&&y.namespaceURI===en&&I==="style"&&Ji(y.firstElementChild)||y.nodeType===$e.processingInstruction||at&&y.nodeType===$e.comment&&le(iu,y.data))},Qp=function(y,I,U){if(!V[I]&&cc(I)&&(C.tagNameCheck instanceof RegExp&&le(C.tagNameCheck,I)||C.tagNameCheck instanceof Function&&C.tagNameCheck(I)))return!1;if(Ct&&!yt[I]){const Z=b(y),ht=E(y);if(ht&&Z){const vt=ht.length;for(let xt=vt-1;xt>=0;--xt){const sn=y===U?m(ht[xt],!0):ht[xt];Z.insertBefore(sn,_(y))}}}return Gn(y),!0},oc=function(y,I,U,Z){return y.length===0?I:I===U||I===Z?be(I):I},ac=function(y,I){if(nn(ct.beforeSanitizeElements,y,null),y!==I&&b(y)===null)return te&&Xi(y),!0;if(ir(y))return Gn(y),!0;const U=Xt(L?L(y):y.nodeName);if(S=oc(ct.uponSanitizeElement,S,D,Et),nn(ct.uponSanitizeElement,y,{tagName:U,allowedTags:S}),y!==I&&b(y)===null)return te&&Xi(y),!0;if(Zp(y,U))return Gn(y),!0;if(V[U]||!(H.tagCheck instanceof Function&&H.tagCheck(U))&&!S[U]){const Z=Qp(y,U,I);return Z===!1&&nn(ct.afterSanitizeElements,y,null),Z}if((T?T(y):y.nodeType)===$e.element&&!Kp(y)||(U==="noscript"||U==="noembed"||U==="noframes")&&le(J1,y.innerHTML))return Gn(y),!0;if(it&&y.nodeType===$e.text){const Z=nr(y.textContent);y.textContent!==Z&&(Ai(e.removed,{element:y.cloneNode()}),y.textContent=Z)}return nn(ct.afterSanitizeElements,y,null),!1},lc=function(y,I,U){if(W[I]||at&&I==="patchsrc"||at&&I==="for"&&y!=="label"&&y!=="output"||k&&(I==="id"||I==="name")&&(U in n||U in Wp))return!1;const Z=$[I]||H.attributeCheck instanceof Function&&H.attributeCheck(I,y);if(!(et&&le(ft,I))&&!(j&&le(Qt,I))){if(Z){if(!So[I]&&!le(w,ts(U,qe,""))&&!((I==="src"||I==="xlink:href"||I==="href")&&y!=="script"&&Gc(U,"data:")===0&&Xl[y])&&!(J&&!le(Ne,ts(U,qe,"")))&&U)return!1}else if(!(cc(y)&&(C.tagNameCheck instanceof RegExp&&le(C.tagNameCheck,y)||C.tagNameCheck instanceof Function&&C.tagNameCheck(y))&&(C.attributeNameCheck instanceof RegExp&&le(C.attributeNameCheck,I)||C.attributeNameCheck instanceof Function&&C.attributeNameCheck(I,y))||I==="is"&&C.allowCustomizedBuiltInElements&&(C.tagNameCheck instanceof RegExp&&le(C.tagNameCheck,U)||C.tagNameCheck instanceof Function&&C.tagNameCheck(U))))return!1}return!0},tg=At({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),cc=function(y){return!tg[hs(y)]&&le(Ye,y)},eg=function(y,I,U,Z){if(K&&typeof f=="object"&&typeof f.getAttributeType=="function"&&!U)switch(f.getAttributeType(y,I)){case"TrustedHTML":return Vt(Z);case"TrustedScriptURL":return It(Z)}return Z},ng=function(y,I,U,Z){try{U?y.setAttributeNS(U,I,Z):y.setAttribute(I,Z),ir(y)?Gn(y):qc(e.removed)}catch{Kn(I,y)}},uc=function(y){nn(ct.beforeSanitizeAttributes,y,null);const I=y.attributes;if(!I||ir(y))return;$=oc(ct.uponSanitizeAttribute,$,B,Gt);const U={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:$,forceKeepAttr:void 0};let Z=I.length;const ht=Xt(y.nodeName);for(;Z--;){const vt=I[Z],xt=vt.name,sn=vt.namespaceURI,Nn=vt.value,_e=Xt(xt),Ge=Nn;let Te=xt==="value"?Ge:I1(Ge);if(U.attrName=_e,U.attrValue=Te,U.keepAttr=!0,U.forceKeepAttr=void 0,nn(ct.uponSanitizeAttribute,y,U),Te=U.attrValue,N&&(_e==="id"||_e==="name")&&Gc(Te,q)!==0&&(Kn(xt,y),Te=q+Te),at&&le(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Te)){Kn(xt,y);continue}if(_e==="attributename"&&Yc(Te,"href")){Kn(xt,y);continue}if(!U.forceKeepAttr){if(!U.keepAttr){Kn(xt,y);continue}if(!rt&&le(Z1,Te)){Kn(xt,y);continue}if(it&&(Te=nr(Te)),!lc(ht,_e,Te)){Kn(xt,y);continue}Te=eg(ht,_e,sn,Te),Te!==Ge&&ng(y,xt,sn,Te)}}nn(ct.afterSanitizeAttributes,y,null)},sr=function(y){let I=null;const U=rc(y);for(nn(ct.beforeSanitizeShadowDOM,y,null);I=U.nextNode();)if(nn(ct.uponSanitizeShadowNode,I,null),ac(I,y),uc(I),wi(I.content)&&sr(I.content),(T?T(I):I.nodeType)===$e.element){const Z=O(I);wi(Z)&&(Co(Z),sr(Z))}nn(ct.afterSanitizeShadowDOM,y,null)},Co=function(y){const I=[{node:y,shadow:null}];for(;I.length>0;){const U=I.pop();if(U.shadow){sr(U.shadow);continue}const Z=U.node,ht=(T?T(Z):Z.nodeType)===$e.element,vt=E(Z);if(vt)for(let xt=vt.length-1;xt>=0;--xt)I.push({node:vt[xt],shadow:null});if(ht){const xt=L?L(Z):null;if(typeof xt=="string"&&Xt(xt)==="template"){const sn=Z.content;wi(sn)&&I.push({node:sn,shadow:null})}}if(ht){const xt=O(Z);wi(xt)&&I.push({node:null,shadow:xt},{node:xt,shadow:null})}}};return e.sanitize=function(y){let I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},U=null,Z=null,ht=null,vt=null;if(Eo=!y,Eo&&(y=""),typeof y!="string"&&!Ji(y)&&(y=F1(y),typeof y!="string"))throw Zn("dirty is not a string, aborting");if(!e.isSupported)return y;kt?(S=Et,$=Gt):Oo(I),(ct.uponSanitizeElement.length>0||ct.uponSanitizeAttribute.length>0)&&(S=be(S)),ct.uponSanitizeAttribute.length>0&&($=be($)),e.removed=[];const xt=te&&typeof y!="string"&&Ji(y);if(xt){Jp(y);const _e=L?L(y):y.nodeName;if(typeof _e=="string"){const Ge=Xt(_e);if(!S[Ge]||V[Ge])throw er(y),Zn("root node is forbidden and cannot be sanitized in-place")}if(ir(y))throw er(y),Zn("root node is clobbered and cannot be sanitized in-place");try{Co(y)}catch(Ge){throw er(y),Ge}}else if(Ji(y))U=sc(""),Z=U.ownerDocument.importNode(y,!0),Z.nodeType===$e.element&&Z.nodeName==="BODY"||Z.nodeName==="HTML"?U=Z:U.appendChild(Z),Co(Z);else{if(!d&&!it&&!_t&&y.indexOf("<")===-1)return K&&A?Vt(y):y;if(U=sc(y),!U)return d?null:A?X:""}U&&h&&Gn(U.firstChild);const sn=xt?y:U;try{const _e=rc(sn);for(;ht=_e.nextNode();)ac(ht,sn),uc(ht),wi(ht.content)&&sr(ht.content)}catch(_e){throw xt&&(er(y),Ei(e.removed,Ge=>{Ge.element&&Xi(Ge.element)})),_e}if(xt)return Ei(e.removed,_e=>{_e.element&&Xi(_e.element)}),it&&ko(y),y;if(d){if(it&&ko(U),g)for(vt=zt.call(U.ownerDocument);U.firstChild;)vt.appendChild(U.firstChild);else vt=U;return($.shadowroot||$.shadowrootmode)&&(vt=Tt.call(i,vt,!0)),vt}let Nn=_t?U.outerHTML:U.innerHTML;return _t&&S["!doctype"]&&U.ownerDocument&&U.ownerDocument.doctype&&U.ownerDocument.doctype.name&&le(K1,U.ownerDocument.doctype.name)&&(Nn=" -`+Nn),it&&(Nn=nr(Nn)),K&&A?Vt(Nn):Nn},e.setConfig=function(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Oo(y),kt=!0,Et=S,Gt=$},e.clearConfig=function(){xi=null,kt=!1,Et=null,Gt=null,K=dt,X=""},e.isValidAttribute=function(y,I,U){xi||Oo({});const Z=Xt(y),ht=Xt(I);return lc(Z,ht,U)},e.addHook=function(y,I){typeof I=="function"&&ce(ct,y)&&Ai(ct[y],I)},e.removeHook=function(y,I){if(ce(ct,y)){if(I!==void 0){const U=M1(ct[y],I);return U===-1?void 0:P1(ct[y],U,1)[0]}return qc(ct[y])}},e.removeHooks=function(y){ce(ct,y)&&(ct[y]=[])},e.removeAllHooks=function(){ct=su()},e}var e0=pd();function bl(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Xo,ru;function n0(){if(ru)return Xo;ru=1;var t=/["'&<>]/;Xo=e;function e(n){var i=""+n,s=t.exec(i);if(!s)return i;var r,o="",a=0,l=0;for(a=s.index;ae)}}globalThis._oc_l10n_registry_translations??={},globalThis._oc_l10n_registry_plural_functions??={};function Y(t,e,n,i,s){const r=typeof n=="object"?n:void 0,o=typeof i=="number"?i:typeof n=="number"?n:void 0,a={escape:!0,sanitize:!0,...typeof s=="object"?s:typeof i=="object"?i:{}},l=x=>x,u=(a.sanitize?e0.sanitize:l)||l,c=a.escape?ou:l,f=x=>typeof x=="string"||typeof x=="number",p=(x,_,E)=>x.replace(/%n/g,""+E).replace(/{([^{}]*)}/g,(b,O)=>{if(_===void 0||!(O in _))return c(b);const M=_[O];return f(M)?c(`${M}`):typeof M=="object"&&f(M.value)?(M.escape!==!1?ou:l)(`${M.value}`):c(b)});let m=(s?.bundle??s0(t)).translations[e]||e;return m=Array.isArray(m)?m[0]:m,u(typeof r=="object"||o!==void 0?p(m,r,o):m)}const he=(t,e)=>{const n=t.__vccOpts||t;for(const[i,s]of e)n[i]=s;return n},r0={name:"AccountGroupIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},o0=["aria-hidden","aria-label"],a0=["fill","width","height"],l0={d:"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z"},c0={key:0};function u0(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon account-group-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",l0,[n.title?(z(),G("title",c0,P(n.title),1)):Ot("",!0)])],8,a0))],16,o0)}const h0=he(r0,[["render",u0]]),f0=Ae({__name:"SectionHeading",props:{icon:{},title:{}},setup(t){return(e,n)=>(z(),G("h2",null,[(z(),Xe(cm(t.icon),{class:"icon",size:20})),Dt(" "+P(t.title),1)]))}}),je=he(f0,[["__scopeId","data-v-ab58efea"]]),d0={class:"section network-infos"},p0={class:"row"},g0={class:"col col-12"},m0={class:"col col-12"},_0={class:"row"},y0={class:"col"},b0={class:"infobox"},v0={class:"interface-wrapper active-users-wrapper"},x0={key:0,class:"active-users-box"},w0={class:"info"},S0={key:1,class:"active-users-box"},E0={class:"info"},A0={key:2,class:"active-users-box"},T0={class:"info"},R0={key:3,class:"active-users-box"},O0={class:"info"},k0=Ae({__name:"ActiveUsersSection",props:{activeUsers:{},numUsers:{}},setup(t){const e=t;function n(i){const s=e.numUsers===0?0:Math.round(i*1e3/e.numUsers)/10;return Y("serverinfo","{0}% of all users",[String(s)])}return(i,s)=>(z(),G("div",d0,[v("div",p0,[v("div",g0,[pt(je,{icon:h0,title:F(Y)("serverinfo","Active users")},null,8,["title"])]),v("div",m0,[v("div",_0,[v("div",y0,[v("div",b0,[v("div",v0,[t.activeUsers.last1hour>0?(z(),G("div",x0,[Dt(P(F(Y)("serverinfo","Last hour")),1),s[0]||(s[0]=v("br",null,null,-1)),v("span",w0,P(t.activeUsers.last1hour),1),s[1]||(s[1]=v("br",null,null,-1)),v("em",null,P(n(t.activeUsers.last1hour)),1)])):Ot("",!0),t.activeUsers.last24hours>0?(z(),G("div",S0,[Dt(P(F(Y)("serverinfo","Last 24 Hours")),1),s[2]||(s[2]=v("br",null,null,-1)),v("span",E0,P(t.activeUsers.last24hours),1),s[3]||(s[3]=v("br",null,null,-1)),v("em",null,P(n(t.activeUsers.last24hours)),1)])):Ot("",!0),t.activeUsers.last7days>0?(z(),G("div",A0,[Dt(P(F(Y)("serverinfo","Last 7 Days")),1),s[4]||(s[4]=v("br",null,null,-1)),v("span",T0,P(t.activeUsers.last7days),1),s[5]||(s[5]=v("br",null,null,-1)),v("em",null,P(n(t.activeUsers.last7days)),1)])):Ot("",!0),t.activeUsers.last1month>0?(z(),G("div",R0,[Dt(P(F(Y)("serverinfo","Last 30 Days")),1),s[6]||(s[6]=v("br",null,null,-1)),v("span",O0,P(t.activeUsers.last1month),1),s[7]||(s[7]=v("br",null,null,-1)),v("em",null,P(n(t.activeUsers.last1month)),1)])):Ot("",!0)])])])])])])]))}});function Ys(t){return t+.5|0}const jn=(t,e,n)=>Math.max(Math.min(t,n),e);function fs(t){return jn(Ys(t*2.55),0,255)}function zn(t){return jn(Ys(t*255),0,255)}function Rn(t){return jn(Ys(t/2.55)/100,0,1)}function au(t){return jn(Ys(t*100),0,100)}const He={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Fa=[..."0123456789ABCDEF"],C0=t=>Fa[t&15],M0=t=>Fa[(t&240)>>4]+Fa[t&15],cr=t=>(t&240)>>4===(t&15),P0=t=>cr(t.r)&&cr(t.g)&&cr(t.b)&&cr(t.a);function I0(t){var e=t.length,n;return t[0]==="#"&&(e===4||e===5?n={r:255&He[t[1]]*17,g:255&He[t[2]]*17,b:255&He[t[3]]*17,a:e===5?He[t[4]]*17:255}:(e===7||e===9)&&(n={r:He[t[1]]<<4|He[t[2]],g:He[t[3]]<<4|He[t[4]],b:He[t[5]]<<4|He[t[6]],a:e===9?He[t[7]]<<4|He[t[8]]:255})),n}const L0=(t,e)=>t<255?e(t):"";function D0(t){var e=P0(t)?C0:M0;return t?"#"+e(t.r)+e(t.g)+e(t.b)+L0(t.a,e):void 0}const N0=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function gd(t,e,n){const i=e*Math.min(n,1-n),s=(r,o=(r+t/30)%12)=>n-i*Math.max(Math.min(o-3,9-o,1),-1);return[s(0),s(8),s(4)]}function $0(t,e,n){const i=(s,r=(s+t/60)%6)=>n-n*e*Math.max(Math.min(r,4-r,1),0);return[i(5),i(3),i(1)]}function F0(t,e,n){const i=gd(t,1,.5);let s;for(e+n>1&&(s=1/(e+n),e*=s,n*=s),s=0;s<3;s++)i[s]*=1-e-n,i[s]+=e;return i}function B0(t,e,n,i,s){return t===s?(e-n)/i+(e.5?u/(2-s-r):u/(s+r),a=B0(e,n,i,u,s),a=a*60+.5),[a|0,l||0,o]}function xl(t,e,n,i){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,n,i)).map(zn)}function wl(t,e,n){return xl(gd,t,e,n)}function U0(t,e,n){return xl(F0,t,e,n)}function j0(t,e,n){return xl($0,t,e,n)}function md(t){return(t%360+360)%360}function H0(t){const e=N0.exec(t);let n=255,i;if(!e)return;e[5]!==i&&(n=e[6]?fs(+e[5]):zn(+e[5]));const s=md(+e[2]),r=+e[3]/100,o=+e[4]/100;return e[1]==="hwb"?i=U0(s,r,o):e[1]==="hsv"?i=j0(s,r,o):i=wl(s,r,o),{r:i[0],g:i[1],b:i[2],a:n}}function V0(t,e){var n=vl(t);n[0]=md(n[0]+e),n=wl(n),t.r=n[0],t.g=n[1],t.b=n[2]}function z0(t){if(!t)return;const e=vl(t),n=e[0],i=au(e[1]),s=au(e[2]);return t.a<255?`hsla(${n}, ${i}%, ${s}%, ${Rn(t.a)})`:`hsl(${n}, ${i}%, ${s}%)`}const lu={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},cu={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function W0(){const t={},e=Object.keys(cu),n=Object.keys(lu);let i,s,r,o,a;for(i=0;i>16&255,r>>8&255,r&255]}return t}let ur;function q0(t){ur||(ur=W0(),ur.transparent=[0,0,0,0]);const e=ur[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const Y0=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function G0(t){const e=Y0.exec(t);let n=255,i,s,r;if(e){if(e[7]!==i){const o=+e[7];n=e[8]?fs(o):jn(o*255,0,255)}return i=+e[1],s=+e[3],r=+e[5],i=255&(e[2]?fs(i):jn(i,0,255)),s=255&(e[4]?fs(s):jn(s,0,255)),r=255&(e[6]?fs(r):jn(r,0,255)),{r:i,g:s,b:r,a:n}}}function K0(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${Rn(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const Jo=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,Ti=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function X0(t,e,n){const i=Ti(Rn(t.r)),s=Ti(Rn(t.g)),r=Ti(Rn(t.b));return{r:zn(Jo(i+n*(Ti(Rn(e.r))-i))),g:zn(Jo(s+n*(Ti(Rn(e.g))-s))),b:zn(Jo(r+n*(Ti(Rn(e.b))-r))),a:t.a+n*(e.a-t.a)}}function hr(t,e,n){if(t){let i=vl(t);i[e]=Math.max(0,Math.min(i[e]+i[e]*n,e===0?360:1)),i=wl(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function _d(t,e){return t&&Object.assign(e||{},t)}function uu(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=zn(t[3]))):(e=_d(t,{r:0,g:0,b:0,a:1}),e.a=zn(e.a)),e}function J0(t){return t.charAt(0)==="r"?G0(t):H0(t)}class Is{constructor(e){if(e instanceof Is)return e;const n=typeof e;let i;n==="object"?i=uu(e):n==="string"&&(i=I0(e)||q0(e)||J0(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=_d(this._rgb);return e&&(e.a=Rn(e.a)),e}set rgb(e){this._rgb=uu(e)}rgbString(){return this._valid?K0(this._rgb):void 0}hexString(){return this._valid?D0(this._rgb):void 0}hslString(){return this._valid?z0(this._rgb):void 0}mix(e,n){if(e){const i=this.rgb,s=e.rgb;let r;const o=n===r?.5:n,a=2*o-1,l=i.a-s.a,u=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;r=1-u,i.r=255&u*i.r+r*s.r+.5,i.g=255&u*i.g+r*s.g+.5,i.b=255&u*i.b+r*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(e,n){return e&&(this._rgb=X0(this._rgb,e._rgb,n)),this}clone(){return new Is(this.rgb)}alpha(e){return this._rgb.a=zn(e),this}clearer(e){const n=this._rgb;return n.a*=1-e,this}greyscale(){const e=this._rgb,n=Ys(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=n,this}opaquer(e){const n=this._rgb;return n.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return hr(this._rgb,2,e),this}darken(e){return hr(this._rgb,2,-e),this}saturate(e){return hr(this._rgb,1,e),this}desaturate(e){return hr(this._rgb,1,-e),this}rotate(e){return V0(this._rgb,e),this}}function xn(){}const Z0=(()=>{let t=0;return()=>t++})();function qt(t){return t==null}function ue(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function St(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function Ee(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function on(t,e){return Ee(t)?t:e}function Nt(t,e){return typeof t>"u"?e:t}const Q0=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/e,yd=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function ie(t,e,n){if(t&&typeof t.call=="function")return t.apply(n,e)}function Ft(t,e,n,i){let s,r,o;if(ue(t))for(r=t.length,s=0;st,x:t=>t.x,y:t=>t.y};function n_(t){const e=t.split("."),n=[];let i="";for(const s of e)i+=s,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function i_(t){const e=n_(t);return n=>{for(const i of e){if(i==="")break;n=n&&n[i]}return n}}function Ds(t,e){return(hu[e]||(hu[e]=i_(e)))(t)}function Sl(t){return t.charAt(0).toUpperCase()+t.slice(1)}const qr=t=>typeof t<"u",qn=t=>typeof t=="function",fu=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function s_(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const Ht=Math.PI,ee=2*Ht,r_=ee+Ht,Yr=Number.POSITIVE_INFINITY,o_=Ht/180,oe=Ht/2,Qn=Ht/4,du=Ht*2/3,vd=Math.log10,Ui=Math.sign;function Ss(t,e,n){return Math.abs(t-e)s-r).pop(),e}function l_(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function Ns(t){return!l_(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function c_(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function u_(t,e,n){let i,s,r;for(i=0,s=t.length;il&&u=Math.min(e,n)-i&&t<=Math.max(e,n)+i}function Al(t,e,n){n=n||(o=>t[o]1;)r=s+i>>1,n(r)?s=r:i=r;return{lo:s,hi:i}}const ai=(t,e,n,i)=>Al(t,n,i?s=>{const r=t[s][e];return rt[s][e]Al(t,n,i=>t[i][e]>=n);function g_(t,e,n){let i=0,s=t.length;for(;ii&&t[s-1]>n;)s--;return i>0||s{const i="_onData"+Sl(n),s=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!1,value(...r){const o=s.apply(this,r);return t._chartjs.listeners.forEach(a=>{typeof a[i]=="function"&&a[i](...r)}),o}})})}function mu(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,s=i.indexOf(e);s!==-1&&i.splice(s,1),!(i.length>0)&&(wd.forEach(r=>{delete t[r]}),delete t._chartjs)}function __(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const Sd=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function Ed(t,e){let n=[],i=!1;return function(...s){n=s,i||(i=!0,Sd.call(window,()=>{i=!1,t.apply(e,n)}))}}function y_(t,e){let n;return function(...i){return e?(clearTimeout(n),n=setTimeout(t,e,i)):t.apply(this,i),e}}const b_=t=>t==="start"?"left":t==="end"?"right":"center",_u=(t,e,n)=>t==="start"?e:t==="end"?n:(e+n)/2;function v_(t,e,n){const i=e.length;let s=0,r=i;if(t._sorted){const{iScale:o,vScale:a,_parsed:l}=t,u=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,c=o.axis,{min:f,max:p,minDefined:m,maxDefined:x}=o.getUserBounds();if(m){if(s=Math.min(ai(l,c,f).lo,n?i:ai(e,c,o.getPixelForValue(f)).lo),u){const _=l.slice(0,s+1).reverse().findIndex(E=>!qt(E[a.axis]));s-=Math.max(0,_)}s=ke(s,0,i-1)}if(x){let _=Math.max(ai(l,o.axis,p,!0).hi+1,n?0:ai(e,c,o.getPixelForValue(p),!0).hi+1);if(u){const E=l.slice(_-1).findIndex(b=>!qt(b[a.axis]));_+=Math.max(0,E)}r=ke(_,s,i)-s}else r=i-s}return{start:s,count:r}}function x_(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,s={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!i)return t._scaleRanges=s,!0;const r=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,s),r}const fr=t=>t===0||t===1,yu=(t,e,n)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*ee/n)),bu=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*ee/n)+1,Es={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*oe)+1,easeOutSine:t=>Math.sin(t*oe),easeInOutSine:t=>-.5*(Math.cos(Ht*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>fr(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>fr(t)?t:yu(t,.075,.3),easeOutElastic:t=>fr(t)?t:bu(t,.075,.3),easeInOutElastic(t){return fr(t)?t:t<.5?.5*yu(t*2,.1125,.45):.5+.5*bu(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-Es.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?Es.easeInBounce(t*2)*.5:Es.easeOutBounce(t*2-1)*.5+.5};function Tl(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function vu(t){return Tl(t)?t:new Is(t)}function Zo(t){return Tl(t)?t:new Is(t).saturate(.5).darken(.1).hexString()}const w_=["x","y","borderWidth","radius","tension"],S_=["color","borderColor","backgroundColor"];function E_(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:S_},numbers:{type:"number",properties:w_}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function A_(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const xu=new Map;function T_(t,e){e=e||{};const n=t+JSON.stringify(e);let i=xu.get(n);return i||(i=new Intl.NumberFormat(t,e),xu.set(n,i)),i}function Rl(t,e,n){return T_(e,n).format(t)}const R_={values(t){return ue(t)?t:""+t},numeric(t,e,n){if(t===0)return"0";const i=this.chart.options.locale;let s,r=t;if(n.length>1){const u=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(u<1e-4||u>1e15)&&(s="scientific"),r=O_(t,n)}const o=vd(Math.abs(r)),a=isNaN(o)?1:Math.max(Math.min(-1*Math.floor(o),20),0),l={notation:s,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),Rl(t,i,l)}};function O_(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t)),n}var Ad={formatters:R_};function k_(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,n)=>n.lineWidth,tickColor:(e,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Ad.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const pi=Object.create(null),Ua=Object.create(null);function As(t,e){if(!e)return t;const n=e.split(".");for(let i=0,s=n.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,s)=>Zo(s.backgroundColor),this.hoverBorderColor=(i,s)=>Zo(s.borderColor),this.hoverColor=(i,s)=>Zo(s.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(n)}set(e,n){return Qo(this,e,n)}get(e){return As(this,e)}describe(e,n){return Qo(Ua,e,n)}override(e,n){return Qo(pi,e,n)}route(e,n,i,s){const r=As(this,e),o=As(this,i),a="_"+n;Object.defineProperties(r,{[a]:{value:r[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],u=o[s];return St(l)?Object.assign({},u,l):Nt(l,u)},set(l){this[a]=l}}})}apply(e){e.forEach(n=>n(this))}}var se=new C_({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[E_,A_,k_]);function M_(t){return!t||qt(t.size)||qt(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function wu(t,e,n,i,s){let r=e[s];return r||(r=e[s]=t.measureText(s).width,n.push(s)),r>i&&(i=r),i}function ti(t,e,n){const i=t.currentDevicePixelRatio,s=n!==0?Math.max(n/2,.5):0;return Math.round((e-s)*i)/i+s}function Su(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function ja(t,e,n,i){P_(t,e,n,i)}function P_(t,e,n,i,s){let r,o,a,l,u,c,f,p;const m=e.pointStyle,x=e.rotation,_=e.radius;let E=(x||0)*o_;if(m&&typeof m=="object"&&(r=m.toString(),r==="[object HTMLImageElement]"||r==="[object HTMLCanvasElement]")){t.save(),t.translate(n,i),t.rotate(E),t.drawImage(m,-m.width/2,-m.height/2,m.width,m.height),t.restore();return}if(!(isNaN(_)||_<=0)){switch(t.beginPath(),m){default:t.arc(n,i,_,0,ee),t.closePath();break;case"triangle":c=_,t.moveTo(n+Math.sin(E)*c,i-Math.cos(E)*_),E+=du,t.lineTo(n+Math.sin(E)*c,i-Math.cos(E)*_),E+=du,t.lineTo(n+Math.sin(E)*c,i-Math.cos(E)*_),t.closePath();break;case"rectRounded":u=_*.516,l=_-u,o=Math.cos(E+Qn)*l,f=Math.cos(E+Qn)*l,a=Math.sin(E+Qn)*l,p=Math.sin(E+Qn)*l,t.arc(n-f,i-a,u,E-Ht,E-oe),t.arc(n+p,i-o,u,E-oe,E),t.arc(n+f,i+a,u,E,E+oe),t.arc(n-p,i+o,u,E+oe,E+Ht),t.closePath();break;case"rect":if(!x){l=Math.SQRT1_2*_,c=l,t.rect(n-c,i-l,2*c,2*l);break}E+=Qn;case"rectRot":f=Math.cos(E)*_,o=Math.cos(E)*_,a=Math.sin(E)*_,p=Math.sin(E)*_,t.moveTo(n-f,i-a),t.lineTo(n+p,i-o),t.lineTo(n+f,i+a),t.lineTo(n-p,i+o),t.closePath();break;case"crossRot":E+=Qn;case"cross":f=Math.cos(E)*_,o=Math.cos(E)*_,a=Math.sin(E)*_,p=Math.sin(E)*_,t.moveTo(n-f,i-a),t.lineTo(n+f,i+a),t.moveTo(n+p,i-o),t.lineTo(n-p,i+o);break;case"star":f=Math.cos(E)*_,o=Math.cos(E)*_,a=Math.sin(E)*_,p=Math.sin(E)*_,t.moveTo(n-f,i-a),t.lineTo(n+f,i+a),t.moveTo(n+p,i-o),t.lineTo(n-p,i+o),E+=Qn,f=Math.cos(E)*_,o=Math.cos(E)*_,a=Math.sin(E)*_,p=Math.sin(E)*_,t.moveTo(n-f,i-a),t.lineTo(n+f,i+a),t.moveTo(n+p,i-o),t.lineTo(n-p,i+o);break;case"line":o=Math.cos(E)*_,a=Math.sin(E)*_,t.moveTo(n-o,i-a),t.lineTo(n+o,i+a);break;case"dash":t.moveTo(n,i),t.lineTo(n+Math.cos(E)*_,i+Math.sin(E)*_);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function Fs(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.xe.top-n&&t.y0&&r.strokeColor!=="";let l,u;for(t.save(),t.font=s.string,D_(t,r),l=0;l+t||0;function Cl(t,e){const n={},i=St(e),s=i?Object.keys(e):e,r=St(t)?i?o=>Nt(t[o],t[e[o]]):o=>t[o]:()=>t;for(const o of s)n[o]=j_(r(o));return n}function H_(t){return Cl(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Rr(t){return Cl(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Yn(t){const e=H_(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function mn(t,e){t=t||{},e=e||se.font;let n=Nt(t.size,e.size);typeof n=="string"&&(n=parseInt(n,10));let i=Nt(t.style,e.style);i&&!(""+i).match(B_)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const s={family:Nt(t.family,e.family),lineHeight:U_(Nt(t.lineHeight,e.lineHeight),n),size:n,style:i,weight:Nt(t.weight,e.weight),string:""};return s.string=M_(s),s}function dr(t,e,n,i){let s,r,o;for(s=0,r=t.length;sn&&a===0?0:a+l;return{min:o(i,-Math.abs(r)),max:o(s,r)}}function bi(t,e){return Object.assign(Object.create(t),e)}function Ml(t,e=[""],n,i,s=()=>t[0]){const r=n||t;typeof i>"u"&&(i=kd("_fallback",t));const o={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:r,_fallback:i,_getTarget:s,override:a=>Ml([a,...t],e,r,i)};return new Proxy(o,{deleteProperty(a,l){return delete a[l],delete a._keys,delete t[0][l],!0},get(a,l){return Rd(a,l,()=>J_(l,e,t,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(a,l){return Ru(a).includes(l)},ownKeys(a){return Ru(a)},set(a,l,u){const c=a._storage||(a._storage=s());return a[l]=c[l]=u,delete a._keys,!0}})}function ji(t,e,n,i){const s={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:Td(t,i),setContext:r=>ji(t,r,n,i),override:r=>ji(t.override(r),e,n,i)};return new Proxy(s,{deleteProperty(r,o){return delete r[o],delete t[o],!0},get(r,o,a){return Rd(r,o,()=>W_(r,o,a))},getOwnPropertyDescriptor(r,o){return r._descriptors.allKeys?Reflect.has(t,o)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,o)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(r,o){return Reflect.has(t,o)},ownKeys(){return Reflect.ownKeys(t)},set(r,o,a){return t[o]=a,delete r[o],!0}})}function Td(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:i=e.indexable,_allKeys:s=e.allKeys}=t;return{allKeys:s,scriptable:n,indexable:i,isScriptable:qn(n)?n:()=>n,isIndexable:qn(i)?i:()=>i}}const z_=(t,e)=>t?t+Sl(e):e,Pl=(t,e)=>St(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function Rd(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const i=n();return t[e]=i,i}function W_(t,e,n){const{_proxy:i,_context:s,_subProxy:r,_descriptors:o}=t;let a=i[e];return qn(a)&&o.isScriptable(e)&&(a=q_(e,a,t,n)),ue(a)&&a.length&&(a=Y_(e,a,t,o.isIndexable)),Pl(e,a)&&(a=ji(a,s,r&&r[e],o)),a}function q_(t,e,n,i){const{_proxy:s,_context:r,_subProxy:o,_stack:a}=n;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=e(r,o||i);return a.delete(t),Pl(t,l)&&(l=Il(s._scopes,s,t,l)),l}function Y_(t,e,n,i){const{_proxy:s,_context:r,_subProxy:o,_descriptors:a}=n;if(typeof r.index<"u"&&i(t))return e[r.index%e.length];if(St(e[0])){const l=e,u=s._scopes.filter(c=>c!==l);e=[];for(const c of l){const f=Il(u,s,t,c);e.push(ji(f,r,o&&o[t],a))}}return e}function Od(t,e,n){return qn(t)?t(e,n):t}const G_=(t,e)=>t===!0?e:typeof t=="string"?Ds(e,t):void 0;function K_(t,e,n,i,s){for(const r of e){const o=G_(n,r);if(o){t.add(o);const a=Od(o._fallback,n,s);if(typeof a<"u"&&a!==n&&a!==i)return a}else if(o===!1&&typeof i<"u"&&n!==i)return null}return!1}function Il(t,e,n,i){const s=e._rootScopes,r=Od(e._fallback,n,i),o=[...t,...s],a=new Set;a.add(i);let l=Tu(a,o,n,r||n,i);return l===null||typeof r<"u"&&r!==n&&(l=Tu(a,o,r,l,i),l===null)?!1:Ml(Array.from(a),[""],s,r,()=>X_(e,n,i))}function Tu(t,e,n,i,s){for(;n;)n=K_(t,e,n,i,s);return n}function X_(t,e,n){const i=t._getTarget();e in i||(i[e]={});const s=i[e];return ue(s)&&St(n)?n:s||{}}function J_(t,e,n,i){let s;for(const r of e)if(s=kd(z_(r,t),n),typeof s<"u")return Pl(t,s)?Il(n,i,t,s):s}function kd(t,e){for(const n of e){if(!n)continue;const i=n[t];if(typeof i<"u")return i}}function Ru(t){let e=t._keys;return e||(e=t._keys=Z_(t._scopes)),e}function Z_(t){const e=new Set;for(const n of t)for(const i of Object.keys(n).filter(s=>!s.startsWith("_")))e.add(i);return Array.from(e)}const Q_=Number.EPSILON||1e-14,Hi=(t,e)=>et==="x"?"y":"x";function ty(t,e,n,i){const s=t.skip?e:t,r=e,o=n.skip?e:n,a=Ba(r,s),l=Ba(o,r);let u=a/(a+l),c=l/(a+l);u=isNaN(u)?0:u,c=isNaN(c)?0:c;const f=i*u,p=i*c;return{previous:{x:r.x-f*(o.x-s.x),y:r.y-f*(o.y-s.y)},next:{x:r.x+p*(o.x-s.x),y:r.y+p*(o.y-s.y)}}}function ey(t,e,n){const i=t.length;let s,r,o,a,l,u=Hi(t,0);for(let c=0;c!u.skip)),e.cubicInterpolationMode==="monotone")iy(t,s);else{let u=i?t[t.length-1]:t[0];for(r=0,o=t.length;rt.ownerDocument.defaultView.getComputedStyle(t,null);function oy(t,e){return _o(t).getPropertyValue(e)}const ay=["top","right","bottom","left"];function fi(t,e,n){const i={};n=n?"-"+n:"";for(let s=0;s<4;s++){const r=ay[s];i[r]=parseFloat(t[e+"-"+r+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const ly=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function cy(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:s,offsetY:r}=i;let o=!1,a,l;if(ly(s,r,t.target))a=s,l=r;else{const u=e.getBoundingClientRect();a=i.clientX-u.left,l=i.clientY-u.top,o=!0}return{x:a,y:l,box:o}}function ii(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,s=_o(n),r=s.boxSizing==="border-box",o=fi(s,"padding"),a=fi(s,"border","width"),{x:l,y:u,box:c}=cy(t,n),f=o.left+(c&&a.left),p=o.top+(c&&a.top);let{width:m,height:x}=e;return r&&(m-=o.width+a.width,x-=o.height+a.height),{x:Math.round((l-f)/m*n.width/i),y:Math.round((u-p)/x*n.height/i)}}function uy(t,e,n){let i,s;if(e===void 0||n===void 0){const r=t&&Dl(t);if(!r)e=t.clientWidth,n=t.clientHeight;else{const o=r.getBoundingClientRect(),a=_o(r),l=fi(a,"border","width"),u=fi(a,"padding");e=o.width-u.width-l.width,n=o.height-u.height-l.height,i=Gr(a.maxWidth,r,"clientWidth"),s=Gr(a.maxHeight,r,"clientHeight")}}return{width:e,height:n,maxWidth:i||Yr,maxHeight:s||Yr}}const Hn=t=>Math.round(t*10)/10;function hy(t,e,n,i){const s=_o(t),r=fi(s,"margin"),o=Gr(s.maxWidth,t,"clientWidth")||Yr,a=Gr(s.maxHeight,t,"clientHeight")||Yr,l=uy(t,e,n);let{width:u,height:c}=l;if(s.boxSizing==="content-box"){const f=fi(s,"border","width"),p=fi(s,"padding");u-=p.width+f.width,c-=p.height+f.height}return u=Math.max(0,u-r.width),c=Math.max(0,i?u/i:c-r.height),u=Hn(Math.min(u,o,l.maxWidth)),c=Hn(Math.min(c,a,l.maxHeight)),u&&!c&&(c=Hn(u/2)),(e!==void 0||n!==void 0)&&i&&l.height&&c>l.height&&(c=l.height,u=Hn(Math.floor(c*i))),{width:u,height:c}}function Ou(t,e,n){const i=e||1,s=Hn(t.height*i),r=Hn(t.width*i);t.height=Hn(t.height),t.width=Hn(t.width);const o=t.canvas;return o.style&&(n||!o.style.height&&!o.style.width)&&(o.style.height=`${t.height}px`,o.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||o.height!==s||o.width!==r?(t.currentDevicePixelRatio=i,o.height=s,o.width=r,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const fy=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};Ll()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function ku(t,e){const n=oy(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function si(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function dy(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function py(t,e,n,i){const s={x:t.cp2x,y:t.cp2y},r={x:e.cp1x,y:e.cp1y},o=si(t,s,n),a=si(s,r,n),l=si(r,e,n),u=si(o,a,n),c=si(a,l,n);return si(u,c,n)}const gy=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},my=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function ta(t,e,n){return t?gy(e,n):my()}function _y(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function yy(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Md(t){return t==="angle"?{between:$s,compare:f_,normalize:Fe}:{between:El,compare:(e,n)=>e-n,normalize:e=>e}}function Cu({start:t,end:e,count:n,loop:i,style:s}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:s}}function by(t,e,n){const{property:i,start:s,end:r}=n,{between:o,normalize:a}=Md(i),l=e.length;let{start:u,end:c,loop:f}=t,p,m;if(f){for(u+=l,c+=l,p=0,m=l;pl(s,M,b)&&a(s,M)!==0,L=()=>a(r,b)===0||l(r,M,b),tt=()=>_||T(),K=()=>!_||L();for(let X=c,dt=c;X<=f;++X)O=e[X%o],!O.skip&&(b=u(O[i]),b!==M&&(_=l(b,s,r),E===null&&tt()&&(E=a(b,s)===0?X:dt),E!==null&&K()&&(x.push(Cu({start:E,end:X,loop:p,count:o,style:m})),E=null),dt=X,M=b));return E!==null&&x.push(Cu({start:E,end:f,loop:p,count:o,style:m})),x}function Id(t,e){const n=[],i=t.segments;for(let s=0;ss&&t[r%e].skip;)r--;return r%=e,{start:s,end:r}}function xy(t,e,n,i){const s=t.length,r=[];let o=e,a=t[e],l;for(l=e+1;l<=n;++l){const u=t[l%s];u.skip||u.stop?a.skip||(i=!1,r.push({start:e%s,end:(l-1)%s,loop:i}),e=o=u.stop?l:null):(o=l,a.skip&&(e=l)),a=u}return o!==null&&r.push({start:e%s,end:o%s,loop:i}),r}function wy(t,e){const n=t.points,i=t.options.spanGaps,s=n.length;if(!s)return[];const r=!!t._loop,{start:o,end:a}=vy(n,s,r,i);if(i===!0)return Mu(t,[{start:o,end:a,loop:r}],n,e);const l=aa({chart:e,initial:n.initial,numSteps:o,currentStep:Math.min(i-n.start,o)}))}_refresh(){this._request||(this._running=!0,this._request=Sd.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;const r=i.items;let o=r.length-1,a=!1,l;for(;o>=0;--o)l=r[o],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(e),a=!0):(r[o]=r[r.length-1],r.pop());a&&(s.draw(),this._notify(s,i,e,"progress")),r.length||(i.running=!1,this._notify(s,i,e,"complete"),i.initial=!1),n+=r.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var Sn=new Ty;const Iu="transparent",Ry={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=vu(t||Iu),s=i.valid&&vu(e||Iu);return s&&s.valid?s.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class Oy{constructor(e,n,i,s){const r=n[i];s=dr([e.to,s,r,e.from]);const o=dr([e.from,r,s]);this._active=!0,this._fn=e.fn||Ry[e.type||typeof o],this._easing=Es[e.easing]||Es.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const s=this._target[this._prop],r=i-this._start,o=this._duration-r;this._start=i,this._duration=Math.floor(Math.max(o,e.duration)),this._total+=r,this._loop=!!e.loop,this._to=dr([e.to,n,s,e.from]),this._from=dr([e.from,s,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,s=this._prop,r=this._from,o=this._loop,a=this._to;let l;if(this._active=r!==a&&(o||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[s]=this._fn(r,a,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let s=0;s{const r=e[s];if(!St(r))return;const o={};for(const a of n)o[a]=r[a];(ue(r.properties)&&r.properties||[s]).forEach(a=>{(a===s||!i.has(a))&&i.set(a,o)})})}_animateOptions(e,n){const i=n.options,s=Cy(e,i);if(!s)return[];const r=this._createAnimations(s,i);return i.$shared&&ky(e.options.$animations,i).then(()=>{e.options=i},()=>{}),r}_createAnimations(e,n){const i=this._properties,s=[],r=e.$animations||(e.$animations={}),o=Object.keys(n),a=Date.now();let l;for(l=o.length-1;l>=0;--l){const u=o[l];if(u.charAt(0)==="$")continue;if(u==="options"){s.push(...this._animateOptions(e,n));continue}const c=n[u];let f=r[u];const p=i.get(u);if(f)if(p&&f.active()){f.update(p,c,a);continue}else f.cancel();if(!p||!p.duration){e[u]=c;continue}r[u]=f=new Oy(p,e,u,c),s.push(f)}return s}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return Sn.add(this._chart,i),!0}}function ky(t,e){const n=[],i=Object.keys(e);for(let s=0;s0||!n&&r<0)return s.index}return null}function $u(t,e){const{chart:n,_cachedMeta:i}=t,s=n._stacks||(n._stacks={}),{iScale:r,vScale:o,index:a}=i,l=r.axis,u=o.axis,c=Ly(r,o,i),f=e.length;let p;for(let m=0;mn[i].axis===e).shift()}function $y(t,e){return bi(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function Fy(t,e,n){return bi(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function ns(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const s of e){const r=s._stacks;if(!r||r[i]===void 0||r[i][n]===void 0)return;delete r[i][n],r[i]._visualValues!==void 0&&r[i]._visualValues[n]!==void 0&&delete r[i]._visualValues[n]}}}const ia=t=>t==="reset"||t==="none",Fu=(t,e)=>e?t:Object.assign({},t),By=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:Nd(n,!0),values:null};class Nl{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=ea(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&ns(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),s=(f,p,m,x)=>f==="x"?p:f==="r"?x:m,r=n.xAxisID=Nt(i.xAxisID,na(e,"x")),o=n.yAxisID=Nt(i.yAxisID,na(e,"y")),a=n.rAxisID=Nt(i.rAxisID,na(e,"r")),l=n.indexAxis,u=n.iAxisID=s(l,r,o,a),c=n.vAxisID=s(l,o,r,a);n.xScale=this.getScaleForId(r),n.yScale=this.getScaleForId(o),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(u),n.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&mu(this._data,this),e._stacked&&ns(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(St(n)){const s=this._cachedMeta;this._data=Iy(n,s)}else if(i!==n){if(i){mu(i,this);const s=this._cachedMeta;ns(s),s._parsed=[]}n&&Object.isExtensible(n)&&m_(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const r=n._stacked;n._stacked=ea(n.vScale,n),n.stack!==i.stack&&(s=!0,ns(n),n.stack=i.stack),this._resyncElements(e),(s||r!==n._stacked)&&($u(this,n._parsed),n._stacked=ea(n.vScale,n))}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:s}=this,{iScale:r,_stacked:o}=i,a=r.axis;let l=e===0&&n===s.length?!0:i._sorted,u=e>0&&i._parsed[e-1],c,f,p;if(this._parsing===!1)i._parsed=s,i._sorted=!0,p=s;else{ue(s[e])?p=this.parseArrayData(i,s,e,n):St(s[e])?p=this.parseObjectData(i,s,e,n):p=this.parsePrimitiveData(i,s,e,n);const m=()=>f[a]===null||u&&f[a]_||f<_}for(p=0;p=0;--p)if(!x()){this.updateRangeFromParsed(u,e,m,l);break}}return u}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let s,r,o;for(s=0,r=n.length;s=0&&ethis.getContext(i,s,n),_=u.resolveNamedOptions(p,m,x,f);return _.$shared&&(_.$shared=l,r[o]=Object.freeze(Fu(_,l))),_}_resolveAnimations(e,n,i){const s=this.chart,r=this._cachedDataOpts,o=`animation-${n}`,a=r[o];if(a)return a;let l;if(s.options.animation!==!1){const c=this.chart.config,f=c.datasetAnimationScopeKeys(this._type,n),p=c.getOptionScopes(this.getDataset(),f);l=c.createResolver(p,this.getContext(e,i,n))}const u=new Dd(s,l&&l.animations);return l&&l._cacheable&&(r[o]=Object.freeze(u)),u}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||ia(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),s=this._sharedOptions,r=this.getSharedOptions(i),o=this.includeOptions(n,r)||r!==s;return this.updateSharedOptions(r,n,i),{sharedOptions:r,includeOptions:o}}updateElement(e,n,i,s){ia(s)?Object.assign(e,i):this._resolveAnimations(n,s).update(e,i)}updateSharedOptions(e,n,i){e&&!ia(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,s){e.active=s;const r=this.getStyle(n,s);this._resolveAnimations(n,i,s).update(e,{options:!s&&this.getSharedOptions(r)||r})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[a,l,u]of this._syncList)this[a](l,u);this._syncList=[];const s=i.length,r=n.length,o=Math.min(r,s);o&&this.parse(0,o),r>s?this._insertElements(s,r-s,e):r{for(u.length+=n,a=u.length-1;a>=o;a--)u[a]=u[a-n]};for(l(r),a=e;a$s(M,a,l,!0)?1:Math.max(T,T*n,L,L*n),x=(M,T,L)=>$s(M,a,l,!0)?-1:Math.min(T,T*n,L,L*n),_=m(0,u,f),E=m(oe,c,p),b=x(Ht,u,f),O=x(Ht+oe,c,p);i=(_-b)/2,s=(E-O)/2,r=-(_+b)/2,o=-(E+O)/2}return{ratioX:i,ratioY:s,offsetX:r,offsetY:o}}class jy extends Nl{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:e=>e!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data,{labels:{pointStyle:i,textAlign:s,color:r,useBorderRadius:o,borderRadius:a}}=e.legend.options;return n.labels.length&&n.datasets.length?n.labels.map((l,u)=>{const c=e.getDatasetMeta(0).controller.getStyle(u);return{text:l,fillStyle:c.backgroundColor,fontColor:r,hidden:!e.getDataVisibility(u),lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:c.borderWidth,strokeStyle:c.borderColor,textAlign:s,pointStyle:i,borderRadius:o&&(a||c.borderRadius),index:u}}):[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}}};constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const i=this.getDataset().data,s=this._cachedMeta;if(this._parsing===!1)s._parsed=i;else{let r=l=>+i[l];if(St(i[e])){const{key:l="value"}=this._parsing;r=u=>+Ds(i[u],l)}let o,a;for(o=e,a=e+n;o0&&!isNaN(e)?ee*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,s=i.data.labels||[],r=Rl(n._parsed[e],i.options.locale);return{label:s[e]||"",value:r}}getMaxBorderWidth(e){let n=0;const i=this.chart;let s,r,o,a,l;if(!e){for(s=0,r=i.data.datasets.length;s0&&this.getParsed(n-1);for(let L=0;L=O){K.skip=!0;continue}const X=this.getParsed(L),dt=qt(X[m]),ot=K[p]=o.getPixelForValue(X[p],L),mt=K[m]=r||dt?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,X,l):X[m],L);K.skip=isNaN(ot)||isNaN(mt)||dt,K.stop=L>0&&Math.abs(X[p]-T[p])>E,_&&(K.parsed=X,K.raw=u.data[L]),f&&(K.options=c||this.resolveDataElementOptions(L,tt.active?"active":s)),b||this.updateElement(tt,L,K,s),T=X}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,s=e.data||[];if(!s.length)return i;const r=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,r,o)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}function ei(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Fl{static override(e){Object.assign(Fl.prototype,e)}options;constructor(e){this.options=e||{}}init(){}formats(){return ei()}parse(){return ei()}format(){return ei()}add(){return ei()}diff(){return ei()}startOf(){return ei()}endOf(){return ei()}}var Hy={_date:Fl};function Vy(t,e,n,i){const{controller:s,data:r,_sorted:o}=t,a=s._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&e===a.axis&&e!=="r"&&o&&r.length){const u=a._reversePixels?p_:ai;if(i){if(s._sharedOptions){const c=r[0],f=typeof c.getRange=="function"&&c.getRange(e);if(f){const p=u(r,e,n-f),m=u(r,e,n+f);return{lo:p.lo,hi:m.hi}}}}else{const c=u(r,e,n);if(l){const{vScale:f}=s._cachedMeta,{_parsed:p}=t,m=p.slice(0,c.lo+1).reverse().findIndex(_=>!qt(_[f.axis]));c.lo-=Math.max(0,m);const x=p.slice(c.hi).findIndex(_=>!qt(_[f.axis]));c.hi+=Math.max(0,x)}return c}}return{lo:0,hi:r.length-1}}function yo(t,e,n,i,s){const r=t.getSortedVisibleDatasetMetas(),o=n[e];for(let a=0,l=r.length;a{l[o]&&l[o](e[n],s)&&(r.push({element:l,datasetIndex:u,index:c}),a=a||l.inRange(e.x,e.y,s))}),i&&!a?[]:r}var Yy={modes:{index(t,e,n,i){const s=ii(e,t),r=n.axis||"x",o=n.includeInvisible||!1,a=n.intersect?sa(t,s,r,i,o):ra(t,s,r,!1,i,o),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(u=>{const c=a[0].index,f=u.data[c];f&&!f.skip&&l.push({element:f,datasetIndex:u.index,index:c})}),l):[]},dataset(t,e,n,i){const s=ii(e,t),r=n.axis||"xy",o=n.includeInvisible||!1;let a=n.intersect?sa(t,s,r,i,o):ra(t,s,r,!1,i,o);if(a.length>0){const l=a[0].datasetIndex,u=t.getDatasetMeta(l).data;a=[];for(let c=0;cn.pos===e)}function Uu(t,e){return t.filter(n=>$d.indexOf(n.pos)===-1&&n.box.axis===e)}function ss(t,e){return t.sort((n,i)=>{const s=e?i:n,r=e?n:i;return s.weight===r.weight?s.index-r.index:s.weight-r.weight})}function Gy(t){const e=[];let n,i,s,r,o,a;for(n=0,i=(t||[]).length;nu.box.fullSize),!0),i=ss(is(e,"left"),!0),s=ss(is(e,"right")),r=ss(is(e,"top"),!0),o=ss(is(e,"bottom")),a=Uu(e,"x"),l=Uu(e,"y");return{fullSize:n,leftAndTop:i.concat(r),rightAndBottom:s.concat(l).concat(o).concat(a),chartArea:is(e,"chartArea"),vertical:i.concat(s).concat(l),horizontal:r.concat(o).concat(a)}}function ju(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function Fd(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function Zy(t,e,n,i){const{pos:s,box:r}=n,o=t.maxPadding;if(!St(s)){n.size&&(t[s]-=n.size);const f=i[n.stack]||{size:0,count:1};f.size=Math.max(f.size,n.horizontal?r.height:r.width),n.size=f.size/f.count,t[s]+=n.size}r.getPadding&&Fd(o,r.getPadding());const a=Math.max(0,e.outerWidth-ju(o,t,"left","right")),l=Math.max(0,e.outerHeight-ju(o,t,"top","bottom")),u=a!==t.w,c=l!==t.h;return t.w=a,t.h=l,n.horizontal?{same:u,other:c}:{same:c,other:u}}function Qy(t){const e=t.maxPadding;function n(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function tb(t,e){const n=e.maxPadding;function i(s){const r={left:0,top:0,right:0,bottom:0};return s.forEach(o=>{r[o]=Math.max(e[o],n[o])}),r}return i(t?["left","right"]:["top","bottom"])}function ds(t,e,n,i){const s=[];let r,o,a,l,u,c;for(r=0,o=t.length,u=0;r{typeof _.beforeLayout=="function"&&_.beforeLayout()});const c=l.reduce((_,E)=>E.box.options&&E.box.options.display===!1?_:_+1,0)||1,f=Object.freeze({outerWidth:e,outerHeight:n,padding:s,availableWidth:r,availableHeight:o,vBoxMaxWidth:r/2/c,hBoxMaxHeight:o/2}),p=Object.assign({},s);Fd(p,Yn(i));const m=Object.assign({maxPadding:p,w:r,h:o,x:s.left,y:s.top},s),x=Xy(l.concat(u),f);ds(a.fullSize,m,f,x),ds(l,m,f,x),ds(u,m,f,x)&&ds(l,m,f,x),Qy(m),Hu(a.leftAndTop,m,f,x),m.x+=m.w,m.y+=m.h,Hu(a.rightAndBottom,m,f,x),t.chartArea={left:m.left,top:m.top,right:m.left+m.w,bottom:m.top+m.h,height:m.h,width:m.w},Ft(a.chartArea,_=>{const E=_.box;Object.assign(E,t.chartArea),E.update(m.w,m.h,{left:0,top:0,right:0,bottom:0})})}};class Bd{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,s){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,s?Math.floor(n/s):i)}}isAttached(e){return!0}updateConfig(e){}}class eb extends Bd{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const Or="$chartjs",nb={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Vu=t=>t===null||t==="";function ib(t,e){const n=t.style,i=t.getAttribute("height"),s=t.getAttribute("width");if(t[Or]={initial:{height:i,width:s,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",Vu(s)){const r=ku(t,"width");r!==void 0&&(t.width=r)}if(Vu(i))if(t.style.height==="")t.height=t.width/(e||2);else{const r=ku(t,"height");r!==void 0&&(t.height=r)}return t}const Ud=fy?{passive:!0}:!1;function sb(t,e,n){t&&t.addEventListener(e,n,Ud)}function rb(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,Ud)}function ob(t,e){const n=nb[t.type]||t.type,{x:i,y:s}=ii(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:s!==void 0?s:null}}function Kr(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function ab(t,e,n){const i=t.canvas,s=new MutationObserver(r=>{let o=!1;for(const a of r)o=o||Kr(a.addedNodes,i),o=o&&!Kr(a.removedNodes,i);o&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}function lb(t,e,n){const i=t.canvas,s=new MutationObserver(r=>{let o=!1;for(const a of r)o=o||Kr(a.removedNodes,i),o=o&&!Kr(a.addedNodes,i);o&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}const Bs=new Map;let zu=0;function jd(){const t=window.devicePixelRatio;t!==zu&&(zu=t,Bs.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function cb(t,e){Bs.size||window.addEventListener("resize",jd),Bs.set(t,e)}function ub(t){Bs.delete(t),Bs.size||window.removeEventListener("resize",jd)}function hb(t,e,n){const i=t.canvas,s=i&&Dl(i);if(!s)return;const r=Ed((a,l)=>{const u=s.clientWidth;n(a,l),u{const l=a[0],u=l.contentRect.width,c=l.contentRect.height;u===0&&c===0||r(u,c)});return o.observe(s),cb(t,r),o}function oa(t,e,n){n&&n.disconnect(),e==="resize"&&ub(t)}function fb(t,e,n){const i=t.canvas,s=Ed(r=>{t.ctx!==null&&n(ob(r,t))},t);return sb(i,e,s),s}class db extends Bd{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(ib(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[Or])return!1;const i=n[Or].initial;["height","width"].forEach(r=>{const o=i[r];qt(o)?n.removeAttribute(r):n.setAttribute(r,o)});const s=i.style||{};return Object.keys(s).forEach(r=>{n.style[r]=s[r]}),n.width=n.width,delete n[Or],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const s=e.$proxies||(e.$proxies={}),r={attach:ab,detach:lb,resize:hb}[n]||fb;s[n]=r(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),s=i[n];s&&(({attach:oa,detach:oa,resize:oa}[n]||rb)(e,n,s),i[n]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,s){return hy(e,n,i,s)}isAttached(e){const n=e&&Dl(e);return!!(n&&n.isConnected)}}function pb(t){return!Ll()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?eb:db}let Wi=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e,y:n}}hasValue(){return Ns(this.x)&&Ns(this.y)}getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={};return t.forEach(s=>{i[s]=n[s]&&n[s].active()?n[s]._to:this[s]}),i}};function gb(t,e){const n=t.options.ticks,i=mb(t),s=Math.min(n.maxTicksLimit||i,i),r=n.major.enabled?yb(e):[],o=r.length,a=r[0],l=r[o-1],u=[];if(o>s)return bb(e,u,r,o/s),u;const c=_b(r,e,s);if(o>0){let f,p;const m=o>1?Math.round((l-a)/(o-1)):null;for(yr(e,u,c,qt(m)?0:a-m,a),f=0,p=o-1;fs)return l}return Math.max(s,1)}function yb(t){const e=[];let n,i;for(n=0,i=t.length;nt==="left"?"right":t==="right"?"left":t,Wu=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,qu=(t,e)=>Math.min(e||t,t);function Yu(t,e){const n=[],i=t.length/e,s=t.length;let r=0;for(;ro+a)))return l}function Sb(t,e){Ft(t,n=>{const i=n.gc,s=i.length/2;let r;if(s>e){for(r=0;ri?i:n,i=s&&n>i?n:i,{min:on(n,on(i,n)),max:on(i,on(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){ie(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:s,grace:r,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=V_(this,r,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a=r||i<=1||!this.isHorizontal()){this.labelRotation=s;return}const c=this._getLabelSizes(),f=c.widest.width,p=c.highest.height,m=ke(this.chart.width-f,0,this.maxWidth);a=e.offset?this.maxWidth/i:m/(i-1),f+6>a&&(a=m/(i-(e.offset?.5:1)),l=this.maxHeight-rs(e.grid)-n.padding-Gu(e.title,this.chart.options.font),u=Math.sqrt(f*f+p*p),o=h_(Math.min(Math.asin(ke((c.highest.height+6)/a,-1,1)),Math.asin(ke(l/u,-1,1))-Math.asin(ke(p/u,-1,1)))),o=Math.max(s,Math.min(r,o))),this.labelRotation=o}afterCalculateLabelRotation(){ie(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){ie(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:s,grid:r}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const l=Gu(s,n.options.font);if(a?(e.width=this.maxWidth,e.height=rs(r)+l):(e.height=this.maxHeight,e.width=rs(r)+l),i.display&&this.ticks.length){const{first:u,last:c,widest:f,highest:p}=this._getLabelSizes(),m=i.padding*2,x=Cn(this.labelRotation),_=Math.cos(x),E=Math.sin(x);if(a){const b=i.mirror?0:E*f.width+_*p.height;e.height=Math.min(this.maxHeight,e.height+b+m)}else{const b=i.mirror?0:_*f.width+E*p.height;e.width=Math.min(this.maxWidth,e.width+b+m)}this._calculatePadding(u,c,E,_)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,s){const{ticks:{align:r,padding:o},position:a}=this.options,l=this.labelRotation!==0,u=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const c=this.getPixelForTick(0)-this.left,f=this.right-this.getPixelForTick(this.ticks.length-1);let p=0,m=0;l?u?(p=s*e.width,m=i*n.height):(p=i*e.height,m=s*n.width):r==="start"?m=n.width:r==="end"?p=e.width:r!=="inner"&&(p=e.width/2,m=n.width/2),this.paddingLeft=Math.max((p-c+o)*this.width/(this.width-c),0),this.paddingRight=Math.max((m-f+o)*this.width/(this.width-f),0)}else{let c=n.height/2,f=e.height/2;r==="start"?(c=0,f=e.height):r==="end"&&(c=n.height,f=0),this.paddingTop=c+o,this.paddingBottom=f+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){ie(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n({width:o[dt]||0,height:a[dt]||0});return{first:X(0),last:X(n-1),widest:X(tt),highest:X(K),widths:o,heights:a}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return d_(this._alignToPixels?ti(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&ea*s?a/i:l/s:l*s0}_computeGridLineItems(e){const n=this.axis,i=this.chart,s=this.options,{grid:r,position:o,border:a}=s,l=r.offset,u=this.isHorizontal(),c=this.ticks.length+(l?1:0),f=rs(r),p=[],m=a.setContext(this.getContext()),x=m.display?m.width:0,_=x/2,E=function(nt){return ti(i,nt,x)};let b,O,M,T,L,tt,K,X,dt,ot,mt,wt;if(o==="top")b=E(this.bottom),tt=this.bottom-f,X=b-_,ot=E(e.top)+_,wt=e.bottom;else if(o==="bottom")b=E(this.top),ot=e.top,wt=E(e.bottom)-_,tt=b+_,X=this.top+f;else if(o==="left")b=E(this.right),L=this.right-f,K=b-_,dt=E(e.left)+_,mt=e.right;else if(o==="right")b=E(this.left),dt=e.left,mt=E(e.right)-_,L=b+_,K=this.left+f;else if(n==="x"){if(o==="center")b=E((e.top+e.bottom)/2+.5);else if(St(o)){const nt=Object.keys(o)[0],st=o[nt];b=E(this.chart.scales[nt].getPixelForValue(st))}ot=e.top,wt=e.bottom,tt=b+_,X=tt+f}else if(n==="y"){if(o==="center")b=E((e.left+e.right)/2);else if(St(o)){const nt=Object.keys(o)[0],st=o[nt];b=E(this.chart.scales[nt].getPixelForValue(st))}L=b-_,K=L-f,dt=e.left,mt=e.right}const Vt=Nt(s.ticks.maxTicksLimit,c),It=Math.max(1,Math.ceil(c/Vt));for(O=0;O0&&(ft-=bt/2);break}Tt={left:ft,top:Ut,width:bt+ct.width,height:ae+ct.height,color:nt.backdropColor}}E.push({label:T,font:dt,textOffset:wt,options:{rotation:_,color:lt,strokeColor:$t,strokeWidth:zt,textAlign:Yt,textBaseline:Vt,translation:[L,tt],backdrop:Tt}})}return E}_getXAxisLabelAlignment(){const{position:e,ticks:n}=this.options;if(-Cn(this.labelRotation))return e==="top"?"left":"right";let i="center";return n.align==="start"?i="left":n.align==="end"?i="right":n.align==="inner"&&(i="inner"),i}_getYAxisLabelAlignment(e){const{position:n,ticks:{crossAlign:i,mirror:s,padding:r}}=this.options,o=this._getLabelSizes(),a=e+r,l=o.widest.width;let u,c;return n==="left"?s?(c=this.right+r,i==="near"?u="left":i==="center"?(u="center",c+=l/2):(u="right",c+=l)):(c=this.right-a,i==="near"?u="right":i==="center"?(u="center",c-=l/2):(u="left",c=this.left)):n==="right"?s?(c=this.left+r,i==="near"?u="right":i==="center"?(u="center",c-=l/2):(u="left",c-=l)):(c=this.left+a,i==="near"?u="left":i==="center"?(u="center",c+=l/2):(u="right",c=this.right)):u="right",{textAlign:u,x:c}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:n},left:i,top:s,width:r,height:o}=this;n&&(e.save(),e.fillStyle=n,e.fillRect(i,s,r,o),e.restore())}getLineWidthForValue(e){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const i=this.ticks.findIndex(s=>s.value===e);return i>=0?n.setContext(this.getContext(i)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let r,o;const a=(l,u,c)=>{!c.width||!c.color||(i.save(),i.lineWidth=c.width,i.strokeStyle=c.color,i.setLineDash(c.borderDash||[]),i.lineDashOffset=c.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(u.x,u.y),i.stroke(),i.restore())};if(n.display)for(r=0,o=s.length;r{this.draw(r)}}]:[{z:i,draw:r=>{this.drawBackground(),this.drawGrid(r),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:n,draw:r=>{this.drawLabels(r)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let r,o;for(r=0,o=n.length;r{const i=n.split("."),s=i.pop(),r=[t].concat(i).join("."),o=e[n].split("."),a=o.pop(),l=o.join(".");se.route(r,s,l,a)})}function Cb(t){return"id"in t&&"defaults"in t}class Mb{constructor(){this.controllers=new br(Nl,"datasets",!0),this.elements=new br(Wi,"elements"),this.plugins=new br(Object,"plugins"),this.scales=new br(qi,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(s=>{const r=i||this._getRegistryForType(s);i||r.isForType(s)||r===this.plugins&&s.id?this._exec(e,r,s):Ft(s,o=>{const a=i||this._getRegistryForType(o);this._exec(e,a,o)})})}_exec(e,n,i){const s=Sl(e);ie(i["before"+s],[],i),n[e](i),ie(i["after"+s],[],i)}_getRegistryForType(e){for(let n=0;nr.filter(a=>!o.some(l=>a.plugin.id===l.plugin.id));this._notify(s(n,i),e,"stop"),this._notify(s(i,n),e,"start")}}function Ib(t){const e={},n=[],i=Object.keys(cn.plugins.items);for(let r=0;r1&&Ku(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function Xu(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function Ub(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return Xu(t,"x",n[0])||Xu(t,"y",n[0])}return{}}function jb(t,e){const n=pi[t.type]||{scales:{}},i=e.scales||{},s=Ha(t.type,e),r=Object.create(null);return Object.keys(i).forEach(o=>{const a=i[o];if(!St(a))return console.error(`Invalid scale configuration for scale: ${o}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${o}`);const l=Va(o,a,Ub(o,t),se.scales[a.type]),u=Fb(l,s),c=n.scales||{};r[o]=ws(Object.create(null),[{axis:l},a,c[l],c[u]])}),t.data.datasets.forEach(o=>{const a=o.type||t.type,l=o.indexAxis||Ha(a,e),u=(pi[a]||{}).scales||{};Object.keys(u).forEach(c=>{const f=$b(c,l),p=o[f+"AxisID"]||f;r[p]=r[p]||Object.create(null),ws(r[p],[{axis:f},i[p],u[c]])})}),Object.keys(r).forEach(o=>{const a=r[o];ws(a,[se.scales[a.type],se.scale])}),r}function Hd(t){const e=t.options||(t.options={});e.plugins=Nt(e.plugins,{}),e.scales=jb(t,e)}function Vd(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function Hb(t){return t=t||{},t.data=Vd(t.data),Hd(t),t}const Ju=new Map,zd=new Set;function vr(t,e){let n=Ju.get(t);return n||(n=e(),Ju.set(t,n),zd.add(n)),n}const os=(t,e,n)=>{const i=Ds(e,n);i!==void 0&&t.add(i)};class Vb{constructor(e){this._config=Hb(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=Vd(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),Hd(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return vr(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return vr(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return vr(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return vr(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let s=i.get(e);return(!s||n)&&(s=new Map,i.set(e,s)),s}getOptionScopes(e,n,i){const{options:s,type:r}=this,o=this._cachedScopes(e,i),a=o.get(n);if(a)return a;const l=new Set;n.forEach(c=>{e&&(l.add(e),c.forEach(f=>os(l,e,f))),c.forEach(f=>os(l,s,f)),c.forEach(f=>os(l,pi[r]||{},f)),c.forEach(f=>os(l,se,f)),c.forEach(f=>os(l,Ua,f))});const u=Array.from(l);return u.length===0&&u.push(Object.create(null)),zd.has(n)&&o.set(n,u),u}chartOptionScopes(){const{options:e,type:n}=this;return[e,pi[n]||{},se.datasets[n]||{},{type:n},se,Ua]}resolveNamedOptions(e,n,i,s=[""]){const r={$shared:!0},{resolver:o,subPrefixes:a}=Zu(this._resolverCache,e,s);let l=o;if(Wb(o,n)){r.$shared=!1,i=qn(i)?i():i;const u=this.createResolver(e,i,a);l=ji(o,i,u)}for(const u of n)r[u]=l[u];return r}createResolver(e,n,i=[""],s){const{resolver:r}=Zu(this._resolverCache,e,i);return St(n)?ji(r,n,void 0,s):r}}function Zu(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const s=n.join();let r=i.get(s);return r||(r={resolver:Ml(e,n),subPrefixes:n.filter(o=>!o.toLowerCase().includes("hover"))},i.set(s,r)),r}const zb=t=>St(t)&&Object.getOwnPropertyNames(t).some(e=>qn(t[e]));function Wb(t,e){const{isScriptable:n,isIndexable:i}=Td(t);for(const s of e){const r=n(s),o=i(s),a=(o||r)&&t[s];if(r&&(qn(a)||zb(a))||o&&ue(a))return!0}return!1}var qb="4.5.1";const Yb=["top","bottom","left","right","chartArea"];function Qu(t,e){return t==="top"||t==="bottom"||Yb.indexOf(t)===-1&&e==="x"}function th(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function eh(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),ie(n&&n.onComplete,[t],e)}function Gb(t){const e=t.chart,n=e.options.animation;ie(n&&n.onProgress,[t],e)}function Wd(t){return Ll()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const kr={},nh=t=>{const e=Wd(t);return Object.values(kr).filter(n=>n.canvas===e).pop()};function Kb(t,e,n){const i=Object.keys(t);for(const s of i){const r=+s;if(r>=e){const o=t[s];delete t[s],(n>0||r>e)&&(t[r+n]=o)}}}function Xb(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}let gi=class{static defaults=se;static instances=kr;static overrides=pi;static registry=cn;static version=qb;static getChart=nh;static register(...t){cn.add(...t),ih()}static unregister(...t){cn.remove(...t),ih()}constructor(t,e){const n=this.config=new Vb(e),i=Wd(t),s=nh(i);if(s)throw new Error("Canvas is already in use. Chart with ID '"+s.id+"' must be destroyed before the canvas with ID '"+s.canvas.id+"' can be reused.");const r=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||pb(i)),this.platform.updateConfig(n);const o=this.platform.acquireContext(i,r.aspectRatio),a=o&&o.canvas,l=a&&a.height,u=a&&a.width;if(this.id=Z0(),this.ctx=o,this.canvas=a,this.width=u,this.height=l,this._options=r,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Pb,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=y_(c=>this.update(c),r.resizeDelay||0),this._dataChanges=[],kr[this.id]=this,!o||!a){console.error("Failed to create chart: can't acquire context from the given item");return}Sn.listen(this,"complete",eh),Sn.listen(this,"progress",Gb),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:n,height:i,_aspectRatio:s}=this;return qt(t)?e&&s?s:i?n/i:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return cn}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():Ou(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Su(this.canvas,this.ctx),this}stop(){return Sn.stop(this),this}resize(t,e){Sn.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const n=this.options,i=this.canvas,s=n.maintainAspectRatio&&this.aspectRatio,r=this.platform.getMaximumSize(i,t,e,s),o=n.devicePixelRatio||this.platform.getDevicePixelRatio(),a=this.width?"resize":"attach";this.width=r.width,this.height=r.height,this._aspectRatio=this.aspectRatio,Ou(this,o,!0)&&(this.notifyPlugins("resize",{size:r}),ie(n.onResize,[this,r],this),this.attached&&this._doResize(a)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};Ft(t,(e,n)=>{e.id=n})}buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,i=Object.keys(n).reduce((r,o)=>(r[o]=!1,r),{});let s=[];e&&(s=s.concat(Object.keys(e).map(r=>{const o=e[r],a=Va(r,o),l=a==="r",u=a==="x";return{options:o,dposition:l?"chartArea":u?"bottom":"left",dtype:l?"radialLinear":u?"category":"linear"}}))),Ft(s,r=>{const o=r.options,a=o.id,l=Va(a,o),u=Nt(o.type,r.dtype);(o.position===void 0||Qu(o.position,l)!==Qu(r.dposition))&&(o.position=r.dposition),i[a]=!0;let c=null;if(a in n&&n[a].type===u)c=n[a];else{const f=cn.getScale(u);c=new f({id:a,type:u,ctx:this.ctx,chart:this}),n[c.id]=c}c.init(o,t)}),Ft(i,(r,o)=>{r||delete n[o]}),Ft(n,r=>{_r.configure(this,r,r.options),_r.addBox(this,r)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n=t.length;if(t.sort((i,s)=>i.index-s.index),n>e){for(let i=e;ie.length&&delete this._stacks,t.forEach((n,i)=>{e.filter(s=>s===n._dataset).length===0&&this._destroyDatasetMeta(i)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,i;for(this._removeUnreferencedMetasets(),n=0,i=e.length;n{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const n=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),i=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const s=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let r=0;for(let l=0,u=this.data.datasets.length;l{l.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(th("z","_idx"));const{_active:o,_lastEvent:a}=this;a?this._eventHandler(a,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){Ft(this.scales,t=>{_r.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),n=new Set(t.events);(!fu(e,n)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:n,start:i,count:s}of e){const r=n==="_removeElements"?-s:s;Kb(t,i,r)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,n=s=>new Set(t.filter(r=>r[0]===s).map((r,o)=>o+","+r.splice(1).join(","))),i=n(0);for(let s=1;ss.split(",")).map(s=>({method:s[1],start:+s[2],count:+s[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;_r.update(this,this.width,this.height,t);const e=this.chartArea,n=e.width<=0||e.height<=0;this._layers=[],Ft(this.boxes,i=>{n&&i.position==="chartArea"||(i.configure&&i.configure(),this._layers.push(...i._layers()))},this),this._layers.forEach((i,s)=>{i._idx=s}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,n=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,n={meta:t,index:t.index,cancelable:!0},i=Ld(this,t);this.notifyPlugins("beforeDatasetDraw",n)!==!1&&(i&&Ol(e,i),t.controller.draw(),i&&kl(e),n.cancelable=!1,this.notifyPlugins("afterDatasetDraw",n))}isPointInArea(t){return Fs(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,n,i){const s=Yy.modes[e];return typeof s=="function"?s(this,t,n,i):[]}getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let i=n.filter(s=>s&&s._dataset===e).pop();return i||(i={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},n.push(i)),i}getContext(){return this.$context||(this.$context=bi(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const n=this.getDatasetMeta(t);return typeof n.hidden=="boolean"?!n.hidden:!e.hidden}setDatasetVisibility(t,e){const n=this.getDatasetMeta(t);n.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,n){const i=n?"show":"hide",s=this.getDatasetMeta(t),r=s.controller._resolveAnimations(void 0,i);qr(e)?(s.data[e].hidden=!n,this.update()):(this.setDatasetVisibility(t,n),r.update(s,{visible:n}),this.update(o=>o.datasetIndex===t?i:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),Sn.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,s,r),t[s]=r},i=(s,r,o)=>{s.offsetX=r,s.offsetY=o,this._eventHandler(s)};Ft(this.options.events,s=>n(s,i))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,n=(a,l)=>{e.addEventListener(this,a,l),t[a]=l},i=(a,l)=>{t[a]&&(e.removeEventListener(this,a,l),delete t[a])},s=(a,l)=>{this.canvas&&this.resize(a,l)};let r;const o=()=>{i("attach",o),this.attached=!0,this.resize(),n("resize",s),n("detach",r)};r=()=>{this.attached=!1,i("resize",s),this._stop(),this._resize(0,0),n("attach",o)},e.isAttached(this.canvas)?o():r()}unbindEvents(){Ft(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},Ft(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,n){const i=n?"set":"remove";let s,r,o,a;for(e==="dataset"&&(s=this.getDatasetMeta(t[0].datasetIndex),s.controller["_"+i+"DatasetHoverStyle"]()),o=0,a=t.length;o{const r=this.getDatasetMeta(i);if(!r)throw new Error("No dataset found at index "+i);return{datasetIndex:i,element:r.data[s],index:s}});!zr(n,e)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,e))}notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}isPluginEnabled(t){return this._plugins._cache.filter(e=>e.plugin.id===t).length===1}_updateHoverStyles(t,e,n){const i=this.options.hover,s=(a,l)=>a.filter(u=>!l.some(c=>u.datasetIndex===c.datasetIndex&&u.index===c.index)),r=s(e,t),o=n?t:s(t,e);r.length&&this.updateHoverStyle(r,i.mode,!1),o.length&&i.mode&&this.updateHoverStyle(o,i.mode,!0)}_eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},i=r=>(r.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",n,i)===!1)return;const s=this._handleEvent(t,e,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,i),(s||n.changed)&&this.render(),this}_handleEvent(t,e,n){const{_active:i=[],options:s}=this,r=e,o=this._getActiveElements(t,i,n,r),a=s_(t),l=Xb(t,this._lastEvent,n,a);n&&(this._lastEvent=null,ie(s.onHover,[t,o,this],this),a&&ie(s.onClick,[t,o,this],this));const u=!zr(o,i);return(u||e)&&(this._active=o,this._updateHoverStyles(o,i,e)),this._lastEvent=l,u}_getActiveElements(t,e,n,i){if(t.type==="mouseout")return[];if(!n)return e;const s=this.options.hover;return this.getElementsAtEventForMode(t,s.mode,s,i)}};function ih(){return Ft(gi.instances,t=>t._plugins.invalidate())}function Jb(t,e,n){const{startAngle:i,x:s,y:r,outerRadius:o,innerRadius:a,options:l}=e,{borderWidth:u,borderJoinStyle:c}=l,f=Math.min(u/o,Fe(i-n));if(t.beginPath(),t.arc(s,r,o-u/2,i+f/2,n-f/2),a>0){const p=Math.min(u/a,Fe(i-n));t.arc(s,r,a+u/2,n-p/2,i+p/2,!0)}else{const p=Math.min(u/2,o*Fe(i-n));if(c==="round")t.arc(s,r,p,n-Ht/2,i+Ht/2,!0);else if(c==="bevel"){const m=2*p*p,x=-m*Math.cos(n+Ht/2)+s,_=-m*Math.sin(n+Ht/2)+r,E=m*Math.cos(i+Ht/2)+s,b=m*Math.sin(i+Ht/2)+r;t.lineTo(x,_),t.lineTo(E,b)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip("evenodd")}function Zb(t,e,n){const{startAngle:i,pixelMargin:s,x:r,y:o,outerRadius:a,innerRadius:l}=e;let u=s/a;t.beginPath(),t.arc(r,o,a,i-u,n+u),l>s?(u=s/l,t.arc(r,o,l,n+u,i-u,!0)):t.arc(r,o,s,n+oe,i-oe),t.closePath(),t.clip()}function Qb(t){return Cl(t,["outerStart","outerEnd","innerStart","innerEnd"])}function tv(t,e,n,i){const s=Qb(t.options.borderRadius),r=(n-e)/2,o=Math.min(r,i*e/2),a=l=>{const u=(n-Math.min(r,l))*i/2;return ke(l,0,Math.min(r,u))};return{outerStart:a(s.outerStart),outerEnd:a(s.outerEnd),innerStart:ke(s.innerStart,0,o),innerEnd:ke(s.innerEnd,0,o)}}function Ri(t,e,n,i){return{x:n+t*Math.cos(e),y:i+t*Math.sin(e)}}function Xr(t,e,n,i,s,r){const{x:o,y:a,startAngle:l,pixelMargin:u,innerRadius:c}=e,f=Math.max(e.outerRadius+i+n-u,0),p=c>0?c+i+n+u:0;let m=0;const x=s-l;if(i){const nt=c>0?c-i:0,st=f>0?f-i:0,lt=(nt+st)/2,$t=lt!==0?x*lt/(lt+i):x;m=(x-$t)/2}const _=Math.max(.001,x*f-n/Ht)/f,E=(x-_)/2,b=l+E+m,O=s-E-m,{outerStart:M,outerEnd:T,innerStart:L,innerEnd:tt}=tv(e,p,f,O-b),K=f-M,X=f-T,dt=b+M/K,ot=O-T/X,mt=p+L,wt=p+tt,Vt=b+L/mt,It=O-tt/wt;if(t.beginPath(),r){const nt=(dt+ot)/2;if(t.arc(o,a,f,dt,nt),t.arc(o,a,f,nt,ot),T>0){const zt=Ri(X,ot,o,a);t.arc(zt.x,zt.y,T,ot,O+oe)}const st=Ri(wt,O,o,a);if(t.lineTo(st.x,st.y),tt>0){const zt=Ri(wt,It,o,a);t.arc(zt.x,zt.y,tt,O+oe,It+Math.PI)}const lt=(O-tt/p+(b+L/p))/2;if(t.arc(o,a,p,O-tt/p,lt,!0),t.arc(o,a,p,lt,b+L/p,!0),L>0){const zt=Ri(mt,Vt,o,a);t.arc(zt.x,zt.y,L,Vt+Math.PI,b-oe)}const $t=Ri(K,b,o,a);if(t.lineTo($t.x,$t.y),M>0){const zt=Ri(K,dt,o,a);t.arc(zt.x,zt.y,M,b-oe,dt)}}else{t.moveTo(o,a);const nt=Math.cos(dt)*f+o,st=Math.sin(dt)*f+a;t.lineTo(nt,st);const lt=Math.cos(ot)*f+o,$t=Math.sin(ot)*f+a;t.lineTo(lt,$t)}t.closePath()}function ev(t,e,n,i,s){const{fullCircles:r,startAngle:o,circumference:a}=e;let l=e.endAngle;if(r){Xr(t,e,n,i,l,s);for(let u=0;u=Ht&&m===0&&c!=="miter"&&Jb(t,e,_),r||(Xr(t,e,n,i,_,s),t.stroke())}class iv extends Wi{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,n,i){const s=this.getProps(["x","y"],i),{angle:r,distance:o}=xd(s,{x:e,y:n}),{startAngle:a,endAngle:l,innerRadius:u,outerRadius:c,circumference:f}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),p=(this.options.spacing+this.options.borderWidth)/2,m=Nt(f,l-a),x=$s(r,a,l)&&a!==l,_=m>=ee||x,E=El(o,u+p,c+p);return _&&E}getCenterPoint(e){const{x:n,y:i,startAngle:s,endAngle:r,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:l,spacing:u}=this.options,c=(s+r)/2,f=(o+a+u+l)/2;return{x:n+Math.cos(c)*f,y:i+Math.sin(c)*f}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:n,circumference:i}=this,s=(n.offset||0)/4,r=(n.spacing||0)/2,o=n.circular;if(this.pixelMargin=n.borderAlign==="inner"?.33:0,this.fullCircles=i>ee?Math.floor(i/ee):0,i===0||this.innerRadius<0||this.outerRadius<0)return;e.save();const a=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(a)*s,Math.sin(a)*s);const l=1-Math.sin(Math.min(Ht,i||0)),u=s*l;e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,ev(e,this,u,r,o),nv(e,this,u,r,o),e.restore()}}function qd(t,e,n=e){t.lineCap=Nt(n.borderCapStyle,e.borderCapStyle),t.setLineDash(Nt(n.borderDash,e.borderDash)),t.lineDashOffset=Nt(n.borderDashOffset,e.borderDashOffset),t.lineJoin=Nt(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=Nt(n.borderWidth,e.borderWidth),t.strokeStyle=Nt(n.borderColor,e.borderColor)}function sv(t,e,n){t.lineTo(n.x,n.y)}function rv(t){return t.stepped?I_:t.tension||t.cubicInterpolationMode==="monotone"?L_:sv}function Yd(t,e,n={}){const i=t.length,{start:s=0,end:r=i-1}=n,{start:o,end:a}=e,l=Math.max(s,o),u=Math.min(r,a),c=sa&&r>a;return{count:i,start:l,loop:e.loop,ilen:u(o+(u?a-T:T))%r,M=()=>{_!==E&&(t.lineTo(c,E),t.lineTo(c,_),t.lineTo(c,b))};for(l&&(m=s[O(0)],t.moveTo(m.x,m.y)),p=0;p<=a;++p){if(m=s[O(p)],m.skip)continue;const T=m.x,L=m.y,tt=T|0;tt===x?(L<_?_=L:L>E&&(E=L),c=(f*c+T)/++f):(M(),t.lineTo(T,L),x=tt,f=0,_=E=L),b=L}M()}function za(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?av:ov}function lv(t){return t.stepped?dy:t.tension||t.cubicInterpolationMode==="monotone"?py:si}function cv(t,e,n,i){let s=e._path;s||(s=e._path=new Path2D,e.path(s,n,i)&&s.closePath()),qd(t,e.options),t.stroke(s)}function uv(t,e,n,i){const{segments:s,options:r}=e,o=za(e);for(const a of s)qd(t,r,a.style),t.beginPath(),o(t,e,a,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const hv=typeof Path2D=="function";function fv(t,e,n,i){hv&&!e.options.segment?cv(t,e,n,i):uv(t,e,n,i)}class Gs extends Wi{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"&&e!=="fill"};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;ry(this._points,i,e,s,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=wy(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,s=e[n],r=this.points,o=Id(this,{property:n,start:s,end:s});if(!o.length)return;const a=[],l=lv(i);let u,c;for(u=0,c=o.length;u{a=bo(o,a,s);const l=s[o],u=s[a];i!==null?(r.push({x:l.x,y:i}),r.push({x:u.x,y:i})):n!==null&&(r.push({x:n,y:l.y}),r.push({x:n,y:u.y}))}),r}function bo(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function rh(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function Kd(t,e){let n=[],i=!1;return ue(t)?(i=!0,n=t):n=pv(t,e),n.length?new Gs({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function oh(t){return t&&t.fill!==!1}function gv(t,e,n){let i=t[e].fill;const s=[e];let r;if(!n)return i;for(;i!==!1&&s.indexOf(i)===-1;){if(!Ee(i))return i;if(r=t[i],!r)return!1;if(r.visible)return i;s.push(i),i=r.fill}return!1}function mv(t,e,n){const i=vv(t);if(St(i))return isNaN(i.value)?!1:i;let s=parseFloat(i);return Ee(s)&&Math.floor(s)===s?_v(i[0],e,s,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function _v(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function yv(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:St(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function bv(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:St(t)?i=t.value:i=e.getBaseValue(),i}function vv(t){const e=t.options,n=e.fill;let i=Nt(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function xv(t){const{scale:e,index:n,line:i}=t,s=[],r=i.segments,o=i.points,a=wv(e,n);a.push(Kd({x:null,y:e.bottom},i));for(let l=0;l=0;--o){const a=s[o].$filler;a&&(a.line.updateControlPoints(r,a.axis),i&&a.fill&&aa(t.ctx,a,r))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let s=i.length-1;s>=0;--s){const r=i[s].$filler;oh(r)&&aa(t.ctx,r,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!oh(i)||n.drawTime!=="beforeDatasetDraw"||aa(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const ps={average(t){if(!t.length)return!1;let e,n,i=new Set,s=0,r=0;for(e=0,n=t.length;eo+a)/i.size,y:s/r}},nearest(t,e){if(!t.length)return!1;let n=e.x,i=e.y,s=Number.POSITIVE_INFINITY,r,o,a;for(r=0,o=t.length;ri in e}const Rt={},Fo=[],ri=()=>{},_d=()=>!1,fn=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),pn=t=>t.startsWith("onUpdate:"),ge=Object.assign,gl=(t,e)=>{const i=t.indexOf(e);i>-1&&t.splice(i,1)},Lm=Object.prototype.hasOwnProperty,Dt=(t,e)=>Lm.call(t,e),ct=Array.isArray,Bo=t=>Xr(t)==="[object Map]",mn=t=>Xr(t)==="[object Set]",Ec=t=>Xr(t)==="[object Date]",pt=t=>typeof t=="function",Qt=t=>typeof t=="string",Ke=t=>typeof t=="symbol",Ft=t=>t!==null&&typeof t=="object",vd=t=>(Ft(t)||pt(t))&&pt(t.then)&&pt(t.catch),xd=Object.prototype.toString,Xr=t=>xd.call(t),Nm=t=>Xr(t).slice(8,-1),wd=t=>Xr(t)==="[object Object]",gn=t=>Qt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Sr=ml(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),bn=t=>{const e=Object.create(null);return(i=>e[i]||(e[i]=t(i)))},Dm=/-\w/g,Ae=bn(t=>t.replace(Dm,e=>e.slice(1).toUpperCase())),$m=/\B([A-Z])/g,Ji=bn(t=>t.replace($m,"-$1").toLowerCase()),yn=bn(t=>t.charAt(0).toUpperCase()+t.slice(1)),Wn=bn(t=>t?`on${yn(t)}`:""),Ee=(t,e)=>!Object.is(t,e),Is=(t,...e)=>{for(let i=0;i{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:o,value:i})},Fm=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let Tc;const zs=()=>Tc||(Tc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Pr<"u"?Pr:{});function bl(t){if(ct(t)){const e={};for(let i=0;i{if(i){const o=i.split(jm);o.length>1&&(e[o[0].trim()]=o[1].trim())}}),e}function De(t){let e="";if(Qt(t))e=t;else if(ct(t))for(let i=0;iYr(i,e))}const Td=t=>!!(t&&t.__v_isRef===!0),P=t=>Qt(t)?t:t==null?"":ct(t)||Ft(t)&&(t.toString===xd||!pt(t.toString))?Td(t)?P(t.value):JSON.stringify(t,Od,2):String(t),Od=(t,e)=>Td(e)?Od(t,e.value):Bo(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((i,[o,r],s)=>(i[qn(o,s)+" =>"]=r,i),{})}:mn(e)?{[`Set(${e.size})`]:[...e.values()].map(i=>qn(i))}:Ke(e)?qn(e):Ft(e)&&!ct(e)&&!wd(e)?String(e):e,qn=(t,e="")=>{var i;return Ke(t)?`Symbol(${(i=t.description)!=null?i:e})`:t};function qm(t){return t==null?"initial":typeof t=="string"?t===""?" ":t:String(t)}let be;class Gm{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&be&&(be.active?(this.parent=be,this.index=(be.scopes||(be.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,i;if(this.scopes)for(e=0,i=this.scopes.length;e0&&--this._on===0){if(be===this)be=this.prevScope;else{let e=be;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let i,o;for(i=0,o=this.effects.length;i0)return;if(Er){let e=Er;for(Er=void 0;e;){const i=e.next;e.next=void 0,e.flags&=-9,e=i}}let t;for(;Cr;){let e=Cr;for(Cr=void 0;e;){const i=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(o){t||(t=o)}e=i}}if(t)throw t}function Md(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function Id(t){let e,i=t.depsTail,o=i;for(;o;){const r=o.prevDep;o.version===-1?(o===i&&(i=r),vl(o),Xm(o)):e=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=r}t.deps=e,t.depsTail=i}function Fa(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Pd(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function Pd(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Lr)||(t.globalVersion=Lr,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Fa(t))))return;t.flags|=2;const e=t.dep,i=Wt,o=si;Wt=t,si=!0;try{Md(t);const r=t.fn(t._value);(e.version===0||Ee(r,t._value))&&(t.flags|=128,t._value=r,e.version++)}catch(r){throw e.version++,r}finally{Wt=i,si=o,Id(t),t.flags&=-3}}function vl(t,e=!1){const{dep:i,prevSub:o,nextSub:r}=t;if(o&&(o.nextSub=r,t.prevSub=void 0),r&&(r.prevSub=o,t.nextSub=void 0),i.subs===t&&(i.subs=o,!o&&i.computed)){i.computed.flags&=-5;for(let s=i.computed.deps;s;s=s.nextDep)vl(s,!0)}!e&&!--i.sc&&i.map&&i.map.delete(i.key)}function Xm(t){const{prevDep:e,nextDep:i}=t;e&&(e.nextDep=i,t.prevDep=void 0),i&&(i.prevDep=e,t.nextDep=void 0)}let si=!0;const Ld=[];function Di(){Ld.push(si),si=!1}function $i(){const t=Ld.pop();si=t===void 0?!0:t}function Oc(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const i=Wt;Wt=void 0;try{e()}finally{Wt=i}}}let Lr=0;class Ym{constructor(e,i){this.sub=e,this.dep=i,this.version=i.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class _n{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(!Wt||!si||Wt===this.computed)return;let i=this.activeLink;if(i===void 0||i.sub!==Wt)i=this.activeLink=new Ym(Wt,this),Wt.deps?(i.prevDep=Wt.depsTail,Wt.depsTail.nextDep=i,Wt.depsTail=i):Wt.deps=Wt.depsTail=i,Nd(i);else if(i.version===-1&&(i.version=this.version,i.nextDep)){const o=i.nextDep;o.prevDep=i.prevDep,i.prevDep&&(i.prevDep.nextDep=o),i.prevDep=Wt.depsTail,i.nextDep=void 0,Wt.depsTail.nextDep=i,Wt.depsTail=i,Wt.deps===i&&(Wt.deps=o)}return i}trigger(e){this.version++,Lr++,this.notify(e)}notify(e){yl();try{for(let i=this.subs;i;i=i.prevSub)i.sub.notify()&&i.sub.dep.notify()}finally{_l()}}}function Nd(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let o=e.deps;o;o=o.nextDep)Nd(o)}const i=t.dep.subs;i!==t&&(t.prevSub=i,i&&(i.nextSub=t)),t.dep.subs=t}}const Vs=new WeakMap,mo=Symbol(""),Ba=Symbol(""),Nr=Symbol("");function Te(t,e,i){if(si&&Wt){let o=Vs.get(t);o||Vs.set(t,o=new Map);let r=o.get(i);r||(o.set(i,r=new _n),r.map=o,r.key=i),r.track()}}function Mi(t,e,i,o,r,s){const n=Vs.get(t);if(!n){Lr++;return}const a=l=>{l&&l.trigger()};if(yl(),e==="clear")n.forEach(a);else{const l=ct(t),u=l&&gn(i);if(l&&i==="length"){const c=Number(o);n.forEach((d,p)=>{(p==="length"||p===Nr||!Ke(p)&&p>=c)&&a(d)})}else switch((i!==void 0||n.has(void 0))&&a(n.get(i)),u&&a(n.get(Nr)),e){case"add":l?u&&a(n.get("length")):(a(n.get(mo)),Bo(t)&&a(n.get(Ba)));break;case"delete":l||(a(n.get(mo)),Bo(t)&&a(n.get(Ba)));break;case"set":Bo(t)&&a(n.get(mo));break}}_l()}function Jm(t,e){const i=Vs.get(t);return i&&i.get(e)}function ko(t){const e=At(t);return e===t?e:(Te(e,"iterate",Nr),qe(t)?e:e.map(ni))}function vn(t){return Te(t=At(t),"iterate",Nr),t}function _i(t,e){return Fi(t)?Dr(go(t)?ni(e):e):ni(e)}const Zm={__proto__:null,[Symbol.iterator](){return Kn(this,Symbol.iterator,t=>_i(this,t))},concat(...t){return ko(this).concat(...t.map(e=>ct(e)?ko(e):e))},entries(){return Kn(this,"entries",t=>(t[1]=_i(this,t[1]),t))},every(t,e){return Si(this,"every",t,e,void 0,arguments)},filter(t,e){return Si(this,"filter",t,e,i=>i.map(o=>_i(this,o)),arguments)},find(t,e){return Si(this,"find",t,e,i=>_i(this,i),arguments)},findIndex(t,e){return Si(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return Si(this,"findLast",t,e,i=>_i(this,i),arguments)},findLastIndex(t,e){return Si(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return Si(this,"forEach",t,e,void 0,arguments)},includes(...t){return Xn(this,"includes",t)},indexOf(...t){return Xn(this,"indexOf",t)},join(t){return ko(this).join(t)},lastIndexOf(...t){return Xn(this,"lastIndexOf",t)},map(t,e){return Si(this,"map",t,e,void 0,arguments)},pop(){return nr(this,"pop")},push(...t){return nr(this,"push",t)},reduce(t,...e){return kc(this,"reduce",t,e)},reduceRight(t,...e){return kc(this,"reduceRight",t,e)},shift(){return nr(this,"shift")},some(t,e){return Si(this,"some",t,e,void 0,arguments)},splice(...t){return nr(this,"splice",t)},toReversed(){return ko(this).toReversed()},toSorted(t){return ko(this).toSorted(t)},toSpliced(...t){return ko(this).toSpliced(...t)},unshift(...t){return nr(this,"unshift",t)},values(){return Kn(this,"values",t=>_i(this,t))}};function Kn(t,e,i){const o=vn(t),r=o[e]();return o!==t&&!qe(t)&&(r._next=r.next,r.next=()=>{const s=r._next();return s.done||(s.value=i(s.value)),s}),r}const Qm=Array.prototype;function Si(t,e,i,o,r,s){const n=vn(t),a=n!==t&&!qe(t),l=n[e];if(l!==Qm[e]){const d=l.apply(t,s);return a?ni(d):d}let u=i;n!==t&&(a?u=function(d,p){return i.call(this,_i(t,d),p,t)}:i.length>2&&(u=function(d,p){return i.call(this,d,p,t)}));const c=l.call(n,u,o);return a&&r?r(c):c}function kc(t,e,i,o){const r=vn(t),s=r!==t&&!qe(t);let n=i,a=!1;r!==t&&(s?(a=o.length===0,n=function(u,c,d){return a&&(a=!1,u=_i(t,u)),i.call(this,u,_i(t,c),d,t)}):i.length>3&&(n=function(u,c,d){return i.call(this,u,c,d,t)}));const l=r[e](n,...o);return a?_i(t,l):l}function Xn(t,e,i){const o=At(t);Te(o,"iterate",Nr);const r=o[e](...i);return(r===-1||r===!1)&&Jo(i[0])?(i[0]=At(i[0]),o[e](...i)):r}function nr(t,e,i=[]){Di(),yl();const o=At(t)[e].apply(t,i);return _l(),$i(),o}const tg=ml("__proto__,__v_isRef,__isVue"),Dd=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Ke));function eg(t){Ke(t)||(t=String(t));const e=At(this);return Te(e,"has",t),e.hasOwnProperty(t)}class $d{constructor(e=!1,i=!1){this._isReadonly=e,this._isShallow=i}get(e,i,o){if(i==="__v_skip")return e.__v_skip;const r=this._isReadonly,s=this._isShallow;if(i==="__v_isReactive")return!r;if(i==="__v_isReadonly")return r;if(i==="__v_isShallow")return s;if(i==="__v_raw")return o===(r?s?ug:Ud:s?Hd:jd).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(o)?e:void 0;const n=ct(e);if(!r){let l;if(n&&(l=Zm[i]))return l;if(i==="hasOwnProperty")return eg}const a=Reflect.get(e,i,ue(e)?e:o);if((Ke(i)?Dd.has(i):tg(i))||(r||Te(e,"get",i),s))return a;if(ue(a)){const l=n&&gn(i)?a:a.value;return r&&Ft(l)?Ha(l):l}return Ft(a)?r?Ha(a):wn(a):a}}class Fd extends $d{constructor(e=!1){super(!1,e)}set(e,i,o,r){let s=e[i];const n=ct(e)&&gn(i);if(!this._isShallow){const u=Fi(s);if(!qe(o)&&!Fi(o)&&(s=At(s),o=At(o)),!n&&ue(s)&&!ue(o))return u||(s.value=o),!0}const a=n?Number(i)t,ds=t=>Reflect.getPrototypeOf(t);function sg(t,e,i){return function(...o){const r=this.__v_raw,s=At(r),n=Bo(s),a=t==="entries"||t===Symbol.iterator&&n,l=t==="keys"&&n,u=r[t](...o),c=i?ja:e?Dr:ni;return!e&&Te(s,"iterate",l?Ba:mo),ge(Object.create(u),{next(){const{value:d,done:p}=u.next();return p?{value:d,done:p}:{value:a?[c(d[0]),c(d[1])]:c(d),done:p}}})}}function fs(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function ng(t,e){const i={get(o){const r=this.__v_raw,s=At(r),n=At(o);t||(Ee(o,n)&&Te(s,"get",o),Te(s,"get",n));const{has:a}=ds(s),l=e?ja:t?Dr:ni;if(a.call(s,o))return l(r.get(o));if(a.call(s,n))return l(r.get(n));r!==s&&r.get(o)},get size(){const o=this.__v_raw;return!t&&Te(At(o),"iterate",mo),o.size},has(o){const r=this.__v_raw,s=At(r),n=At(o);return t||(Ee(o,n)&&Te(s,"has",o),Te(s,"has",n)),o===n?r.has(o):r.has(o)||r.has(n)},forEach(o,r){const s=this,n=s.__v_raw,a=At(n),l=e?ja:t?Dr:ni;return!t&&Te(a,"iterate",mo),n.forEach((u,c)=>o.call(r,l(u),l(c),s))}};return ge(i,t?{add:fs("add"),set:fs("set"),delete:fs("delete"),clear:fs("clear")}:{add(o){const r=At(this),s=ds(r),n=At(o),a=!e&&!qe(o)&&!Fi(o)?n:o;return s.has.call(r,a)||Ee(o,a)&&s.has.call(r,o)||Ee(n,a)&&s.has.call(r,n)||(r.add(a),Mi(r,"add",a,a)),this},set(o,r){!e&&!qe(r)&&!Fi(r)&&(r=At(r));const s=At(this),{has:n,get:a}=ds(s);let l=n.call(s,o);l||(o=At(o),l=n.call(s,o));const u=a.call(s,o);return s.set(o,r),l?Ee(r,u)&&Mi(s,"set",o,r):Mi(s,"add",o,r),this},delete(o){const r=At(this),{has:s,get:n}=ds(r);let a=s.call(r,o);a||(o=At(o),a=s.call(r,o)),n&&n.call(r,o);const l=r.delete(o);return a&&Mi(r,"delete",o,void 0),l},clear(){const o=At(this),r=o.size!==0,s=o.clear();return r&&Mi(o,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(o=>{i[o]=sg(o,t,e)}),i}function xn(t,e){const i=ng(t,e);return(o,r,s)=>r==="__v_isReactive"?!t:r==="__v_isReadonly"?t:r==="__v_raw"?o:Reflect.get(Dt(i,r)&&r in o?i:o,r,s)}const ag={get:xn(!1,!1)},lg={get:xn(!1,!0)},cg={get:xn(!0,!1)},pk={get:xn(!0,!0)},jd=new WeakMap,Hd=new WeakMap,Ud=new WeakMap,ug=new WeakMap;function hg(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function wn(t){return Fi(t)?t:xl(t,!1,ig,ag,jd)}function dg(t){return xl(t,!1,rg,lg,Hd)}function Ha(t){return xl(t,!0,og,cg,Ud)}function xl(t,e,i,o,r){if(!Ft(t)||t.__v_raw&&!(e&&t.__v_isReactive)||t.__v_skip||!Object.isExtensible(t))return t;const s=r.get(t);if(s)return s;const n=hg(Nm(t));if(n===0)return t;const a=new Proxy(t,n===2?o:i);return r.set(t,a),a}function go(t){return Fi(t)?go(t.__v_raw):!!(t&&t.__v_isReactive)}function Fi(t){return!!(t&&t.__v_isReadonly)}function qe(t){return!!(t&&t.__v_isShallow)}function Jo(t){return t?!!t.__v_raw:!1}function At(t){const e=t&&t.__v_raw;return e?At(e):t}function fg(t){return!Dt(t,"__v_skip")&&Object.isExtensible(t)&&Sd(t,"__v_skip",!0),t}const ni=t=>Ft(t)?wn(t):t,Dr=t=>Ft(t)?Ha(t):t;function ue(t){return t?t.__v_isRef===!0:!1}function Qe(t){return zd(t,!1)}function Sn(t){return zd(t,!0)}function zd(t,e){return ue(t)?t:new pg(t,e)}class pg{constructor(e,i){this.dep=new _n,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=i?e:At(e),this._value=i?e:ni(e),this.__v_isShallow=i}get value(){return this.dep.track(),this._value}set value(e){const i=this._rawValue,o=this.__v_isShallow||qe(e)||Fi(e);e=o?e:At(e),Ee(e,i)&&(this._rawValue=e,this._value=o?e:ni(e),this.dep.trigger())}}function M(t){return ue(t)?t.value:t}function mg(t){return pt(t)?t():M(t)}const gg={get:(t,e,i)=>e==="__v_raw"?t:M(Reflect.get(t,e,i)),set:(t,e,i,o)=>{const r=t[e];return ue(r)&&!ue(i)?(r.value=i,!0):Reflect.set(t,e,i,o)}};function Vd(t){return go(t)?t:new Proxy(t,gg)}class bg{constructor(e){this.__v_isRef=!0,this._value=void 0;const i=this.dep=new _n,{get:o,set:r}=e(i.track.bind(i),i.trigger.bind(i));this._get=o,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function yg(t){return new bg(t)}class _g{constructor(e,i,o){this._object=e,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Ke(i)?i:String(i),this._raw=At(e);let r=!0,s=e;if(!ct(e)||Ke(this._key)||!gn(this._key))do r=!Jo(s)||qe(s);while(r&&(s=s.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=M(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&ue(this._raw[this._key])){const i=this._object[this._key];if(ue(i)){i.value=e;return}}this._object[this._key]=e}get dep(){return Jm(this._raw,this._key)}}class vg{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 ps(t,e,i){return ue(t)?t:pt(t)?new vg(t):Ft(t)&&arguments.length>1?xg(t,e,i):Qe(t)}function xg(t,e,i){return new _g(t,e,i)}class wg{constructor(e,i,o){this.fn=e,this.setter=i,this._value=void 0,this.dep=new _n(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Lr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!i,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&Wt!==this)return Rd(this,!0),!0}get value(){const e=this.dep.track();return Pd(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function Sg(t,e,i=!1){let o,r;return pt(t)?o=t:(o=t.get,r=t.set),new wg(o,r,i)}const ms={},Ws=new WeakMap;let no;function Cg(t,e=!1,i=no){if(i){let o=Ws.get(i);o||Ws.set(i,o=[]),o.push(t)}}function Eg(t,e,i=Rt){const{immediate:o,deep:r,once:s,scheduler:n,augmentJob:a,call:l}=i,u=T=>r?T:qe(T)||r===!1||r===0?Ii(T,1):Ii(T);let c,d,p,g,v=!1,b=!1;if(ue(t)?(d=()=>t.value,v=qe(t)):go(t)?(d=()=>u(t),v=!0):ct(t)?(b=!0,v=t.some(T=>go(T)||qe(T)),d=()=>t.map(T=>{if(ue(T))return T.value;if(go(T))return u(T);if(pt(T))return l?l(T,2):T()})):pt(t)?e?d=l?()=>l(t,2):t:d=()=>{if(p){Di();try{p()}finally{$i()}}const T=no;no=c;try{return l?l(t,3,[g]):t(g)}finally{no=T}}:d=ri,e&&r){const T=d,N=r===!0?1/0:r;d=()=>Ii(T(),N)}const C=Km(),_=()=>{c.stop(),C&&C.active&&gl(C.effects,c)};if(s&&e){const T=e;e=(...N)=>{T(...N),_()}}let k=b?new Array(t.length).fill(ms):ms;const I=T=>{if(!(!(c.flags&1)||!c.dirty&&!T))if(e){const N=c.run();if(r||v||(b?N.some((tt,X)=>Ee(tt,k[X])):Ee(N,k))){p&&p();const tt=no;no=c;try{const X=[N,k===ms?void 0:b&&k[0]===ms?[]:k,g];k=N,l?l(e,3,X):e(...X)}finally{no=tt}}}else c.run()};return a&&a(I),c=new kd(d),c.scheduler=n?()=>n(I,!1):I,g=T=>Cg(T,!1,c),p=c.onStop=()=>{const T=Ws.get(c);if(T){if(l)l(T,4);else for(const N of T)N();Ws.delete(c)}},e?o?I(!0):k=c.run():n?n(I.bind(null,!0),!0):c.run(),_.pause=c.pause.bind(c),_.resume=c.resume.bind(c),_.stop=_,_}function Ii(t,e=1/0,i){if(e<=0||!Ft(t)||t.__v_skip||(i=i||new Map,(i.get(t)||0)>=e))return t;if(i.set(t,e),e--,ue(t))Ii(t.value,e,i);else if(ct(t))for(let o=0;o{Ii(o,e,i)});else if(wd(t)){for(const o in t)Ii(t[o],e,i);for(const o of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,o)&&Ii(t[o],e,i)}return t}function Jr(t,e,i,o){try{return o?t(...o):t()}catch(r){Cn(r,e,i)}}function ai(t,e,i,o){if(pt(t)){const r=Jr(t,e,i,o);return r&&vd(r)&&r.catch(s=>{Cn(s,e,i)}),r}if(ct(t)){const r=[];for(let s=0;s>>1,r=Ne[o],s=$r(r);s=$r(i)?Ne.push(t):Ne.splice(Og(e),0,t),t.flags|=1,Gd()}}function Gd(){qs||(qs=Wd.then(Yd))}function Kd(t){ct(t)?jo.push(...t):zi&&t.id===-1?zi.splice(Do+1,0,t):t.flags&1||(jo.push(t),t.flags|=1),Gd()}function Ac(t,e,i=mi+1){for(;i$r(i)-$r(o));if(jo.length=0,zi){zi.push(...e);return}for(zi=e,Do=0;Dot.id==null?t.flags&2?-1:1/0:t.id;function Yd(t){try{for(mi=0;mi{o._d&&Js(-1);const s=Gs(e);let n;try{n=t(...r)}finally{Gs(s),o._d&&Js(1)}return n};return o._n=!0,o._c=!0,o._d=!0,o}function kg(t,e){if(_e===null)return t;const i=Rn(_e),o=t.dirs||(t.dirs=[]);for(let r=0;r1)return i&&pt(e)?e.call(o&&o.proxy):e}}const Ag=Symbol.for("v-scx"),Rg=()=>Ho(Ag);function Mg(t,e){return Sl(t,null,{flush:"sync"})}function Ni(t,e,i){return Sl(t,e,i)}function Sl(t,e,i=Rt){const{immediate:o,deep:r,flush:s,once:n}=i,a=ge({},i),l=e&&o||!e&&s!=="post";let u;if(jr){if(s==="sync"){const g=Rg();u=g.__watcherHandles||(g.__watcherHandles=[])}else if(!l){const g=()=>{};return g.stop=ri,g.resume=ri,g.pause=ri,g}}const c=ke;a.call=(g,v,b)=>ai(g,c,v,b);let d=!1;s==="post"?a.scheduler=g=>{Be(g,c&&c.suspense)}:s!=="sync"&&(d=!0,a.scheduler=(g,v)=>{v?g():wl(g)}),a.augmentJob=g=>{e&&(g.flags|=4),d&&(g.flags|=2,c&&(g.id=c.uid,g.i=c))};const p=Eg(t,e,a);return jr&&(u?u.push(p):l&&p()),p}function Ig(t,e,i){const o=this.proxy,r=Qt(t)?t.includes(".")?Qd(o,t):()=>o[t]:t.bind(o,o);let s;pt(e)?s=e:(s=e.handler,i=e);const n=Qr(this),a=Sl(r,s.bind(o),i);return n(),a}function Qd(t,e){const i=e.split(".");return()=>{let o=t;for(let r=0;rt.__isTeleport,Yn=Symbol("_leaveCb");function Cl(t,e){t.shapeFlag&6&&t.component?(t.transition=e,Cl(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 Yt(t,e){return pt(t)?ge({name:t.name},e,{setup:t}):t}function tf(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function Rc(t,e){let i;return!!((i=Object.getOwnPropertyDescriptor(t,e))&&!i.configurable)}const Ks=new WeakMap;function Tr(t,e,i,o,r=!1){if(ct(t)){t.forEach((b,C)=>Tr(b,e&&(ct(e)?e[C]:e),i,o,r));return}if(Uo(o)&&!r){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Tr(t,e,i,o.component.subTree);return}const s=o.shapeFlag&4?Rn(o.component):o.el,n=r?null:s,{i:a,r:l}=t,u=e&&e.r,c=a.refs===Rt?a.refs={}:a.refs,d=a.setupState,p=At(d),g=d===Rt?_d:b=>Rc(c,b)?!1:Dt(p,b),v=(b,C)=>!(C&&Rc(c,C));if(u!=null&&u!==l){if(Mc(e),Qt(u))c[u]=null,g(u)&&(d[u]=null);else if(ue(u)){const b=e;v(u,b.k)&&(u.value=null),b.k&&(c[b.k]=null)}}if(pt(l))Jr(l,a,12,[n,c]);else{const b=Qt(l),C=ue(l);if(b||C){const _=()=>{if(t.f){const k=b?g(l)?d[l]:c[l]:v()||!t.k?l.value:c[t.k];if(r)ct(k)&&gl(k,s);else if(ct(k))k.includes(s)||k.push(s);else if(b)c[l]=[s],g(l)&&(d[l]=c[l]);else{const I=[s];v(l,t.k)&&(l.value=I),t.k&&(c[t.k]=I)}}else b?(c[l]=n,g(l)&&(d[l]=n)):C&&(v(l,t.k)&&(l.value=n),t.k&&(c[t.k]=n))};if(n){const k=()=>{_(),Ks.delete(t)};k.id=-1,Ks.set(t,k),Be(k,i)}else Mc(t),_()}}}function Mc(t){const e=Ks.get(t);e&&(e.flags|=8,Ks.delete(t))}zs().requestIdleCallback,zs().cancelIdleCallback;const Uo=t=>!!t.type.__asyncLoader,ef=t=>t.type.__isKeepAlive;function Ng(t,e){of(t,"a",e)}function Dg(t,e){of(t,"da",e)}function of(t,e,i=ke){const o=t.__wdc||(t.__wdc=()=>{let r=i;for(;r;){if(r.isDeactivated)return;r=r.parent}return t()});if(En(e,o,i),i){let r=i.parent;for(;r&&r.parent;)ef(r.parent.vnode)&&$g(o,e,i,r),r=r.parent}}function $g(t,e,i,o){const r=En(e,t,o,!0);Zo(()=>{gl(o[e],r)},i)}function En(t,e,i=ke,o=!1){if(i){const r=i[t]||(i[t]=[]),s=e.__weh||(e.__weh=(...n)=>{Di();const a=Qr(i),l=ai(e,i,t,n);return a(),$i(),l});return o?r.unshift(s):r.push(s),s}}const ji=t=>(e,i=ke)=>{(!jr||t==="sp")&&En(t,(...o)=>e(...o),i)},Fg=ji("bm"),Tn=ji("m"),rf=ji("bu"),Bg=ji("u"),jg=ji("bum"),Zo=ji("um"),Hg=ji("sp"),Ug=ji("rtg"),zg=ji("rtc");function Vg(t,e=ke){En("ec",t,e)}const Wg="components",sf=Symbol.for("v-ndc");function nf(t){return Qt(t)?qg(Wg,t,!1)||t:t||sf}function qg(t,e,i=!0,o=!1){const r=_e||ke;if(r){const s=r.type;{const a=A0(s,!1);if(a&&(a===e||a===Ae(e)||a===yn(Ae(e))))return s}const n=Ic(r[t]||s[t],e)||Ic(r.appContext[t],e);return!n&&o?s:n}}function Ic(t,e){return t&&(t[e]||t[Ae(e)]||t[yn(Ae(e))])}function On(t,e,i,o){let r;const s=i,n=ct(t);if(n||Qt(t)){const a=n&&go(t);let l=!1,u=!1;a&&(l=!qe(t),u=Fi(t),t=vn(t)),r=new Array(t.length);for(let c=0,d=t.length;ce(a,l,void 0,s));else{const a=Object.keys(t);r=new Array(a.length);for(let l=0,u=a.length;l{const s=o.fn(...r);return s&&(s.key=o.key),s}:o.fn)}return t}function Ge(t,e,i={},o,r){if(_e.ce||_e.parent&&Uo(_e.parent)&&_e.parent.ce){const u=Object.keys(i).length>0;return e!=="default"&&(i.name=e),H(),le(St,null,[at("slot",i,o&&o())],u?-2:64)}let s=t[e];s&&s._c&&(s._d=!1),H();const n=s&&af(s(i)),a=i.key||n&&n.key,l=le(St,{key:(a&&!Ke(a)?a:`_${e}`)+(!n&&o?"_fb":"")},n||(o?o():[]),n&&t._===1?64:-2);return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),s&&s._c&&(s._d=!0),l}function af(t){return t.some(e=>Br(e)?!(e.type===Bi||e.type===St&&!af(e.children)):!0)?t:null}const Ua=t=>t?Af(t)?Rn(t):Ua(t.parent):null,Or=ge(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=>Ua(t.parent),$root:t=>Ua(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>uf(t),$forceUpdate:t=>t.f||(t.f=()=>{wl(t.update)}),$nextTick:t=>t.n||(t.n=qd.bind(t.proxy)),$watch:t=>Ig.bind(t)}),Jn=(t,e)=>t!==Rt&&!t.__isScriptSetup&&Dt(t,e),Gg={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:i,setupState:o,data:r,props:s,accessCache:n,type:a,appContext:l}=t;if(e[0]!=="$"){const p=n[e];if(p!==void 0)switch(p){case 1:return o[e];case 2:return r[e];case 4:return i[e];case 3:return s[e]}else{if(Jn(o,e))return n[e]=1,o[e];if(r!==Rt&&Dt(r,e))return n[e]=2,r[e];if(Dt(s,e))return n[e]=3,s[e];if(i!==Rt&&Dt(i,e))return n[e]=4,i[e];za&&(n[e]=0)}}const u=Or[e];let c,d;if(u)return e==="$attrs"&&Te(t.attrs,"get",""),u(t);if((c=a.__cssModules)&&(c=c[e]))return c;if(i!==Rt&&Dt(i,e))return n[e]=4,i[e];if(d=l.config.globalProperties,Dt(d,e))return d[e]},set({_:t},e,i){const{data:o,setupState:r,ctx:s}=t;return Jn(r,e)?(r[e]=i,!0):o!==Rt&&Dt(o,e)?(o[e]=i,!0):Dt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(s[e]=i,!0)},has({_:{data:t,setupState:e,accessCache:i,ctx:o,appContext:r,props:s,type:n}},a){let l;return!!(i[a]||t!==Rt&&a[0]!=="$"&&Dt(t,a)||Jn(e,a)||Dt(s,a)||Dt(o,a)||Dt(Or,a)||Dt(r.config.globalProperties,a)||(l=n.__cssModules)&&l[a])},defineProperty(t,e,i){return i.get!=null?t._.accessCache[e]=0:Dt(i,"value")&&this.set(t,e,i.value,null),Reflect.defineProperty(t,e,i)}};function lf(){return Kg().slots}function Kg(t){const e=Zr();return e.setupContext||(e.setupContext=Mf(e))}function Xs(t){return ct(t)?t.reduce((e,i)=>(e[i]=null,e),{}):t}function Pc(t,e){return!t||!e?t||e:ct(t)&&ct(e)?t.concat(e):ge({},Xs(t),Xs(e))}let za=!0;function Xg(t){const e=uf(t),i=t.proxy,o=t.ctx;za=!1,e.beforeCreate&&Lc(e.beforeCreate,t,"bc");const{data:r,computed:s,methods:n,watch:a,provide:l,inject:u,created:c,beforeMount:d,mounted:p,beforeUpdate:g,updated:v,activated:b,deactivated:C,beforeDestroy:_,beforeUnmount:k,destroyed:I,unmounted:T,render:N,renderTracked:tt,renderTriggered:X,errorCaptured:Y,serverPrefetch:mt,expose:nt,inheritAttrs:gt,components:Et,directives:zt,filters:Nt}=e;if(u&&Yg(u,o,null),n)for(const rt in n){const ut=n[rt];pt(ut)&&(o[rt]=ut.bind(i))}if(r){const rt=r.call(i,i);Ft(rt)&&(t.data=wn(rt))}if(za=!0,s)for(const rt in s){const ut=s[rt],Bt=pt(ut)?ut.bind(i,i):pt(ut.get)?ut.get.bind(i,i):ri,Vt=!pt(ut)&&pt(ut.set)?ut.set.bind(i):ri,Gt=se({get:Bt,set:Vt});Object.defineProperty(o,rt,{enumerable:!0,configurable:!0,get:()=>Gt.value,set:Mt=>Gt.value=Mt})}if(a)for(const rt in a)cf(a[rt],o,i,rt);if(l){const rt=pt(l)?l.call(i):l;Reflect.ownKeys(rt).forEach(ut=>{Zd(ut,rt[ut])})}c&&Lc(c,t,"c");function it(rt,ut){ct(ut)?ut.forEach(Bt=>rt(Bt.bind(i))):ut&&rt(ut.bind(i))}if(it(Fg,d),it(Tn,p),it(rf,g),it(Bg,v),it(Ng,b),it(Dg,C),it(Vg,Y),it(zg,tt),it(Ug,X),it(jg,k),it(Zo,T),it(Hg,mt),ct(nt))if(nt.length){const rt=t.exposed||(t.exposed={});nt.forEach(ut=>{Object.defineProperty(rt,ut,{get:()=>i[ut],set:Bt=>i[ut]=Bt,enumerable:!0})})}else t.exposed||(t.exposed={});N&&t.render===ri&&(t.render=N),gt!=null&&(t.inheritAttrs=gt),Et&&(t.components=Et),zt&&(t.directives=zt),mt&&tf(t)}function Yg(t,e,i=ri){ct(t)&&(t=Va(t));for(const o in t){const r=t[o];let s;Ft(r)?"default"in r?s=Ho(r.from||o,r.default,!0):s=Ho(r.from||o):s=Ho(r),ue(s)?Object.defineProperty(e,o,{enumerable:!0,configurable:!0,get:()=>s.value,set:n=>s.value=n}):e[o]=s}}function Lc(t,e,i){ai(ct(t)?t.map(o=>o.bind(e.proxy)):t.bind(e.proxy),e,i)}function cf(t,e,i,o){let r=o.includes(".")?Qd(i,o):()=>i[o];if(Qt(t)){const s=e[t];pt(s)&&Ni(r,s)}else if(pt(t))Ni(r,t.bind(i));else if(Ft(t))if(ct(t))t.forEach(s=>cf(s,e,i,o));else{const s=pt(t.handler)?t.handler.bind(i):e[t.handler];pt(s)&&Ni(r,s,t)}}function uf(t){const e=t.type,{mixins:i,extends:o}=e,{mixins:r,optionsCache:s,config:{optionMergeStrategies:n}}=t.appContext,a=s.get(e);let l;return a?l=a:!r.length&&!i&&!o?l=e:(l={},r.length&&r.forEach(u=>Ys(l,u,n,!0)),Ys(l,e,n)),Ft(e)&&s.set(e,l),l}function Ys(t,e,i,o=!1){const{mixins:r,extends:s}=e;s&&Ys(t,s,i,!0),r&&r.forEach(n=>Ys(t,n,i,!0));for(const n in e)if(!(o&&n==="expose")){const a=Jg[n]||i&&i[n];t[n]=a?a(t[n],e[n]):e[n]}return t}const Jg={data:Nc,props:Dc,emits:Dc,methods:br,computed:br,beforeCreate:Le,created:Le,beforeMount:Le,mounted:Le,beforeUpdate:Le,updated:Le,beforeDestroy:Le,beforeUnmount:Le,destroyed:Le,unmounted:Le,activated:Le,deactivated:Le,errorCaptured:Le,serverPrefetch:Le,components:br,directives:br,watch:Qg,provide:Nc,inject:Zg};function Nc(t,e){return e?t?function(){return ge(pt(t)?t.call(this,this):t,pt(e)?e.call(this,this):e)}:e:t}function Zg(t,e){return br(Va(t),Va(e))}function Va(t){if(ct(t)){const e={};for(let i=0;i{let c,d=Rt,p;return Mg(()=>{const g=t[r];Ee(c,g)&&(c=g,u())}),{get(){return l(),i.get?i.get(c):c},set(g){const v=i.set?i.set(g):g;if(!Ee(v,c)&&!(d!==Rt&&Ee(g,d)))return;const b=o.vnode.props;b&&(e in b||r in b||s in b)&&(`onUpdate:${e}`in b||`onUpdate:${r}`in b||`onUpdate:${s}`in b)||(c=g,u()),o.emit(`update:${e}`,v),Ee(g,v)&&Ee(g,d)&&!Ee(v,p)&&u(),d=g,p=v}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?n||Rt:a,done:!1}:{done:!0}}}},a}const df=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ae(e)}Modifiers`]||t[`${Ji(e)}Modifiers`];function o0(t,e,...i){if(t.isUnmounted)return;const o=t.vnode.props||Rt;let r=i;const s=e.startsWith("update:"),n=s&&df(o,e.slice(7));n&&(n.trim&&(r=i.map(c=>Qt(c)?c.trim():c)),n.number&&(r=i.map(Fm)));let a,l=o[a=Wn(e)]||o[a=Wn(Ae(e))];!l&&s&&(l=o[a=Wn(Ji(e))]),l&&ai(l,t,6,r);const u=o[a+"Once"];if(u){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,ai(u,t,6,r)}}const r0=new WeakMap;function ff(t,e,i=!1){const o=i?r0:e.emitsCache,r=o.get(t);if(r!==void 0)return r;const s=t.emits;let n={},a=!1;if(!pt(t)){const l=u=>{const c=ff(u,e,!0);c&&(a=!0,ge(n,c))};!i&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!s&&!a?(Ft(t)&&o.set(t,null),null):(ct(s)?s.forEach(l=>n[l]=null):ge(n,s),Ft(t)&&o.set(t,n),n)}function kn(t,e){return!t||!fn(e)?!1:(e=e.slice(2).replace(/Once$/,""),Dt(t,e[0].toLowerCase()+e.slice(1))||Dt(t,Ji(e))||Dt(t,e))}function $c(t){const{type:e,vnode:i,proxy:o,withProxy:r,propsOptions:[s],slots:n,attrs:a,emit:l,render:u,renderCache:c,props:d,data:p,setupState:g,ctx:v,inheritAttrs:b}=t,C=Gs(t);let _,k;try{if(i.shapeFlag&4){const T=r||o,N=T;_=vi(u.call(N,T,c,d,g,p,v)),k=a}else{const T=e;_=vi(T.length>1?T(d,{attrs:a,slots:n,emit:l}):T(d,null)),k=e.props?a:s0(a)}}catch(T){kr.length=0,Cn(T,t,1),_=at(Bi)}let I=_;if(k&&b!==!1){const T=Object.keys(k),{shapeFlag:N}=I;T.length&&N&7&&(s&&T.some(pn)&&(k=n0(k,s)),I=Wo(I,k,!1,!0))}return i.dirs&&(I=Wo(I,null,!1,!0),I.dirs=I.dirs?I.dirs.concat(i.dirs):i.dirs),i.transition&&Cl(I,i.transition),_=I,Gs(C),_}const s0=t=>{let e;for(const i in t)(i==="class"||i==="style"||fn(i))&&((e||(e={}))[i]=t[i]);return e},n0=(t,e)=>{const i={};for(const o in t)(!pn(o)||!(o.slice(9)in e))&&(i[o]=t[o]);return i};function a0(t,e,i){const{props:o,children:r,component:s}=t,{props:n,children:a,patchFlag:l}=e,u=s.emitsOptions;if(e.dirs||e.transition)return!0;if(i&&l>=0){if(l&1024)return!0;if(l&16)return o?Fc(o,n,u):!!n;if(l&8){const c=e.dynamicProps;for(let d=0;dObject.create(mf),bf=t=>Object.getPrototypeOf(t)===mf;function c0(t,e,i,o=!1){const r={},s=gf();t.propsDefaults=Object.create(null),yf(t,e,r,s);for(const n in t.propsOptions[0])n in r||(r[n]=void 0);i?t.props=o?r:dg(r):t.type.props?t.props=r:t.props=s,t.attrs=s}function u0(t,e,i,o){const{props:r,attrs:s,vnode:{patchFlag:n}}=t,a=At(r),[l]=t.propsOptions;let u=!1;if((o||n>0)&&!(n&16)){if(n&8){const c=t.vnode.dynamicProps;for(let d=0;d{l=!0;const[p,g]=_f(d,e,!0);ge(n,p),g&&a.push(...g)};!i&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}if(!s&&!l)return Ft(t)&&o.set(t,Fo),Fo;if(ct(s))for(let c=0;ct==="_"||t==="_ctx"||t==="$stable",Ol=t=>ct(t)?t.map(vi):[vi(t)],d0=(t,e,i)=>{if(e._n)return e;const o=Oe((...r)=>Ol(e(...r)),i);return o._c=!1,o},vf=(t,e,i)=>{const o=t._ctx;for(const r in t){if(Tl(r))continue;const s=t[r];if(pt(s))e[r]=d0(r,s,o);else if(s!=null){const n=Ol(s);e[r]=()=>n}}},xf=(t,e)=>{const i=Ol(e);t.slots.default=()=>i},wf=(t,e,i)=>{for(const o in e)(i||!Tl(o))&&(t[o]=e[o])},f0=(t,e,i)=>{const o=t.slots=gf();if(t.vnode.shapeFlag&32){const r=e._;r?(wf(o,e,i),i&&Sd(o,"_",r,!0)):vf(e,o)}else e&&xf(t,e)},p0=(t,e,i)=>{const{vnode:o,slots:r}=t;let s=!0,n=Rt;if(o.shapeFlag&32){const a=e._;a?i&&a===1?s=!1:wf(r,e,i):(s=!e.$stable,vf(e,r)),n=e}else e&&(xf(t,e),n={default:1});if(s)for(const a in r)!Tl(a)&&n[a]==null&&delete r[a]},Be=_0;function m0(t){return g0(t)}function g0(t,e){const i=zs();i.__VUE__=!0;const{insert:o,remove:r,patchProp:s,createElement:n,createText:a,createComment:l,setText:u,setElementText:c,parentNode:d,nextSibling:p,setScopeId:g=ri,insertStaticContent:v}=t,b=(w,S,D,F=null,B=null,R=null,V=void 0,q=null,z=!!S.dynamicChildren)=>{if(w===S)return;w&&!ar(w,S)&&(F=te(w),ht(w,B,R,!0),w=null),S.patchFlag===-2&&(z=!1,S.dynamicChildren=null);const{type:U,ref:et,shapeFlag:J}=S;switch(U){case An:C(w,S,D,F);break;case Bi:_(w,S,D,F);break;case Ps:w==null&&k(S,D,F,V);break;case St:Et(w,S,D,F,B,R,V,q,z);break;default:J&1?N(w,S,D,F,B,R,V,q,z):J&6?zt(w,S,D,F,B,R,V,q,z):(J&64||J&128)&&U.process(w,S,D,F,B,R,V,q,z,ei)}et!=null&&B?Tr(et,w&&w.ref,R,S||w,!S):et==null&&w&&w.ref!=null&&Tr(w.ref,null,R,w,!0)},C=(w,S,D,F)=>{if(w==null)o(S.el=a(S.children),D,F);else{const B=S.el=w.el;S.children!==w.children&&u(B,S.children)}},_=(w,S,D,F)=>{w==null?o(S.el=l(S.children||""),D,F):S.el=w.el},k=(w,S,D,F)=>{[w.el,w.anchor]=v(w.children,S,D,F,w.el,w.anchor)},I=({el:w,anchor:S},D,F)=>{let B;for(;w&&w!==S;)B=p(w),o(w,D,F),w=B;o(S,D,F)},T=({el:w,anchor:S})=>{let D;for(;w&&w!==S;)D=p(w),r(w),w=D;r(S)},N=(w,S,D,F,B,R,V,q,z)=>{if(S.type==="svg"?V="svg":S.type==="math"&&(V="mathml"),w==null)tt(S,D,F,B,R,V,q,z);else{const U=w.el&&w.el._isVueCE?w.el:null;try{U&&U._beginPatch(),mt(w,S,B,R,V,q,z)}finally{U&&U._endPatch()}}},tt=(w,S,D,F,B,R,V,q)=>{let z,U;const{props:et,shapeFlag:J,transition:st,dirs:ot}=w;if(z=w.el=n(w.type,R,et&&et.is,et),J&8?c(z,w.children):J&16&&Y(w.children,z,null,F,B,Zn(w,R),V,q),ot&&to(w,null,F,"created"),X(z,w,w.scopeId,V,F),et){for(const yt in et)yt!=="value"&&!Sr(yt)&&s(z,yt,null,et[yt],R,F);"value"in et&&s(z,"value",null,et.value,R),(U=et.onVnodeBeforeMount)&&di(U,F,w)}ot&&to(w,null,F,"beforeMount");const lt=b0(B,st);lt&&st.beforeEnter(z),o(z,S,D),((U=et&&et.onVnodeMounted)||lt||ot)&&Be(()=>{U&&di(U,F,w),lt&&st.enter(z),ot&&to(w,null,F,"mounted")},B)},X=(w,S,D,F,B)=>{if(D&&g(w,D),F)for(let R=0;R{for(let U=z;U{const q=S.el=w.el;let{patchFlag:z,dynamicChildren:U,dirs:et}=S;z|=w.patchFlag&16;const J=w.props||Rt,st=S.props||Rt;let ot;if(D&&eo(D,!1),(ot=st.onVnodeBeforeUpdate)&&di(ot,D,S,w),et&&to(S,w,D,"beforeUpdate"),D&&eo(D,!0),(J.innerHTML&&st.innerHTML==null||J.textContent&&st.textContent==null)&&c(q,""),U?nt(w.dynamicChildren,U,q,D,F,Zn(S,B),R):V||Bt(w,S,q,null,D,F,Zn(S,B),R,!1),z>0){if(z&16)gt(q,J,st,D,B);else if(z&2&&J.class!==st.class&&s(q,"class",null,st.class,B),z&4&&s(q,"style",J.style,st.style,B),z&8){const lt=S.dynamicProps;for(let yt=0;yt{ot&&di(ot,D,S,w),et&&to(S,w,D,"updated")},F)},nt=(w,S,D,F,B,R,V)=>{for(let q=0;q{if(S!==D){if(S!==Rt)for(const R in S)!Sr(R)&&!(R in D)&&s(w,R,S[R],null,B,F);for(const R in D){if(Sr(R))continue;const V=D[R],q=S[R];V!==q&&R!=="value"&&s(w,R,q,V,B,F)}"value"in D&&s(w,"value",S.value,D.value,B)}},Et=(w,S,D,F,B,R,V,q,z)=>{const U=S.el=w?w.el:a(""),et=S.anchor=w?w.anchor:a("");let{patchFlag:J,dynamicChildren:st,slotScopeIds:ot}=S;ot&&(q=q?q.concat(ot):ot),w==null?(o(U,D,F),o(et,D,F),Y(S.children||[],D,et,B,R,V,q,z)):J>0&&J&64&&st&&w.dynamicChildren&&w.dynamicChildren.length===st.length?(nt(w.dynamicChildren,st,D,B,R,V,q),(S.key!=null||B&&S===B.subTree)&&Sf(w,S,!0)):Bt(w,S,D,et,B,R,V,q,z)},zt=(w,S,D,F,B,R,V,q,z)=>{S.slotScopeIds=q,w==null?S.shapeFlag&512?B.ctx.activate(S,D,F,V,z):Nt(S,D,F,B,R,V,z):it(w,S,z)},Nt=(w,S,D,F,B,R,V)=>{const q=w.component=E0(w,F,B);if(ef(w)&&(q.ctx.renderer=ei),T0(q,!1,V),q.asyncDep){if(B&&B.registerDep(q,rt,V),!w.el){const z=q.subTree=at(Bi);_(null,z,S,D),w.placeholder=z.el}}else rt(q,w,S,D,B,R,V)},it=(w,S,D)=>{const F=S.component=w.component;if(a0(w,S,D))if(F.asyncDep&&!F.asyncResolved){ut(F,S,D);return}else F.next=S,F.update();else S.el=w.el,F.vnode=S},rt=(w,S,D,F,B,R,V)=>{const q=()=>{if(w.isMounted){let{next:J,bu:st,u:ot,parent:lt,vnode:yt}=w;{const f=Cf(w);if(f){J&&(J.el=yt.el,ut(w,J,V)),f.asyncDep.then(()=>{Be(()=>{w.isUnmounted||U()},B)});return}}let It=J,Ot;eo(w,!1),J?(J.el=yt.el,ut(w,J,V)):J=yt,st&&Is(st),(Ot=J.props&&J.props.onVnodeBeforeUpdate)&&di(Ot,lt,J,yt),eo(w,!0);const Kt=$c(w),h=w.subTree;w.subTree=Kt,b(h,Kt,d(h.el),te(h),w,B,R),J.el=Kt.el,It===null&&l0(w,Kt.el),ot&&Be(ot,B),(Ot=J.props&&J.props.onVnodeUpdated)&&Be(()=>di(Ot,lt,J,yt),B)}else{let J;const{el:st,props:ot}=S,{bm:lt,m:yt,parent:It,root:Ot,type:Kt}=w,h=Uo(S);eo(w,!1),lt&&Is(lt),!h&&(J=ot&&ot.onVnodeBeforeMount)&&di(J,It,S),eo(w,!0);{Ot.ce&&Ot.ce._hasShadowRoot()&&Ot.ce._injectChildStyle(Kt,w.parent?w.parent.type:void 0);const f=w.subTree=$c(w);b(null,f,D,F,w,B,R),S.el=f.el}if(yt&&Be(yt,B),!h&&(J=ot&&ot.onVnodeMounted)){const f=S;Be(()=>di(J,It,f),B)}(S.shapeFlag&256||It&&Uo(It.vnode)&&It.vnode.shapeFlag&256)&&w.a&&Be(w.a,B),w.isMounted=!0,S=D=F=null}};w.scope.on();const z=w.effect=new kd(q);w.scope.off();const U=w.update=z.run.bind(z),et=w.job=z.runIfDirty.bind(z);et.i=w,et.id=w.uid,z.scheduler=()=>wl(et),eo(w,!0),U()},ut=(w,S,D)=>{S.component=w;const F=w.vnode.props;w.vnode=S,w.next=null,u0(w,S.props,F,D),p0(w,S.children,D),Di(),Ac(w),$i()},Bt=(w,S,D,F,B,R,V,q,z=!1)=>{const U=w&&w.children,et=w?w.shapeFlag:0,J=S.children,{patchFlag:st,shapeFlag:ot}=S;if(st>0){if(st&128){Gt(U,J,D,F,B,R,V,q,z);return}else if(st&256){Vt(U,J,D,F,B,R,V,q,z);return}}ot&8?(et&16&&ft(U,B,R),J!==U&&c(D,J)):et&16?ot&16?Gt(U,J,D,F,B,R,V,q,z):ft(U,B,R,!0):(et&8&&c(D,""),ot&16&&Y(J,D,F,B,R,V,q,z))},Vt=(w,S,D,F,B,R,V,q,z)=>{w=w||Fo,S=S||Fo;const U=w.length,et=S.length,J=Math.min(U,et);let st;for(st=0;stet?ft(w,B,R,!0,!1,J):Y(S,D,F,B,R,V,q,z,J)},Gt=(w,S,D,F,B,R,V,q,z)=>{let U=0;const et=S.length;let J=w.length-1,st=et-1;for(;U<=J&&U<=st;){const ot=w[U],lt=S[U]=z?Ai(S[U]):vi(S[U]);if(ar(ot,lt))b(ot,lt,D,null,B,R,V,q,z);else break;U++}for(;U<=J&&U<=st;){const ot=w[J],lt=S[st]=z?Ai(S[st]):vi(S[st]);if(ar(ot,lt))b(ot,lt,D,null,B,R,V,q,z);else break;J--,st--}if(U>J){if(U<=st){const ot=st+1,lt=otst)for(;U<=J;)ht(w[U],B,R,!0),U++;else{const ot=U,lt=U,yt=new Map;for(U=lt;U<=st;U++){const A=S[U]=z?Ai(S[U]):vi(S[U]);A.key!=null&&yt.set(A.key,U)}let It,Ot=0;const Kt=st-lt+1;let h=!1,f=0;const m=new Array(Kt);for(U=0;U=Kt){ht(A,B,R,!0);continue}let $;if(A.key!=null)$=yt.get(A.key);else for(It=lt;It<=st;It++)if(m[It-lt]===0&&ar(A,S[It])){$=It;break}$===void 0?ht(A,B,R,!0):(m[$-lt]=U+1,$>=f?f=$:h=!0,b(A,S[$],D,null,B,R,V,q,z),Ot++)}const E=h?y0(m):Fo;for(It=E.length-1,U=Kt-1;U>=0;U--){const A=lt+U,$=S[A],K=S[A+1],Pt=A+1{const{el:R,type:V,transition:q,children:z,shapeFlag:U}=w;if(U&6){Mt(w.component.subTree,S,D,F);return}if(U&128){w.suspense.move(S,D,F);return}if(U&64){V.move(w,S,D,ei);return}if(V===St){o(R,S,D);for(let et=0;etq.enter(R),B));else{const{leave:et,delayLeave:J,afterLeave:st}=q,ot=()=>{w.ctx.isUnmounted?r(R):o(R,S,D)},lt=()=>{const yt=R._isLeaving||!!R[Yn];R._isLeaving&&R[Yn](!0),q.persisted&&!yt?ot():et(R,()=>{ot(),st&&st()})};J?J(R,ot,lt):lt()}else o(R,S,D)},ht=(w,S,D,F=!1,B=!1)=>{const{type:R,props:V,ref:q,children:z,dynamicChildren:U,shapeFlag:et,patchFlag:J,dirs:st,cacheIndex:ot,memo:lt}=w;if(J===-2&&(B=!1),q!=null&&(Di(),Tr(q,null,D,w,!0),$i()),ot!=null&&(S.renderCache[ot]=void 0),et&256){S.ctx.deactivate(w);return}const yt=et&1&&st,It=!Uo(w);let Ot;if(It&&(Ot=V&&V.onVnodeBeforeUnmount)&&di(Ot,S,w),et&6)Ht(w.component,D,F);else{if(et&128){w.suspense.unmount(D,F);return}yt&&to(w,null,S,"beforeUnmount"),et&64?w.type.remove(w,S,D,ei,F):U&&!U.hasOnce&&(R!==St||J>0&&J&64)?ft(U,S,D,!1,!0):(R===St&&J&384||!B&&et&16)&&ft(z,S,D),F&&de(w)}const Kt=lt!=null&&ot==null;(It&&(Ot=V&&V.onVnodeUnmounted)||yt||Kt)&&Be(()=>{Ot&&di(Ot,S,w),yt&&to(w,null,S,"unmounted"),Kt&&(w.el=null)},D)},de=w=>{const{type:S,el:D,anchor:F,transition:B}=w;if(S===St){vt(D,F);return}if(S===Ps){T(w);return}const R=()=>{r(D),B&&!B.persisted&&B.afterLeave&&B.afterLeave()};if(w.shapeFlag&1&&B&&!B.persisted){const{leave:V,delayLeave:q}=B,z=()=>V(D,R);q?q(w.el,R,z):z()}else R()},vt=(w,S)=>{let D;for(;w!==S;)D=p(w),r(w),w=D;r(S)},Ht=(w,S,D)=>{const{bum:F,scope:B,job:R,subTree:V,um:q,m:z,a:U}=w;jc(z),jc(U),F&&Is(F),B.stop(),R&&(R.flags|=8,ht(V,w,S,D)),q&&Be(q,S),Be(()=>{w.isUnmounted=!0},S)},ft=(w,S,D,F=!1,B=!1,R=0)=>{for(let V=R;V{if(w.shapeFlag&6)return te(w.component.subTree);if(w.shapeFlag&128)return w.suspense.next();const S=p(w.anchor||w.el),D=S&&S[Pg];return D?p(D):S};let Ue=!1;const ti=(w,S,D)=>{let F;w==null?S._vnode&&(ht(S._vnode,null,null,!0),F=S._vnode.component):b(S._vnode||null,w,S,null,null,null,D),S._vnode=w,Ue||(Ue=!0,Ac(F),Xd(),Ue=!1)},ei={p:b,um:ht,m:Mt,r:de,mt:Nt,mc:Y,pc:Bt,pbc:nt,n:te,o:t};return{render:ti,hydrate:void 0,createApp:e0(ti)}}function Zn({type:t,props:e},i){return i==="svg"&&t==="foreignObject"||i==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:i}function eo({effect:t,job:e},i){i?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function b0(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function Sf(t,e,i=!1){const o=t.children,r=e.children;if(ct(o)&&ct(r))for(let s=0;s>1,t[i[a]]0&&(e[o]=i[s-1]),i[s]=o)}}for(s=i.length,n=i[s-1];s-- >0;)i[s]=n,n=e[n];return i}function Cf(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Cf(e)}function jc(t){if(t)for(let e=0;et.__isSuspense;function _0(t,e){e&&e.pendingBranch?ct(t)?e.effects.push(...t):e.effects.push(t):Kd(t)}const St=Symbol.for("v-fgt"),An=Symbol.for("v-txt"),Bi=Symbol.for("v-cmt"),Ps=Symbol.for("v-stc"),kr=[];let We=null;function H(t=!1){kr.push(We=t?null:[])}function v0(){kr.pop(),We=kr[kr.length-1]||null}let Fr=1;function Js(t,e=!1){Fr+=t,t<0&&We&&e&&(We.hasOnce=!0)}function Of(t){return t.dynamicChildren=Fr>0?We||Fo:null,v0(),Fr>0&&We&&We.push(t),t}function G(t,e,i,o,r,s){return Of(x(t,e,i,o,r,s,!0))}function le(t,e,i,o,r){return Of(at(t,e,i,o,r,!0))}function Br(t){return t?t.__v_isVNode===!0:!1}function ar(t,e){return t.type===e.type&&t.key===e.key}const kf=({key:t})=>t??null,Ls=({ref:t,ref_key:e,ref_for:i})=>(typeof t=="number"&&(t=""+t),t!=null?Qt(t)||ue(t)||pt(t)?{i:_e,r:t,k:e,f:!!i}:t:null);function x(t,e=null,i=null,o=0,r=null,s=t===St?0:1,n=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&kf(e),ref:e&&Ls(e),scopeId:Jd,slotScopeIds:null,children:i,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:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:_e};return a?(kl(l,i),s&128&&t.normalize(l)):i&&(l.shapeFlag|=Qt(i)?8:16),Fr>0&&!n&&We&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&We.push(l),l}const at=x0;function x0(t,e=null,i=null,o=0,r=null,s=!1){if((!t||t===sf)&&(t=Bi),Br(t)){const a=Wo(t,e,!0);return i&&kl(a,i),Fr>0&&!s&&We&&(a.shapeFlag&6?We[We.indexOf(t)]=a:We.push(a)),a.patchFlag=-2,a}if(R0(t)&&(t=t.__vccOpts),e){e=w0(e);let{class:a,style:l}=e;a&&!Qt(a)&&(e.class=De(a)),Ft(l)&&(Jo(l)&&!ct(l)&&(l=ge({},l)),e.style=bl(l))}const n=Qt(t)?1:Tf(t)?128:Lg(t)?64:Ft(t)?4:pt(t)?2:0;return x(t,e,i,o,r,n,s,!0)}function w0(t){return t?Jo(t)||bf(t)?ge({},t):t:null}function Wo(t,e,i=!1,o=!1){const{props:r,ref:s,patchFlag:n,children:a,transition:l}=t,u=e?Ie(r||{},e):r,c={__v_isVNode:!0,__v_skip:!0,type:t.type,props:u,key:u&&kf(u),ref:e&&e.ref?i&&s?ct(s)?s.concat(Ls(e)):[s,Ls(e)]:Ls(e):s,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!==St?n===-1?16:n|16:n,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Wo(t.ssContent),ssFallback:t.ssFallback&&Wo(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&o&&Cl(c,l.clone(c)),c}function bt(t=" ",e=0){return at(An,null,t,e)}function Ct(t="",e=!1){return e?(H(),le(Bi,null,t)):at(Bi,null,t)}function vi(t){return t==null||typeof t=="boolean"?at(Bi):ct(t)?at(St,null,t.slice()):Br(t)?Ai(t):at(An,null,String(t))}function Ai(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Wo(t)}function kl(t,e){let i=0;const{shapeFlag:o}=t;if(e==null)e=null;else if(ct(e))i=16;else if(typeof e=="object")if(o&65){const r=e.default;r&&(r._c&&(r._d=!1),kl(t,r()),r._c&&(r._d=!0));return}else{i=32;const r=e._;!r&&!bf(e)?e._ctx=_e:r===3&&_e&&(_e.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else pt(e)?(e={default:e,_ctx:_e},i=32):(e=String(e),o&64?(i=16,e=[bt(e)]):i=8);t.children=e,t.shapeFlag|=i}function Ie(...t){const e={};for(let i=0;ike||_e;let Zs,qa;{const t=zs(),e=(i,o)=>{let r;return(r=t[i])||(r=t[i]=[]),r.push(o),s=>{r.length>1?r.forEach(n=>n(s)):r[0](s)}};Zs=e("__VUE_INSTANCE_SETTERS__",i=>ke=i),qa=e("__VUE_SSR_SETTERS__",i=>jr=i)}const Qr=t=>{const e=ke;return Zs(t),t.scope.on(),()=>{t.scope.off(),Zs(e)}},Hc=()=>{ke&&ke.scope.off(),Zs(null)};function Af(t){return t.vnode.shapeFlag&4}let jr=!1;function T0(t,e=!1,i=!1){e&&qa(e);const{props:o,children:r}=t.vnode,s=Af(t);c0(t,o,s,e),f0(t,r,i||e);const n=s?O0(t,e):void 0;return e&&qa(!1),n}function O0(t,e){const i=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,Gg);const{setup:o}=i;if(o){Di();const r=t.setupContext=o.length>1?Mf(t):null,s=Qr(t),n=Jr(o,t,0,[t.props,r]),a=vd(n);if($i(),s(),(a||t.sp)&&!Uo(t)&&tf(t),a){if(n.then(Hc,Hc),e)return n.then(l=>{Uc(t,l)}).catch(l=>{Cn(l,t,0)});t.asyncDep=n}else Uc(t,n)}else Rf(t)}function Uc(t,e,i){pt(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Ft(e)&&(t.setupState=Vd(e)),Rf(t)}function Rf(t,e,i){const o=t.type;t.render||(t.render=o.render||ri);{const r=Qr(t);Di();try{Xg(t)}finally{$i(),r()}}}const k0={get(t,e){return Te(t,"get",""),t[e]}};function Mf(t){const e=i=>{t.exposed=i||{}};return{attrs:new Proxy(t.attrs,k0),slots:t.slots,emit:t.emit,expose:e}}function Rn(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Vd(fg(t.exposed)),{get(e,i){if(i in e)return e[i];if(i in Or)return Or[i](t)},has(e,i){return i in e||i in Or}})):t.proxy}function A0(t,e=!0){return pt(t)?t.displayName||t.name:t.name||e&&t.__name}function R0(t){return pt(t)&&"__vccOpts"in t}const se=(t,e)=>Sg(t,e,jr);function Ga(t,e,i){try{Js(-1);const o=arguments.length;return o===2?Ft(e)&&!ct(e)?Br(e)?at(t,null,[e]):at(t,e):at(t,null,e):(o>3?i=Array.prototype.slice.call(arguments,2):o===3&&Br(i)&&(i=[i]),at(t,e,i))}finally{Js(1)}}const If="3.5.35";let Ka;const zc=typeof window<"u"&&window.trustedTypes;if(zc)try{Ka=zc.createPolicy("vue",{createHTML:t=>t})}catch{}const Pf=Ka?t=>Ka.createHTML(t):t=>t,M0="http://www.w3.org/2000/svg",I0="http://www.w3.org/1998/Math/MathML",ki=typeof document<"u"?document:null,Vc=ki&&ki.createElement("template"),P0={insert:(t,e,i)=>{e.insertBefore(t,i||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,i,o)=>{const r=e==="svg"?ki.createElementNS(M0,t):e==="mathml"?ki.createElementNS(I0,t):i?ki.createElement(t,{is:i}):ki.createElement(t);return t==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:t=>ki.createTextNode(t),createComment:t=>ki.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>ki.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,i,o,r,s){const n=i?i.previousSibling:e.lastChild;if(r&&(r===s||r.nextSibling))for(;e.insertBefore(r.cloneNode(!0),i),!(r===s||!(r=r.nextSibling)););else{Vc.innerHTML=Pf(o==="svg"?`${t}`:o==="mathml"?`${t}`:t);const a=Vc.content;if(o==="svg"||o==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,i)}return[n?n.nextSibling:e.firstChild,i?i.previousSibling:e.lastChild]}},L0=Symbol("_vtc");function N0(t,e,i){const o=t[L0];o&&(e=(e?[e,...o]:[...o]).join(" ")),e==null?t.removeAttribute("class"):i?t.setAttribute("class",e):t.className=e}const Wc=Symbol("_vod"),D0=Symbol("_vsh"),Lf=Symbol("");function Nf(t){const e=Zr();if(!e)return;const i=e.ut=(r=t(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${e.uid}"]`)).forEach(s=>Qs(s,r))},o=()=>{const r=t(e.proxy);e.ce?Qs(e.ce,r):Xa(e.subTree,r),i(r)};rf(()=>{Kd(o)}),Tn(()=>{Ni(o,ri,{flush:"post"});const r=new MutationObserver(o);r.observe(e.subTree.el.parentNode,{childList:!0}),Zo(()=>r.disconnect())})}function Xa(t,e){if(t.shapeFlag&128){const i=t.suspense;t=i.activeBranch,i.pendingBranch&&!i.isHydrating&&i.effects.push(()=>{Xa(i.activeBranch,e)})}for(;t.component;)t=t.component.subTree;if(t.shapeFlag&1&&t.el)Qs(t.el,e);else if(t.type===St)t.children.forEach(i=>Xa(i,e));else if(t.type===Ps){let{el:i,anchor:o}=t;for(;i&&(Qs(i,e),i!==o);)i=i.nextSibling}}function Qs(t,e){if(t.nodeType===1){const i=t.style;let o="";for(const r in e){const s=qm(e[r]);i.setProperty(`--${r}`,s),o+=`--${r}: ${s};`}i[Lf]=o}}const $0=/(?:^|;)\s*display\s*:/;function F0(t,e,i){const o=t.style,r=Qt(i);let s=!1;if(i&&!r){if(e)if(Qt(e))for(const n of e.split(";")){const a=n.slice(0,n.indexOf(":")).trim();i[a]==null&&yr(o,a,"")}else for(const n in e)i[n]==null&&yr(o,n,"");for(const n in i){n==="display"&&(s=!0);const a=i[n];a!=null?j0(t,n,!Qt(e)&&e?e[n]:void 0,a)||yr(o,n,a):yr(o,n,"")}}else if(r){if(e!==i){const n=o[Lf];n&&(i+=";"+n),o.cssText=i,s=$0.test(i)}}else e&&t.removeAttribute("style");Wc in t&&(t[Wc]=s?o.display:"",t[D0]&&(o.display="none"))}const qc=/\s*!important$/;function yr(t,e,i){if(ct(i))i.forEach(o=>yr(t,e,o));else if(i==null&&(i=""),e.startsWith("--"))t.setProperty(e,i);else{const o=B0(t,e);qc.test(i)?t.setProperty(Ji(o),i.replace(qc,""),"important"):t[o]=i}}const Gc=["Webkit","Moz","ms"],Qn={};function B0(t,e){const i=Qn[e];if(i)return i;let o=Ae(e);if(o!=="filter"&&o in t)return Qn[e]=o;o=yn(o);for(let r=0;rta||(V0.then(()=>ta=0),ta=Date.now());function q0(t,e){const i=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=i.attached)return;const r=i.value;if(ct(r)){const s=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{s.call(o),o._stopped=!0};const n=r.slice(),a=[o];for(let l=0;lt.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,G0=(t,e,i,o,r,s)=>{const n=r==="svg";e==="class"?N0(t,o,n):e==="style"?F0(t,i,o):fn(e)?pn(e)||U0(t,e,i,o,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):K0(t,e,o,n))?(Yc(t,e,o),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Xc(t,e,o,n,s,e!=="value")):t._isVueCE&&(X0(t,e)||t._def.__asyncLoader&&(/[A-Z]/.test(e)||!Qt(o)))?Yc(t,Ae(e),o,s,e):(e==="true-value"?t._trueValue=o:e==="false-value"&&(t._falseValue=o),Xc(t,e,o,n))};function K0(t,e,i,o){if(o)return!!(e==="innerHTML"||e==="textContent"||e in t&&Qc(e)&&pt(i));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&t.tagName==="IFRAME"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const r=t.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Qc(e)&&Qt(i)?!1:e in t}function X0(t,e){const i=t._def.props;if(!i)return!1;const o=Ae(e);return Array.isArray(i)?i.some(r=>Ae(r)===o):Object.keys(i).some(r=>Ae(r)===o)}function Y0(t="$style"){{const e=Zr();if(!e)return Rt;const i=e.type.__cssModules;return i&&i[t]||Rt}}const tu=t=>{const e=t.props["onUpdate:modelValue"]||!1;return ct(e)?i=>Is(e,i):e},ea=Symbol("_assign"),J0={deep:!0,created(t,e,i){t[ea]=tu(i),Df(t,"change",()=>{const o=t._modelValue,r=Z0(t),s=t.checked,n=t[ea];if(ct(o)){const a=Ed(o,r),l=a!==-1;if(s&&!l)n(o.concat(r));else if(!s&&l){const u=[...o];u.splice(a,1),n(u)}}else if(mn(o)){const a=new Set(o);s?a.add(r):a.delete(r),n(a)}else n($f(t,s))})},mounted:eu,beforeUpdate(t,e,i){t[ea]=tu(i),eu(t,e,i)}};function eu(t,{value:e,oldValue:i},o){t._modelValue=e;let r;if(ct(e))r=Ed(e,o.props.value)>-1;else if(mn(e))r=e.has(o.props.value);else{if(e===i)return;r=Yr(e,$f(t,!0))}t.checked!==r&&(t.checked=r)}function Z0(t){return"_value"in t?t._value:t.value}function $f(t,e){const i=e?"_trueValue":"_falseValue";return i in t?t[i]:e}const Q0=ge({patchProp:G0},P0);let iu;function t1(){return iu||(iu=m0(Q0))}const e1=((...t)=>{const e=t1().createApp(...t),{mount:i}=e;return e.mount=o=>{const r=o1(o);if(!r)return;const s=e._component;!pt(s)&&!s.render&&!s.template&&(s.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const n=i(r,!1,i1(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),n},e});function i1(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function o1(t){return Qt(t)?document.querySelector(t):t}const ou=(t,e,i)=>{const o=Object.assign({escape:!0},{}),r=function(s,n){return n=n||{},s.replace(/{([^{}]*)}/g,function(a,l){const u=n[l];return o.escape?encodeURIComponent(typeof u=="string"||typeof u=="number"?u.toString():a):typeof u=="string"||typeof u=="number"?u.toString():a})};return t.charAt(0)!=="/"&&(t="/"+t),r(t,{})},Al=(t,e,i)=>{const o=Object.assign({noRewrite:!1},{}),r=r1();return window?.OC?.config?.modRewriteWorking===!0&&!o.noRewrite?r+ou(t):r+"/index.php"+ou(t)};function r1(){let t=window._oc_webroot;if(typeof t>"u"){t=location.pathname;const e=t.indexOf("/index.php/");if(e!==-1)t=t.slice(0,e);else{const i=t.indexOf("/",1);t=t.slice(0,i>0?i:void 0)}}return t}function ru(t,e){(e==null||e>t.length)&&(e=t.length);for(var i=0,o=Array(e);i2?i-2:0),r=2;r1?e-1:0),o=1;o"u"?null:ae(BigInt.prototype.toString),uu=typeof Symbol>"u"?null:ae(Symbol.prototype.toString),pe=ae(Object.prototype.hasOwnProperty),cr=ae(Object.prototype.toString),fe=ae(RegExp.prototype.test),io=y1(TypeError);function ae(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var i=arguments.length,o=new Array(i>1?i-1:0),r=1;r2&&arguments[2]!==void 0?arguments[2]:_r;if(su&&su(t,null),!Vi(e))return t;let o=e.length;for(;o--;){let r=e[o];if(typeof r=="string"){const s=i(r);s!==r&&(u1(e)||(e[o]=s),r=s)}t[r]=!0}return t}function _1(t){for(let e=0;e/g),T1=xe(/\${[\w\W]*/g),O1=xe(/^data-[\-\w.\u00B7-\uFFFF]+$/),k1=xe(/^aria-[\-\w]+$/),mu=xe(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),A1=xe(/^(?:\w+script|data):/i),R1=xe(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),M1=xe(/^html$/i),I1=xe(/^[a-z][.\w]*(-[.\w]+)+$/i),gu=xe(/<[/\w!]/g),bu=xe(/<[/\w]/g),P1=xe(/<\/no(script|embed|frames)/i),L1=xe(/\/>/i),ze={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},N1=function(){return typeof window>"u"?null:window},D1=function(t,e){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null;const o="data-tt-policy-suffix";e&&e.hasAttribute(o)&&(i=e.getAttribute(o));const r="dompurify"+(i?"#"+i:"");try{return t.createPolicy(r,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+r+" could not be created."),null}},yu=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Ui=function(t,e,i,o){return pe(t,e)&&Vi(t[e])?kt(o.base?Ce(o.base):{},t[e],o.transform):i};function jf(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:N1();const e=y=>jf(y);if(e.version="3.4.13",e.removed=[],!t||!t.document||t.document.nodeType!==ze.document||!t.Element)return e.isSupported=!1,e;let i=t.document;const o=i,r=o.currentScript;t.DocumentFragment;const s=t.HTMLTemplateElement,n=t.Node,a=t.Element,l=t.NodeFilter;t.NamedNodeMap===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;const c=t.DOMParser,d=t.trustedTypes,p=a.prototype,g=oi(p,"cloneNode"),v=oi(p,"remove"),b=oi(p,"nextSibling"),C=oi(p,"childNodes"),_=oi(p,"parentNode"),k=oi(p,"shadowRoot"),I=oi(p,"attributes"),T=n&&n.prototype?oi(n.prototype,"nodeType"):null,N=n&&n.prototype?oi(n.prototype,"nodeName"):null,tt=n&&n.prototype?oi(n.prototype,"ownerDocument"):null;if(typeof s=="function"){const y=i.createElement("template");y.content&&y.content.ownerDocument&&(i=y.content.ownerDocument)}let X,Y="",mt,nt=!1,gt=0;const Et=function(){if(gt>0)throw io('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},zt=function(y){Et(),gt++;try{return X.createHTML(y)}finally{gt--}},Nt=function(y){Et(),gt++;try{return X.createScriptURL(y)}finally{gt--}},it=function(){return nt||(mt=D1(d,r),nt=!0),mt},rt=i,ut=rt.implementation,Bt=rt.createNodeIterator,Vt=rt.createDocumentFragment,Gt=rt.getElementsByTagName,Mt=o.importNode;let ht=yu();e.isSupported=typeof Ff=="function"&&typeof _=="function"&&ut&&ut.createHTMLDocument!==void 0;const de=C1,vt=E1,Ht=T1,ft=O1,te=k1,Ue=A1,ti=R1,ei=I1;let w=mu,S=null;const D=kt({},[...hu,...oa,...ra,...sa,...du]);let F=null;const B=kt({},[...fu,...na,...pu,...gs]);let R=Object.seal($o(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),V=null,q=null;const z=Object.seal($o(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let U=!0,et=!0,J=!1,st=!0,ot=!1,lt=!0,yt=!1,It=!1,Ot=null,Kt=null,h=!1,f=!1,m=!1,E=!1,A=!0,$=!1;const K="user-content-";let Pt=!0,ee=!1,Lt={},_t=null;const Xt=kt({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let uc=null;const hc=kt({},["audio","video","img","source","image","track"]);let $n=null;const dc=kt({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ns="http://www.w3.org/1998/Math/MathML",as="http://www.w3.org/2000/svg",ci="http://www.w3.org/1999/xhtml";let Eo=ci,Fn=!1,Bn=null;const ym=kt({},[ns,as,ci],ia),fc=ve(["mi","mo","mn","ms","mtext"]);let jn=kt({},fc);const pc=ve(["annotation-xml"]);let Hn=kt({},pc);const _m=kt({},["title","style","font","a","script"]);let or=null;const vm=["application/xhtml+xml","text/html"],xm="text/html";let Jt=null,To=null;const wm=i.createElement("form"),mc=function(y){return y instanceof RegExp||y instanceof Function},Un=function(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(To&&To===y)return;(!y||typeof y!="object")&&(y={}),y=Ce(y),or=vm.indexOf(y.PARSER_MEDIA_TYPE)===-1?xm:y.PARSER_MEDIA_TYPE,Jt=or==="application/xhtml+xml"?ia:_r,S=Ui(y,"ALLOWED_TAGS",D,{transform:Jt}),F=Ui(y,"ALLOWED_ATTR",B,{transform:Jt}),Bn=Ui(y,"ALLOWED_NAMESPACES",ym,{transform:ia}),$n=Ui(y,"ADD_URI_SAFE_ATTR",dc,{transform:Jt,base:dc}),uc=Ui(y,"ADD_DATA_URI_TAGS",hc,{transform:Jt,base:hc}),_t=Ui(y,"FORBID_CONTENTS",Xt,{transform:Jt}),V=Ui(y,"FORBID_TAGS",Ce({}),{transform:Jt}),q=Ui(y,"FORBID_ATTR",Ce({}),{transform:Jt}),Lt=pe(y,"USE_PROFILES")?y.USE_PROFILES&&typeof y.USE_PROFILES=="object"?Ce(y.USE_PROFILES):y.USE_PROFILES:!1,U=y.ALLOW_ARIA_ATTR!==!1,et=y.ALLOW_DATA_ATTR!==!1,J=y.ALLOW_UNKNOWN_PROTOCOLS||!1,st=y.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ot=y.SAFE_FOR_TEMPLATES||!1,lt=y.SAFE_FOR_XML!==!1,yt=y.WHOLE_DOCUMENT||!1,f=y.RETURN_DOM||!1,m=y.RETURN_DOM_FRAGMENT||!1,E=y.RETURN_TRUSTED_TYPE||!1,h=y.FORCE_BODY||!1,A=y.SANITIZE_DOM!==!1,$=y.SANITIZE_NAMED_PROPS||!1,Pt=y.KEEP_CONTENT!==!1,ee=y.IN_PLACE||!1,w=x1(y.ALLOWED_URI_REGEXP)?y.ALLOWED_URI_REGEXP:mu,Eo=typeof y.NAMESPACE=="string"?y.NAMESPACE:ci,jn=pe(y,"MATHML_TEXT_INTEGRATION_POINTS")&&y.MATHML_TEXT_INTEGRATION_POINTS&&typeof y.MATHML_TEXT_INTEGRATION_POINTS=="object"?Ce(y.MATHML_TEXT_INTEGRATION_POINTS):kt({},fc),Hn=pe(y,"HTML_INTEGRATION_POINTS")&&y.HTML_INTEGRATION_POINTS&&typeof y.HTML_INTEGRATION_POINTS=="object"?Ce(y.HTML_INTEGRATION_POINTS):kt({},pc);const L=pe(y,"CUSTOM_ELEMENT_HANDLING")&&y.CUSTOM_ELEMENT_HANDLING&&typeof y.CUSTOM_ELEMENT_HANDLING=="object"?Ce(y.CUSTOM_ELEMENT_HANDLING):$o(null);if(R=$o(null),pe(L,"tagNameCheck")&&mc(L.tagNameCheck)&&(R.tagNameCheck=L.tagNameCheck),pe(L,"attributeNameCheck")&&mc(L.attributeNameCheck)&&(R.attributeNameCheck=L.attributeNameCheck),pe(L,"allowCustomizedBuiltInElements")&&typeof L.allowCustomizedBuiltInElements=="boolean"&&(R.allowCustomizedBuiltInElements=L.allowCustomizedBuiltInElements),xe(R),ot&&(et=!1),m&&(f=!0),Lt&&(S=kt({},du),F=$o(null),Lt.html===!0&&(kt(S,hu),kt(F,fu)),Lt.svg===!0&&(kt(S,oa),kt(F,na),kt(F,gs)),Lt.svgFilters===!0&&(kt(S,ra),kt(F,na),kt(F,gs)),Lt.mathMl===!0&&(kt(S,sa),kt(F,pu),kt(F,gs))),z.tagCheck=null,z.attributeCheck=null,pe(y,"ADD_TAGS")&&(typeof y.ADD_TAGS=="function"?z.tagCheck=y.ADD_TAGS:Vi(y.ADD_TAGS)&&(S===D&&(S=Ce(S)),kt(S,y.ADD_TAGS,Jt))),pe(y,"ADD_ATTR")&&(typeof y.ADD_ATTR=="function"?z.attributeCheck=y.ADD_ATTR:Vi(y.ADD_ATTR)&&(F===B&&(F=Ce(F)),kt(F,y.ADD_ATTR,Jt))),pe(y,"ADD_URI_SAFE_ATTR")&&Vi(y.ADD_URI_SAFE_ATTR)&&kt($n,y.ADD_URI_SAFE_ATTR,Jt),pe(y,"FORBID_CONTENTS")&&Vi(y.FORBID_CONTENTS)&&(_t===Xt&&(_t=Ce(_t)),kt(_t,y.FORBID_CONTENTS,Jt)),pe(y,"ADD_FORBID_CONTENTS")&&Vi(y.ADD_FORBID_CONTENTS)&&(_t===Xt&&(_t=Ce(_t)),kt(_t,y.ADD_FORBID_CONTENTS,Jt)),Pt&&(S["#text"]=!0),yt&&kt(S,["html","head","body"]),S.table&&(kt(S,["tbody"]),delete V.tbody),y.TRUSTED_TYPES_POLICY){if(typeof y.TRUSTED_TYPES_POLICY.createHTML!="function")throw io('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof y.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw io('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const j=X;X=y.TRUSTED_TYPES_POLICY;try{Y=zt("")}catch(Z){throw X=j,Z}}else y.TRUSTED_TYPES_POLICY===null?(X=void 0,Y=""):(X===void 0&&(X=it()),X&&typeof Y=="string"&&(Y=zt("")));ve&&ve(y),To=y},gc=kt({},[...oa,...ra,...w1]),bc=kt({},[...sa,...S1]),Sm=function(y,L,j){return L.namespaceURI===ci?y==="svg":L.namespaceURI===ns?y==="svg"&&(j==="annotation-xml"||jn[j]):!!gc[y]},Cm=function(y,L,j){return L.namespaceURI===ci?y==="math":L.namespaceURI===as?y==="math"&&Hn[j]:!!bc[y]},Em=function(y,L,j){return L.namespaceURI===as&&!Hn[j]||L.namespaceURI===ns&&!jn[j]?!1:!bc[y]&&(_m[y]||!gc[y])},Tm=function(y){let L=_(y);(!L||!L.tagName)&&(L={namespaceURI:Eo,tagName:"template"});const j=_r(y.tagName),Z=_r(L.tagName);return Bn[y.namespaceURI]?y.namespaceURI===as?Sm(j,L,Z):y.namespaceURI===ns?Cm(j,L,Z):y.namespaceURI===ci?Em(j,L,Z):!!(or==="application/xhtml+xml"&&Bn[y.namespaceURI]):!1},Zi=function(y){Ro(e.removed,{element:y});try{_(y).removeChild(y)}catch{if(v(y),!_(y))throw io("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},ls=function(y){rr(y);const L=C(y);if(L){const Z=[];Ao(L,dt=>{Ro(Z,dt)}),Ao(Z,dt=>{try{v(dt)}catch{}})}const j=I(y);if(j)for(let Z=j.length-1;Z>=0;--Z){const dt=j[Z],xt=dt&&dt.name;if(typeof xt=="string")try{y.removeAttribute(xt)}catch{}}},Qi=function(y,L){try{Ro(e.removed,{attribute:L.getAttributeNode(y),from:L})}catch{Ro(e.removed,{attribute:null,from:L})}if(L.removeAttribute(y),y==="is")if(f||m)try{Zi(L)}catch{}else try{L.setAttribute(y,"")}catch{}},Om=function(y){const L=I(y);if(L)for(let j=L.length-1;j>=0;--j){const Z=L[j],dt=Z&&Z.name;if(!(typeof dt!="string"||F[Jt(dt)]))try{y.removeAttribute(dt)}catch{}}},rr=function(y){const L=[y];for(;L.length>0;){const j=L.pop();(T?T(j):j.nodeType)===ze.element&&Om(j);const Z=C(j);if(Z)for(let dt=Z.length-1;dt>=0;--dt)L.push(Z[dt])}},km=function(y){if(!lt)return;const L=[y];for(;L.length>0;){const j=L.pop(),Z=T?T(j):j.nodeType;if(Z===ze.processingInstruction||Z===ze.comment&&fe(bu,j.data)){try{v(j)}catch{}continue}if(Z===ze.element){const xt=j,wt=Jt(N?N(j):j.nodeName);try{xt.hasAttribute&&xt.hasAttribute("patchsrc")&&xt.removeAttribute("patchsrc"),xt.hasAttribute&&xt.hasAttribute("for")&&wt!=="label"&&wt!=="output"&&xt.removeAttribute("for")}catch{}}const dt=C(j);if(dt)for(let xt=dt.length-1;xt>=0;--xt)L.push(dt[xt])}},yc=function(y){let L=null,j=null;if(h)y=""+y;else{const xt=au(y,/^[\r\n\t ]+/);j=xt&&xt[0]}or==="application/xhtml+xml"&&Eo===ci&&(y=''+y+"");const Z=X?zt(y):y;if(Eo===ci)try{L=new c().parseFromString(Z,or)}catch{}if(!L||!L.documentElement){L=ut.createDocument(Eo,"template",null);try{L.documentElement.innerHTML=Fn?Y:Z}catch{}}const dt=L.body||L.documentElement;return y&&j&&dt.insertBefore(i.createTextNode(j),dt.childNodes[0]||null),Eo===ci?Gt.call(L,yt?"html":"body")[0]:yt?L.documentElement:dt},_c=function(y){const L=tt?tt(y):y.ownerDocument;return Bt.call(L||y,y,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},cs=function(y){return y=lr(y,de," "),y=lr(y,vt," "),y=lr(y,Ht," "),y},zn=function(y){var L;y.normalize();const j=tt?tt(y):y.ownerDocument,Z=Bt.call(j||y,y,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null);let dt=Z.nextNode();for(;dt;)dt.data=cs(dt.data),dt=Z.nextNode();const xt=(L=y.querySelectorAll)===null||L===void 0?void 0:L.call(y,"template");xt&&Ao(xt,wt=>{Oo(wt.content)&&zn(wt.content)})},us=function(y){const L=N?N(y):null;return typeof L!="string"||Jt(L)!=="form"?!1:typeof y.nodeName!="string"||typeof y.textContent!="string"||typeof y.removeChild!="function"||y.attributes!==I(y)||typeof y.removeAttribute!="function"||typeof y.setAttribute!="function"||typeof y.namespaceURI!="string"||typeof y.insertBefore!="function"||typeof y.hasChildNodes!="function"||y.nodeType!==T(y)||y.childNodes!==C(y)},Oo=function(y){if(!T||typeof y!="object"||y===null)return!1;try{return T(y)===ze.documentFragment}catch{return!1}},sr=function(y){if(!T||typeof y!="object"||y===null)return!1;try{return typeof T(y)=="number"}catch{return!1}};function ui(y,L,j){y.length!==0&&Ao(y,Z=>{Z.call(e,L,j,To)})}const Am=function(y,L){return!!(lt&&y.hasChildNodes()&&!sr(y.firstElementChild)&&fe(gu,y.textContent)&&fe(gu,y.innerHTML)||lt&&y.namespaceURI===ci&&L==="style"&&sr(y.firstElementChild)||y.nodeType===ze.processingInstruction||lt&&y.nodeType===ze.comment&&fe(bu,y.data))},Rm=function(y,L,j){if(!V[L]&&Sc(L)&&(R.tagNameCheck instanceof RegExp&&fe(R.tagNameCheck,L)||R.tagNameCheck instanceof Function&&R.tagNameCheck(L)))return!1;if(Pt&&!_t[L]){const Z=_(y),dt=C(y);if(dt&&Z){const xt=dt.length;for(let wt=xt-1;wt>=0;--wt){const hi=y===j?g(dt[wt],!0):dt[wt];Z.insertBefore(hi,b(y))}}}return Zi(y),!0},vc=function(y,L,j,Z){return y.length===0?L:L===j||L===Z?Ce(L):L},xc=function(y,L){if(ui(ht.beforeSanitizeElements,y,null),y!==L&&_(y)===null)return ee&&rr(y),!0;if(us(y))return Zi(y),!0;const j=Jt(N?N(y):y.nodeName);if(S=vc(ht.uponSanitizeElement,S,D,Ot),ui(ht.uponSanitizeElement,y,{tagName:j,allowedTags:S}),y!==L&&_(y)===null)return ee&&rr(y),!0;if(Am(y,j))return Zi(y),!0;if(V[j]||!(z.tagCheck instanceof Function&&z.tagCheck(j))&&!S[j]){const Z=Rm(y,j,L);return Z===!1&&ui(ht.afterSanitizeElements,y,null),Z}if((T?T(y):y.nodeType)===ze.element&&!Tm(y)||(j==="noscript"||j==="noembed"||j==="noframes")&&fe(P1,y.innerHTML))return Zi(y),!0;if(ot&&y.nodeType===ze.text){const Z=cs(y.textContent);y.textContent!==Z&&(Ro(e.removed,{element:y.cloneNode()}),y.textContent=Z)}return ui(ht.afterSanitizeElements,y,null),!1},wc=function(y,L,j){if(q[L]||lt&&L==="patchsrc"||lt&&L==="for"&&y!=="label"&&y!=="output"||A&&(L==="id"||L==="name")&&(j in i||j in wm))return!1;const Z=F[L]||z.attributeCheck instanceof Function&&z.attributeCheck(L,y);if(!(et&&fe(ft,L))&&!(U&&fe(te,L))){if(Z){if(!$n[L]&&!fe(w,lr(j,ti,""))&&!((L==="src"||L==="xlink:href"||L==="href")&&y!=="script"&&lu(j,"data:")===0&&uc[y])&&!(J&&!fe(Ue,lr(j,ti,"")))&&j)return!1}else if(!(Sc(y)&&(R.tagNameCheck instanceof RegExp&&fe(R.tagNameCheck,y)||R.tagNameCheck instanceof Function&&R.tagNameCheck(y))&&(R.attributeNameCheck instanceof RegExp&&fe(R.attributeNameCheck,L)||R.attributeNameCheck instanceof Function&&R.attributeNameCheck(L,y))||L==="is"&&R.allowCustomizedBuiltInElements&&(R.tagNameCheck instanceof RegExp&&fe(R.tagNameCheck,j)||R.tagNameCheck instanceof Function&&R.tagNameCheck(j))))return!1}return!0},Mm=kt({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Sc=function(y){return!Mm[_r(y)]&&fe(ei,y)},Im=function(y,L,j,Z){if(X&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!j)switch(d.getAttributeType(y,L)){case"TrustedHTML":return zt(Z);case"TrustedScriptURL":return Nt(Z)}return Z},Pm=function(y,L,j,Z){try{j?y.setAttributeNS(j,L,Z):y.setAttribute(L,Z),us(y)?Zi(y):nu(e.removed)}catch{Qi(L,y)}},Cc=function(y){ui(ht.beforeSanitizeAttributes,y,null);const L=y.attributes;if(!L||us(y))return;F=vc(ht.uponSanitizeAttribute,F,B,Kt);const j={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:F,forceKeepAttr:void 0};let Z=L.length;const dt=Jt(y.nodeName);for(;Z--;){const xt=L[Z],wt=xt.name,hi=xt.namespaceURI,Hi=xt.value,we=Jt(wt),ii=Hi;let Pe=wt==="value"?ii:m1(ii);if(j.attrName=we,j.attrValue=Pe,j.keepAttr=!0,j.forceKeepAttr=void 0,ui(ht.uponSanitizeAttribute,y,j),Pe=j.attrValue,$&&(we==="id"||we==="name")&&lu(Pe,K)!==0&&(Qi(wt,y),Pe=K+Pe),lt&&fe(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Pe)){Qi(wt,y);continue}if(we==="attributename"&&au(Pe,"href")){Qi(wt,y);continue}if(!j.forceKeepAttr){if(!j.keepAttr){Qi(wt,y);continue}if(!st&&fe(L1,Pe)){Qi(wt,y);continue}if(ot&&(Pe=cs(Pe)),!wc(dt,we,Pe)){Qi(wt,y);continue}Pe=Im(dt,we,hi,Pe),Pe!==ii&&Pm(y,wt,hi,Pe)}}ui(ht.afterSanitizeAttributes,y,null)},hs=function(y){let L=null;const j=_c(y);for(ui(ht.beforeSanitizeShadowDOM,y,null);L=j.nextNode();)if(ui(ht.uponSanitizeShadowNode,L,null),xc(L,y),Cc(L),Oo(L.content)&&hs(L.content),(T?T(L):L.nodeType)===ze.element){const Z=k(L);Oo(Z)&&(Vn(Z),hs(Z))}ui(ht.afterSanitizeShadowDOM,y,null)},Vn=function(y){const L=[{node:y,shadow:null}];for(;L.length>0;){const j=L.pop();if(j.shadow){hs(j.shadow);continue}const Z=j.node,dt=(T?T(Z):Z.nodeType)===ze.element,xt=C(Z);if(xt)for(let wt=xt.length-1;wt>=0;--wt)L.push({node:xt[wt],shadow:null});if(dt){const wt=N?N(Z):null;if(typeof wt=="string"&&Jt(wt)==="template"){const hi=Z.content;Oo(hi)&&L.push({node:hi,shadow:null})}}if(dt){const wt=k(Z);Oo(wt)&&L.push({node:null,shadow:wt},{node:wt,shadow:null})}}};return e.sanitize=function(y){let L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},j=null,Z=null,dt=null,xt=null;if(Fn=!y,Fn&&(y=""),typeof y!="string"&&!sr(y)&&(y=v1(y),typeof y!="string"))throw io("dirty is not a string, aborting");if(!e.isSupported)return y;It?(S=Ot,F=Kt):Un(L),(ht.uponSanitizeElement.length>0||ht.uponSanitizeAttribute.length>0)&&(S=Ce(S)),ht.uponSanitizeAttribute.length>0&&(F=Ce(F)),e.removed=[];const wt=ee&&typeof y!="string"&&sr(y);if(wt){km(y);const we=N?N(y):y.nodeName;if(typeof we=="string"){const ii=Jt(we);if(!S[ii]||V[ii])throw ls(y),io("root node is forbidden and cannot be sanitized in-place")}if(us(y))throw ls(y),io("root node is clobbered and cannot be sanitized in-place");try{Vn(y)}catch(ii){throw ls(y),ii}}else if(sr(y))j=yc(""),Z=j.ownerDocument.importNode(y,!0),Z.nodeType===ze.element&&Z.nodeName==="BODY"||Z.nodeName==="HTML"?j=Z:j.appendChild(Z),Vn(Z);else{if(!f&&!ot&&!yt&&y.indexOf("<")===-1)return X&&E?zt(y):y;if(j=yc(y),!j)return f?null:E?Y:""}j&&h&&Zi(j.firstChild);const hi=wt?y:j;try{const we=_c(hi);for(;dt=we.nextNode();)xc(dt,hi),Cc(dt),Oo(dt.content)&&hs(dt.content)}catch(we){throw wt&&(ls(y),Ao(e.removed,ii=>{ii.element&&rr(ii.element)})),we}if(wt)return Ao(e.removed,we=>{we.element&&rr(we.element)}),ot&&zn(y),y;if(f){if(ot&&zn(j),m)for(xt=Vt.call(j.ownerDocument);j.firstChild;)xt.appendChild(j.firstChild);else xt=j;return(F.shadowroot||F.shadowrootmode)&&(xt=Mt.call(o,xt,!0)),xt}let Hi=yt?j.outerHTML:j.innerHTML;return yt&&S["!doctype"]&&j.ownerDocument&&j.ownerDocument.doctype&&j.ownerDocument.doctype.name&&fe(M1,j.ownerDocument.doctype.name)&&(Hi=" +`+Hi),ot&&(Hi=cs(Hi)),X&&E?zt(Hi):Hi},e.setConfig=function(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Un(y),It=!0,Ot=S,Kt=F},e.clearConfig=function(){To=null,It=!1,Ot=null,Kt=null,X=mt,Y=""},e.isValidAttribute=function(y,L,j){To||Un({});const Z=Jt(y),dt=Jt(L);return wc(Z,dt,j)},e.addHook=function(y,L){typeof L=="function"&&pe(ht,y)&&Ro(ht[y],L)},e.removeHook=function(y,L){if(pe(ht,y)){if(L!==void 0){const j=f1(ht[y],L);return j===-1?void 0:p1(ht[y],j,1)[0]}return nu(ht[y])}},e.removeHooks=function(y){pe(ht,y)&&(ht[y]=[])},e.removeAllHooks=function(){ht=yu()},e}var Hf=jf();function Rl(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var aa,_u;function $1(){if(_u)return aa;_u=1;var t=/["'&<>]/;aa=e;function e(i){var o=""+i,r=t.exec(o);if(!r)return o;var s,n="",a=0,l=0;for(a=r.index;ae)}}globalThis._oc_l10n_registry_translations??={},globalThis._oc_l10n_registry_plural_functions??={};function W(t,e,i,o,r){const s=typeof i=="object"?i:void 0,n=typeof o=="number"?o:typeof i=="number"?i:void 0,a={escape:!0,sanitize:!0,...typeof r=="object"?r:typeof o=="object"?o:{}},l=v=>v,u=(a.sanitize?Hf.sanitize:l)||l,c=a.escape?vu:l,d=v=>typeof v=="string"||typeof v=="number",p=(v,b,C)=>v.replace(/%n/g,""+C).replace(/{([^{}]*)}/g,(_,k)=>{if(b===void 0||!(k in b))return c(_);const I=b[k];return d(I)?c(`${I}`):typeof I=="object"&&d(I.value)?(I.escape!==!1?vu:l)(`${I.value}`):c(_)});let g=(r?.bundle??Uf(t)).translations[e]||e;return g=Array.isArray(g)?g[0]:g,u(typeof s=="object"||n!==void 0?p(g,s,n):g)}function B1(t,e,i,o,r,s){const n="_"+e+"_::_"+i+"_",a=s?.bundle??Uf(t),l=a.translations[n];if(typeof l<"u"){const u=l;if(Array.isArray(u)){const c=a.pluralFunction(o);return W(t,u[c],r,o,s)}}return o===1?W(t,e,r,o,s):W(t,i,r,o,s)}function j1(t,e=Ml()){switch(e==="pt-BR"&&(e="xbr"),e.length>3&&(e=e.substring(0,e.lastIndexOf("-"))),e){case"az":case"bo":case"dz":case"id":case"ja":case"jv":case"ka":case"km":case"kn":case"ko":case"ms":case"th":case"tr":case"vi":case"zh":return 0;case"af":case"bn":case"bg":case"ca":case"da":case"de":case"el":case"en":case"eo":case"es":case"et":case"eu":case"fa":case"fi":case"fo":case"fur":case"fy":case"gl":case"gu":case"ha":case"he":case"hu":case"is":case"it":case"ku":case"lb":case"ml":case"mn":case"mr":case"nah":case"nb":case"ne":case"nl":case"nn":case"no":case"oc":case"om":case"or":case"pa":case"pap":case"ps":case"pt":case"so":case"sq":case"sv":case"sw":case"ta":case"te":case"tk":case"ur":case"zu":return t===1?0:1;case"am":case"bh":case"fil":case"fr":case"gun":case"hi":case"hy":case"ln":case"mg":case"nso":case"xbr":case"ti":case"wa":return t===0||t===1?0:1;case"be":case"bs":case"hr":case"ru":case"sh":case"sr":case"uk":return t%10===1&&t%100!==11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"cs":case"sk":return t===1?0:t>=2&&t<=4?1:2;case"ga":return t===1?0:t===2?1:2;case"lt":return t%10===1&&t%100!==11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2;case"sl":return t%100===1?0:t%100===2?1:t%100===3||t%100===4?2:3;case"mk":return t%10===1?0:1;case"mt":return t===1?0:t===0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3;case"lv":return t===0?0:t%10===1&&t%100!==11?1:2;case"pl":return t===1?0:t%10>=2&&t%10<=4&&(t%100<12||t%100>14)?1:2;case"cy":return t===1?0:t===2?1:t===8||t===11?2:3;case"ro":return t===1?0:t===0||t%100>0&&t%100<20?1:2;case"ar":return t===0?0:t===1?1:t===2?2:t%100>=3&&t%100<=10?3:t%100>=11&&t%100<=99?4:5;default:return 0}}const he=(t,e)=>{const i=t.__vccOpts||t;for(const[o,r]of e)i[o]=r;return i},H1={name:"AccountGroupIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},U1=["aria-hidden","aria-label"],z1=["fill","width","height"],V1={d:"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z"},W1={key:0};function q1(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon account-group-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",V1,[i.title?(H(),G("title",W1,P(i.title),1)):Ct("",!0)])],8,z1))],16,U1)}const G1=he(H1,[["render",q1]]),K1={class:"section-heading"},X1=Yt({__name:"SectionHeading",props:{icon:{},title:{}},setup(t){return(e,i)=>(H(),G("h2",K1,[(H(),le(nf(t.icon),{class:"icon",size:20})),bt(" "+P(t.title),1)]))}}),Xe=he(X1,[["__scopeId","data-v-0eb9e63c"]]),Y1={class:"section network-infos"},J1={class:"infobox"},Z1={class:"interface-wrapper active-users-wrapper"},Q1={key:0,class:"active-users-box"},tb={class:"info"},eb={key:1,class:"active-users-box"},ib={class:"info"},ob={key:2,class:"active-users-box"},rb={class:"info"},sb={key:3,class:"active-users-box"},nb={class:"info"},ab=Yt({__name:"ActiveUsersSection",props:{activeUsers:{},numUsers:{}},setup(t){const e=t;function i(o){const r=e.numUsers===0?0:Math.round(o*1e3/e.numUsers)/10;return W("serverinfo","{0}% of all users",[String(r)])}return(o,r)=>(H(),G("div",Y1,[at(Xe,{icon:G1,title:M(W)("serverinfo","Active users")},null,8,["title"]),x("div",J1,[x("div",Z1,[t.activeUsers.last1hour>0?(H(),G("div",Q1,[bt(P(M(W)("serverinfo","Last hour")),1),r[0]||(r[0]=x("br",null,null,-1)),x("span",tb,P(t.activeUsers.last1hour),1),r[1]||(r[1]=x("br",null,null,-1)),x("em",null,P(i(t.activeUsers.last1hour)),1)])):Ct("",!0),t.activeUsers.last24hours>0?(H(),G("div",eb,[bt(P(M(W)("serverinfo","Last 24 Hours")),1),r[2]||(r[2]=x("br",null,null,-1)),x("span",ib,P(t.activeUsers.last24hours),1),r[3]||(r[3]=x("br",null,null,-1)),x("em",null,P(i(t.activeUsers.last24hours)),1)])):Ct("",!0),t.activeUsers.last7days>0?(H(),G("div",ob,[bt(P(M(W)("serverinfo","Last 7 Days")),1),r[4]||(r[4]=x("br",null,null,-1)),x("span",rb,P(t.activeUsers.last7days),1),r[5]||(r[5]=x("br",null,null,-1)),x("em",null,P(i(t.activeUsers.last7days)),1)])):Ct("",!0),t.activeUsers.last1month>0?(H(),G("div",sb,[bt(P(M(W)("serverinfo","Last 30 Days")),1),r[6]||(r[6]=x("br",null,null,-1)),x("span",nb,P(t.activeUsers.last1month),1),r[7]||(r[7]=x("br",null,null,-1)),x("em",null,P(i(t.activeUsers.last1month)),1)])):Ct("",!0)])])]))}});function ts(t){return t+.5|0}const Wi=(t,e,i)=>Math.max(Math.min(t,i),e);function vr(t){return Wi(ts(t*2.55),0,255)}function Ki(t){return Wi(ts(t*255),0,255)}function Ri(t){return Wi(ts(t/2.55)/100,0,1)}function xu(t){return Wi(ts(t*100),0,100)}const Ye={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Za=[..."0123456789ABCDEF"],lb=t=>Za[t&15],cb=t=>Za[(t&240)>>4]+Za[t&15],bs=t=>(t&240)>>4===(t&15),ub=t=>bs(t.r)&&bs(t.g)&&bs(t.b)&&bs(t.a);function hb(t){var e=t.length,i;return t[0]==="#"&&(e===4||e===5?i={r:255&Ye[t[1]]*17,g:255&Ye[t[2]]*17,b:255&Ye[t[3]]*17,a:e===5?Ye[t[4]]*17:255}:(e===7||e===9)&&(i={r:Ye[t[1]]<<4|Ye[t[2]],g:Ye[t[3]]<<4|Ye[t[4]],b:Ye[t[5]]<<4|Ye[t[6]],a:e===9?Ye[t[7]]<<4|Ye[t[8]]:255})),i}const db=(t,e)=>t<255?e(t):"";function fb(t){var e=ub(t)?lb:cb;return t?"#"+e(t.r)+e(t.g)+e(t.b)+db(t.a,e):void 0}const pb=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function zf(t,e,i){const o=e*Math.min(i,1-i),r=(s,n=(s+t/30)%12)=>i-o*Math.max(Math.min(n-3,9-n,1),-1);return[r(0),r(8),r(4)]}function mb(t,e,i){const o=(r,s=(r+t/60)%6)=>i-i*e*Math.max(Math.min(s,4-s,1),0);return[o(5),o(3),o(1)]}function gb(t,e,i){const o=zf(t,1,.5);let r;for(e+i>1&&(r=1/(e+i),e*=r,i*=r),r=0;r<3;r++)o[r]*=1-e-i,o[r]+=e;return o}function bb(t,e,i,o,r){return t===r?(e-i)/o+(e.5?u/(2-r-s):u/(r+s),a=bb(e,i,o,u,r),a=a*60+.5),[a|0,l||0,n]}function Pl(t,e,i,o){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,o)).map(Ki)}function Ll(t,e,i){return Pl(zf,t,e,i)}function yb(t,e,i){return Pl(gb,t,e,i)}function _b(t,e,i){return Pl(mb,t,e,i)}function Vf(t){return(t%360+360)%360}function vb(t){const e=pb.exec(t);let i=255,o;if(!e)return;e[5]!==o&&(i=e[6]?vr(+e[5]):Ki(+e[5]));const r=Vf(+e[2]),s=+e[3]/100,n=+e[4]/100;return e[1]==="hwb"?o=yb(r,s,n):e[1]==="hsv"?o=_b(r,s,n):o=Ll(r,s,n),{r:o[0],g:o[1],b:o[2],a:i}}function xb(t,e){var i=Il(t);i[0]=Vf(i[0]+e),i=Ll(i),t.r=i[0],t.g=i[1],t.b=i[2]}function wb(t){if(!t)return;const e=Il(t),i=e[0],o=xu(e[1]),r=xu(e[2]);return t.a<255?`hsla(${i}, ${o}%, ${r}%, ${Ri(t.a)})`:`hsl(${i}, ${o}%, ${r}%)`}const wu={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Su={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Sb(){const t={},e=Object.keys(Su),i=Object.keys(wu);let o,r,s,n,a;for(o=0;o>16&255,s>>8&255,s&255]}return t}let ys;function Cb(t){ys||(ys=Sb(),ys.transparent=[0,0,0,0]);const e=ys[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const Eb=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Tb(t){const e=Eb.exec(t);let i=255,o,r,s;if(e){if(e[7]!==o){const n=+e[7];i=e[8]?vr(n):Wi(n*255,0,255)}return o=+e[1],r=+e[3],s=+e[5],o=255&(e[2]?vr(o):Wi(o,0,255)),r=255&(e[4]?vr(r):Wi(r,0,255)),s=255&(e[6]?vr(s):Wi(s,0,255)),{r:o,g:r,b:s,a:i}}}function Ob(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${Ri(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const la=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,Mo=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function kb(t,e,i){const o=Mo(Ri(t.r)),r=Mo(Ri(t.g)),s=Mo(Ri(t.b));return{r:Ki(la(o+i*(Mo(Ri(e.r))-o))),g:Ki(la(r+i*(Mo(Ri(e.g))-r))),b:Ki(la(s+i*(Mo(Ri(e.b))-s))),a:t.a+i*(e.a-t.a)}}function _s(t,e,i){if(t){let o=Il(t);o[e]=Math.max(0,Math.min(o[e]+o[e]*i,e===0?360:1)),o=Ll(o),t.r=o[0],t.g=o[1],t.b=o[2]}}function Wf(t,e){return t&&Object.assign(e||{},t)}function Cu(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Ki(t[3]))):(e=Wf(t,{r:0,g:0,b:0,a:1}),e.a=Ki(e.a)),e}function Ab(t){return t.charAt(0)==="r"?Tb(t):vb(t)}class Hr{constructor(e){if(e instanceof Hr)return e;const i=typeof e;let o;i==="object"?o=Cu(e):i==="string"&&(o=hb(e)||Cb(e)||Ab(e)),this._rgb=o,this._valid=!!o}get valid(){return this._valid}get rgb(){var e=Wf(this._rgb);return e&&(e.a=Ri(e.a)),e}set rgb(e){this._rgb=Cu(e)}rgbString(){return this._valid?Ob(this._rgb):void 0}hexString(){return this._valid?fb(this._rgb):void 0}hslString(){return this._valid?wb(this._rgb):void 0}mix(e,i){if(e){const o=this.rgb,r=e.rgb;let s;const n=i===s?.5:i,a=2*n-1,l=o.a-r.a,u=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;s=1-u,o.r=255&u*o.r+s*r.r+.5,o.g=255&u*o.g+s*r.g+.5,o.b=255&u*o.b+s*r.b+.5,o.a=n*o.a+(1-n)*r.a,this.rgb=o}return this}interpolate(e,i){return e&&(this._rgb=kb(this._rgb,e._rgb,i)),this}clone(){return new Hr(this.rgb)}alpha(e){return this._rgb.a=Ki(e),this}clearer(e){const i=this._rgb;return i.a*=1-e,this}greyscale(){const e=this._rgb,i=ts(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=i,this}opaquer(e){const i=this._rgb;return i.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return _s(this._rgb,2,e),this}darken(e){return _s(this._rgb,2,-e),this}saturate(e){return _s(this._rgb,1,e),this}desaturate(e){return _s(this._rgb,1,-e),this}rotate(e){return xb(this._rgb,e),this}}function Ci(){}const Rb=(()=>{let t=0;return()=>t++})();function qt(t){return t==null}function me(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function Tt(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function Me(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function fi(t,e){return Me(t)?t:e}function $t(t,e){return typeof t>"u"?e:t}const Mb=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/e,qf=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function re(t,e,i){if(t&&typeof t.call=="function")return t.apply(i,e)}function jt(t,e,i,o){let r,s,n;if(me(t))for(s=t.length,r=0;rt,x:t=>t.x,y:t=>t.y};function Lb(t){const e=t.split("."),i=[];let o="";for(const r of e)o+=r,o.endsWith("\\")?o=o.slice(0,-1)+".":(i.push(o),o="");return i}function Nb(t){const e=Lb(t);return i=>{for(const o of e){if(o==="")break;i=i&&i[o]}return i}}function zr(t,e){return(Eu[e]||(Eu[e]=Nb(e)))(t)}function Nl(t){return t.charAt(0).toUpperCase()+t.slice(1)}const on=t=>typeof t<"u",Xi=t=>typeof t=="function",Tu=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function Db(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const Ut=Math.PI,ie=2*Ut,$b=ie+Ut,rn=Number.POSITIVE_INFINITY,Fb=Ut/180,ce=Ut/2,oo=Ut/4,Ou=Ut*2/3,Kf=Math.log10,qo=Math.sign;function Rr(t,e,i){return Math.abs(t-e)r-s).pop(),e}function jb(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function Vr(t){return!jb(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function Hb(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function Ub(t,e,i){let o,r,s;for(o=0,r=t.length;ol&&u=Math.min(e,i)-o&&t<=Math.max(e,i)+o}function $l(t,e,i){i=i||(n=>t[n]1;)s=r+o>>1,i(s)?r=s:o=s;return{lo:r,hi:o}}const ho=(t,e,i,o)=>$l(t,i,o?r=>{const s=t[r][e];return st[r][e]$l(t,i,o=>t[o][e]>=i);function Gb(t,e,i){let o=0,r=t.length;for(;oo&&t[r-1]>i;)r--;return o>0||r{const o="_onData"+Nl(i),r=t[i];Object.defineProperty(t,i,{configurable:!0,enumerable:!1,value(...s){const n=r.apply(this,s);return t._chartjs.listeners.forEach(a=>{typeof a[o]=="function"&&a[o](...s)}),n}})})}function Ru(t,e){const i=t._chartjs;if(!i)return;const o=i.listeners,r=o.indexOf(e);r!==-1&&o.splice(r,1),!(o.length>0)&&(Yf.forEach(s=>{delete t[s]}),delete t._chartjs)}function Xb(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const Jf=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function Zf(t,e){let i=[],o=!1;return function(...r){i=r,o||(o=!0,Jf.call(window,()=>{o=!1,t.apply(e,i)}))}}function Yb(t,e){let i;return function(...o){return e?(clearTimeout(i),i=setTimeout(t,e,o)):t.apply(this,o),e}}const Jb=t=>t==="start"?"left":t==="end"?"right":"center",Mu=(t,e,i)=>t==="start"?e:t==="end"?i:(e+i)/2;function Zb(t,e,i){const o=e.length;let r=0,s=o;if(t._sorted){const{iScale:n,vScale:a,_parsed:l}=t,u=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,c=n.axis,{min:d,max:p,minDefined:g,maxDefined:v}=n.getUserBounds();if(g){if(r=Math.min(ho(l,c,d).lo,i?o:ho(e,c,n.getPixelForValue(d)).lo),u){const b=l.slice(0,r+1).reverse().findIndex(C=>!qt(C[a.axis]));r-=Math.max(0,b)}r=$e(r,0,o-1)}if(v){let b=Math.max(ho(l,n.axis,p,!0).hi+1,i?0:ho(e,c,n.getPixelForValue(p),!0).hi+1);if(u){const C=l.slice(b-1).findIndex(_=>!qt(_[a.axis]));b+=Math.max(0,C)}s=$e(b,r,o)-r}else s=o-r}return{start:r,count:s}}function Qb(t){const{xScale:e,yScale:i,_scaleRanges:o}=t,r={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!o)return t._scaleRanges=r,!0;const s=o.xmin!==e.min||o.xmax!==e.max||o.ymin!==i.min||o.ymax!==i.max;return Object.assign(o,r),s}const vs=t=>t===0||t===1,Iu=(t,e,i)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*ie/i)),Pu=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*ie/i)+1,Mr={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*ce)+1,easeOutSine:t=>Math.sin(t*ce),easeInOutSine:t=>-.5*(Math.cos(Ut*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>vs(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>vs(t)?t:Iu(t,.075,.3),easeOutElastic:t=>vs(t)?t:Pu(t,.075,.3),easeInOutElastic(t){return vs(t)?t:t<.5?.5*Iu(t*2,.1125,.45):.5+.5*Pu(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-Mr.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?Mr.easeInBounce(t*2)*.5:Mr.easeOutBounce(t*2-1)*.5+.5};function Fl(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function Lu(t){return Fl(t)?t:new Hr(t)}function ca(t){return Fl(t)?t:new Hr(t).saturate(.5).darken(.1).hexString()}const ty=["x","y","borderWidth","radius","tension"],ey=["color","borderColor","backgroundColor"];function iy(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:ey},numbers:{type:"number",properties:ty}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function oy(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const Nu=new Map;function ry(t,e){e=e||{};const i=t+JSON.stringify(e);let o=Nu.get(i);return o||(o=new Intl.NumberFormat(t,e),Nu.set(i,o)),o}function Bl(t,e,i){return ry(e,i).format(t)}const sy={values(t){return me(t)?t:""+t},numeric(t,e,i){if(t===0)return"0";const o=this.chart.options.locale;let r,s=t;if(i.length>1){const u=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(u<1e-4||u>1e15)&&(r="scientific"),s=ny(t,i)}const n=Kf(Math.abs(s)),a=isNaN(n)?1:Math.max(Math.min(-1*Math.floor(n),20),0),l={notation:r,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),Bl(t,o,l)}};function ny(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t)),i}var Qf={formatters:sy};function ay(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,i)=>i.lineWidth,tickColor:(e,i)=>i.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Qf.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const _o=Object.create(null),tl=Object.create(null);function Ir(t,e){if(!e)return t;const i=e.split(".");for(let o=0,r=i.length;oo.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(o,r)=>ca(r.backgroundColor),this.hoverBorderColor=(o,r)=>ca(r.borderColor),this.hoverColor=(o,r)=>ca(r.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(i)}set(e,i){return ua(this,e,i)}get(e){return Ir(this,e)}describe(e,i){return ua(tl,e,i)}override(e,i){return ua(_o,e,i)}route(e,i,o,r){const s=Ir(this,e),n=Ir(this,o),a="_"+i;Object.defineProperties(s,{[a]:{value:s[i],writable:!0},[i]:{enumerable:!0,get(){const l=this[a],u=n[r];return Tt(l)?Object.assign({},u,l):$t(l,u)},set(l){this[a]=l}}})}apply(e){e.forEach(i=>i(this))}}var ne=new ly({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[iy,oy,ay]);function cy(t){return!t||qt(t.size)||qt(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Du(t,e,i,o,r){let s=e[r];return s||(s=e[r]=t.measureText(r).width,i.push(r)),s>o&&(o=s),o}function ro(t,e,i){const o=t.currentDevicePixelRatio,r=i!==0?Math.max(i/2,.5):0;return Math.round((e-r)*o)/o+r}function $u(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function el(t,e,i,o){uy(t,e,i,o)}function uy(t,e,i,o,r){let s,n,a,l,u,c,d,p;const g=e.pointStyle,v=e.rotation,b=e.radius;let C=(v||0)*Fb;if(g&&typeof g=="object"&&(s=g.toString(),s==="[object HTMLImageElement]"||s==="[object HTMLCanvasElement]")){t.save(),t.translate(i,o),t.rotate(C),t.drawImage(g,-g.width/2,-g.height/2,g.width,g.height),t.restore();return}if(!(isNaN(b)||b<=0)){switch(t.beginPath(),g){default:t.arc(i,o,b,0,ie),t.closePath();break;case"triangle":c=b,t.moveTo(i+Math.sin(C)*c,o-Math.cos(C)*b),C+=Ou,t.lineTo(i+Math.sin(C)*c,o-Math.cos(C)*b),C+=Ou,t.lineTo(i+Math.sin(C)*c,o-Math.cos(C)*b),t.closePath();break;case"rectRounded":u=b*.516,l=b-u,n=Math.cos(C+oo)*l,d=Math.cos(C+oo)*l,a=Math.sin(C+oo)*l,p=Math.sin(C+oo)*l,t.arc(i-d,o-a,u,C-Ut,C-ce),t.arc(i+p,o-n,u,C-ce,C),t.arc(i+d,o+a,u,C,C+ce),t.arc(i-p,o+n,u,C+ce,C+Ut),t.closePath();break;case"rect":if(!v){l=Math.SQRT1_2*b,c=l,t.rect(i-c,o-l,2*c,2*l);break}C+=oo;case"rectRot":d=Math.cos(C)*b,n=Math.cos(C)*b,a=Math.sin(C)*b,p=Math.sin(C)*b,t.moveTo(i-d,o-a),t.lineTo(i+p,o-n),t.lineTo(i+d,o+a),t.lineTo(i-p,o+n),t.closePath();break;case"crossRot":C+=oo;case"cross":d=Math.cos(C)*b,n=Math.cos(C)*b,a=Math.sin(C)*b,p=Math.sin(C)*b,t.moveTo(i-d,o-a),t.lineTo(i+d,o+a),t.moveTo(i+p,o-n),t.lineTo(i-p,o+n);break;case"star":d=Math.cos(C)*b,n=Math.cos(C)*b,a=Math.sin(C)*b,p=Math.sin(C)*b,t.moveTo(i-d,o-a),t.lineTo(i+d,o+a),t.moveTo(i+p,o-n),t.lineTo(i-p,o+n),C+=oo,d=Math.cos(C)*b,n=Math.cos(C)*b,a=Math.sin(C)*b,p=Math.sin(C)*b,t.moveTo(i-d,o-a),t.lineTo(i+d,o+a),t.moveTo(i+p,o-n),t.lineTo(i-p,o+n);break;case"line":n=Math.cos(C)*b,a=Math.sin(C)*b,t.moveTo(i-n,o-a),t.lineTo(i+n,o+a);break;case"dash":t.moveTo(i,o),t.lineTo(i+Math.cos(C)*b,o+Math.sin(C)*b);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function qr(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.xe.top-i&&t.y0&&s.strokeColor!=="";let l,u;for(t.save(),t.font=r.string,fy(t,s),l=0;l+t||0;function Ul(t,e){const i={},o=Tt(e),r=o?Object.keys(e):e,s=Tt(t)?o?n=>$t(t[n],t[e[n]]):n=>t[n]:()=>t;for(const n of r)i[n]=_y(s(n));return i}function vy(t){return Ul(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Ns(t){return Ul(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Yi(t){const e=vy(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function wi(t,e){t=t||{},e=e||ne.font;let i=$t(t.size,e.size);typeof i=="string"&&(i=parseInt(i,10));let o=$t(t.style,e.style);o&&!(""+o).match(by)&&(console.warn('Invalid font style specified: "'+o+'"'),o=void 0);const r={family:$t(t.family,e.family),lineHeight:yy($t(t.lineHeight,e.lineHeight),i),size:i,style:o,weight:$t(t.weight,e.weight),string:""};return r.string=cy(r),r}function xs(t,e,i,o){let r,s,n;for(r=0,s=t.length;ri&&a===0?0:a+l;return{min:n(o,-Math.abs(s)),max:n(r,s)}}function So(t,e){return Object.assign(Object.create(t),e)}function zl(t,e=[""],i,o,r=()=>t[0]){const s=i||t;typeof o>"u"&&(o=op("_fallback",t));const n={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:s,_fallback:o,_getTarget:r,override:a=>zl([a,...t],e,s,o)};return new Proxy(n,{deleteProperty(a,l){return delete a[l],delete a._keys,delete t[0][l],!0},get(a,l){return ep(a,l,()=>Ay(l,e,t,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(a,l){return Hu(a).includes(l)},ownKeys(a){return Hu(a)},set(a,l,u){const c=a._storage||(a._storage=r());return a[l]=c[l]=u,delete a._keys,!0}})}function Go(t,e,i,o){const r={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:tp(t,o),setContext:s=>Go(t,s,i,o),override:s=>Go(t.override(s),e,i,o)};return new Proxy(r,{deleteProperty(s,n){return delete s[n],delete t[n],!0},get(s,n,a){return ep(s,n,()=>Sy(s,n,a))},getOwnPropertyDescriptor(s,n){return s._descriptors.allKeys?Reflect.has(t,n)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,n)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(s,n){return Reflect.has(t,n)},ownKeys(){return Reflect.ownKeys(t)},set(s,n,a){return t[n]=a,delete s[n],!0}})}function tp(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:o=e.indexable,_allKeys:r=e.allKeys}=t;return{allKeys:r,scriptable:i,indexable:o,isScriptable:Xi(i)?i:()=>i,isIndexable:Xi(o)?o:()=>o}}const wy=(t,e)=>t?t+Nl(e):e,Vl=(t,e)=>Tt(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function ep(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const o=i();return t[e]=o,o}function Sy(t,e,i){const{_proxy:o,_context:r,_subProxy:s,_descriptors:n}=t;let a=o[e];return Xi(a)&&n.isScriptable(e)&&(a=Cy(e,a,t,i)),me(a)&&a.length&&(a=Ey(e,a,t,n.isIndexable)),Vl(e,a)&&(a=Go(a,r,s&&s[e],n)),a}function Cy(t,e,i,o){const{_proxy:r,_context:s,_subProxy:n,_stack:a}=i;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=e(s,n||o);return a.delete(t),Vl(t,l)&&(l=Wl(r._scopes,r,t,l)),l}function Ey(t,e,i,o){const{_proxy:r,_context:s,_subProxy:n,_descriptors:a}=i;if(typeof s.index<"u"&&o(t))return e[s.index%e.length];if(Tt(e[0])){const l=e,u=r._scopes.filter(c=>c!==l);e=[];for(const c of l){const d=Wl(u,r,t,c);e.push(Go(d,s,n&&n[t],a))}}return e}function ip(t,e,i){return Xi(t)?t(e,i):t}const Ty=(t,e)=>t===!0?e:typeof t=="string"?zr(e,t):void 0;function Oy(t,e,i,o,r){for(const s of e){const n=Ty(i,s);if(n){t.add(n);const a=ip(n._fallback,i,r);if(typeof a<"u"&&a!==i&&a!==o)return a}else if(n===!1&&typeof o<"u"&&i!==o)return null}return!1}function Wl(t,e,i,o){const r=e._rootScopes,s=ip(e._fallback,i,o),n=[...t,...r],a=new Set;a.add(o);let l=ju(a,n,i,s||i,o);return l===null||typeof s<"u"&&s!==i&&(l=ju(a,n,s,l,o),l===null)?!1:zl(Array.from(a),[""],r,s,()=>ky(e,i,o))}function ju(t,e,i,o,r){for(;i;)i=Oy(t,e,i,o,r);return i}function ky(t,e,i){const o=t._getTarget();e in o||(o[e]={});const r=o[e];return me(r)&&Tt(i)?i:r||{}}function Ay(t,e,i,o){let r;for(const s of e)if(r=op(wy(s,t),i),typeof r<"u")return Vl(t,r)?Wl(i,o,t,r):r}function op(t,e){for(const i of e){if(!i)continue;const o=i[t];if(typeof o<"u")return o}}function Hu(t){let e=t._keys;return e||(e=t._keys=Ry(t._scopes)),e}function Ry(t){const e=new Set;for(const i of t)for(const o of Object.keys(i).filter(r=>!r.startsWith("_")))e.add(o);return Array.from(e)}const My=Number.EPSILON||1e-14,Ko=(t,e)=>et==="x"?"y":"x";function Iy(t,e,i,o){const r=t.skip?e:t,s=e,n=i.skip?e:i,a=Qa(s,r),l=Qa(n,s);let u=a/(a+l),c=l/(a+l);u=isNaN(u)?0:u,c=isNaN(c)?0:c;const d=o*u,p=o*c;return{previous:{x:s.x-d*(n.x-r.x),y:s.y-d*(n.y-r.y)},next:{x:s.x+p*(n.x-r.x),y:s.y+p*(n.y-r.y)}}}function Py(t,e,i){const o=t.length;let r,s,n,a,l,u=Ko(t,0);for(let c=0;c!u.skip)),e.cubicInterpolationMode==="monotone")Ny(t,r);else{let u=o?t[t.length-1]:t[0];for(s=0,n=t.length;st.ownerDocument.defaultView.getComputedStyle(t,null);function Fy(t,e){return Mn(t).getPropertyValue(e)}const By=["top","right","bottom","left"];function bo(t,e,i){const o={};i=i?"-"+i:"";for(let r=0;r<4;r++){const s=By[r];o[s]=parseFloat(t[e+"-"+s+i])||0}return o.width=o.left+o.right,o.height=o.top+o.bottom,o}const jy=(t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot);function Hy(t,e){const i=t.touches,o=i&&i.length?i[0]:t,{offsetX:r,offsetY:s}=o;let n=!1,a,l;if(jy(r,s,t.target))a=r,l=s;else{const u=e.getBoundingClientRect();a=o.clientX-u.left,l=o.clientY-u.top,n=!0}return{x:a,y:l,box:n}}function ao(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:o}=e,r=Mn(i),s=r.boxSizing==="border-box",n=bo(r,"padding"),a=bo(r,"border","width"),{x:l,y:u,box:c}=Hy(t,i),d=n.left+(c&&a.left),p=n.top+(c&&a.top);let{width:g,height:v}=e;return s&&(g-=n.width+a.width,v-=n.height+a.height),{x:Math.round((l-d)/g*i.width/o),y:Math.round((u-p)/v*i.height/o)}}function Uy(t,e,i){let o,r;if(e===void 0||i===void 0){const s=t&&Gl(t);if(!s)e=t.clientWidth,i=t.clientHeight;else{const n=s.getBoundingClientRect(),a=Mn(s),l=bo(a,"border","width"),u=bo(a,"padding");e=n.width-u.width-l.width,i=n.height-u.height-l.height,o=sn(a.maxWidth,s,"clientWidth"),r=sn(a.maxHeight,s,"clientHeight")}}return{width:e,height:i,maxWidth:o||rn,maxHeight:r||rn}}const qi=t=>Math.round(t*10)/10;function zy(t,e,i,o){const r=Mn(t),s=bo(r,"margin"),n=sn(r.maxWidth,t,"clientWidth")||rn,a=sn(r.maxHeight,t,"clientHeight")||rn,l=Uy(t,e,i);let{width:u,height:c}=l;if(r.boxSizing==="content-box"){const d=bo(r,"border","width"),p=bo(r,"padding");u-=p.width+d.width,c-=p.height+d.height}return u=Math.max(0,u-s.width),c=Math.max(0,o?u/o:c-s.height),u=qi(Math.min(u,n,l.maxWidth)),c=qi(Math.min(c,a,l.maxHeight)),u&&!c&&(c=qi(u/2)),(e!==void 0||i!==void 0)&&o&&l.height&&c>l.height&&(c=l.height,u=qi(Math.floor(c*o))),{width:u,height:c}}function Uu(t,e,i){const o=e||1,r=qi(t.height*o),s=qi(t.width*o);t.height=qi(t.height),t.width=qi(t.width);const n=t.canvas;return n.style&&(i||!n.style.height&&!n.style.width)&&(n.style.height=`${t.height}px`,n.style.width=`${t.width}px`),t.currentDevicePixelRatio!==o||n.height!==r||n.width!==s?(t.currentDevicePixelRatio=o,n.height=r,n.width=s,t.ctx.setTransform(o,0,0,o,0,0),!0):!1}const Vy=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};ql()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function zu(t,e){const i=Fy(t,e),o=i&&i.match(/^(\d+)(\.\d+)?px$/);return o?+o[1]:void 0}function lo(t,e,i,o){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function Wy(t,e,i,o){return{x:t.x+i*(e.x-t.x),y:o==="middle"?i<.5?t.y:e.y:o==="after"?i<1?t.y:e.y:i>0?e.y:t.y}}function qy(t,e,i,o){const r={x:t.cp2x,y:t.cp2y},s={x:e.cp1x,y:e.cp1y},n=lo(t,r,i),a=lo(r,s,i),l=lo(s,e,i),u=lo(n,a,i),c=lo(a,l,i);return lo(u,c,i)}const Gy=function(t,e){return{x(i){return t+t+e-i},setWidth(i){e=i},textAlign(i){return i==="center"?i:i==="right"?"left":"right"},xPlus(i,o){return i-o},leftForLtr(i,o){return i-o}}},Ky=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function ha(t,e,i){return t?Gy(e,i):Ky()}function Xy(t,e){let i,o;(e==="ltr"||e==="rtl")&&(i=t.canvas.style,o=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=o)}function Yy(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function sp(t){return t==="angle"?{between:Wr,compare:Vb,normalize:Ve}:{between:Dl,compare:(e,i)=>e-i,normalize:e=>e}}function Vu({start:t,end:e,count:i,loop:o,style:r}){return{start:t%i,end:e%i,loop:o&&(e-t+1)%i===0,style:r}}function Jy(t,e,i){const{property:o,start:r,end:s}=i,{between:n,normalize:a}=sp(o),l=e.length;let{start:u,end:c,loop:d}=t,p,g;if(d){for(u+=l,c+=l,p=0,g=l;pl(r,I,_)&&a(r,I)!==0,N=()=>a(s,_)===0||l(s,I,_),tt=()=>b||T(),X=()=>!b||N();for(let Y=c,mt=c;Y<=d;++Y)k=e[Y%n],!k.skip&&(_=u(k[o]),_!==I&&(b=l(_,r,s),C===null&&tt()&&(C=a(_,r)===0?Y:mt),C!==null&&X()&&(v.push(Vu({start:C,end:Y,loop:p,count:n,style:g})),C=null),mt=Y,I=_));return C!==null&&v.push(Vu({start:C,end:d,loop:p,count:n,style:g})),v}function ap(t,e){const i=[],o=t.segments;for(let r=0;rr&&t[s%e].skip;)s--;return s%=e,{start:r,end:s}}function Qy(t,e,i,o){const r=t.length,s=[];let n=e,a=t[e],l;for(l=e+1;l<=i;++l){const u=t[l%r];u.skip||u.stop?a.skip||(o=!1,s.push({start:e%r,end:(l-1)%r,loop:o}),e=n=u.stop?l:null):(n=l,a.skip&&(e=l)),a=u}return n!==null&&s.push({start:e%r,end:n%r,loop:o}),s}function t_(t,e){const i=t.points,o=t.options.spanGaps,r=i.length;if(!r)return[];const s=!!t._loop,{start:n,end:a}=Zy(i,r,s,o);if(o===!0)return Wu(t,[{start:n,end:a,loop:s}],i,e);const l=aa({chart:e,initial:i.initial,numSteps:n,currentStep:Math.min(o-i.start,n)}))}_refresh(){this._request||(this._running=!0,this._request=Jf.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let i=0;this._charts.forEach((o,r)=>{if(!o.running||!o.items.length)return;const s=o.items;let n=s.length-1,a=!1,l;for(;n>=0;--n)l=s[n],l._active?(l._total>o.duration&&(o.duration=l._total),l.tick(e),a=!0):(s[n]=s[s.length-1],s.pop());a&&(r.draw(),this._notify(r,o,e,"progress")),s.length||(o.running=!1,this._notify(r,o,e,"complete"),o.initial=!1),i+=s.length}),this._lastDate=e,i===0&&(this._running=!1)}_getAnims(e){const i=this._charts;let o=i.get(e);return o||(o={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},i.set(e,o)),o}listen(e,i,o){this._getAnims(e).listeners[i].push(o)}add(e,i){!i||!i.length||this._getAnims(e).items.push(...i)}has(e){return this._getAnims(e).items.length>0}start(e){const i=this._charts.get(e);i&&(i.running=!0,i.start=Date.now(),i.duration=i.items.reduce((o,r)=>Math.max(o,r._duration),0),this._refresh())}running(e){if(!this._running)return!1;const i=this._charts.get(e);return!(!i||!i.running||!i.items.length)}stop(e){const i=this._charts.get(e);if(!i||!i.items.length)return;const o=i.items;let r=o.length-1;for(;r>=0;--r)o[r].cancel();i.items=[],this._notify(e,i,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var Ti=new r_;const Gu="transparent",s_={boolean(t,e,i){return i>.5?e:t},color(t,e,i){const o=Lu(t||Gu),r=o.valid&&Lu(e||Gu);return r&&r.valid?r.mix(o,i).hexString():e},number(t,e,i){return t+(e-t)*i}};class n_{constructor(e,i,o,r){const s=i[o];r=xs([e.to,r,s,e.from]);const n=xs([e.from,s,r]);this._active=!0,this._fn=e.fn||s_[e.type||typeof n],this._easing=Mr[e.easing]||Mr.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=i,this._prop=o,this._from=n,this._to=r,this._promises=void 0}active(){return this._active}update(e,i,o){if(this._active){this._notify(!1);const r=this._target[this._prop],s=o-this._start,n=this._duration-s;this._start=o,this._duration=Math.floor(Math.max(n,e.duration)),this._total+=s,this._loop=!!e.loop,this._to=xs([e.to,i,r,e.from]),this._from=xs([e.from,r,i])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const i=e-this._start,o=this._duration,r=this._prop,s=this._from,n=this._loop,a=this._to;let l;if(this._active=s!==a&&(n||i1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[r]=this._fn(s,a,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((i,o)=>{e.push({res:i,rej:o})})}_notify(e){const i=e?"res":"rej",o=this._promises||[];for(let r=0;r{const s=e[r];if(!Tt(s))return;const n={};for(const a of i)n[a]=s[a];(me(s.properties)&&s.properties||[r]).forEach(a=>{(a===r||!o.has(a))&&o.set(a,n)})})}_animateOptions(e,i){const o=i.options,r=l_(e,o);if(!r)return[];const s=this._createAnimations(r,o);return o.$shared&&a_(e.options.$animations,o).then(()=>{e.options=o},()=>{}),s}_createAnimations(e,i){const o=this._properties,r=[],s=e.$animations||(e.$animations={}),n=Object.keys(i),a=Date.now();let l;for(l=n.length-1;l>=0;--l){const u=n[l];if(u.charAt(0)==="$")continue;if(u==="options"){r.push(...this._animateOptions(e,i));continue}const c=i[u];let d=s[u];const p=o.get(u);if(d)if(p&&d.active()){d.update(p,c,a);continue}else d.cancel();if(!p||!p.duration){e[u]=c;continue}s[u]=d=new n_(p,e,u,c),r.push(d)}return r}update(e,i){if(this._properties.size===0){Object.assign(e,i);return}const o=this._createAnimations(e,i);if(o.length)return Ti.add(this._chart,o),!0}}function a_(t,e){const i=[],o=Object.keys(e);for(let r=0;r0||!i&&s<0)return r.index}return null}function Ju(t,e){const{chart:i,_cachedMeta:o}=t,r=i._stacks||(i._stacks={}),{iScale:s,vScale:n,index:a}=o,l=s.axis,u=n.axis,c=d_(s,n,o),d=e.length;let p;for(let g=0;gi[o].axis===e).shift()}function m_(t,e){return So(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function g_(t,e,i){return So(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:i,index:e,mode:"default",type:"data"})}function ur(t,e){const i=t.controller.index,o=t.vScale&&t.vScale.axis;if(o){e=e||t._parsed;for(const r of e){const s=r._stacks;if(!s||s[o]===void 0||s[o][i]===void 0)return;delete s[o][i],s[o]._visualValues!==void 0&&s[o]._visualValues[i]!==void 0&&delete s[o]._visualValues[i]}}}const pa=t=>t==="reset"||t==="none",Zu=(t,e)=>e?t:Object.assign({},t),b_=(t,e,i)=>t&&!e.hidden&&e._stacked&&{keys:up(i,!0),values:null};class Kl{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,i){this.chart=e,this._ctx=e.ctx,this.index=i,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=da(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&ur(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,i=this._cachedMeta,o=this.getDataset(),r=(d,p,g,v)=>d==="x"?p:d==="r"?v:g,s=i.xAxisID=$t(o.xAxisID,fa(e,"x")),n=i.yAxisID=$t(o.yAxisID,fa(e,"y")),a=i.rAxisID=$t(o.rAxisID,fa(e,"r")),l=i.indexAxis,u=i.iAxisID=r(l,s,n,a),c=i.vAxisID=r(l,n,s,a);i.xScale=this.getScaleForId(s),i.yScale=this.getScaleForId(n),i.rScale=this.getScaleForId(a),i.iScale=this.getScaleForId(u),i.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const i=this._cachedMeta;return e===i.iScale?i.vScale:i.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&Ru(this._data,this),e._stacked&&ur(e)}_dataCheck(){const e=this.getDataset(),i=e.data||(e.data=[]),o=this._data;if(Tt(i)){const r=this._cachedMeta;this._data=h_(i,r)}else if(o!==i){if(o){Ru(o,this);const r=this._cachedMeta;ur(r),r._parsed=[]}i&&Object.isExtensible(i)&&Kb(i,this),this._syncList=[],this._data=i}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const i=this._cachedMeta,o=this.getDataset();let r=!1;this._dataCheck();const s=i._stacked;i._stacked=da(i.vScale,i),i.stack!==o.stack&&(r=!0,ur(i),i.stack=o.stack),this._resyncElements(e),(r||s!==i._stacked)&&(Ju(this,i._parsed),i._stacked=da(i.vScale,i))}configure(){const e=this.chart.config,i=e.datasetScopeKeys(this._type),o=e.getOptionScopes(this.getDataset(),i,!0);this.options=e.createResolver(o,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,i){const{_cachedMeta:o,_data:r}=this,{iScale:s,_stacked:n}=o,a=s.axis;let l=e===0&&i===r.length?!0:o._sorted,u=e>0&&o._parsed[e-1],c,d,p;if(this._parsing===!1)o._parsed=r,o._sorted=!0,p=r;else{me(r[e])?p=this.parseArrayData(o,r,e,i):Tt(r[e])?p=this.parseObjectData(o,r,e,i):p=this.parsePrimitiveData(o,r,e,i);const g=()=>d[a]===null||u&&d[a]b||d=0;--p)if(!v()){this.updateRangeFromParsed(u,e,g,l);break}}return u}getAllParsedValues(e){const i=this._cachedMeta._parsed,o=[];let r,s,n;for(r=0,s=i.length;r=0&&ethis.getContext(o,r,i),b=u.resolveNamedOptions(p,g,v,d);return b.$shared&&(b.$shared=l,s[n]=Object.freeze(Zu(b,l))),b}_resolveAnimations(e,i,o){const r=this.chart,s=this._cachedDataOpts,n=`animation-${i}`,a=s[n];if(a)return a;let l;if(r.options.animation!==!1){const c=this.chart.config,d=c.datasetAnimationScopeKeys(this._type,i),p=c.getOptionScopes(this.getDataset(),d);l=c.createResolver(p,this.getContext(e,o,i))}const u=new cp(r,l&&l.animations);return l&&l._cacheable&&(s[n]=Object.freeze(u)),u}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,i){return!i||pa(e)||this.chart._animationsDisabled}_getSharedOptions(e,i){const o=this.resolveDataElementOptions(e,i),r=this._sharedOptions,s=this.getSharedOptions(o),n=this.includeOptions(i,s)||s!==r;return this.updateSharedOptions(s,i,o),{sharedOptions:s,includeOptions:n}}updateElement(e,i,o,r){pa(r)?Object.assign(e,o):this._resolveAnimations(i,r).update(e,o)}updateSharedOptions(e,i,o){e&&!pa(i)&&this._resolveAnimations(void 0,i).update(e,o)}_setStyle(e,i,o,r){e.active=r;const s=this.getStyle(i,r);this._resolveAnimations(i,o,r).update(e,{options:!r&&this.getSharedOptions(s)||s})}removeHoverStyle(e,i,o){this._setStyle(e,o,"active",!1)}setHoverStyle(e,i,o){this._setStyle(e,o,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const i=this._data,o=this._cachedMeta.data;for(const[a,l,u]of this._syncList)this[a](l,u);this._syncList=[];const r=o.length,s=i.length,n=Math.min(s,r);n&&this.parse(0,n),s>r?this._insertElements(r,s-r,e):s{for(u.length+=i,a=u.length-1;a>=n;a--)u[a]=u[a-i]};for(l(s),a=e;aWr(I,a,l,!0)?1:Math.max(T,T*i,N,N*i),v=(I,T,N)=>Wr(I,a,l,!0)?-1:Math.min(T,T*i,N,N*i),b=g(0,u,d),C=g(ce,c,p),_=v(Ut,u,d),k=v(Ut+ce,c,p);o=(b-_)/2,r=(C-k)/2,s=-(b+_)/2,n=-(C+k)/2}return{ratioX:o,ratioY:r,offsetX:s,offsetY:n}}class __ extends Kl{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:e=>e!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const i=e.data,{labels:{pointStyle:o,textAlign:r,color:s,useBorderRadius:n,borderRadius:a}}=e.legend.options;return i.labels.length&&i.datasets.length?i.labels.map((l,u)=>{const c=e.getDatasetMeta(0).controller.getStyle(u);return{text:l,fillStyle:c.backgroundColor,fontColor:s,hidden:!e.getDataVisibility(u),lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:c.borderWidth,strokeStyle:c.borderColor,textAlign:r,pointStyle:o,borderRadius:n&&(a||c.borderRadius),index:u}}):[]}},onClick(e,i,o){o.chart.toggleDataVisibility(i.index),o.chart.update()}}}};constructor(e,i){super(e,i),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,i){const o=this.getDataset().data,r=this._cachedMeta;if(this._parsing===!1)r._parsed=o;else{let s=l=>+o[l];if(Tt(o[e])){const{key:l="value"}=this._parsing;s=u=>+zr(o[u],l)}let n,a;for(n=e,a=e+i;n0&&!isNaN(e)?ie*(Math.abs(e)/i):0}getLabelAndValue(e){const i=this._cachedMeta,o=this.chart,r=o.data.labels||[],s=Bl(i._parsed[e],o.options.locale);return{label:r[e]||"",value:s}}getMaxBorderWidth(e){let i=0;const o=this.chart;let r,s,n,a,l;if(!e){for(r=0,s=o.data.datasets.length;r0&&this.getParsed(i-1);for(let N=0;N=k){X.skip=!0;continue}const Y=this.getParsed(N),mt=qt(Y[g]),nt=X[p]=n.getPixelForValue(Y[p],N),gt=X[g]=s||mt?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,Y,l):Y[g],N);X.skip=isNaN(nt)||isNaN(gt)||mt,X.stop=N>0&&Math.abs(Y[p]-T[p])>C,b&&(X.parsed=Y,X.raw=u.data[N]),d&&(X.options=c||this.resolveDataElementOptions(N,tt.active?"active":r)),_||this.updateElement(tt,N,X,r),T=Y}}getMaxOverflow(){const e=this._cachedMeta,i=e.dataset,o=i.options&&i.options.borderWidth||0,r=e.data||[];if(!r.length)return o;const s=r[0].size(this.resolveDataElementOptions(0)),n=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(o,s,n)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}function so(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Yl{static override(e){Object.assign(Yl.prototype,e)}options;constructor(e){this.options=e||{}}init(){}formats(){return so()}parse(){return so()}format(){return so()}add(){return so()}diff(){return so()}startOf(){return so()}endOf(){return so()}}var v_={_date:Yl};function x_(t,e,i,o){const{controller:r,data:s,_sorted:n}=t,a=r._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&e===a.axis&&e!=="r"&&n&&s.length){const u=a._reversePixels?qb:ho;if(o){if(r._sharedOptions){const c=s[0],d=typeof c.getRange=="function"&&c.getRange(e);if(d){const p=u(s,e,i-d),g=u(s,e,i+d);return{lo:p.lo,hi:g.hi}}}}else{const c=u(s,e,i);if(l){const{vScale:d}=r._cachedMeta,{_parsed:p}=t,g=p.slice(0,c.lo+1).reverse().findIndex(b=>!qt(b[d.axis]));c.lo-=Math.max(0,g);const v=p.slice(c.hi).findIndex(b=>!qt(b[d.axis]));c.hi+=Math.max(0,v)}return c}}return{lo:0,hi:s.length-1}}function In(t,e,i,o,r){const s=t.getSortedVisibleDatasetMetas(),n=i[e];for(let a=0,l=s.length;a{l[n]&&l[n](e[i],r)&&(s.push({element:l,datasetIndex:u,index:c}),a=a||l.inRange(e.x,e.y,r))}),o&&!a?[]:s}var E_={modes:{index(t,e,i,o){const r=ao(e,t),s=i.axis||"x",n=i.includeInvisible||!1,a=i.intersect?ma(t,r,s,o,n):ga(t,r,s,!1,o,n),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(u=>{const c=a[0].index,d=u.data[c];d&&!d.skip&&l.push({element:d,datasetIndex:u.index,index:c})}),l):[]},dataset(t,e,i,o){const r=ao(e,t),s=i.axis||"xy",n=i.includeInvisible||!1;let a=i.intersect?ma(t,r,s,o,n):ga(t,r,s,!1,o,n);if(a.length>0){const l=a[0].datasetIndex,u=t.getDatasetMeta(l).data;a=[];for(let c=0;ci.pos===e)}function th(t,e){return t.filter(i=>hp.indexOf(i.pos)===-1&&i.box.axis===e)}function dr(t,e){return t.sort((i,o)=>{const r=e?o:i,s=e?i:o;return r.weight===s.weight?r.index-s.index:r.weight-s.weight})}function T_(t){const e=[];let i,o,r,s,n,a;for(i=0,o=(t||[]).length;iu.box.fullSize),!0),o=dr(hr(e,"left"),!0),r=dr(hr(e,"right")),s=dr(hr(e,"top"),!0),n=dr(hr(e,"bottom")),a=th(e,"x"),l=th(e,"y");return{fullSize:i,leftAndTop:o.concat(s),rightAndBottom:r.concat(l).concat(n).concat(a),chartArea:hr(e,"chartArea"),vertical:o.concat(r).concat(l),horizontal:s.concat(n).concat(a)}}function eh(t,e,i,o){return Math.max(t[i],e[i])+Math.max(t[o],e[o])}function dp(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function R_(t,e,i,o){const{pos:r,box:s}=i,n=t.maxPadding;if(!Tt(r)){i.size&&(t[r]-=i.size);const d=o[i.stack]||{size:0,count:1};d.size=Math.max(d.size,i.horizontal?s.height:s.width),i.size=d.size/d.count,t[r]+=i.size}s.getPadding&&dp(n,s.getPadding());const a=Math.max(0,e.outerWidth-eh(n,t,"left","right")),l=Math.max(0,e.outerHeight-eh(n,t,"top","bottom")),u=a!==t.w,c=l!==t.h;return t.w=a,t.h=l,i.horizontal?{same:u,other:c}:{same:c,other:u}}function M_(t){const e=t.maxPadding;function i(o){const r=Math.max(e[o]-t[o],0);return t[o]+=r,r}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}function I_(t,e){const i=e.maxPadding;function o(r){const s={left:0,top:0,right:0,bottom:0};return r.forEach(n=>{s[n]=Math.max(e[n],i[n])}),s}return o(t?["left","right"]:["top","bottom"])}function xr(t,e,i,o){const r=[];let s,n,a,l,u,c;for(s=0,n=t.length,u=0;s{typeof b.beforeLayout=="function"&&b.beforeLayout()});const c=l.reduce((b,C)=>C.box.options&&C.box.options.display===!1?b:b+1,0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:r,availableWidth:s,availableHeight:n,vBoxMaxWidth:s/2/c,hBoxMaxHeight:n/2}),p=Object.assign({},r);dp(p,Yi(o));const g=Object.assign({maxPadding:p,w:s,h:n,x:r.left,y:r.top},r),v=k_(l.concat(u),d);xr(a.fullSize,g,d,v),xr(l,g,d,v),xr(u,g,d,v)&&xr(l,g,d,v),M_(g),ih(a.leftAndTop,g,d,v),g.x+=g.w,g.y+=g.h,ih(a.rightAndBottom,g,d,v),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},jt(a.chartArea,b=>{const C=b.box;Object.assign(C,t.chartArea),C.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})})}};class fp{acquireContext(e,i){}releaseContext(e){return!1}addEventListener(e,i,o){}removeEventListener(e,i,o){}getDevicePixelRatio(){return 1}getMaximumSize(e,i,o,r){return i=Math.max(0,i||e.width),o=o||e.height,{width:i,height:Math.max(0,r?Math.floor(i/r):o)}}isAttached(e){return!0}updateConfig(e){}}class P_ extends fp{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const Ds="$chartjs",L_={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},oh=t=>t===null||t==="";function N_(t,e){const i=t.style,o=t.getAttribute("height"),r=t.getAttribute("width");if(t[Ds]={initial:{height:o,width:r,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",oh(r)){const s=zu(t,"width");s!==void 0&&(t.width=s)}if(oh(o))if(t.style.height==="")t.height=t.width/(e||2);else{const s=zu(t,"height");s!==void 0&&(t.height=s)}return t}const pp=Vy?{passive:!0}:!1;function D_(t,e,i){t&&t.addEventListener(e,i,pp)}function $_(t,e,i){t&&t.canvas&&t.canvas.removeEventListener(e,i,pp)}function F_(t,e){const i=L_[t.type]||t.type,{x:o,y:r}=ao(t,e);return{type:i,chart:e,native:t,x:o!==void 0?o:null,y:r!==void 0?r:null}}function nn(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function B_(t,e,i){const o=t.canvas,r=new MutationObserver(s=>{let n=!1;for(const a of s)n=n||nn(a.addedNodes,o),n=n&&!nn(a.removedNodes,o);n&&i()});return r.observe(document,{childList:!0,subtree:!0}),r}function j_(t,e,i){const o=t.canvas,r=new MutationObserver(s=>{let n=!1;for(const a of s)n=n||nn(a.removedNodes,o),n=n&&!nn(a.addedNodes,o);n&&i()});return r.observe(document,{childList:!0,subtree:!0}),r}const Gr=new Map;let rh=0;function mp(){const t=window.devicePixelRatio;t!==rh&&(rh=t,Gr.forEach((e,i)=>{i.currentDevicePixelRatio!==t&&e()}))}function H_(t,e){Gr.size||window.addEventListener("resize",mp),Gr.set(t,e)}function U_(t){Gr.delete(t),Gr.size||window.removeEventListener("resize",mp)}function z_(t,e,i){const o=t.canvas,r=o&&Gl(o);if(!r)return;const s=Zf((a,l)=>{const u=r.clientWidth;i(a,l),u{const l=a[0],u=l.contentRect.width,c=l.contentRect.height;u===0&&c===0||s(u,c)});return n.observe(r),H_(t,s),n}function ba(t,e,i){i&&i.disconnect(),e==="resize"&&U_(t)}function V_(t,e,i){const o=t.canvas,r=Zf(s=>{t.ctx!==null&&i(F_(s,t))},t);return D_(o,e,r),r}class W_ extends fp{acquireContext(e,i){const o=e&&e.getContext&&e.getContext("2d");return o&&o.canvas===e?(N_(e,i),o):null}releaseContext(e){const i=e.canvas;if(!i[Ds])return!1;const o=i[Ds].initial;["height","width"].forEach(s=>{const n=o[s];qt(n)?i.removeAttribute(s):i.setAttribute(s,n)});const r=o.style||{};return Object.keys(r).forEach(s=>{i.style[s]=r[s]}),i.width=i.width,delete i[Ds],!0}addEventListener(e,i,o){this.removeEventListener(e,i);const r=e.$proxies||(e.$proxies={}),s={attach:B_,detach:j_,resize:z_}[i]||V_;r[i]=s(e,i,o)}removeEventListener(e,i){const o=e.$proxies||(e.$proxies={}),r=o[i];r&&(({attach:ba,detach:ba,resize:ba}[i]||$_)(e,i,r),o[i]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,i,o,r){return zy(e,i,o,r)}isAttached(e){const i=e&&Gl(e);return!!(i&&i.isConnected)}}function q_(t){return!ql()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?P_:W_}let Qo=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}hasValue(){return Vr(this.x)&&Vr(this.y)}getProps(t,e){const i=this.$animations;if(!e||!i)return this;const o={};return t.forEach(r=>{o[r]=i[r]&&i[r].active()?i[r]._to:this[r]}),o}};function G_(t,e){const i=t.options.ticks,o=K_(t),r=Math.min(i.maxTicksLimit||o,o),s=i.major.enabled?Y_(e):[],n=s.length,a=s[0],l=s[n-1],u=[];if(n>r)return J_(e,u,s,n/r),u;const c=X_(s,e,r);if(n>0){let d,p;const g=n>1?Math.round((l-a)/(n-1)):null;for(Ts(e,u,c,qt(g)?0:a-g,a),d=0,p=n-1;dr)return l}return Math.max(r,1)}function Y_(t){const e=[];let i,o;for(i=0,o=t.length;it==="left"?"right":t==="right"?"left":t,sh=(t,e,i)=>e==="top"||e==="left"?t[e]+i:t[e]-i,nh=(t,e)=>Math.min(e||t,t);function ah(t,e){const i=[],o=t.length/e,r=t.length;let s=0;for(;sn+a)))return l}function ev(t,e){jt(t,i=>{const o=i.gc,r=o.length/2;let s;if(r>e){for(s=0;so?o:i,o=r&&i>o?i:o,{min:fi(i,fi(o,i)),max:fi(o,fi(i,o))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){re(this.options.beforeUpdate,[this])}update(e,i,o){const{beginAtZero:r,grace:s,ticks:n}=this.options,a=n.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=i,this._margins=o=Object.assign({left:0,right:0,top:0,bottom:0},o),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+o.left+o.right:this.height+o.top+o.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=xy(this,s,r),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a=s||o<=1||!this.isHorizontal()){this.labelRotation=r;return}const c=this._getLabelSizes(),d=c.widest.width,p=c.highest.height,g=$e(this.chart.width-d,0,this.maxWidth);a=e.offset?this.maxWidth/o:g/(o-1),d+6>a&&(a=g/(o-(e.offset?.5:1)),l=this.maxHeight-fr(e.grid)-i.padding-lh(e.title,this.chart.options.font),u=Math.sqrt(d*d+p*p),n=zb(Math.min(Math.asin($e((c.highest.height+6)/a,-1,1)),Math.asin($e(l/u,-1,1))-Math.asin($e(p/u,-1,1)))),n=Math.max(r,Math.min(s,n))),this.labelRotation=n}afterCalculateLabelRotation(){re(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){re(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:i,options:{ticks:o,title:r,grid:s}}=this,n=this._isVisible(),a=this.isHorizontal();if(n){const l=lh(r,i.options.font);if(a?(e.width=this.maxWidth,e.height=fr(s)+l):(e.height=this.maxHeight,e.width=fr(s)+l),o.display&&this.ticks.length){const{first:u,last:c,widest:d,highest:p}=this._getLabelSizes(),g=o.padding*2,v=Pi(this.labelRotation),b=Math.cos(v),C=Math.sin(v);if(a){const _=o.mirror?0:C*d.width+b*p.height;e.height=Math.min(this.maxHeight,e.height+_+g)}else{const _=o.mirror?0:b*d.width+C*p.height;e.width=Math.min(this.maxWidth,e.width+_+g)}this._calculatePadding(u,c,C,b)}}this._handleMargins(),a?(this.width=this._length=i.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=i.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,i,o,r){const{ticks:{align:s,padding:n},position:a}=this.options,l=this.labelRotation!==0,u=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const c=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let p=0,g=0;l?u?(p=r*e.width,g=o*i.height):(p=o*e.height,g=r*i.width):s==="start"?g=i.width:s==="end"?p=e.width:s!=="inner"&&(p=e.width/2,g=i.width/2),this.paddingLeft=Math.max((p-c+n)*this.width/(this.width-c),0),this.paddingRight=Math.max((g-d+n)*this.width/(this.width-d),0)}else{let c=i.height/2,d=e.height/2;s==="start"?(c=0,d=e.height):s==="end"&&(c=i.height,d=0),this.paddingTop=c+n,this.paddingBottom=d+n}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){re(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:i}=this.options;return i==="top"||i==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let i,o;for(i=0,o=e.length;i({width:n[mt]||0,height:a[mt]||0});return{first:Y(0),last:Y(i-1),widest:Y(tt),highest:Y(X),widths:n,heights:a}}getLabelForValue(e){return e}getPixelForValue(e,i){return NaN}getValueForPixel(e){}getPixelForTick(e){const i=this.ticks;return e<0||e>i.length-1?null:this.getPixelForValue(i[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const i=this._startPixel+e*this._length;return Wb(this._alignToPixels?ro(this.chart,i,0):i)}getDecimalForPixel(e){const i=(e-this._startPixel)/this._length;return this._reversePixels?1-i:i}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:i}=this;return e<0&&i<0?i:e>0&&i>0?e:0}getContext(e){const i=this.ticks||[];if(e>=0&&ea*r?a/o:l/r:l*r0}_computeGridLineItems(e){const i=this.axis,o=this.chart,r=this.options,{grid:s,position:n,border:a}=r,l=s.offset,u=this.isHorizontal(),c=this.ticks.length+(l?1:0),d=fr(s),p=[],g=a.setContext(this.getContext()),v=g.display?g.width:0,b=v/2,C=function(it){return ro(o,it,v)};let _,k,I,T,N,tt,X,Y,mt,nt,gt,Et;if(n==="top")_=C(this.bottom),tt=this.bottom-d,Y=_-b,nt=C(e.top)+b,Et=e.bottom;else if(n==="bottom")_=C(this.top),nt=e.top,Et=C(e.bottom)-b,tt=_+b,Y=this.top+d;else if(n==="left")_=C(this.right),N=this.right-d,X=_-b,mt=C(e.left)+b,gt=e.right;else if(n==="right")_=C(this.left),mt=e.left,gt=C(e.right)-b,N=_+b,X=this.left+d;else if(i==="x"){if(n==="center")_=C((e.top+e.bottom)/2+.5);else if(Tt(n)){const it=Object.keys(n)[0],rt=n[it];_=C(this.chart.scales[it].getPixelForValue(rt))}nt=e.top,Et=e.bottom,tt=_+b,Y=tt+d}else if(i==="y"){if(n==="center")_=C((e.left+e.right)/2);else if(Tt(n)){const it=Object.keys(n)[0],rt=n[it];_=C(this.chart.scales[it].getPixelForValue(rt))}N=_-b,X=N-d,mt=e.left,gt=e.right}const zt=$t(r.ticks.maxTicksLimit,c),Nt=Math.max(1,Math.ceil(c/zt));for(k=0;k0&&(ft-=vt/2);break}Mt={left:ft,top:Ht,width:vt+ht.width,height:de+ht.height,color:it.backdropColor}}C.push({label:T,font:mt,textOffset:Et,options:{rotation:b,color:ut,strokeColor:Bt,strokeWidth:Vt,textAlign:Gt,textBaseline:zt,translation:[N,tt],backdrop:Mt}})}return C}_getXAxisLabelAlignment(){const{position:e,ticks:i}=this.options;if(-Pi(this.labelRotation))return e==="top"?"left":"right";let o="center";return i.align==="start"?o="left":i.align==="end"?o="right":i.align==="inner"&&(o="inner"),o}_getYAxisLabelAlignment(e){const{position:i,ticks:{crossAlign:o,mirror:r,padding:s}}=this.options,n=this._getLabelSizes(),a=e+s,l=n.widest.width;let u,c;return i==="left"?r?(c=this.right+s,o==="near"?u="left":o==="center"?(u="center",c+=l/2):(u="right",c+=l)):(c=this.right-a,o==="near"?u="right":o==="center"?(u="center",c-=l/2):(u="left",c=this.left)):i==="right"?r?(c=this.left+s,o==="near"?u="right":o==="center"?(u="center",c-=l/2):(u="left",c-=l)):(c=this.left+a,o==="near"?u="left":o==="center"?(u="center",c+=l/2):(u="right",c=this.right)):u="right",{textAlign:u,x:c}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,i=this.options.position;if(i==="left"||i==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(i==="top"||i==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:i},left:o,top:r,width:s,height:n}=this;i&&(e.save(),e.fillStyle=i,e.fillRect(o,r,s,n),e.restore())}getLineWidthForValue(e){const i=this.options.grid;if(!this._isVisible()||!i.display)return 0;const o=this.ticks.findIndex(r=>r.value===e);return o>=0?i.setContext(this.getContext(o)).lineWidth:0}drawGrid(e){const i=this.options.grid,o=this.ctx,r=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let s,n;const a=(l,u,c)=>{!c.width||!c.color||(o.save(),o.lineWidth=c.width,o.strokeStyle=c.color,o.setLineDash(c.borderDash||[]),o.lineDashOffset=c.borderDashOffset,o.beginPath(),o.moveTo(l.x,l.y),o.lineTo(u.x,u.y),o.stroke(),o.restore())};if(i.display)for(s=0,n=r.length;s{this.draw(s)}}]:[{z:o,draw:s=>{this.drawBackground(),this.drawGrid(s),this.drawTitle()}},{z:r,draw:()=>{this.drawBorder()}},{z:i,draw:s=>{this.drawLabels(s)}}]}getMatchingVisibleMetas(e){const i=this.chart.getSortedVisibleDatasetMetas(),o=this.axis+"AxisID",r=[];let s,n;for(s=0,n=i.length;s{const o=i.split("."),r=o.pop(),s=[t].concat(o).join("."),n=e[i].split("."),a=n.pop(),l=n.join(".");ne.route(s,r,l,a)})}function lv(t){return"id"in t&&"defaults"in t}class cv{constructor(){this.controllers=new Os(Kl,"datasets",!0),this.elements=new Os(Qo,"elements"),this.plugins=new Os(Object,"plugins"),this.scales=new Os(tr,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,i,o){[...i].forEach(r=>{const s=o||this._getRegistryForType(r);o||s.isForType(r)||s===this.plugins&&r.id?this._exec(e,s,r):jt(r,n=>{const a=o||this._getRegistryForType(n);this._exec(e,a,n)})})}_exec(e,i,o){const r=Nl(e);re(o["before"+r],[],o),i[e](o),re(o["after"+r],[],o)}_getRegistryForType(e){for(let i=0;is.filter(a=>!n.some(l=>a.plugin.id===l.plugin.id));this._notify(r(i,o),e,"stop"),this._notify(r(o,i),e,"start")}}function hv(t){const e={},i=[],o=Object.keys(gi.plugins.items);for(let s=0;s1&&ch(t[0].toLowerCase());if(o)return o}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function uh(t,e,i){if(i[e+"AxisID"]===t)return{axis:e}}function yv(t,e){if(e.data&&e.data.datasets){const i=e.data.datasets.filter(o=>o.xAxisID===t||o.yAxisID===t);if(i.length)return uh(t,"x",i[0])||uh(t,"y",i[0])}return{}}function _v(t,e){const i=_o[t.type]||{scales:{}},o=e.scales||{},r=il(t.type,e),s=Object.create(null);return Object.keys(o).forEach(n=>{const a=o[n];if(!Tt(a))return console.error(`Invalid scale configuration for scale: ${n}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${n}`);const l=ol(n,a,yv(n,t),ne.scales[a.type]),u=gv(l,r),c=i.scales||{};s[n]=Ar(Object.create(null),[{axis:l},a,c[l],c[u]])}),t.data.datasets.forEach(n=>{const a=n.type||t.type,l=n.indexAxis||il(a,e),u=(_o[a]||{}).scales||{};Object.keys(u).forEach(c=>{const d=mv(c,l),p=n[d+"AxisID"]||d;s[p]=s[p]||Object.create(null),Ar(s[p],[{axis:d},o[p],u[c]])})}),Object.keys(s).forEach(n=>{const a=s[n];Ar(a,[ne.scales[a.type],ne.scale])}),s}function gp(t){const e=t.options||(t.options={});e.plugins=$t(e.plugins,{}),e.scales=_v(t,e)}function bp(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function vv(t){return t=t||{},t.data=bp(t.data),gp(t),t}const hh=new Map,yp=new Set;function ks(t,e){let i=hh.get(t);return i||(i=e(),hh.set(t,i),yp.add(i)),i}const pr=(t,e,i)=>{const o=zr(e,i);o!==void 0&&t.add(o)};class xv{constructor(e){this._config=vv(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=bp(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),gp(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return ks(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,i){return ks(`${e}.transition.${i}`,()=>[[`datasets.${e}.transitions.${i}`,`transitions.${i}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,i){return ks(`${e}-${i}`,()=>[[`datasets.${e}.elements.${i}`,`datasets.${e}`,`elements.${i}`,""]])}pluginScopeKeys(e){const i=e.id,o=this.type;return ks(`${o}-plugin-${i}`,()=>[[`plugins.${i}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,i){const o=this._scopeCache;let r=o.get(e);return(!r||i)&&(r=new Map,o.set(e,r)),r}getOptionScopes(e,i,o){const{options:r,type:s}=this,n=this._cachedScopes(e,o),a=n.get(i);if(a)return a;const l=new Set;i.forEach(c=>{e&&(l.add(e),c.forEach(d=>pr(l,e,d))),c.forEach(d=>pr(l,r,d)),c.forEach(d=>pr(l,_o[s]||{},d)),c.forEach(d=>pr(l,ne,d)),c.forEach(d=>pr(l,tl,d))});const u=Array.from(l);return u.length===0&&u.push(Object.create(null)),yp.has(i)&&n.set(i,u),u}chartOptionScopes(){const{options:e,type:i}=this;return[e,_o[i]||{},ne.datasets[i]||{},{type:i},ne,tl]}resolveNamedOptions(e,i,o,r=[""]){const s={$shared:!0},{resolver:n,subPrefixes:a}=dh(this._resolverCache,e,r);let l=n;if(Sv(n,i)){s.$shared=!1,o=Xi(o)?o():o;const u=this.createResolver(e,o,a);l=Go(n,o,u)}for(const u of i)s[u]=l[u];return s}createResolver(e,i,o=[""],r){const{resolver:s}=dh(this._resolverCache,e,o);return Tt(i)?Go(s,i,void 0,r):s}}function dh(t,e,i){let o=t.get(e);o||(o=new Map,t.set(e,o));const r=i.join();let s=o.get(r);return s||(s={resolver:zl(e,i),subPrefixes:i.filter(n=>!n.toLowerCase().includes("hover"))},o.set(r,s)),s}const wv=t=>Tt(t)&&Object.getOwnPropertyNames(t).some(e=>Xi(t[e]));function Sv(t,e){const{isScriptable:i,isIndexable:o}=tp(t);for(const r of e){const s=i(r),n=o(r),a=(n||s)&&t[r];if(s&&(Xi(a)||wv(a))||n&&me(a))return!0}return!1}var Cv="4.5.1";const Ev=["top","bottom","left","right","chartArea"];function fh(t,e){return t==="top"||t==="bottom"||Ev.indexOf(t)===-1&&e==="x"}function ph(t,e){return function(i,o){return i[t]===o[t]?i[e]-o[e]:i[t]-o[t]}}function mh(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),re(i&&i.onComplete,[t],e)}function Tv(t){const e=t.chart,i=e.options.animation;re(i&&i.onProgress,[t],e)}function _p(t){return ql()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const $s={},gh=t=>{const e=_p(t);return Object.values($s).filter(i=>i.canvas===e).pop()};function Ov(t,e,i){const o=Object.keys(t);for(const r of o){const s=+r;if(s>=e){const n=t[r];delete t[r],(i>0||s>e)&&(t[s+i]=n)}}}function kv(t,e,i,o){return!i||t.type==="mouseout"?null:o?e:t}let vo=class{static defaults=ne;static instances=$s;static overrides=_o;static registry=gi;static version=Cv;static getChart=gh;static register(...t){gi.add(...t),bh()}static unregister(...t){gi.remove(...t),bh()}constructor(t,e){const i=this.config=new xv(e),o=_p(t),r=gh(o);if(r)throw new Error("Canvas is already in use. Chart with ID '"+r.id+"' must be destroyed before the canvas with ID '"+r.canvas.id+"' can be reused.");const s=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||q_(o)),this.platform.updateConfig(i);const n=this.platform.acquireContext(o,s.aspectRatio),a=n&&n.canvas,l=a&&a.height,u=a&&a.width;if(this.id=Rb(),this.ctx=n,this.canvas=a,this.width=u,this.height=l,this._options=s,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new uv,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=Yb(c=>this.update(c),s.resizeDelay||0),this._dataChanges=[],$s[this.id]=this,!n||!a){console.error("Failed to create chart: can't acquire context from the given item");return}Ti.listen(this,"complete",mh),Ti.listen(this,"progress",Tv),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:o,_aspectRatio:r}=this;return qt(t)?e&&r?r:o?i/o:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return gi}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():Uu(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return $u(this.canvas,this.ctx),this}stop(){return Ti.stop(this),this}resize(t,e){Ti.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,o=this.canvas,r=i.maintainAspectRatio&&this.aspectRatio,s=this.platform.getMaximumSize(o,t,e,r),n=i.devicePixelRatio||this.platform.getDevicePixelRatio(),a=this.width?"resize":"attach";this.width=s.width,this.height=s.height,this._aspectRatio=this.aspectRatio,Uu(this,n,!0)&&(this.notifyPlugins("resize",{size:s}),re(i.onResize,[this,s],this),this.attached&&this._doResize(a)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};jt(t,(e,i)=>{e.id=i})}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,o=Object.keys(i).reduce((s,n)=>(s[n]=!1,s),{});let r=[];e&&(r=r.concat(Object.keys(e).map(s=>{const n=e[s],a=ol(s,n),l=a==="r",u=a==="x";return{options:n,dposition:l?"chartArea":u?"bottom":"left",dtype:l?"radialLinear":u?"category":"linear"}}))),jt(r,s=>{const n=s.options,a=n.id,l=ol(a,n),u=$t(n.type,s.dtype);(n.position===void 0||fh(n.position,l)!==fh(s.dposition))&&(n.position=s.dposition),o[a]=!0;let c=null;if(a in i&&i[a].type===u)c=i[a];else{const d=gi.getScale(u);c=new d({id:a,type:u,ctx:this.ctx,chart:this}),i[c.id]=c}c.init(n,t)}),jt(o,(s,n)=>{s||delete i[n]}),jt(i,s=>{Es.configure(this,s,s.options),Es.addBox(this,s)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort((o,r)=>o.index-r.index),i>e){for(let o=e;oe.length&&delete this._stacks,t.forEach((i,o)=>{e.filter(r=>r===i._dataset).length===0&&this._destroyDatasetMeta(o)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,o;for(this._removeUnreferencedMetasets(),i=0,o=e.length;i{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),o=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const r=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let s=0;for(let l=0,u=this.data.datasets.length;l{l.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(ph("z","_idx"));const{_active:n,_lastEvent:a}=this;a?this._eventHandler(a,!0):n.length&&this._updateHoverStyles(n,n,!0),this.render()}_updateScales(){jt(this.scales,t=>{Es.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);(!Tu(e,i)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:o,count:r}of e){const s=i==="_removeElements"?-r:r;Ov(t,o,s)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=r=>new Set(t.filter(s=>s[0]===r).map((s,n)=>n+","+s.splice(1).join(","))),o=i(0);for(let r=1;rr.split(",")).map(r=>({method:r[1],start:+r[2],count:+r[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Es.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],jt(this.boxes,o=>{i&&o.position==="chartArea"||(o.configure&&o.configure(),this._layers.push(...o._layers()))},this),this._layers.forEach((o,r)=>{o._idx=r}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,i=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i={meta:t,index:t.index,cancelable:!0},o=lp(this,t);this.notifyPlugins("beforeDatasetDraw",i)!==!1&&(o&&jl(e,o),t.controller.draw(),o&&Hl(e),i.cancelable=!1,this.notifyPlugins("afterDatasetDraw",i))}isPointInArea(t){return qr(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,o){const r=E_.modes[e];return typeof r=="function"?r(this,t,i,o):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let o=i.filter(r=>r&&r._dataset===e).pop();return o||(o={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(o)),o}getContext(){return this.$context||(this.$context=So(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return typeof i.hidden=="boolean"?!i.hidden:!e.hidden}setDatasetVisibility(t,e){const i=this.getDatasetMeta(t);i.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const o=i?"show":"hide",r=this.getDatasetMeta(t),s=r.controller._resolveAnimations(void 0,o);on(e)?(r.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),s.update(r,{visible:i}),this.update(n=>n.datasetIndex===t?o:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),Ti.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,r,s),t[r]=s},o=(r,s,n)=>{r.offsetX=s,r.offsetY=n,this._eventHandler(r)};jt(this.options.events,r=>i(r,o))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(a,l)=>{e.addEventListener(this,a,l),t[a]=l},o=(a,l)=>{t[a]&&(e.removeEventListener(this,a,l),delete t[a])},r=(a,l)=>{this.canvas&&this.resize(a,l)};let s;const n=()=>{o("attach",n),this.attached=!0,this.resize(),i("resize",r),i("detach",s)};s=()=>{this.attached=!1,o("resize",r),this._stop(),this._resize(0,0),i("attach",n)},e.isAttached(this.canvas)?n():s()}unbindEvents(){jt(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},jt(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const o=i?"set":"remove";let r,s,n,a;for(e==="dataset"&&(r=this.getDatasetMeta(t[0].datasetIndex),r.controller["_"+o+"DatasetHoverStyle"]()),n=0,a=t.length;n{const s=this.getDatasetMeta(o);if(!s)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:s.data[r],index:r}});!tn(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return this._plugins._cache.filter(e=>e.plugin.id===t).length===1}_updateHoverStyles(t,e,i){const o=this.options.hover,r=(a,l)=>a.filter(u=>!l.some(c=>u.datasetIndex===c.datasetIndex&&u.index===c.index)),s=r(e,t),n=i?t:r(t,e);s.length&&this.updateHoverStyle(s,o.mode,!1),n.length&&o.mode&&this.updateHoverStyle(n,o.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},o=s=>(s.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",i,o)===!1)return;const r=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,o),(r||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:o=[],options:r}=this,s=e,n=this._getActiveElements(t,o,i,s),a=Db(t),l=kv(t,this._lastEvent,i,a);i&&(this._lastEvent=null,re(r.onHover,[t,n,this],this),a&&re(r.onClick,[t,n,this],this));const u=!tn(n,o);return(u||e)&&(this._active=n,this._updateHoverStyles(n,o,e)),this._lastEvent=l,u}_getActiveElements(t,e,i,o){if(t.type==="mouseout")return[];if(!i)return e;const r=this.options.hover;return this.getElementsAtEventForMode(t,r.mode,r,o)}};function bh(){return jt(vo.instances,t=>t._plugins.invalidate())}function Av(t,e,i){const{startAngle:o,x:r,y:s,outerRadius:n,innerRadius:a,options:l}=e,{borderWidth:u,borderJoinStyle:c}=l,d=Math.min(u/n,Ve(o-i));if(t.beginPath(),t.arc(r,s,n-u/2,o+d/2,i-d/2),a>0){const p=Math.min(u/a,Ve(o-i));t.arc(r,s,a+u/2,i-p/2,o+p/2,!0)}else{const p=Math.min(u/2,n*Ve(o-i));if(c==="round")t.arc(r,s,p,i-Ut/2,o+Ut/2,!0);else if(c==="bevel"){const g=2*p*p,v=-g*Math.cos(i+Ut/2)+r,b=-g*Math.sin(i+Ut/2)+s,C=g*Math.cos(o+Ut/2)+r,_=g*Math.sin(o+Ut/2)+s;t.lineTo(v,b),t.lineTo(C,_)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip("evenodd")}function Rv(t,e,i){const{startAngle:o,pixelMargin:r,x:s,y:n,outerRadius:a,innerRadius:l}=e;let u=r/a;t.beginPath(),t.arc(s,n,a,o-u,i+u),l>r?(u=r/l,t.arc(s,n,l,i+u,o-u,!0)):t.arc(s,n,r,i+ce,o-ce),t.closePath(),t.clip()}function Mv(t){return Ul(t,["outerStart","outerEnd","innerStart","innerEnd"])}function Iv(t,e,i,o){const r=Mv(t.options.borderRadius),s=(i-e)/2,n=Math.min(s,o*e/2),a=l=>{const u=(i-Math.min(s,l))*o/2;return $e(l,0,Math.min(s,u))};return{outerStart:a(r.outerStart),outerEnd:a(r.outerEnd),innerStart:$e(r.innerStart,0,n),innerEnd:$e(r.innerEnd,0,n)}}function Io(t,e,i,o){return{x:i+t*Math.cos(e),y:o+t*Math.sin(e)}}function an(t,e,i,o,r,s){const{x:n,y:a,startAngle:l,pixelMargin:u,innerRadius:c}=e,d=Math.max(e.outerRadius+o+i-u,0),p=c>0?c+o+i+u:0;let g=0;const v=r-l;if(o){const it=c>0?c-o:0,rt=d>0?d-o:0,ut=(it+rt)/2,Bt=ut!==0?v*ut/(ut+o):v;g=(v-Bt)/2}const b=Math.max(.001,v*d-i/Ut)/d,C=(v-b)/2,_=l+C+g,k=r-C-g,{outerStart:I,outerEnd:T,innerStart:N,innerEnd:tt}=Iv(e,p,d,k-_),X=d-I,Y=d-T,mt=_+I/X,nt=k-T/Y,gt=p+N,Et=p+tt,zt=_+N/gt,Nt=k-tt/Et;if(t.beginPath(),s){const it=(mt+nt)/2;if(t.arc(n,a,d,mt,it),t.arc(n,a,d,it,nt),T>0){const Vt=Io(Y,nt,n,a);t.arc(Vt.x,Vt.y,T,nt,k+ce)}const rt=Io(Et,k,n,a);if(t.lineTo(rt.x,rt.y),tt>0){const Vt=Io(Et,Nt,n,a);t.arc(Vt.x,Vt.y,tt,k+ce,Nt+Math.PI)}const ut=(k-tt/p+(_+N/p))/2;if(t.arc(n,a,p,k-tt/p,ut,!0),t.arc(n,a,p,ut,_+N/p,!0),N>0){const Vt=Io(gt,zt,n,a);t.arc(Vt.x,Vt.y,N,zt+Math.PI,_-ce)}const Bt=Io(X,_,n,a);if(t.lineTo(Bt.x,Bt.y),I>0){const Vt=Io(X,mt,n,a);t.arc(Vt.x,Vt.y,I,_-ce,mt)}}else{t.moveTo(n,a);const it=Math.cos(mt)*d+n,rt=Math.sin(mt)*d+a;t.lineTo(it,rt);const ut=Math.cos(nt)*d+n,Bt=Math.sin(nt)*d+a;t.lineTo(ut,Bt)}t.closePath()}function Pv(t,e,i,o,r){const{fullCircles:s,startAngle:n,circumference:a}=e;let l=e.endAngle;if(s){an(t,e,i,o,l,r);for(let u=0;u=Ut&&g===0&&c!=="miter"&&Av(t,e,b),s||(an(t,e,i,o,b,r),t.stroke())}class Nv extends Qo{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,i,o){const r=this.getProps(["x","y"],o),{angle:s,distance:n}=Xf(r,{x:e,y:i}),{startAngle:a,endAngle:l,innerRadius:u,outerRadius:c,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],o),p=(this.options.spacing+this.options.borderWidth)/2,g=$t(d,l-a),v=Wr(s,a,l)&&a!==l,b=g>=ie||v,C=Dl(n,u+p,c+p);return b&&C}getCenterPoint(e){const{x:i,y:o,startAngle:r,endAngle:s,innerRadius:n,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:l,spacing:u}=this.options,c=(r+s)/2,d=(n+a+u+l)/2;return{x:i+Math.cos(c)*d,y:o+Math.sin(c)*d}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:i,circumference:o}=this,r=(i.offset||0)/4,s=(i.spacing||0)/2,n=i.circular;if(this.pixelMargin=i.borderAlign==="inner"?.33:0,this.fullCircles=o>ie?Math.floor(o/ie):0,o===0||this.innerRadius<0||this.outerRadius<0)return;e.save();const a=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(a)*r,Math.sin(a)*r);const l=1-Math.sin(Math.min(Ut,o||0)),u=r*l;e.fillStyle=i.backgroundColor,e.strokeStyle=i.borderColor,Pv(e,this,u,s,n),Lv(e,this,u,s,n),e.restore()}}function vp(t,e,i=e){t.lineCap=$t(i.borderCapStyle,e.borderCapStyle),t.setLineDash($t(i.borderDash,e.borderDash)),t.lineDashOffset=$t(i.borderDashOffset,e.borderDashOffset),t.lineJoin=$t(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=$t(i.borderWidth,e.borderWidth),t.strokeStyle=$t(i.borderColor,e.borderColor)}function Dv(t,e,i){t.lineTo(i.x,i.y)}function $v(t){return t.stepped?hy:t.tension||t.cubicInterpolationMode==="monotone"?dy:Dv}function xp(t,e,i={}){const o=t.length,{start:r=0,end:s=o-1}=i,{start:n,end:a}=e,l=Math.max(r,n),u=Math.min(s,a),c=ra&&s>a;return{count:o,start:l,loop:e.loop,ilen:u(n+(u?a-T:T))%s,I=()=>{b!==C&&(t.lineTo(c,C),t.lineTo(c,b),t.lineTo(c,_))};for(l&&(g=r[k(0)],t.moveTo(g.x,g.y)),p=0;p<=a;++p){if(g=r[k(p)],g.skip)continue;const T=g.x,N=g.y,tt=T|0;tt===v?(NC&&(C=N),c=(d*c+T)/++d):(I(),t.lineTo(T,N),v=tt,d=0,b=C=N),_=N}I()}function rl(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!i?Bv:Fv}function jv(t){return t.stepped?Wy:t.tension||t.cubicInterpolationMode==="monotone"?qy:lo}function Hv(t,e,i,o){let r=e._path;r||(r=e._path=new Path2D,e.path(r,i,o)&&r.closePath()),vp(t,e.options),t.stroke(r)}function Uv(t,e,i,o){const{segments:r,options:s}=e,n=rl(e);for(const a of r)vp(t,s,a.style),t.beginPath(),n(t,e,a,{start:i,end:i+o-1})&&t.closePath(),t.stroke()}const zv=typeof Path2D=="function";function Vv(t,e,i,o){zv&&!e.options.segment?Hv(t,e,i,o):Uv(t,e,i,o)}class es extends Qo{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"&&e!=="fill"};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,i){const o=this.options;if((o.tension||o.cubicInterpolationMode==="monotone")&&!o.stepped&&!this._pointsUpdated){const r=o.spanGaps?this._loop:this._fullLoop;$y(this._points,o,e,r,i),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=t_(this,this.options.segment))}first(){const e=this.segments,i=this.points;return e.length&&i[e[0].start]}last(){const e=this.segments,i=this.points,o=e.length;return o&&i[e[o-1].end]}interpolate(e,i){const o=this.options,r=e[i],s=this.points,n=ap(this,{property:i,start:r,end:r});if(!n.length)return;const a=[],l=jv(o);let u,c;for(u=0,c=n.length;u{a=Pn(n,a,r);const l=r[n],u=r[a];o!==null?(s.push({x:l.x,y:o}),s.push({x:u.x,y:o})):i!==null&&(s.push({x:i,y:l.y}),s.push({x:i,y:u.y}))}),s}function Pn(t,e,i){for(;e>t;e--){const o=i[e];if(!isNaN(o.x)&&!isNaN(o.y))break}return e}function _h(t,e,i,o){return t&&e?o(t[i],e[i]):t?t[i]:e?e[i]:0}function Sp(t,e){let i=[],o=!1;return me(t)?(o=!0,i=t):i=qv(t,e),i.length?new es({points:i,options:{tension:0},_loop:o,_fullLoop:o}):null}function vh(t){return t&&t.fill!==!1}function Gv(t,e,i){let o=t[e].fill;const r=[e];let s;if(!i)return o;for(;o!==!1&&r.indexOf(o)===-1;){if(!Me(o))return o;if(s=t[o],!s)return!1;if(s.visible)return o;r.push(o),o=s.fill}return!1}function Kv(t,e,i){const o=Zv(t);if(Tt(o))return isNaN(o.value)?!1:o;let r=parseFloat(o);return Me(r)&&Math.floor(r)===r?Xv(o[0],e,r,i):["origin","start","end","stack","shape"].indexOf(o)>=0&&o}function Xv(t,e,i,o){return(t==="-"||t==="+")&&(i=e+i),i===e||i<0||i>=o?!1:i}function Yv(t,e){let i=null;return t==="start"?i=e.bottom:t==="end"?i=e.top:Tt(t)?i=e.getPixelForValue(t.value):e.getBasePixel&&(i=e.getBasePixel()),i}function Jv(t,e,i){let o;return t==="start"?o=i:t==="end"?o=e.options.reverse?e.min:e.max:Tt(t)?o=t.value:o=e.getBaseValue(),o}function Zv(t){const e=t.options,i=e.fill;let o=$t(i&&i.target,i);return o===void 0&&(o=!!e.backgroundColor),o===!1||o===null?!1:o===!0?"origin":o}function Qv(t){const{scale:e,index:i,line:o}=t,r=[],s=o.segments,n=o.points,a=tx(e,i);a.push(Sp({x:null,y:e.bottom},o));for(let l=0;l=0;--n){const a=r[n].$filler;a&&(a.line.updateControlPoints(s,a.axis),o&&a.fill&&ya(t.ctx,a,s))}},beforeDatasetsDraw(t,e,i){if(i.drawTime!=="beforeDatasetsDraw")return;const o=t.getSortedVisibleDatasetMetas();for(let r=o.length-1;r>=0;--r){const s=o[r].$filler;vh(s)&&ya(t.ctx,s,t.chartArea)}},beforeDatasetDraw(t,e,i){const o=e.meta.$filler;!vh(o)||i.drawTime!=="beforeDatasetDraw"||ya(t.ctx,o,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const wr={average(t){if(!t.length)return!1;let e,i,o=new Set,r=0,s=0;for(e=0,i=t.length;en+a)/o.size,y:r/s}},nearest(t,e){if(!t.length)return!1;let i=e.x,o=e.y,r=Number.POSITIVE_INFINITY,s,n,a;for(s=0,n=t.length;s-1?t.split(` -`):t}function Pv(t,e){const{element:n,datasetIndex:i,index:s}=e,r=t.getDatasetMeta(i).controller,{label:o,value:a}=r.getLabelAndValue(s);return{chart:t,label:o,parsed:r.getParsed(s),raw:t.data.datasets[i].data[s],formattedValue:a,dataset:r.getDataset(),dataIndex:s,datasetIndex:i,element:n}}function uh(t,e){const n=t.chart.ctx,{body:i,footer:s,title:r}=t,{boxWidth:o,boxHeight:a}=e,l=mn(e.bodyFont),u=mn(e.titleFont),c=mn(e.footerFont),f=r.length,p=s.length,m=i.length,x=Yn(e.padding);let _=x.height,E=0,b=i.reduce((T,L)=>T+L.before.length+L.lines.length+L.after.length,0);if(b+=t.beforeBody.length+t.afterBody.length,f&&(_+=f*u.lineHeight+(f-1)*e.titleSpacing+e.titleMarginBottom),b){const T=e.displayColors?Math.max(a,l.lineHeight):l.lineHeight;_+=m*T+(b-m)*l.lineHeight+(b-1)*e.bodySpacing}p&&(_+=e.footerMarginTop+p*c.lineHeight+(p-1)*e.footerSpacing);let O=0;const M=function(T){E=Math.max(E,n.measureText(T).width+O)};return n.save(),n.font=u.string,Ft(t.title,M),n.font=l.string,Ft(t.beforeBody.concat(t.afterBody),M),O=e.displayColors?o+2+e.boxPadding:0,Ft(i,T=>{Ft(T.before,M),Ft(T.lines,M),Ft(T.after,M)}),O=0,n.font=c.string,Ft(t.footer,M),n.restore(),E+=x.width,{width:E,height:_}}function Iv(t,e){const{y:n,height:i}=e;return nt.height-i/2?"bottom":"center"}function Lv(t,e,n,i){const{x:s,width:r}=i,o=n.caretSize+n.caretPadding;if(t==="left"&&s+r+o>e.width||t==="right"&&s-r-o<0)return!0}function Dv(t,e,n,i){const{x:s,width:r}=n,{width:o,chartArea:{left:a,right:l}}=t;let u="center";return i==="center"?u=s<=(a+l)/2?"left":"right":s<=r/2?u="left":s>=o-r/2&&(u="right"),Lv(u,t,e,n)&&(u="center"),u}function hh(t,e,n){const i=n.yAlign||e.yAlign||Iv(t,n);return{xAlign:n.xAlign||e.xAlign||Dv(t,e,n,i),yAlign:i}}function Nv(t,e){let{x:n,width:i}=t;return e==="right"?n-=i:e==="center"&&(n-=i/2),n}function $v(t,e,n){let{y:i,height:s}=t;return e==="top"?i+=n:e==="bottom"?i-=s+n:i-=s/2,i}function fh(t,e,n,i){const{caretSize:s,caretPadding:r,cornerRadius:o}=t,{xAlign:a,yAlign:l}=n,u=s+r,{topLeft:c,topRight:f,bottomLeft:p,bottomRight:m}=Rr(o);let x=Nv(e,a);const _=$v(e,l,u);return l==="center"?a==="left"?x+=u:a==="right"&&(x-=u):a==="left"?x-=Math.max(c,p)+s:a==="right"&&(x+=Math.max(f,m)+s),{x:ke(x,0,i.width-e.width),y:ke(_,0,i.height-e.height)}}function xr(t,e,n){const i=Yn(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-i.right:t.x+i.left}function dh(t){return an([],En(t))}function Fv(t,e,n){return bi(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function ph(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const Zd={beforeTitle:xn,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndex"u"?Zd[e].call(n,i):s}class gh extends Wi{static positioners=ps;constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&n.options.animation&&i.animations,r=new Dd(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(r)),r}getContext(){return this.$context||(this.$context=Fv(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:i}=n,s=Me(i,"beforeTitle",this,e),r=Me(i,"title",this,e),o=Me(i,"afterTitle",this,e);let a=[];return a=an(a,En(s)),a=an(a,En(r)),a=an(a,En(o)),a}getBeforeBody(e,n){return dh(Me(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:i}=n,s=[];return Ft(e,r=>{const o={before:[],lines:[],after:[]},a=ph(i,r);an(o.before,En(Me(a,"beforeLabel",this,r))),an(o.lines,Me(a,"label",this,r)),an(o.after,En(Me(a,"afterLabel",this,r))),s.push(o)}),s}getAfterBody(e,n){return dh(Me(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:i}=n,s=Me(i,"beforeFooter",this,e),r=Me(i,"footer",this,e),o=Me(i,"afterFooter",this,e);let a=[];return a=an(a,En(s)),a=an(a,En(r)),a=an(a,En(o)),a}_createItems(e){const n=this._active,i=this.chart.data,s=[],r=[],o=[];let a=[],l,u;for(l=0,u=n.length;le.filter(c,f,p,i))),e.itemSort&&(a=a.sort((c,f)=>e.itemSort(c,f,i))),Ft(a,c=>{const f=ph(e.callbacks,c);s.push(Me(f,"labelColor",this,c)),r.push(Me(f,"labelPointStyle",this,c)),o.push(Me(f,"labelTextColor",this,c))}),this.labelColors=s,this.labelPointStyles=r,this.labelTextColors=o,this.dataPoints=a,a}update(e,n){const i=this.options.setContext(this.getContext()),s=this._active;let r,o=[];if(!s.length)this.opacity!==0&&(r={opacity:0});else{const a=ps[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const l=this._size=uh(this,i),u=Object.assign({},a,l),c=hh(this.chart,i,u),f=fh(i,u,c,this.chart);this.xAlign=c.xAlign,this.yAlign=c.yAlign,r={opacity:1,x:f.x,y:f.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=o,this.$context=void 0,r&&this._resolveAnimations().update(this,r),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,i,s){const r=this.getCaretPosition(e,i,s);n.lineTo(r.x1,r.y1),n.lineTo(r.x2,r.y2),n.lineTo(r.x3,r.y3)}getCaretPosition(e,n,i){const{xAlign:s,yAlign:r}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:l,topRight:u,bottomLeft:c,bottomRight:f}=Rr(a),{x:p,y:m}=e,{width:x,height:_}=n;let E,b,O,M,T,L;return r==="center"?(T=m+_/2,s==="left"?(E=p,b=E-o,M=T+o,L=T-o):(E=p+x,b=E+o,M=T-o,L=T+o),O=E):(s==="left"?b=p+Math.max(l,c)+o:s==="right"?b=p+x-Math.max(u,f)-o:b=this.caretX,r==="top"?(M=m,T=M-o,E=b-o,O=b+o):(M=m+_,T=M+o,E=b+o,O=b-o),L=M),{x1:E,x2:b,x3:O,y1:M,y2:T,y3:L}}drawTitle(e,n,i){const s=this.title,r=s.length;let o,a,l;if(r){const u=ta(i.rtl,this.x,this.width);for(e.x=xr(this,i.titleAlign,i),n.textAlign=u.textAlign(i.titleAlign),n.textBaseline="middle",o=mn(i.titleFont),a=i.titleSpacing,n.fillStyle=i.titleColor,n.font=o.string,l=0;lO!==0)?(e.beginPath(),e.fillStyle=r.multiKeyBackground,Au(e,{x:_,y:x,w:u,h:l,radius:b}),e.fill(),e.stroke(),e.fillStyle=o.backgroundColor,e.beginPath(),Au(e,{x:E,y:x+1,w:u-2,h:l-2,radius:b}),e.fill()):(e.fillStyle=r.multiKeyBackground,e.fillRect(_,x,u,l),e.strokeRect(_,x,u,l),e.fillStyle=o.backgroundColor,e.fillRect(E,x+1,u-2,l-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,n,i){const{body:s}=this,{bodySpacing:r,bodyAlign:o,displayColors:a,boxHeight:l,boxWidth:u,boxPadding:c}=i,f=mn(i.bodyFont);let p=f.lineHeight,m=0;const x=ta(i.rtl,this.x,this.width),_=function(X){n.fillText(X,x.x(e.x+m),e.y+p/2),e.y+=p+r},E=x.textAlign(o);let b,O,M,T,L,tt,K;for(n.textAlign=o,n.textBaseline="middle",n.font=f.string,e.x=xr(this,E,i),n.fillStyle=i.bodyColor,Ft(this.beforeBody,_),m=a&&E!=="right"?o==="center"?u/2+c:u+2+c:0,T=0,tt=s.length;T0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,i=this.$animations,s=i&&i.x,r=i&&i.y;if(s||r){const o=ps[e.position].call(this,this._active,this._eventPosition);if(!o)return;const a=this._size=uh(this,e),l=Object.assign({},o,this._size),u=hh(n,e,l),c=fh(e,l,u,n);(s._to!==c.x||r._to!==c.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=a.width,this.height=a.height,this.caretX=o.x,this.caretY=o.y,this._resolveAnimations().update(this,c))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const s={width:this.width,height:this.height},r={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=Yn(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(e.save(),e.globalAlpha=i,this.drawBackground(r,e,s,n),_y(e,n.textDirection),r.y+=o.top,this.drawTitle(r,e,n),this.drawBody(r,e,n),this.drawFooter(r,e,n),yy(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const i=this._active,s=e.map(({datasetIndex:a,index:l})=>{const u=this.chart.getDatasetMeta(a);if(!u)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:u.data[l],index:l}}),r=!zr(i,s),o=this._positionChanged(s,n);(r||o)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,r=this._active||[],o=this._getActiveElements(e,r,n,i),a=this._positionChanged(o,e),l=n||!zr(o,r)||a;return l&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),l}_getActiveElements(e,n,i,s){const r=this.options;if(e.type==="mouseout")return[];if(!s)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const o=this.chart.getElementsAtEventForMode(e,r.mode,r,i);return r.reverse&&o.reverse(),o}_positionChanged(e,n){const{caretX:i,caretY:s,options:r}=this,o=ps[r.position].call(this,e,n);return o!==!1&&(i!==o.x||s!==o.y)}}var Bl={id:"tooltip",_element:gh,positioners:ps,afterInit(t,e,n){n&&(t.tooltip=new gh({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Zd},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const Bv=(t,e,n,i)=>(typeof e=="string"?(n=t.push(e)-1,i.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function Uv(t,e,n,i){const s=t.indexOf(e);if(s===-1)return Bv(t,e,n,i);const r=t.lastIndexOf(e);return s!==r?n:s}const jv=(t,e)=>t===null?null:ke(Math.round(t),0,e);function mh(t){const e=this.getLabels();return t>=0&&tn.length-1?null:this.getPixelForValue(n[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}function Hv(t,e){const n=[],{bounds:i,step:s,min:r,max:o,precision:a,count:l,maxTicks:u,maxDigits:c,includeBounds:f}=t,p=s||1,m=u-1,{min:x,max:_}=e,E=!qt(r),b=!qt(o),O=!qt(l),M=(_-x)/(c+1);let T=pu((_-x)/m/p)*p,L,tt,K,X;if(T<1e-14&&!E&&!b)return[{value:x},{value:_}];X=Math.ceil(_/T)-Math.floor(x/T),X>m&&(T=pu(X*T/m/p)*p),qt(a)||(L=Math.pow(10,a),T=Math.ceil(T*L)/L),i==="ticks"?(tt=Math.floor(x/T)*T,K=Math.ceil(_/T)*T):(tt=x,K=_),E&&b&&s&&c_((o-r)/s,T/1e3)?(X=Math.round(Math.min((o-r)/T,u)),T=(o-r)/X,tt=r,K=o):O?(tt=E?r:tt,K=b?o:K,X=l-1,T=(K-tt)/X):(X=(K-tt)/T,Ss(X,Math.round(X),T/1e3)?X=Math.round(X):X=Math.ceil(X));const dt=Math.max(gu(T),gu(tt));L=Math.pow(10,qt(a)?dt:a),tt=Math.round(tt*L)/L,K=Math.round(K*L)/L;let ot=0;for(E&&(f&&tt!==r?(n.push({value:r}),tto)break;n.push({value:mt})}return b&&f&&K!==o?n.length&&Ss(n[n.length-1].value,o,_h(o,M,t))?n[n.length-1].value=o:n.push({value:o}):(!b||K===o)&&n.push({value:K}),n}function _h(t,e,{horizontal:n,minRotation:i}){const s=Cn(i),r=(n?Math.sin(s):Math.cos(s))||.001,o=.75*e*(""+t).length;return Math.min(e/r,o)}class Vv extends qi{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return qt(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:s,max:r}=this;const o=l=>s=n?s:l,a=l=>r=i?r:l;if(e){const l=Ui(s),u=Ui(r);l<0&&u<0?a(0):l>0&&u>0&&o(0)}if(s===r){let l=r===0?1:Math.abs(r*.05);a(r+l),e||o(s-l)}this.min=s,this.max=r}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=e,s;return i?(s=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},r=this._range||this,o=Hv(s,r);return e.bounds==="ticks"&&u_(o,this,"value"),e.reverse?(o.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),o}configure(){const e=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const s=(i-n)/Math.max(e.length-1,1)/2;n-=s,i+=s}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(e){return Rl(e,this.chart.options.locale,this.options.ticks.format)}}class tp extends Vv{static id="linear";static defaults={ticks:{callback:Ad.formatters.numeric}};determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=Ee(e)?e:0,this.max=Ee(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,i=Cn(this.options.ticks.minRotation),s=(e?Math.sin(i):Math.cos(i))||.001,r=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,r.lineHeight/s))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}const vo={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Ie=Object.keys(vo);function yh(t,e){return t-e}function bh(t,e){if(qt(e))return null;const n=t._adapter,{parser:i,round:s,isoWeekday:r}=t._parseOpts;let o=e;return typeof i=="function"&&(o=i(o)),Ee(o)||(o=typeof i=="string"?n.parse(o,i):n.parse(o)),o===null?null:(s&&(o=s==="week"&&(Ns(r)||r===!0)?n.startOf(o,"isoWeek",r):n.startOf(o,s)),+o)}function vh(t,e,n,i){const s=Ie.length;for(let r=Ie.indexOf(t);r=Ie.indexOf(n);r--){const o=Ie[r];if(vo[o].common&&t._adapter.diff(s,i,o)>=e-1)return o}return Ie[n?Ie.indexOf(n):0]}function Wv(t){for(let e=Ie.indexOf(t)+1,n=Ie.length;e=e?n[i]:n[s];t[r]=!0}}function qv(t,e,n,i){const s=t._adapter,r=+s.startOf(e[0].value,i),o=e[e.length-1].value;let a,l;for(a=r;a<=o;a=+s.add(a,1,i))l=n[a],l>=0&&(e[l].major=!0);return e}function wh(t,e,n){const i=[],s={},r=e.length;let o,a;for(o=0;o+e.value))}initOffsets(e=[]){let n=0,i=0,s,r;this.options.offset&&e.length&&(s=this.getDecimalForValue(e[0]),e.length===1?n=1-s:n=(this.getDecimalForValue(e[1])-s)/2,r=this.getDecimalForValue(e[e.length-1]),e.length===1?i=r:i=(r-this.getDecimalForValue(e[e.length-2]))/2);const o=e.length<3?.5:.25;n=ke(n,0,o),i=ke(i,0,o),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const e=this._adapter,n=this.min,i=this.max,s=this.options,r=s.time,o=r.unit||vh(r.minUnit,n,i,this._getLabelCapacity(n)),a=Nt(s.ticks.stepSize,1),l=o==="week"?r.isoWeekday:!1,u=Ns(l)||l===!0,c={};let f=n,p,m;if(u&&(f=+e.startOf(f,"isoWeek",l)),f=+e.startOf(f,u?"day":o),e.diff(i,n,o)>1e5*a)throw new Error(n+" and "+i+" are too far apart with stepSize of "+a+" "+o);const x=s.ticks.source==="data"&&this.getDataTimestamps();for(p=f,m=0;p+_)}getLabelForValue(e){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(e,i.tooltipFormat):n.format(e,i.displayFormats.datetime)}format(e,n){const i=this.options.time.displayFormats,s=this._unit,r=n||i[s];return this._adapter.format(e,r)}_tickFormatFunction(e,n,i,s){const r=this.options,o=r.ticks.callback;if(o)return ie(o,[e,n,i],this);const a=r.time.displayFormats,l=this._unit,u=this._majorUnit,c=l&&a[l],f=u&&a[u],p=i[n],m=u&&f&&p&&p.major;return this._adapter.format(e,s||(m?f:c))}generateTickLabels(e){let n,i,s;for(n=0,i=e.length;n0?a:1}getDataTimestamps(){let e=this._cache.data||[],n,i;if(e.length)return e;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,i=s.length;n=t[i].pos&&e<=t[s].pos&&({lo:i,hi:s}=ai(t,"pos",e)),{pos:r,time:a}=t[i],{pos:o,time:l}=t[s]):(e>=t[i].time&&e<=t[s].time&&({lo:i,hi:s}=ai(t,"time",e)),{time:r,pos:a}=t[i],{time:o,pos:l}=t[s]);const u=o-r;return u?a+(l-a)*(e-r)/u:a}class tR extends Sh{static id="timeseries";static defaults=Sh.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=wr(n,this.min),this._tableRange=wr(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:i}=this,s=[],r=[];let o,a,l,u,c;for(o=0,a=e.length;o=n&&u<=i&&s.push(u);if(s.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(o=0,a=s.length;os-r)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?e=this.normalize(n.concat(i)):e=n.length?n:i,e=this._cache.all=e,e}getDecimalForValue(e){return(wr(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return wr(this._table,i*this._tableRange+this._minPos,!0)}}const ep={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},Yv={ariaLabel:{type:String},ariaDescribedby:{type:String}},Gv={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...ep,...Yv},Kv=ld[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function Oi(t){return Vs(t)?Rt(t):t}function Xv(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return Vs(e)?new Proxy(t,{}):t}function Jv(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function np(t,e){t.labels=e}function ip(t,e,n){const i=[];t.datasets=e.map(s=>{const r=t.datasets.find(o=>o[n]===s[n]);return!r||!s.data||i.includes(r)?{...s}:(i.push(r),Object.assign(r,s),r)})}function Zv(t,e){const n={labels:[],datasets:[]};return np(n,t.labels),ip(n,t.datasets,e),n}const Qv=Ae({props:Gv,setup(t,e){let{expose:n,slots:i}=e;const s=yn(null),r=co(null);n({chart:r});const o=()=>{if(!s.value)return;const{type:u,data:c,options:f,plugins:p,datasetIdKey:m}=t,x=Zv(c,m),_=Xv(x,c);r.value=new gi(s.value,{type:u,data:_,options:{...f},plugins:p})},a=()=>{const u=Rt(r.value);u&&(t.destroyDelay>0?setTimeout(()=>{u.destroy(),r.value=null},t.destroyDelay):(u.destroy(),r.value=null))},l=u=>{u.update(t.updateMode)};return pl(o),Ws(a),Ni([()=>t.options,()=>t.data],(u,c)=>{let[f,p]=u,[m,x]=c;const _=Rt(r.value);if(!_)return;let E=!1;if(f){const b=Oi(f),O=Oi(m);b&&b!==O&&(Jv(_,b),E=!0)}if(p){const b=Oi(p.labels),O=Oi(x.labels),M=Oi(p.datasets),T=Oi(x.datasets);b!==O&&(np(_.config.data,b),E=!0),M&&M!==T&&(ip(_.config.data,M,t.datasetIdKey),E=!0)}E&&Cf(()=>{l(_)})},{deep:!0}),()=>La("canvas",{role:"img","aria-label":t.ariaLabel,"aria-describedby":t.ariaDescribedby,ref:s},[La("p",{},[i.default?i.default():""])])}});function tx(t,e){return gi.register(e),Ae({props:ep,setup(n,i){let{expose:s}=i;const r=co(null),o=a=>{r.value=a?.chart};return s({chart:r}),()=>La(Qv,Kv({ref:o},{type:t,...n}))}})}const sp=tx("line",$l),ex={name:"ChipIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},nx=["aria-hidden","aria-label"],ix=["fill","width","height"],sx={d:"M6,4H18V5H21V7H18V9H21V11H18V13H21V15H18V17H21V19H18V20H6V19H3V17H6V15H3V13H6V11H3V9H6V7H3V5H6V4M11,15V18H12V15H11M13,15V18H14V15H13M15,15V18H16V15H15Z"},rx={key:0};function ox(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chip-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",sx,[n.title?(z(),G("title",rx,P(n.title),1)):Ot("",!0)])],8,ix))],16,nx)}const ax=he(ex,[["render",ox]]);function ri(t){const e=["MB","GB","TB","PB","EB"];let n=t,i=0;for(;n>=1024&&i=1024&&ia+" %"},grid:{display:!1}}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{callbacks:{label:a=>a.parsed.y.toFixed(1)+" %"}}}},o=Bn(()=>{if(e.cpuload===!1||e.cpunum<=0)return Y("serverinfo","CPU info not available");const a=e.cpuload.map(u=>(u/e.cpunum*100).toFixed(1)),l=e.cpuload.map(u=>u.toFixed(2));return Y("serverinfo","Load average: {percentage} % ({load}) last minute",{percentage:a[0],load:l[0]})});return Ni(()=>e.tick,()=>{const a=e.cpuload;if(a===!1||e.cpunum<=0||a.length===0)return;const l=[...s.value.labels.slice(1),new Date().toLocaleTimeString()],u=[...s.value.datasets[0].data.slice(1),a[0]/e.cpunum*100];s.value={labels:l,datasets:[{...i,data:u}]}}),(a,l)=>(z(),G(Mt,null,[pt(je,{icon:ax,title:F(Y)("serverinfo","Load")},null,8,["title"]),v("div",lx,[v("div",cx,[t.cpuload!==!1?(z(),Xe(F(sp),{key:0,data:s.value,options:r},null,8,["data"])):Ot("",!0)])]),v("p",null,[l[0]||(l[0]=v("span",{id:"cpubox",class:"cpubox"},"  ",-1)),l[1]||(l[1]=Dt("   ",-1)),v("em",null,P(o.value),1)])],64))}}),hx=he(ux,[["__scopeId","data-v-50985e28"]]),fx={name:"DatabaseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},dx=["aria-hidden","aria-label"],px=["fill","width","height"],gx={d:"M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M4,9V12C4,14.21 7.58,16 12,16C16.42,16 20,14.21 20,12V9C20,11.21 16.42,13 12,13C7.58,13 4,11.21 4,9M4,14V17C4,19.21 7.58,21 12,21C16.42,21 20,19.21 20,17V14C20,16.21 16.42,18 12,18C7.58,18 4,16.21 4,14Z"},mx={key:0};function _x(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon database-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",gx,[n.title?(z(),G("title",mx,P(n.title),1)):Ot("",!0)])],8,px))],16,dx)}const yx=he(fx,[["render",_x]]),bx={class:"server-info-table"},vx={class:"info"},xx={class:"info"},wx={class:"info"},Sx=Ae({__name:"DatabaseSection",props:{database:{}},setup(t){return(e,n)=>(z(),G(Mt,null,[pt(je,{icon:yx,title:F(Y)("serverinfo","Database")},null,8,["title"]),v("div",bx,[v("table",null,[v("tbody",null,[v("tr",null,[v("td",null,P(F(Y)("serverinfo","Type:")),1),v("td",vx,P(t.database.type),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Version:")),1),v("td",xx,P(t.database.version),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Size:")),1),v("td",wx,P(F(Vn)(t.database.size)),1)])])])])],64))}}),Ex={name:"HarddiskIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ax=["aria-hidden","aria-label"],Tx=["fill","width","height"],Rx={d:"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12,4A6,6 0 0,0 6,10C6,13.31 8.69,16 12.1,16L11.22,13.77C10.95,13.29 11.11,12.68 11.59,12.4L12.45,11.9C12.93,11.63 13.54,11.79 13.82,12.27L15.74,14.69C17.12,13.59 18,11.9 18,10A6,6 0 0,0 12,4M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M12.09,13.27L14.58,19.58L17.17,18.08L12.95,12.77L12.09,13.27Z"},Ox={key:0};function kx(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon harddisk-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",Rx,[n.title?(z(),G("title",Ox,P(n.title),1)):Ot("",!0)])],8,Tx))],16,Ax)}const Cx=he(Ex,[["render",kx]]),Mx={class:"section disk-status"},Px={class:"disk-grid"},Ix={class:"diskchart-container"},Lx=["aria-label"],Dx={class:"diskinfo-container"},Nx=["title"],$x={class:"diskinfo"},Fx={class:"diskinfo__row"},Bx={class:"info"},Ux={class:"diskinfo__row"},jx={class:"info"},Hx={class:"diskinfo__row"},Vx={class:"info"},zx={class:"diskinfo__row"},Wx={class:"info-color-label--available"},qx={class:"info"},Yx={class:"diskinfo__row"},Gx={class:"info-color-label--used"},Kx={class:"info"},Xx={key:0},Jx=Ae({__name:"DiskSection",props:{disks:{},freespace:{},storage:{}},setup(t){const e=t;gi.register(iv,jy,Bl);const n=[],i=[];function s(l){return l.split("/").pop()??l}function r(l){return Y("serverinfo","{used} of {total} used",{used:ri(l.used),total:ri(l.used+l.available)})}function o(l){const u=Number.parseFloat(l);return Number.isNaN(u)?l:Math.round(u)+"%"}function a(l,u){return{id:"centerLabel",afterDatasetsDraw(c){const{ctx:f,chartArea:p}=c,m=Math.round((p.right-p.left)*.24);f.save(),f.fillStyle=u,f.font=`bold ${m}px ${getComputedStyle(c.canvas).fontFamily}`,f.textAlign="center",f.textBaseline="middle",f.fillText(l,(p.left+p.right)/2,(p.top+p.bottom)/2),f.restore()}}}return pl(()=>{const l=Ul(),u=qa("--color-border-maxcontrast","rgb(148, 148, 148)"),c=qa("--color-main-text","#222222");e.disks.forEach((f,p)=>{const m=n[p];m&&i.push(new gi(m,{type:"doughnut",data:{labels:[Y("serverinfo","Used"),Y("serverinfo","Available")],datasets:[{backgroundColor:[l,u],borderWidth:0,borderRadius:4,spacing:2,hoverOffset:4,data:[f.used,f.available]}]},options:{responsive:!0,maintainAspectRatio:!0,aspectRatio:1,cutout:"70%",layout:{padding:4},plugins:{legend:{display:!1},tooltip:{callbacks:{label:x=>`${x.label}: ${ri(x.parsed)}`}}}},plugins:[a(o(f.percent),c)]}))})}),Ws(()=>{i.forEach(l=>l.destroy()),i.length=0}),(l,u)=>(z(),G("div",Mx,[pt(je,{icon:Cx,title:F(Y)("serverinfo","Disk")},null,8,["title"]),v("div",Px,[(z(!0),G(Mt,null,fo(t.disks,(c,f)=>(z(),G("div",{key:c.device,class:"infobox text-center-mobile"},[v("div",Ix,[v("canvas",{ref_for:!0,ref:p=>{p&&(n[f]=p)},class:"DiskChart",role:"img","aria-label":r(c)},null,8,Lx)]),v("div",Dx,[v("h3",{title:c.device},P(s(c.device)),9,Nx),v("dl",$x,[v("div",Fx,[v("dt",null,P(F(Y)("serverinfo","Mount:")),1),v("dd",Bx,P(c.mount),1)]),v("div",Ux,[v("dt",null,P(F(Y)("serverinfo","Filesystem:")),1),v("dd",jx,P(c.fs),1)]),v("div",Hx,[v("dt",null,P(F(Y)("serverinfo","Size:")),1),v("dd",Vx,P(F(ri)(c.used+c.available)),1)]),v("div",zx,[v("dt",Wx,P(F(Y)("serverinfo","Available:")),1),v("dd",qx,P(F(ri)(c.available)),1)]),v("div",Yx,[v("dt",Gx,P(F(Y)("serverinfo","Used:")),1),v("dd",Kx,P(c.percent)+" ("+P(F(ri)(c.used))+") ",1)])])])]))),128))]),v("p",null,[Dt(P(F(Y)("serverinfo","Files:"))+" ",1),v("strong",null,P(t.storage.num_files),1)]),v("p",null,[Dt(P(F(Y)("serverinfo","Storages:"))+" ",1),v("strong",null,P(t.storage.num_storages),1)]),t.freespace!==null?(z(),G("p",Xx,[Dt(P(F(Y)("serverinfo","Free Space:"))+" ",1),v("strong",null,P(F(Vn)(t.freespace)),1)])):Ot("",!0)]))}}),Zx=he(Jx,[["__scopeId","data-v-67e35930"]]),Qx={name:"MemoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},t2=["aria-hidden","aria-label"],e2=["fill","width","height"],n2={d:"M17,17H7V7H17M21,11V9H19V7C19,5.89 18.1,5 17,5H15V3H13V5H11V3H9V5H7C5.89,5 5,5.89 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11M13,13H11V11H13M15,9H9V15H15V9Z"},i2={key:0};function s2(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon memory-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",n2,[n.title?(z(),G("title",i2,P(n.title),1)):Ot("",!0)])],8,e2))],16,t2)}const r2=he(Qx,[["render",s2]]),o2={id:"memorySection",class:"infobox"},a2={class:"chart-wrapper"},ca=60,l2=Ae({__name:"MemoryChartSection",props:{memTotal:{},memFree:{},swapTotal:{},swapFree:{},tick:{}},setup(t){const e=t;gi.register(Qd,Jd,tp,$l,Gs,Gd,Bl);const n=Bn(()=>e.memTotal!=="N/A"&&e.memFree!=="N/A"),i=Bn(()=>e.swapTotal!=="N/A"&&e.swapFree!=="N/A");function s(){return"rgb(148, 148, 148)"}const r={label:Y("serverinfo","RAM Usage:"),borderColor:s(),backgroundColor:rp(Ul(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},o={label:Y("serverinfo","SWAP Usage:"),borderColor:"rgba(100,100,100,0.8)",backgroundColor:"rgba(100,100,100,0.2)",fill:!0,pointRadius:0,borderWidth:1,tension:.2},a=co({labels:Array(ca).fill(""),datasets:[{...r,data:Array(ca).fill(null)},{...o,data:Array(ca).fill(null)}]}),l=yn(1),u=Bn(()=>({animation:!1,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{display:!1},y:{min:0,max:l.value,ticks:{color:s(),callback:p=>p+" GB"},grid:{display:!1}}},plugins:{legend:{display:!1},tooltip:{callbacks:{label:p=>(p.dataset.label??"")+" "+p.parsed.y.toFixed(2)+" GB"}}}})),c=Bn(()=>{if(!n.value)return Y("serverinfo","RAM info not available");const p=e.memTotal*1024*1024,m=(e.memTotal-e.memFree)*1024*1024;return Y("serverinfo","RAM: Total: {memTotalBytes}/Current usage: {memUsageBytes}",{memTotalBytes:Vn(p),memUsageBytes:Vn(m)})}),f=Bn(()=>{if(!i.value)return Y("serverinfo","SWAP info not available");const p=e.swapTotal*1024*1024,m=(e.swapTotal-e.swapFree)*1024*1024;return Y("serverinfo","SWAP: Total: {swapTotalBytes}/Current usage: {swapUsageBytes}",{swapTotalBytes:Vn(p),swapUsageBytes:Vn(m)})});return Ni(()=>e.tick,()=>{if(!n.value)return;const p=e.memTotal/1024,m=i.value?e.swapTotal/1024:0;l.value=Math.ceil(Math.max(p,m));const x=[...a.value.labels.slice(1),new Date().toLocaleTimeString()],_=(e.memTotal-e.memFree)/1024,E=[...a.value.datasets[0].data.slice(1),_],b=i.value?(e.swapTotal-e.swapFree)/1024:null,O=[...a.value.datasets[1].data.slice(1),b];a.value={labels:x,datasets:[{...r,data:E},{...o,data:O}]}}),(p,m)=>(z(),G(Mt,null,[pt(je,{icon:r2,title:F(Y)("serverinfo","Memory")},null,8,["title"]),v("div",o2,[v("div",a2,[n.value?(z(),Xe(F(sp),{key:0,data:a.value,options:u.value},null,8,["data","options"])):Ot("",!0)])]),v("p",null,[m[0]||(m[0]=v("span",{id:"rambox",class:"rambox"},"  ",-1)),m[1]||(m[1]=Dt("   ",-1)),v("em",null,P(c.value),1)]),v("p",null,[m[2]||(m[2]=v("span",{id:"swapbox",class:"swapbox"},"  ",-1)),m[3]||(m[3]=Dt("   ",-1)),v("em",null,P(f.value),1)])],64))}}),c2=he(l2,[["__scopeId","data-v-4eb376e5"]]),u2={name:"ConnectionIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},h2=["aria-hidden","aria-label"],f2=["fill","width","height"],d2={d:"M21.4 7.5C22.2 8.3 22.2 9.6 21.4 10.3L18.6 13.1L10.8 5.3L13.6 2.5C14.4 1.7 15.7 1.7 16.4 2.5L18.2 4.3L21.2 1.3L22.6 2.7L19.6 5.7L21.4 7.5M15.6 13.3L14.2 11.9L11.4 14.7L9.3 12.6L12.1 9.8L10.7 8.4L7.9 11.2L6.4 9.8L3.6 12.6C2.8 13.4 2.8 14.7 3.6 15.4L5.4 17.2L1.4 21.2L2.8 22.6L6.8 18.6L8.6 20.4C9.4 21.2 10.7 21.2 11.4 20.4L14.2 17.6L12.8 16.2L15.6 13.3Z"},p2={key:0};function g2(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon connection-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",d2,[n.title?(z(),G("title",p2,P(n.title),1)):Ot("",!0)])],8,f2))],16,h2)}const m2=he(u2,[["render",g2]]),_2={class:"section monitoring"},y2={class:"monitoring-wrapper"},b2=["value"],v2={class:"monitoring-url-params"},x2={class:"monitoring-url-param"},w2={for:"format_json"},S2={class:"monitoring-url-param"},E2={for:"skip_apps"},A2={class:"monitoring-url-param"},T2={for:"skip_update"},R2=Ae({__name:"MonitoringSection",props:{ocs:{}},setup(t){const e=t,n=yn(!1),i=yn(!0),s=yn(!0),r=Bn(()=>{try{const o=new URL(e.ocs);return n.value&&o.searchParams.set("format","json"),i.value||o.searchParams.set("skipApps","false"),s.value||o.searchParams.set("skipUpdate","false"),o.toString()}catch{return e.ocs}});return(o,a)=>(z(),G("div",_2,[pt(je,{icon:m2,title:F(Y)("serverinfo","External monitoring tool")},null,8,["title"]),v("p",null,P(F(Y)("serverinfo","Use this end point to connect an external monitoring tool:")),1),v("div",y2,[v("input",{type:"text",readonly:"",value:r.value},null,8,b2)]),v("div",v2,[v("div",x2,[No(v("input",{id:"format_json","onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),type:"checkbox",class:"update-monitoring-endpoint-url",name:"format_json"},null,512),[[zo,n.value]]),v("label",w2,P(F(Y)("serverinfo","Output in JSON")),1)]),v("div",S2,[No(v("input",{id:"skip_apps","onUpdate:modelValue":a[1]||(a[1]=l=>i.value=l),type:"checkbox",class:"update-monitoring-endpoint-url",name:"skip_apps"},null,512),[[zo,i.value]]),v("label",E2,P(F(Y)("serverinfo","Skip apps section (including apps section will send an external request to the app store)")),1)]),v("div",A2,[No(v("input",{id:"skip_update","onUpdate:modelValue":a[2]||(a[2]=l=>s.value=l),type:"checkbox",class:"update-monitoring-endpoint-url",name:"skip_update"},null,512),[[zo,s.value]]),v("label",T2,P(F(Y)("serverinfo","Skip server update")),1)])]),v("p",null,P(F(Y)("serverinfo","To use an access token, please generate one then set it using the following command:")),1),a[3]||(a[3]=v("div",null,[v("i",null,"occ config:app:set serverinfo token --value yourtoken")],-1)),v("p",null,P(F(Y)("serverinfo",'Then pass the token with the "NC-Token" header when querying the above URL.')),1)]))}}),O2={name:"LanIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},k2=["aria-hidden","aria-label"],C2=["fill","width","height"],M2={d:"M10,2C8.89,2 8,2.89 8,4V7C8,8.11 8.89,9 10,9H11V11H2V13H6V15H5C3.89,15 3,15.89 3,17V20C3,21.11 3.89,22 5,22H9C10.11,22 11,21.11 11,20V17C11,15.89 10.11,15 9,15H8V13H16V15H15C13.89,15 13,15.89 13,17V20C13,21.11 13.89,22 15,22H19C20.11,22 21,21.11 21,20V17C21,15.89 20.11,15 19,15H18V13H22V11H13V9H14C15.11,9 16,8.11 16,7V4C16,2.89 15.11,2 14,2H10M10,4H14V7H10V4M5,17H9V20H5V17M15,17H19V20H15V17Z"},P2={key:0};function I2(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon lan-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",M2,[n.title?(z(),G("title",P2,P(n.title),1)):Ot("",!0)])],8,C2))],16,k2)}const L2=he(O2,[["render",I2]]),D2={class:"section network-infos"},N2={class:"row"},$2={class:"col col-12"},F2={class:"col col-12"},B2={class:"info"},U2={class:"col col-12"},j2={class:"info"},H2={class:"col col-12"},V2={class:"info"},z2={class:"col col-12"},W2={class:"row"},q2={class:"infobox"},Y2={class:"interface-wrapper"},G2={class:"info"},K2={class:"info"},X2={class:"info"},J2={class:"info"},Z2={class:"info"},Q2=Ae({__name:"NetworkSection",props:{networkinfo:{},interfaces:{}},setup(t){return(e,n)=>(z(),G("div",D2,[v("div",N2,[v("div",$2,[pt(je,{icon:L2,title:F(Y)("serverinfo","Network")},null,8,["title"])]),v("div",F2,[Dt(P(F(Y)("serverinfo","Hostname:"))+" ",1),v("span",B2,P(t.networkinfo.hostname),1)]),v("div",U2,[Dt(P(F(Y)("serverinfo","Gateway:"))+" ",1),v("span",j2,P(t.networkinfo.gateway),1)]),v("div",H2,[Dt(P(F(Y)("serverinfo","DNS:"))+" ",1),v("span",V2,P(t.networkinfo.dns),1)]),v("div",z2,[v("div",W2,[(z(!0),G(Mt,null,fo(t.interfaces,i=>(z(),G("div",{key:i.name,class:"col col-4 col-l-6 col-m-12"},[v("div",q2,[v("div",Y2,[v("h3",null,P(i.name),1),Dt(" "+P(F(Y)("serverinfo","Status:"))+" ",1),v("span",G2,P(i.up?"up":"down"),1),n[1]||(n[1]=v("br",null,null,-1)),Dt(" "+P(F(Y)("serverinfo","Speed:"))+" ",1),v("span",K2,P(i.speed)+" ("+P(F(Y)("serverinfo","Duplex:"))+" "+P(i.duplex)+")",1),n[2]||(n[2]=v("br",null,null,-1)),i.mac?(z(),G(Mt,{key:0},[Dt(P(F(Y)("serverinfo","MAC:"))+" ",1),v("span",X2,P(i.mac),1),n[0]||(n[0]=v("br",null,null,-1))],64)):Ot("",!0),Dt(" "+P(F(Y)("serverinfo","IPv4:"))+" ",1),v("span",J2,P(i.ipv4.join(", ")),1),n[3]||(n[3]=v("br",null,null,-1)),Dt(" "+P(F(Y)("serverinfo","IPv6:"))+" ",1),v("span",Z2,P(i.ipv6.join(", ")),1)])])]))),128))])])])]))}}),tw={name:"PuzzleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ew=["aria-hidden","aria-label"],nw=["fill","width","height"],iw={d:"M20.5,11H19V7C19,5.89 18.1,5 17,5H13V3.5A2.5,2.5 0 0,0 10.5,1A2.5,2.5 0 0,0 8,3.5V5H4A2,2 0 0,0 2,7V10.8H3.5C5,10.8 6.2,12 6.2,13.5C6.2,15 5,16.2 3.5,16.2H2V20A2,2 0 0,0 4,22H7.8V20.5C7.8,19 9,17.8 10.5,17.8C12,17.8 13.2,19 13.2,20.5V22H17A2,2 0 0,0 19,20V16H20.5A2.5,2.5 0 0,0 23,13.5A2.5,2.5 0 0,0 20.5,11Z"},sw={key:0};function rw(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon puzzle-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",iw,[n.title?(z(),G("title",sw,P(n.title),1)):Ot("",!0)])],8,nw))],16,ew)}const ow=he(tw,[["render",rw]]),aw={class:"server-info__tag-wrapper"},lw=Ae({__name:"PhpExtensionsSection",props:{extensions:{}},setup(t){return(e,n)=>(z(),G(Mt,null,[pt(je,{icon:ow,title:F(Y)("serverinfo","PHP extensions")},null,8,["title"]),v("div",aw,[t.extensions?(z(!0),G(Mt,{key:0},fo(t.extensions,i=>(z(),G("span",{key:i,class:"server-info__php-extension-tag"},P(i),1))),128)):(z(),G(Mt,{key:1},[Dt(P(F(Y)("serverinfo","Unable to list extensions")),1)],64))])],64))}}),cw={name:"CogsIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},uw=["aria-hidden","aria-label"],hw=["fill","width","height"],fw={d:"M15.9,18.45C17.25,18.45 18.35,17.35 18.35,16C18.35,14.65 17.25,13.55 15.9,13.55C14.54,13.55 13.45,14.65 13.45,16C13.45,17.35 14.54,18.45 15.9,18.45M21.1,16.68L22.58,17.84C22.71,17.95 22.75,18.13 22.66,18.29L21.26,20.71C21.17,20.86 21,20.92 20.83,20.86L19.09,20.16C18.73,20.44 18.33,20.67 17.91,20.85L17.64,22.7C17.62,22.87 17.47,23 17.3,23H14.5C14.32,23 14.18,22.87 14.15,22.7L13.89,20.85C13.46,20.67 13.07,20.44 12.71,20.16L10.96,20.86C10.81,20.92 10.62,20.86 10.54,20.71L9.14,18.29C9.05,18.13 9.09,17.95 9.22,17.84L10.7,16.68L10.65,16L10.7,15.31L9.22,14.16C9.09,14.05 9.05,13.86 9.14,13.71L10.54,11.29C10.62,11.13 10.81,11.07 10.96,11.13L12.71,11.84C13.07,11.56 13.46,11.32 13.89,11.15L14.15,9.29C14.18,9.13 14.32,9 14.5,9H17.3C17.47,9 17.62,9.13 17.64,9.29L17.91,11.15C18.33,11.32 18.73,11.56 19.09,11.84L20.83,11.13C21,11.07 21.17,11.13 21.26,11.29L22.66,13.71C22.75,13.86 22.71,14.05 22.58,14.16L21.1,15.31L21.15,16L21.1,16.68M6.69,8.07C7.56,8.07 8.26,7.37 8.26,6.5C8.26,5.63 7.56,4.92 6.69,4.92A1.58,1.58 0 0,0 5.11,6.5C5.11,7.37 5.82,8.07 6.69,8.07M10.03,6.94L11,7.68C11.07,7.75 11.09,7.87 11.03,7.97L10.13,9.53C10.08,9.63 9.96,9.67 9.86,9.63L8.74,9.18L8,9.62L7.81,10.81C7.79,10.92 7.7,11 7.59,11H5.79C5.67,11 5.58,10.92 5.56,10.81L5.4,9.62L4.64,9.18L3.5,9.63C3.41,9.67 3.3,9.63 3.24,9.53L2.34,7.97C2.28,7.87 2.31,7.75 2.39,7.68L3.34,6.94L3.31,6.5L3.34,6.06L2.39,5.32C2.31,5.25 2.28,5.13 2.34,5.03L3.24,3.47C3.3,3.37 3.41,3.33 3.5,3.37L4.63,3.82L5.4,3.38L5.56,2.19C5.58,2.08 5.67,2 5.79,2H7.59C7.7,2 7.79,2.08 7.81,2.19L8,3.38L8.74,3.82L9.86,3.37C9.96,3.33 10.08,3.37 10.13,3.47L11.03,5.03C11.09,5.13 11.07,5.25 11,5.32L10.03,6.06L10.06,6.5L10.03,6.94Z"},dw={key:0};function pw(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon cogs-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",fw,[n.title?(z(),G("title",dw,P(n.title),1)):Ot("",!0)])],8,hw))],16,uw)}const gw=he(cw,[["render",pw]]),mw={name:"LanguagePhpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},_w=["aria-hidden","aria-label"],yw=["fill","width","height"],bw={d:"M12,18.08C5.37,18.08 0,15.36 0,12C0,8.64 5.37,5.92 12,5.92C18.63,5.92 24,8.64 24,12C24,15.36 18.63,18.08 12,18.08M6.81,10.13C7.35,10.13 7.72,10.23 7.9,10.44C8.08,10.64 8.12,11 8.03,11.47C7.93,12 7.74,12.34 7.45,12.56C7.17,12.78 6.74,12.89 6.16,12.89H5.29L5.82,10.13H6.81M3.31,15.68H4.75L5.09,13.93H6.32C6.86,13.93 7.3,13.87 7.65,13.76C8,13.64 8.32,13.45 8.61,13.18C8.85,12.96 9.04,12.72 9.19,12.45C9.34,12.19 9.45,11.89 9.5,11.57C9.66,10.79 9.55,10.18 9.17,9.75C8.78,9.31 8.18,9.1 7.35,9.1H4.59L3.31,15.68M10.56,7.35L9.28,13.93H10.7L11.44,10.16H12.58C12.94,10.16 13.18,10.22 13.29,10.34C13.4,10.46 13.42,10.68 13.36,11L12.79,13.93H14.24L14.83,10.86C14.96,10.24 14.86,9.79 14.56,9.5C14.26,9.23 13.71,9.1 12.91,9.1H11.64L12,7.35H10.56M18,10.13C18.55,10.13 18.91,10.23 19.09,10.44C19.27,10.64 19.31,11 19.22,11.47C19.12,12 18.93,12.34 18.65,12.56C18.36,12.78 17.93,12.89 17.35,12.89H16.5L17,10.13H18M14.5,15.68H15.94L16.28,13.93H17.5C18.05,13.93 18.5,13.87 18.85,13.76C19.2,13.64 19.5,13.45 19.8,13.18C20.04,12.96 20.24,12.72 20.38,12.45C20.53,12.19 20.64,11.89 20.7,11.57C20.85,10.79 20.74,10.18 20.36,9.75C20,9.31 19.37,9.1 18.54,9.1H15.79L14.5,15.68Z"},vw={key:0};function xw(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon language-php-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",bw,[n.title?(z(),G("title",vw,P(n.title),1)):Ot("",!0)])],8,yw))],16,_w)}const ww=he(mw,[["render",xw]]),Sw={class:"server-info-table"},Ew={class:"info"},Aw={class:"info"},Tw={class:"info"},Rw={class:"info"},Ow={class:"info"},kw={key:0},Cw=["href"],Mw={class:"server-info-table"},Pw={class:"info"},Iw={class:"info"},Lw={class:"info"},Dw={class:"info"},Nw={class:"info"},$w={class:"info"},Fw={class:"info"},Bw={class:"info"},Uw={class:"info"},jw={class:"info"},Hw={class:"info"},Vw={class:"info"},zw=Ae({__name:"PhpSection",props:{php:{},fpm:{type:[Object,Boolean]},phpinfo:{type:Boolean},phpinfoUrl:{}},setup(t){return(e,n)=>(z(),G(Mt,null,[pt(je,{icon:ww,title:F(Y)("serverinfo","PHP")},null,8,["title"]),v("div",Sw,[v("table",null,[v("tbody",null,[v("tr",null,[v("td",null,P(F(Y)("serverinfo","Version:")),1),v("td",Ew,P(t.php.version),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Memory limit:")),1),v("td",Aw,P(F(Vn)(t.php.memory_limit)),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Max execution time:")),1),v("td",Tw,P(t.php.max_execution_time)+" "+P(F(Y)("serverinfo","seconds")),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Upload max size:")),1),v("td",Rw,P(F(Vn)(t.php.upload_max_filesize)),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","OPcache Revalidate Frequency:")),1),v("td",Ow,P(t.php.opcache_revalidate_freq)+" "+P(F(Y)("serverinfo","seconds")),1)]),t.phpinfo?(z(),G("tr",kw,[v("td",null,P(F(Y)("serverinfo","PHP Info:")),1),v("td",null,[v("a",{class:"info",target:"_blank",rel:"noopener noreferrer",href:t.phpinfoUrl},P(F(Y)("serverinfo","Show phpinfo")),9,Cw)])])):Ot("",!0)])])]),t.fpm!==!1?(z(),G(Mt,{key:0},[pt(je,{icon:gw,title:F(Y)("serverinfo","FPM worker pool")},null,8,["title"]),v("div",Mw,[v("table",null,[v("tbody",null,[v("tr",null,[v("td",null,P(F(Y)("serverinfo","Pool name:")),1),v("td",Pw,P(t.fpm.pool),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Pool type:")),1),v("td",Iw,P(t.fpm["process-manager"]),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Start time:")),1),v("td",Lw,P(t.fpm["start-time"]),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Accepted connections:")),1),v("td",Dw,P(t.fpm["accepted-conn"]),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Total processes:")),1),v("td",Nw,P(t.fpm["total-processes"]),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Active processes:")),1),v("td",$w,P(t.fpm["active-processes"]),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Idle processes:")),1),v("td",Fw,P(t.fpm["idle-processes"]),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Listen queue:")),1),v("td",Bw,P(t.fpm["listen-queue"]),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Slow requests:")),1),v("td",Uw,P(t.fpm["slow-requests"]),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Max listen queue:")),1),v("td",jw,P(t.fpm["max-listen-queue"]),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Max active processes:")),1),v("td",Hw,P(t.fpm["max-active-processes"]),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Max children reached:")),1),v("td",Vw,P(t.fpm["max-children-reached"]),1)])])])])],64)):Ot("",!0)],64))}}),Ww={},qw={class:"section section-skeleton","aria-busy":"true"};function Yw(t,e){return z(),G("div",qw,[...e[0]||(e[0]=[v("div",{class:"skeleton-bar skeleton-title"},null,-1),v("div",{class:"skeleton-bar skeleton-chart"},null,-1)])])}const Ve=he(Ww,[["render",Yw],["__scopeId","data-v-9a2b13f0"]]),Gw={name:"ShareVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Kw=["aria-hidden","aria-label"],Xw=["fill","width","height"],Jw={d:"M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z"},Zw={key:0};function Qw(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon share-variant-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",Jw,[n.title?(z(),G("title",Zw,P(n.title),1)):Ot("",!0)])],8,Xw))],16,Kw)}const tS=he(Gw,[["render",Qw]]),eS={class:"section network-infos"},nS={class:"row"},iS={class:"col col-12"},sS={class:"col col-12"},rS={class:"row"},oS={class:"col col-4 col-l-6 col-m-12"},aS={class:"infobox"},lS={class:"interface-wrapper"},cS={class:"info"},uS={class:"info"},hS={class:"info"},fS={class:"info"},dS={class:"info"},pS={class:"info"},gS={class:"info"},mS=Ae({__name:"SharesSection",props:{shares:{}},setup(t){return(e,n)=>(z(),G("div",eS,[v("div",nS,[v("div",iS,[pt(je,{icon:tS,title:F(Y)("serverinfo","Shares")},null,8,["title"])]),v("div",sS,[v("div",rS,[v("div",oS,[v("div",aS,[v("div",lS,[t.shares.num_shares_user>0?(z(),G(Mt,{key:0},[Dt(P(F(Y)("serverinfo","Users:"))+" ",1),v("span",cS,P(t.shares.num_shares_user),1),n[0]||(n[0]=v("br",null,null,-1))],64)):Ot("",!0),t.shares.num_shares_groups>0?(z(),G(Mt,{key:1},[Dt(P(F(Y)("serverinfo","Groups:"))+" ",1),v("span",uS,P(t.shares.num_shares_groups),1),n[1]||(n[1]=v("br",null,null,-1))],64)):Ot("",!0),t.shares.num_shares_link>0?(z(),G(Mt,{key:2},[Dt(P(F(Y)("serverinfo","Links:"))+" ",1),v("span",hS,P(t.shares.num_shares_link),1),n[2]||(n[2]=v("br",null,null,-1))],64)):Ot("",!0),t.shares.num_shares_mail>0?(z(),G(Mt,{key:3},[Dt(P(F(Y)("serverinfo","Emails:"))+" ",1),v("span",fS,P(t.shares.num_shares_mail),1),n[3]||(n[3]=v("br",null,null,-1))],64)):Ot("",!0),t.shares.num_fed_shares_sent>0?(z(),G(Mt,{key:4},[Dt(P(F(Y)("serverinfo","Federated sent:"))+" ",1),v("span",dS,P(t.shares.num_fed_shares_sent),1),n[4]||(n[4]=v("br",null,null,-1))],64)):Ot("",!0),t.shares.num_fed_shares_received>0?(z(),G(Mt,{key:5},[Dt(P(F(Y)("serverinfo","Federated received:"))+" ",1),v("span",pS,P(t.shares.num_fed_shares_received),1),n[5]||(n[5]=v("br",null,null,-1))],64)):Ot("",!0),t.shares.num_shares_room>0?(z(),G(Mt,{key:6},[Dt(P(F(Y)("serverinfo","Talk conversations:"))+" ",1),v("span",gS,P(t.shares.num_shares_room),1),n[6]||(n[6]=v("br",null,null,-1))],64)):Ot("",!0)])])])])])])]))}}),_S={name:"MonitorIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},yS=["aria-hidden","aria-label"],bS=["fill","width","height"],vS={d:"M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z"},xS={key:0};function wS(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon monitor-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",vS,[n.title?(z(),G("title",xS,P(n.title),1)):Ot("",!0)])],8,bS))],16,yS)}const SS=he(_S,[["render",wS]]),ES={class:"server-info-table"},AS={class:"info"},TS={class:"info"},RS={key:0},OS={class:"info"},kS={class:"info"},CS={class:"info"},MS=Ae({__name:"SystemSection",props:{hostname:{},osname:{},cpu:{},memTotal:{},servertime:{},uptime:{}},setup(t){return(e,n)=>(z(),G(Mt,null,[pt(je,{icon:SS,title:t.hostname},null,8,["title"]),v("div",ES,[v("table",null,[v("tbody",null,[v("tr",null,[v("td",null,P(F(Y)("serverinfo","Operating System:")),1),v("td",AS,P(t.osname),1)]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","CPU:")),1),v("td",TS,P(F(Y)("serverinfo","{name} ({threads} threads)",{name:t.cpu.name,threads:t.cpu.threads})),1)]),t.memTotal>0?(z(),G("tr",RS,[v("td",null,P(F(Y)("serverinfo","Memory:")),1),v("td",OS,P(F(ri)(t.memTotal)),1)])):Ot("",!0),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Server time:")),1),v("td",null,[v("span",kS,P(t.servertime),1)])]),v("tr",null,[v("td",null,P(F(Y)("serverinfo","Uptime:")),1),v("td",null,[v("span",CS,P(t.uptime),1)])])])])])],64))}}),PS={name:"ThermometerIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},IS=["aria-hidden","aria-label"],LS=["fill","width","height"],DS={d:"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V8H11V5A1 1 0 0 1 12 4Z"},NS={key:0};function $S(t,e,n,i,s,r){return z(),G("span",De(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon thermometer-icon",role:"img",onClick:e[0]||(e[0]=o=>t.$emit("click",o))}),[(z(),G("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[v("path",DS,[n.title?(z(),G("title",NS,P(n.title),1)):Ot("",!0)])],8,LS))],16,IS)}const FS=he(PS,[["render",$S]]),BS={class:"table-wrapper"},US={class:"server-infos-table"},jS={class:"info"},HS=Ae({__name:"ThermalSection",props:{thermalzones:{}},setup(t){return(e,n)=>(z(),G(Mt,null,[pt(je,{icon:FS,title:F(Y)("serverinfo","Temperature")},null,8,["title"]),v("div",BS,[v("table",US,[v("tbody",null,[(z(!0),G(Mt,null,fo(t.thermalzones,i=>(z(),G("tr",{key:i.zone},[v("td",null,P(i.type)+":",1),v("td",null,[n[0]||(n[0]=Dt(" ",-1)),v("span",jS,P(i.temp),1),n[1]||(n[1]=Dt("°C",-1))])]))),128))])])])],64))}});function VS(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var op={exports:{}},ne=op.exports={},un,hn;function Ya(){throw new Error("setTimeout has not been defined")}function Ga(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?un=setTimeout:un=Ya}catch{un=Ya}try{typeof clearTimeout=="function"?hn=clearTimeout:hn=Ga}catch{hn=Ga}})();function ap(t){if(un===setTimeout)return setTimeout(t,0);if((un===Ya||!un)&&setTimeout)return un=setTimeout,setTimeout(t,0);try{return un(t,0)}catch{try{return un.call(null,t,0)}catch{return un.call(this,t,0)}}}function zS(t){if(hn===clearTimeout)return clearTimeout(t);if((hn===Ga||!hn)&&clearTimeout)return hn=clearTimeout,clearTimeout(t);try{return hn(t)}catch{try{return hn.call(null,t)}catch{return hn.call(this,t)}}}var Mn=[],Fi=!1,li,Cr=-1;function WS(){!Fi||!li||(Fi=!1,li.length?Mn=li.concat(Mn):Cr=-1,Mn.length&&lp())}function lp(){if(!Fi){var t=ap(WS);Fi=!0;for(var e=Mn.length;e;){for(li=Mn,Mn=[];++Cr1)for(var n=1;nconsole.error("SEMVER",...e):()=>{},ua}var ha,Th;function hp(){if(Th)return ha;Th=1;const t="2.0.0",e=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,i=16,s=e-6;return ha={MAX_LENGTH:e,MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:s,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},ha}var fa={exports:{}},Rh;function YS(){return Rh||(Rh=1,(function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:s}=hp(),r=up();e=t.exports={};const o=e.re=[],a=e.safeRe=[],l=e.src=[],u=e.safeSrc=[],c=e.t={};let f=0;const p="[a-zA-Z0-9-]",m=[["\\s",1],["\\d",s],[p,i]],x=E=>{for(const[b,O]of m)E=E.split(`${b}*`).join(`${b}{0,${O}}`).split(`${b}+`).join(`${b}{1,${O}}`);return E},_=(E,b,O)=>{const M=x(b),T=f++;r(E,T,b),c[E]=T,l[T]=b,u[T]=M,o[T]=new RegExp(b,O?"g":void 0),a[T]=new RegExp(M,O?"g":void 0)};_("NUMERICIDENTIFIER","0|[1-9]\\d*"),_("NUMERICIDENTIFIERLOOSE","\\d+"),_("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${p}*`),_("MAINVERSION",`(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})`),_("MAINVERSIONLOOSE",`(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})`),_("PRERELEASEIDENTIFIER",`(?:${l[c.NONNUMERICIDENTIFIER]}|${l[c.NUMERICIDENTIFIER]})`),_("PRERELEASEIDENTIFIERLOOSE",`(?:${l[c.NONNUMERICIDENTIFIER]}|${l[c.NUMERICIDENTIFIERLOOSE]})`),_("PRERELEASE",`(?:-(${l[c.PRERELEASEIDENTIFIER]}(?:\\.${l[c.PRERELEASEIDENTIFIER]})*))`),_("PRERELEASELOOSE",`(?:-?(${l[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[c.PRERELEASEIDENTIFIERLOOSE]})*))`),_("BUILDIDENTIFIER",`${p}+`),_("BUILD",`(?:\\+(${l[c.BUILDIDENTIFIER]}(?:\\.${l[c.BUILDIDENTIFIER]})*))`),_("FULLPLAIN",`v?${l[c.MAINVERSION]}${l[c.PRERELEASE]}?${l[c.BUILD]}?`),_("FULL",`^${l[c.FULLPLAIN]}$`),_("LOOSEPLAIN",`[v=\\s]*${l[c.MAINVERSIONLOOSE]}${l[c.PRERELEASELOOSE]}?${l[c.BUILD]}?`),_("LOOSE",`^${l[c.LOOSEPLAIN]}$`),_("GTLT","((?:<|>)?=?)"),_("XRANGEIDENTIFIERLOOSE",`${l[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),_("XRANGEIDENTIFIER",`${l[c.NUMERICIDENTIFIER]}|x|X|\\*`),_("XRANGEPLAIN",`[v=\\s]*(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:${l[c.PRERELEASE]})?${l[c.BUILD]}?)?)?`),_("XRANGEPLAINLOOSE",`[v=\\s]*(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:${l[c.PRERELEASELOOSE]})?${l[c.BUILD]}?)?)?`),_("XRANGE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAIN]}$`),_("XRANGELOOSE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAINLOOSE]}$`),_("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),_("COERCE",`${l[c.COERCEPLAIN]}(?:$|[^\\d])`),_("COERCEFULL",l[c.COERCEPLAIN]+`(?:${l[c.PRERELEASE]})?(?:${l[c.BUILD]})?(?:$|[^\\d])`),_("COERCERTL",l[c.COERCE],!0),_("COERCERTLFULL",l[c.COERCEFULL],!0),_("LONETILDE","(?:~>?)"),_("TILDETRIM",`(\\s*)${l[c.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",_("TILDE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAIN]}$`),_("TILDELOOSE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAINLOOSE]}$`),_("LONECARET","(?:\\^)"),_("CARETTRIM",`(\\s*)${l[c.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",_("CARET",`^${l[c.LONECARET]}${l[c.XRANGEPLAIN]}$`),_("CARETLOOSE",`^${l[c.LONECARET]}${l[c.XRANGEPLAINLOOSE]}$`),_("COMPARATORLOOSE",`^${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]})$|^$`),_("COMPARATOR",`^${l[c.GTLT]}\\s*(${l[c.FULLPLAIN]})$|^$`),_("COMPARATORTRIM",`(\\s*)${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]}|${l[c.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",_("HYPHENRANGE",`^\\s*(${l[c.XRANGEPLAIN]})\\s+-\\s+(${l[c.XRANGEPLAIN]})\\s*$`),_("HYPHENRANGELOOSE",`^\\s*(${l[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[c.XRANGEPLAINLOOSE]})\\s*$`),_("STAR","(<|>)?=?\\s*\\*"),_("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),_("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(fa,fa.exports)),fa.exports}var da,Oh;function GS(){if(Oh)return da;Oh=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return da=n=>n?typeof n!="object"?t:n:e,da}var pa,kh;function KS(){if(kh)return pa;kh=1;const t=/^[0-9]+$/,e=(n,i)=>{if(typeof n=="number"&&typeof i=="number")return n===i?0:ne(i,n)},pa}var ga,Ch;function fp(){if(Ch)return ga;Ch=1;const t=up(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:n}=hp(),{safeRe:i,t:s}=YS(),r=GS(),{compareIdentifiers:o}=KS();class a{constructor(u,c){if(c=r(c),u instanceof a){if(u.loose===!!c.loose&&u.includePrerelease===!!c.includePrerelease)return u;u=u.version}else if(typeof u!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof u}".`);if(u.length>e)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",u,c),this.options=c,this.loose=!!c.loose,this.includePrerelease=!!c.includePrerelease;const f=u.trim().match(c.loose?i[s.LOOSE]:i[s.FULL]);if(!f)throw new TypeError(`Invalid Version: ${u}`);if(this.raw=u,this.major=+f[1],this.minor=+f[2],this.patch=+f[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");f[4]?this.prerelease=f[4].split(".").map(p=>{if(/^[0-9]+$/.test(p)){const m=+p;if(m>=0&&mu.major?1:this.minoru.minor?1:this.patchu.patch?1:0}comparePre(u){if(u instanceof a||(u=new a(u,this.options)),this.prerelease.length&&!u.prerelease.length)return-1;if(!this.prerelease.length&&u.prerelease.length)return 1;if(!this.prerelease.length&&!u.prerelease.length)return 0;let c=0;do{const f=this.prerelease[c],p=u.prerelease[c];if(t("prerelease compare",c,f,p),f===void 0&&p===void 0)return 0;if(p===void 0)return 1;if(f===void 0)return-1;if(f!==p)return o(f,p)}while(++c)}compareBuild(u){u instanceof a||(u=new a(u,this.options));let c=0;do{const f=this.build[c],p=u.build[c];if(t("build compare",c,f,p),f===void 0&&p===void 0)return 0;if(p===void 0)return 1;if(f===void 0)return-1;if(f!==p)return o(f,p)}while(++c)}inc(u,c,f){if(u.startsWith("pre")){if(!c&&f===!1)throw new Error("invalid increment argument: identifier is empty");if(c){const p=`-${c}`.match(this.options.loose?i[s.PRERELEASELOOSE]:i[s.PRERELEASE]);if(!p||p[1]!==c)throw new Error(`invalid identifier: ${c}`)}}switch(u){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",c,f);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",c,f);break;case"prepatch":this.prerelease.length=0,this.inc("patch",c,f),this.inc("pre",c,f);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",c,f),this.inc("pre",c,f);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const p=Number(f)?1:0;if(this.prerelease.length===0)this.prerelease=[p];else{let m=this.prerelease.length;for(;--m>=0;)typeof this.prerelease[m]=="number"&&(this.prerelease[m]++,m=-2);if(m===-1){if(c===this.prerelease.join(".")&&f===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(p)}}if(c){let m=[c,p];f===!1&&(m=[c]),o(this.prerelease[0],c)===0?isNaN(this.prerelease[1])&&(this.prerelease=m):this.prerelease=m}break}default:throw new Error(`invalid increment argument: ${u}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return ga=a,ga}var ma,Mh;function XS(){if(Mh)return ma;Mh=1;const t=fp();return ma=(e,n)=>new t(e,n).major,ma}var JS=XS();const Ph=bl(JS);var _a,Ih;function ZS(){if(Ih)return _a;Ih=1;const t=fp();return _a=(e,n,i=!1)=>{if(e instanceof t)return e;try{return new t(e,n)}catch(s){if(!i)return null;throw s}},_a}var ya,Lh;function QS(){if(Lh)return ya;Lh=1;const t=ZS();return ya=(e,n)=>{const i=t(e,n);return i?i.version:null},ya}var tE=QS();const eE=bl(tE);class nE{bus;constructor(e){typeof e.getVersion!="function"||!eE(e.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):Ph(e.getVersion())!==Ph(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()),this.bus=e}getVersion(){return"3.3.3"}subscribe(e,n){this.bus.subscribe(e,n)}unsubscribe(e,n){this.bus.unsubscribe(e,n)}emit(e,...n){this.bus.emit(e,...n)}}class iE{handlers=new Map;getVersion(){return"3.3.3"}subscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).concat(n))}unsubscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).filter(i=>i!==n))}emit(e,...n){(this.handlers.get(e)||[]).forEach(i=>{try{i(n[0])}catch(s){console.error("could not invoke event listener",s)}})}}let as=null;function jl(){return as!==null?as:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof window?._nc_event_bus<"u"?as=new nE(window._nc_event_bus):as=window._nc_event_bus=new iE,as)}function dp(t,e){jl().subscribe(t,e)}function sE(t,e){jl().unsubscribe(t,e)}function rE(t,...e){jl().emit(t,...e)}class Jr{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(e,n,i){this.scope=`${i?Jr.GLOBAL_SCOPE_PERSISTENT:Jr.GLOBAL_SCOPE_VOLATILE}_${btoa(e)}_`,this.wrapped=n}scopeKey(e){return`${this.scope}${e}`}setItem(e,n){this.wrapped.setItem(this.scopeKey(e),n)}getItem(e){return this.wrapped.getItem(this.scopeKey(e))}removeItem(e){this.wrapped.removeItem(this.scopeKey(e))}clear(){Object.keys(this.wrapped).filter(e=>e.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped))}}class oE{appId;persisted=!1;clearedOnLogout=!1;constructor(e){this.appId=e}persist(e=!0){return this.persisted=e,this}clearOnLogout(e=!0){return this.clearedOnLogout=e,this}build(){return new Jr(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function aE(t){return new oE(t)}hE();function lE(){return globalThis._nc_auth_requestToken?globalThis._nc_auth_requestToken:globalThis.document?document.head.dataset.requesttoken??null:null}function pp(t){if(!t||typeof t!="string")throw new Error("Invalid CSRF token given",{cause:{token:t}});globalThis._nc_auth_requestToken!==t&&(globalThis._nc_auth_requestToken=t,globalThis.document&&(document.head.dataset.requesttoken=t),rE("csrf-token-update",{token:t,_internal:!0}))}async function cE(){const t=yl("/csrftoken"),e=await fetch(t);if(!e.ok)throw new Error("Could not fetch CSRF token from API",{cause:e});try{const{token:n}=await e.json();return pp(n),n}catch(n){throw new Error("Could not parse CSRF token from API response",{cause:n})}}function uE(t){const e=async({token:n})=>{try{t(n)}catch(i){console.error("Error updating CSRF token observer",i)}};return dp("csrf-token-update",e),()=>sE("csrf-token-update",e)}function hE(){dp("csrf-token-update",({token:t,_internal:e})=>{e||pp(t)})}aE("public").persist().build();function gp(t,e){return function(){return t.apply(e,arguments)}}const{toString:fE}=Object.prototype,{getPrototypeOf:Vi}=Object,{iterator:Ks,toStringTag:mp}=Symbol,Zr=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),Us=(t,e)=>{let n=t;const i=[];for(;n!=null&&n!==Object.prototype;){if(i.indexOf(n)!==-1)return!1;if(i.push(n),Zr(n,e))return!0;n=Vi(n)}return!1},dE=(t,e)=>t!=null&&Us(t,e)?t[e]:void 0,Hl=(t=>e=>{const n=fE.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),tn=t=>(t=t.toLowerCase(),e=>Hl(e)===t),xo=t=>e=>typeof e===t,{isArray:mi}=Array,zi=xo("undefined");function Yi(t){return t!==null&&!zi(t)&&t.constructor!==null&&!zi(t.constructor)&&Le(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const _p=tn("ArrayBuffer");function pE(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&_p(t.buffer),e}const gE=xo("string"),Le=xo("function"),yp=xo("number"),Gi=t=>t!==null&&typeof t=="object",mE=t=>t===!0||t===!1,Mr=t=>{if(!Gi(t))return!1;const e=Vi(t);return(e===null||e===Object.prototype||Vi(e)===null)&&!Us(t,mp)&&!Us(t,Ks)},_E=t=>{if(!Gi(t)||Yi(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},yE=tn("Date"),bE=tn("File"),vE=t=>!!(t&&typeof t.uri<"u"),xE=t=>t&&typeof t.getParts<"u",wE=tn("Blob"),SE=tn("FileList"),EE=t=>Gi(t)&&Le(t.pipe);function AE(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Ts<"u"?Ts:{}}const Dh=AE(),Nh=typeof Dh.FormData<"u"?Dh.FormData:void 0,TE=t=>{if(!t)return!1;if(Nh&&t instanceof Nh)return!0;const e=Vi(t);if(!e||e===Object.prototype||!Le(t.append))return!1;const n=Hl(t);return n==="formdata"||n==="object"&&Le(t.toString)&&t.toString()==="[object FormData]"},RE=tn("URLSearchParams"),[OE,kE,CE,ME]=["ReadableStream","Request","Response","Headers"].map(tn),PE=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Xs(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let i,s;if(typeof t!="object"&&(t=[t]),mi(t))for(i=0,s=t.length;i0;)if(s=n[i],e===s.toLowerCase())return s;return null}const ci=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Ts,vp=t=>!zi(t)&&t!==ci;function Xa(...t){const{caseless:e,skipUndefined:n}=vp(this)&&this||{},i={},s=(r,o)=>{if(o==="__proto__"||o==="constructor"||o==="prototype")return;const a=e&&typeof o=="string"&&bp(i,o)||o,l=Zr(i,a)?i[a]:void 0;Mr(l)&&Mr(r)?i[a]=Xa(l,r):Mr(r)?i[a]=Xa({},r):mi(r)?i[a]=r.slice():(!n||!zi(r))&&(i[a]=r)};for(let r=0,o=t.length;r(Xs(e,(s,r)=>{n&&Le(s)?Object.defineProperty(t,r,{__proto__:null,value:gp(s,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,r,{__proto__:null,value:s,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:i}),t),LE=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),DE=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),n&&Object.assign(t.prototype,n)},NE=(t,e,n,i)=>{let s,r,o;const a={};if(e=e||{},t==null)return e;do{for(s=Object.getOwnPropertyNames(t),r=s.length;r-- >0;)o=s[r],(!i||i(o,t,e))&&!a[o]&&(e[o]=t[o],a[o]=!0);t=n!==!1&&Vi(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},$E=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const i=t.indexOf(e,n);return i!==-1&&i===n},FE=t=>{if(!t)return null;if(mi(t))return t;let e=t.length;if(!yp(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},BE=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Vi(Uint8Array)),UE=(t,e)=>{const n=(t&&t[Ks]).call(t);let i;for(;(i=n.next())&&!i.done;){const s=i.value;e.call(t,s[0],s[1])}},jE=(t,e)=>{let n;const i=[];for(;(n=t.exec(e))!==null;)i.push(n);return i},HE=tn("HTMLFormElement"),VE=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,n,i){return n.toUpperCase()+i}),{propertyIsEnumerable:zE}=Object.prototype,WE=tn("RegExp"),xp=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),i={};Xs(n,(s,r)=>{let o;(o=e(s,r,t))!==!1&&(i[r]=o||s)}),Object.defineProperties(t,i)},qE=t=>{xp(t,(e,n)=>{if(Le(t)&&["arguments","caller","callee"].includes(n))return!1;const i=t[n];if(Le(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},YE=(t,e)=>{const n={},i=s=>{s.forEach(r=>{n[r]=!0})};return mi(t)?i(t):i(String(t).split(e)),n},GE=()=>{},KE=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function XE(t){return!!(t&&Le(t.append)&&t[mp]==="FormData"&&t[Ks])}const JE=t=>{const e=new WeakSet,n=i=>{if(Gi(i)){if(e.has(i))return;if(Yi(i))return i;if(!("toJSON"in i)){e.add(i);const s=mi(i)?[]:{};return Xs(i,(r,o)=>{const a=n(r);!zi(a)&&(s[o]=a)}),e.delete(i),s}}return i};return n(t)},ZE=tn("AsyncFunction"),QE=t=>t&&(Gi(t)||Le(t))&&Le(t.then)&&Le(t.catch),wp=((t,e)=>t?setImmediate:e?((n,i)=>(ci.addEventListener("message",({source:s,data:r})=>{s===ci&&r===n&&i.length&&i.shift()()},!1),s=>{i.push(s),ci.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Le(ci.postMessage)),tA=typeof queueMicrotask<"u"?queueMicrotask.bind(ci):typeof Ka<"u"&&Ka.nextTick||wp,Sp=t=>t!=null&&Le(t[Ks]),eA=t=>t!=null&&Us(t,Ks)&&Sp(t),R={isArray:mi,isArrayBuffer:_p,isBuffer:Yi,isFormData:TE,isArrayBufferView:pE,isString:gE,isNumber:yp,isBoolean:mE,isObject:Gi,isPlainObject:Mr,isEmptyObject:_E,isReadableStream:OE,isRequest:kE,isResponse:CE,isHeaders:ME,isUndefined:zi,isDate:yE,isFile:bE,isReactNativeBlob:vE,isReactNative:xE,isBlob:wE,isRegExp:WE,isFunction:Le,isStream:EE,isURLSearchParams:RE,isTypedArray:BE,isFileList:SE,forEach:Xs,merge:Xa,extend:IE,trim:PE,stripBOM:LE,inherits:DE,toFlatObject:NE,kindOf:Hl,kindOfTest:tn,endsWith:$E,toArray:FE,forEachEntry:UE,matchAll:jE,isHTMLForm:HE,hasOwnProperty:Zr,hasOwnProp:Zr,hasOwnInPrototypeChain:Us,getSafeProp:dE,reduceDescriptors:xp,freezeMethods:qE,toObjectSet:YE,toCamelCase:VE,noop:GE,toFiniteNumber:KE,findKey:bp,global:ci,isContextDefined:vp,isSpecCompliantForm:XE,toJSONObject:JE,isAsyncFn:ZE,isThenable:QE,setImmediate:wp,asap:tA,isIterable:Sp,isSafeIterable:eA};var Ep={},Pr={};Pr.byteLength=sA,Pr.toByteArray=oA,Pr.fromByteArray=cA;for(var gn=[],ze=[],nA=typeof Uint8Array<"u"?Uint8Array:Array,ba="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ki=0,iA=ba.length;ki0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var i=n===e?0:4-n%4;return[n,i]}function sA(t){var e=Ap(t),n=e[0],i=e[1];return(n+i)*3/4-i}function rA(t,e,n){return(e+n)*3/4-n}function oA(t){var e,n=Ap(t),i=n[0],s=n[1],r=new nA(rA(t,i,s)),o=0,a=s>0?i-4:i,l;for(l=0;l>16&255,r[o++]=e>>8&255,r[o++]=e&255;return s===2&&(e=ze[t.charCodeAt(l)]<<2|ze[t.charCodeAt(l+1)]>>4,r[o++]=e&255),s===1&&(e=ze[t.charCodeAt(l)]<<10|ze[t.charCodeAt(l+1)]<<4|ze[t.charCodeAt(l+2)]>>2,r[o++]=e>>8&255,r[o++]=e&255),r}function aA(t){return gn[t>>18&63]+gn[t>>12&63]+gn[t>>6&63]+gn[t&63]}function lA(t,e,n){for(var i,s=[],r=e;ra?a:o+r));return i===1?(e=t[n-1],s.push(gn[e>>2]+gn[e<<4&63]+"==")):i===2&&(e=(t[n-2]<<8)+t[n-1],s.push(gn[e>>10]+gn[e>>4&63]+gn[e<<2&63]+"=")),s.join("")}var Ja={};Ja.read=function(t,e,n,i,s){var r,o,a=s*8-i-1,l=(1<>1,c=-7,f=n?s-1:0,p=n?-1:1,m=t[e+f];for(f+=p,r=m&(1<<-c)-1,m>>=-c,c+=a;c>0;r=r*256+t[e+f],f+=p,c-=8);for(o=r&(1<<-c)-1,r>>=-c,c+=i;c>0;o=o*256+t[e+f],f+=p,c-=8);if(r===0)r=1-u;else{if(r===l)return o?NaN:(m?-1:1)*(1/0);o=o+Math.pow(2,i),r=r-u}return(m?-1:1)*o*Math.pow(2,r-i)},Ja.write=function(t,e,n,i,s,r){var o,a,l,u=r*8-s-1,c=(1<>1,p=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,m=i?0:r-1,x=i?1:-1,_=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+f>=1?e+=p/l:e+=p*Math.pow(2,1-f),e*l>=2&&(o++,l/=2),o+f>=c?(a=0,o=c):o+f>=1?(a=(e*l-1)*Math.pow(2,s),o=o+f):(a=e*Math.pow(2,f-1)*Math.pow(2,s),o=0));s>=8;t[n+m]=a&255,m+=x,a/=256,s-=8);for(o=o<0;t[n+m]=o&255,m+=x,o/=256,u-=8);t[n+m-x]|=_*128};(function(t){const e=Pr,n=Ja,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=c,t.SlowBuffer=L,t.INSPECT_MAX_BYTES=50;const s=2147483647;t.kMaxLength=s;const{Uint8Array:r,ArrayBuffer:o,SharedArrayBuffer:a}=globalThis;c.TYPED_ARRAY_SUPPORT=l(),!c.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function l(){try{const h=new r(1),d={foo:function(){return 42}};return Object.setPrototypeOf(d,r.prototype),Object.setPrototypeOf(h,d),h.foo()===42}catch{return!1}}Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}});function u(h){if(h>s)throw new RangeError('The value "'+h+'" is invalid for option "size"');const d=new r(h);return Object.setPrototypeOf(d,c.prototype),d}function c(h,d,g){if(typeof h=="number"){if(typeof d=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return x(h)}return f(h,d,g)}c.poolSize=8192;function f(h,d,g){if(typeof h=="string")return _(h,d);if(o.isView(h))return b(h);if(h==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h);if(at(h,o)||h&&at(h.buffer,o)||typeof a<"u"&&(at(h,a)||h&&at(h.buffer,a)))return O(h,d,g);if(typeof h=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const A=h.valueOf&&h.valueOf();if(A!=null&&A!==h)return c.from(A,d,g);const k=M(h);if(k)return k;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof h[Symbol.toPrimitive]=="function")return c.from(h[Symbol.toPrimitive]("string"),d,g);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h)}c.from=function(h,d,g){return f(h,d,g)},Object.setPrototypeOf(c.prototype,r.prototype),Object.setPrototypeOf(c,r);function p(h){if(typeof h!="number")throw new TypeError('"size" argument must be of type number');if(h<0)throw new RangeError('The value "'+h+'" is invalid for option "size"')}function m(h,d,g){return p(h),h<=0?u(h):d!==void 0?typeof g=="string"?u(h).fill(d,g):u(h).fill(d):u(h)}c.alloc=function(h,d,g){return m(h,d,g)};function x(h){return p(h),u(h<0?0:T(h)|0)}c.allocUnsafe=function(h){return x(h)},c.allocUnsafeSlow=function(h){return x(h)};function _(h,d){if((typeof d!="string"||d==="")&&(d="utf8"),!c.isEncoding(d))throw new TypeError("Unknown encoding: "+d);const g=tt(h,d)|0;let A=u(g);const k=A.write(h,d);return k!==g&&(A=A.slice(0,k)),A}function E(h){const d=h.length<0?0:T(h.length)|0,g=u(d);for(let A=0;A=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return h|0}function L(h){return+h!=h&&(h=0),c.alloc(+h)}c.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==c.prototype},c.compare=function(h,d){if(at(h,r)&&(h=c.from(h,h.offset,h.byteLength)),at(d,r)&&(d=c.from(d,d.offset,d.byteLength)),!c.isBuffer(h)||!c.isBuffer(d))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===d)return 0;let g=h.length,A=d.length;for(let k=0,N=Math.min(g,A);kA.length?(c.isBuffer(N)||(N=c.from(N)),N.copy(A,k)):r.prototype.set.call(A,N,k);else if(c.isBuffer(N))N.copy(A,k);else throw new TypeError('"list" argument must be an Array of Buffers');k+=N.length}return A};function tt(h,d){if(c.isBuffer(h))return h.length;if(o.isView(h)||at(h,o))return h.byteLength;if(typeof h!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof h);const g=h.length,A=arguments.length>2&&arguments[2]===!0;if(!A&&g===0)return 0;let k=!1;for(;;)switch(d){case"ascii":case"latin1":case"binary":return g;case"utf8":case"utf-8":return j(h).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return g*2;case"hex":return g>>>1;case"base64":return rt(h).length;default:if(k)return A?-1:j(h).length;d=(""+d).toLowerCase(),k=!0}}c.byteLength=tt;function K(h,d,g){let A=!1;if((d===void 0||d<0)&&(d=0),d>this.length||((g===void 0||g>this.length)&&(g=this.length),g<=0)||(g>>>=0,d>>>=0,g<=d))return"";for(h||(h="utf8");;)switch(h){case"hex":return ct(this,d,g);case"utf8":case"utf-8":return lt(this,d,g);case"ascii":return Yt(this,d,g);case"latin1":case"binary":return Tt(this,d,g);case"base64":return st(this,d,g);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ae(this,d,g);default:if(A)throw new TypeError("Unknown encoding: "+h);h=(h+"").toLowerCase(),A=!0}}c.prototype._isBuffer=!0;function X(h,d,g){const A=h[d];h[d]=h[g],h[g]=A}c.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let d=0;dd&&(h+=" ... "),""},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(h,d,g,A,k){if(at(h,r)&&(h=c.from(h,h.offset,h.byteLength)),!c.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(d===void 0&&(d=0),g===void 0&&(g=h?h.length:0),A===void 0&&(A=0),k===void 0&&(k=this.length),d<0||g>h.length||A<0||k>this.length)throw new RangeError("out of range index");if(A>=k&&d>=g)return 0;if(A>=k)return-1;if(d>=g)return 1;if(d>>>=0,g>>>=0,A>>>=0,k>>>=0,this===h)return 0;let N=k-A,q=g-d;const Ct=Math.min(N,q),te=this.slice(A,k),Pt=h.slice(d,g);for(let yt=0;yt2147483647?g=2147483647:g<-2147483648&&(g=-2147483648),g=+g,_t(g)&&(g=k?0:h.length-1),g<0&&(g=h.length+g),g>=h.length){if(k)return-1;g=h.length-1}else if(g<0)if(k)g=0;else return-1;if(typeof d=="string"&&(d=c.from(d,A)),c.isBuffer(d))return d.length===0?-1:ot(h,d,g,A,k);if(typeof d=="number")return d=d&255,typeof r.prototype.indexOf=="function"?k?r.prototype.indexOf.call(h,d,g):r.prototype.lastIndexOf.call(h,d,g):ot(h,[d],g,A,k);throw new TypeError("val must be string, number or Buffer")}function ot(h,d,g,A,k){let N=1,q=h.length,Ct=d.length;if(A!==void 0&&(A=String(A).toLowerCase(),A==="ucs2"||A==="ucs-2"||A==="utf16le"||A==="utf-16le")){if(h.length<2||d.length<2)return-1;N=2,q/=2,Ct/=2,g/=2}function te(yt,Kt){return N===1?yt[Kt]:yt.readUInt16BE(Kt*N)}let Pt;if(k){let yt=-1;for(Pt=g;Ptq&&(g=q-Ct),Pt=g;Pt>=0;Pt--){let yt=!0;for(let Kt=0;Ktk&&(A=k)):A=k;const N=d.length;A>N/2&&(A=N/2);let q;for(q=0;q>>0,isFinite(g)?(g=g>>>0,A===void 0&&(A="utf8")):(A=g,g=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const k=this.length-d;if((g===void 0||g>k)&&(g=k),h.length>0&&(g<0||d<0)||d>this.length)throw new RangeError("Attempt to write outside buffer bounds");A||(A="utf8");let N=!1;for(;;)switch(A){case"hex":return mt(this,h,d,g);case"utf8":case"utf-8":return wt(this,h,d,g);case"ascii":case"latin1":case"binary":return Vt(this,h,d,g);case"base64":return It(this,h,d,g);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return nt(this,h,d,g);default:if(N)throw new TypeError("Unknown encoding: "+A);A=(""+A).toLowerCase(),N=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function st(h,d,g){return d===0&&g===h.length?e.fromByteArray(h):e.fromByteArray(h.slice(d,g))}function lt(h,d,g){g=Math.min(h.length,g);const A=[];let k=d;for(;k239?4:N>223?3:N>191?2:1;if(k+Ct<=g){let te,Pt,yt,Kt;switch(Ct){case 1:N<128&&(q=N);break;case 2:te=h[k+1],(te&192)===128&&(Kt=(N&31)<<6|te&63,Kt>127&&(q=Kt));break;case 3:te=h[k+1],Pt=h[k+2],(te&192)===128&&(Pt&192)===128&&(Kt=(N&15)<<12|(te&63)<<6|Pt&63,Kt>2047&&(Kt<55296||Kt>57343)&&(q=Kt));break;case 4:te=h[k+1],Pt=h[k+2],yt=h[k+3],(te&192)===128&&(Pt&192)===128&&(yt&192)===128&&(Kt=(N&15)<<18|(te&63)<<12|(Pt&63)<<6|yt&63,Kt>65535&&Kt<1114112&&(q=Kt))}}q===null?(q=65533,Ct=1):q>65535&&(q-=65536,A.push(q>>>10&1023|55296),q=56320|q&1023),A.push(q),k+=Ct}return zt(A)}const $t=4096;function zt(h){const d=h.length;if(d<=$t)return String.fromCharCode.apply(String,h);let g="",A=0;for(;AA)&&(g=A);let k="";for(let N=d;Ng&&(h=g),d<0?(d+=g,d<0&&(d=0)):d>g&&(d=g),dg)throw new RangeError("Trying to access beyond buffer length")}c.prototype.readUintLE=c.prototype.readUIntLE=function(h,d,g){h=h>>>0,d=d>>>0,g||bt(h,d,this.length);let A=this[h],k=1,N=0;for(;++N>>0,d=d>>>0,g||bt(h,d,this.length);let A=this[h+--d],k=1;for(;d>0&&(k*=256);)A+=this[h+--d]*k;return A},c.prototype.readUint8=c.prototype.readUInt8=function(h,d){return h=h>>>0,d||bt(h,1,this.length),this[h]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(h,d){return h=h>>>0,d||bt(h,2,this.length),this[h]|this[h+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(h,d){return h=h>>>0,d||bt(h,2,this.length),this[h]<<8|this[h+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(h,d){return h=h>>>0,d||bt(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(h,d){return h=h>>>0,d||bt(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},c.prototype.readBigUInt64LE=Et(function(h){h=h>>>0,C(h,"offset");const d=this[h],g=this[h+7];(d===void 0||g===void 0)&&V(h,this.length-8);const A=d+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,k=this[++h]+this[++h]*2**8+this[++h]*2**16+g*2**24;return BigInt(A)+(BigInt(k)<>>0,C(h,"offset");const d=this[h],g=this[h+7];(d===void 0||g===void 0)&&V(h,this.length-8);const A=d*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],k=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+g;return(BigInt(A)<>>0,d=d>>>0,g||bt(h,d,this.length);let A=this[h],k=1,N=0;for(;++N=k&&(A-=Math.pow(2,8*d)),A},c.prototype.readIntBE=function(h,d,g){h=h>>>0,d=d>>>0,g||bt(h,d,this.length);let A=d,k=1,N=this[h+--A];for(;A>0&&(k*=256);)N+=this[h+--A]*k;return k*=128,N>=k&&(N-=Math.pow(2,8*d)),N},c.prototype.readInt8=function(h,d){return h=h>>>0,d||bt(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},c.prototype.readInt16LE=function(h,d){h=h>>>0,d||bt(h,2,this.length);const g=this[h]|this[h+1]<<8;return g&32768?g|4294901760:g},c.prototype.readInt16BE=function(h,d){h=h>>>0,d||bt(h,2,this.length);const g=this[h+1]|this[h]<<8;return g&32768?g|4294901760:g},c.prototype.readInt32LE=function(h,d){return h=h>>>0,d||bt(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},c.prototype.readInt32BE=function(h,d){return h=h>>>0,d||bt(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},c.prototype.readBigInt64LE=Et(function(h){h=h>>>0,C(h,"offset");const d=this[h],g=this[h+7];(d===void 0||g===void 0)&&V(h,this.length-8);const A=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(g<<24);return(BigInt(A)<>>0,C(h,"offset");const d=this[h],g=this[h+7];(d===void 0||g===void 0)&&V(h,this.length-8);const A=(d<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(A)<>>0,d||bt(h,4,this.length),n.read(this,h,!0,23,4)},c.prototype.readFloatBE=function(h,d){return h=h>>>0,d||bt(h,4,this.length),n.read(this,h,!1,23,4)},c.prototype.readDoubleLE=function(h,d){return h=h>>>0,d||bt(h,8,this.length),n.read(this,h,!0,52,8)},c.prototype.readDoubleBE=function(h,d){return h=h>>>0,d||bt(h,8,this.length),n.read(this,h,!1,52,8)};function Ut(h,d,g,A,k,N){if(!c.isBuffer(h))throw new TypeError('"buffer" argument must be a Buffer instance');if(d>k||dh.length)throw new RangeError("Index out of range")}c.prototype.writeUintLE=c.prototype.writeUIntLE=function(h,d,g,A){if(h=+h,d=d>>>0,g=g>>>0,!A){const q=Math.pow(2,8*g)-1;Ut(this,h,d,g,q,0)}let k=1,N=0;for(this[d]=h&255;++N>>0,g=g>>>0,!A){const q=Math.pow(2,8*g)-1;Ut(this,h,d,g,q,0)}let k=g-1,N=1;for(this[d+k]=h&255;--k>=0&&(N*=256);)this[d+k]=h/N&255;return d+g},c.prototype.writeUint8=c.prototype.writeUInt8=function(h,d,g){return h=+h,d=d>>>0,g||Ut(this,h,d,1,255,0),this[d]=h&255,d+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(h,d,g){return h=+h,d=d>>>0,g||Ut(this,h,d,2,65535,0),this[d]=h&255,this[d+1]=h>>>8,d+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(h,d,g){return h=+h,d=d>>>0,g||Ut(this,h,d,2,65535,0),this[d]=h>>>8,this[d+1]=h&255,d+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(h,d,g){return h=+h,d=d>>>0,g||Ut(this,h,d,4,4294967295,0),this[d+3]=h>>>24,this[d+2]=h>>>16,this[d+1]=h>>>8,this[d]=h&255,d+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(h,d,g){return h=+h,d=d>>>0,g||Ut(this,h,d,4,4294967295,0),this[d]=h>>>24,this[d+1]=h>>>16,this[d+2]=h>>>8,this[d+3]=h&255,d+4};function ft(h,d,g,A,k){B(d,A,k,h,g,7);let N=Number(d&BigInt(4294967295));h[g++]=N,N=N>>8,h[g++]=N,N=N>>8,h[g++]=N,N=N>>8,h[g++]=N;let q=Number(d>>BigInt(32)&BigInt(4294967295));return h[g++]=q,q=q>>8,h[g++]=q,q=q>>8,h[g++]=q,q=q>>8,h[g++]=q,g}function Qt(h,d,g,A,k){B(d,A,k,h,g,7);let N=Number(d&BigInt(4294967295));h[g+7]=N,N=N>>8,h[g+6]=N,N=N>>8,h[g+5]=N,N=N>>8,h[g+4]=N;let q=Number(d>>BigInt(32)&BigInt(4294967295));return h[g+3]=q,q=q>>8,h[g+2]=q,q=q>>8,h[g+1]=q,q=q>>8,h[g]=q,g+8}c.prototype.writeBigUInt64LE=Et(function(h,d=0){return ft(this,h,d,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=Et(function(h,d=0){return Qt(this,h,d,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(h,d,g,A){if(h=+h,d=d>>>0,!A){const Ct=Math.pow(2,8*g-1);Ut(this,h,d,g,Ct-1,-Ct)}let k=0,N=1,q=0;for(this[d]=h&255;++k>0)-q&255;return d+g},c.prototype.writeIntBE=function(h,d,g,A){if(h=+h,d=d>>>0,!A){const Ct=Math.pow(2,8*g-1);Ut(this,h,d,g,Ct-1,-Ct)}let k=g-1,N=1,q=0;for(this[d+k]=h&255;--k>=0&&(N*=256);)h<0&&q===0&&this[d+k+1]!==0&&(q=1),this[d+k]=(h/N>>0)-q&255;return d+g},c.prototype.writeInt8=function(h,d,g){return h=+h,d=d>>>0,g||Ut(this,h,d,1,127,-128),h<0&&(h=255+h+1),this[d]=h&255,d+1},c.prototype.writeInt16LE=function(h,d,g){return h=+h,d=d>>>0,g||Ut(this,h,d,2,32767,-32768),this[d]=h&255,this[d+1]=h>>>8,d+2},c.prototype.writeInt16BE=function(h,d,g){return h=+h,d=d>>>0,g||Ut(this,h,d,2,32767,-32768),this[d]=h>>>8,this[d+1]=h&255,d+2},c.prototype.writeInt32LE=function(h,d,g){return h=+h,d=d>>>0,g||Ut(this,h,d,4,2147483647,-2147483648),this[d]=h&255,this[d+1]=h>>>8,this[d+2]=h>>>16,this[d+3]=h>>>24,d+4},c.prototype.writeInt32BE=function(h,d,g){return h=+h,d=d>>>0,g||Ut(this,h,d,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[d]=h>>>24,this[d+1]=h>>>16,this[d+2]=h>>>8,this[d+3]=h&255,d+4},c.prototype.writeBigInt64LE=Et(function(h,d=0){return ft(this,h,d,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=Et(function(h,d=0){return Qt(this,h,d,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ne(h,d,g,A,k,N){if(g+A>h.length)throw new RangeError("Index out of range");if(g<0)throw new RangeError("Index out of range")}function qe(h,d,g,A,k){return d=+d,g=g>>>0,k||Ne(h,d,g,4),n.write(h,d,g,A,23,4),g+4}c.prototype.writeFloatLE=function(h,d,g){return qe(this,h,d,!0,g)},c.prototype.writeFloatBE=function(h,d,g){return qe(this,h,d,!1,g)};function Ye(h,d,g,A,k){return d=+d,g=g>>>0,k||Ne(h,d,g,8),n.write(h,d,g,A,52,8),g+8}c.prototype.writeDoubleLE=function(h,d,g){return Ye(this,h,d,!0,g)},c.prototype.writeDoubleBE=function(h,d,g){return Ye(this,h,d,!1,g)},c.prototype.copy=function(h,d,g,A){if(!c.isBuffer(h))throw new TypeError("argument should be a Buffer");if(g||(g=0),!A&&A!==0&&(A=this.length),d>=h.length&&(d=h.length),d||(d=0),A>0&&A=this.length)throw new RangeError("Index out of range");if(A<0)throw new RangeError("sourceEnd out of bounds");A>this.length&&(A=this.length),h.length-d>>0,g=g===void 0?this.length:g>>>0,h||(h=0);let k;if(typeof h=="number")for(k=d;k2**32?k=D(String(g)):typeof g=="bigint"&&(k=String(g),(g>BigInt(2)**BigInt(32)||g<-(BigInt(2)**BigInt(32)))&&(k=D(k)),k+="n"),A+=` It must be ${d}. Received ${k}`,A},RangeError);function D(h){let d="",g=h.length;const A=h[0]==="-"?1:0;for(;g>=A+4;g-=3)d=`_${h.slice(g-3,g)}${d}`;return`${h.slice(0,g)}${d}`}function $(h,d,g){C(d,"offset"),(h[d]===void 0||h[d+g]===void 0)&&V(d,h.length-(g+1))}function B(h,d,g,A,k,N){if(h>g||h= 0${q} and < 2${q} ** ${(N+1)*8}${q}`:Ct=`>= -(2${q} ** ${(N+1)*8-1}${q}) and < 2 ** ${(N+1)*8-1}${q}`,new w.ERR_OUT_OF_RANGE("value",Ct,h)}$(A,k,N)}function C(h,d){if(typeof h!="number")throw new w.ERR_INVALID_ARG_TYPE(d,"number",h)}function V(h,d,g){throw Math.floor(h)!==h?(C(h,g),new w.ERR_OUT_OF_RANGE("offset","an integer",h)):d<0?new w.ERR_BUFFER_OUT_OF_BOUNDS:new w.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${d}`,h)}const W=/[^+/0-9A-Za-z-_]/g;function H(h){if(h=h.split("=")[0],h=h.trim().replace(W,""),h.length<2)return"";for(;h.length%4!==0;)h=h+"=";return h}function j(h,d){d=d||1/0;let g;const A=h.length;let k=null;const N=[];for(let q=0;q55295&&g<57344){if(!k){if(g>56319){(d-=3)>-1&&N.push(239,191,189);continue}else if(q+1===A){(d-=3)>-1&&N.push(239,191,189);continue}k=g;continue}if(g<56320){(d-=3)>-1&&N.push(239,191,189),k=g;continue}g=(k-55296<<10|g-56320)+65536}else k&&(d-=3)>-1&&N.push(239,191,189);if(k=null,g<128){if((d-=1)<0)break;N.push(g)}else if(g<2048){if((d-=2)<0)break;N.push(g>>6|192,g&63|128)}else if(g<65536){if((d-=3)<0)break;N.push(g>>12|224,g>>6&63|128,g&63|128)}else if(g<1114112){if((d-=4)<0)break;N.push(g>>18|240,g>>12&63|128,g>>6&63|128,g&63|128)}else throw new Error("Invalid code point")}return N}function et(h){const d=[];for(let g=0;g>8,k=g%256,N.push(k),N.push(A);return N}function rt(h){return e.toByteArray(H(h))}function it(h,d,g,A){let k;for(k=0;k=d.length||k>=h.length);++k)d[k+g]=h[k];return k}function at(h,d){return h instanceof d||h!=null&&h.constructor!=null&&h.constructor.name!=null&&h.constructor.name===d.name}function _t(h){return h!==h}const kt=(function(){const h="0123456789abcdef",d=new Array(256);for(let g=0;g<16;++g){const A=g*16;for(let k=0;k<16;++k)d[A+k]=h[g]+h[k]}return d})();function Et(h){return typeof BigInt>"u"?Gt:h}function Gt(){throw new Error("BigInt not supported")}})(Ep);const $h=Ep.Buffer,uA=R.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"]),hA=t=>{const e={};let n,i,s;return t&&t.split(` -`).forEach(function(r){s=r.indexOf(":"),n=r.substring(0,s).trim().toLowerCase(),i=r.substring(s+1).trim(),!(!n||e[n]&&uA[n])&&(n==="set-cookie"?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)}),e};function fA(t){let e=0,n=t.length;for(;ee;){const i=t.charCodeAt(n-1);if(i!==9&&i!==32)break;n-=1}return e===0&&n===t.length?t:t.slice(e,n)}const dA=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),pA=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function Vl(t,e){return R.isArray(t)?t.map(n=>Vl(n,e)):fA(String(t).replace(e,""))}const gA=t=>Vl(t,dA),mA=t=>Vl(t,pA);function Tp(t){const e=Object.create(null);return R.forEach(t.toJSON(),(n,i)=>{e[i]=mA(n)}),e}const Fh=Symbol("internals");function ls(t){return t&&String(t).trim().toLowerCase()}function Ir(t){return t===!1||t==null?t:R.isArray(t)?t.map(Ir):gA(String(t))}function _A(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=n.exec(t);)e[i[1]]=i[2];return e}const yA=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function va(t,e,n,i,s){if(R.isFunction(i))return i.call(this,e,n);if(s&&(e=n),!!R.isString(e)){if(R.isString(i))return e.indexOf(i)!==-1;if(R.isRegExp(i))return i.test(e)}}function bA(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,i)=>n.toUpperCase()+i)}function vA(t,e){const n=R.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{__proto__:null,value:function(s,r,o){return this[i].call(this,e,s,r,o)},configurable:!0})})}let Se=class{constructor(t){t&&this.set(t)}set(t,e,n){const i=this;function s(o,a,l){const u=ls(a);if(!u)return;const c=R.findKey(i,u);(!c||i[c]===void 0||l===!0||l===void 0&&i[c]!==!1)&&(i[c||a]=Ir(o))}const r=(o,a)=>R.forEach(o,(l,u)=>s(l,u,a));if(R.isPlainObject(t)||t instanceof this.constructor)r(t,e);else if(R.isString(t)&&(t=t.trim())&&!yA(t))r(hA(t),e);else if(R.isObject(t)&&R.isSafeIterable(t)){let o=Object.create(null),a,l;for(const u of t){if(!R.isArray(u))throw new TypeError("Object iterator must return a key-value pair");l=u[0],R.hasOwnProp(o,l)?(a=o[l],o[l]=R.isArray(a)?[...a,u[1]]:[a,u[1]]):o[l]=u[1]}r(o,e)}else t!=null&&s(e,t,n);return this}get(t,e){if(t=ls(t),t){const n=R.findKey(this,t);if(n){const i=this[n];if(!e)return i;if(e===!0)return _A(i);if(R.isFunction(e))return e.call(this,i,n);if(R.isRegExp(e))return e.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=ls(t),t){const n=R.findKey(this,t);return!!(n&&this[n]!==void 0&&(!e||va(this,this[n],n,e)))}return!1}delete(t,e){const n=this;let i=!1;function s(r){if(r=ls(r),r){const o=R.findKey(n,r);o&&(!e||va(n,n[o],o,e))&&(delete n[o],i=!0)}}return R.isArray(t)?t.forEach(s):s(t),i}clear(t){const e=Object.keys(this);let n=e.length,i=!1;for(;n--;){const s=e[n];(!t||va(this,this[s],s,t,!0))&&(delete this[s],i=!0)}return i}normalize(t){const e=this,n={};return R.forEach(this,(i,s)=>{const r=R.findKey(n,s);if(r){e[r]=Ir(i),delete e[s];return}const o=t?bA(s):String(s).trim();o!==s&&delete e[s],e[o]=Ir(i),n[o]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return R.forEach(this,(n,i)=>{n!=null&&n!==!1&&(e[i]=t&&R.isArray(n)?n.join(", "):n)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,e])=>t+": "+e).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach(i=>n.set(i)),n}static accessor(t){const e=(this[Fh]=this[Fh]={accessors:{}}).accessors,n=this.prototype;function i(s){const r=ls(s);e[r]||(vA(n,s),e[r]=!0)}return R.isArray(t)?t.forEach(i):i(t),this}};Se.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),R.reduceDescriptors(Se.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(i){this[n]=i}}}),R.freezeMethods(Se);const xA="[REDACTED ****]";function wA(t){if(R.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(R.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function SA(t,e){const n=new Set(e.map(r=>String(r).toLowerCase())),i=[],s=r=>{if(r===null||typeof r!="object"||R.isBuffer(r))return r;if(i.indexOf(r)!==-1)return;r instanceof Se&&(r=r.toJSON()),i.push(r);let o;if(R.isArray(r))o=[],r.forEach((a,l)=>{const u=s(a);R.isUndefined(u)||(o[l]=u)});else{if(!R.isPlainObject(r)&&wA(r))return i.pop(),r;o=Object.create(null);for(const[a,l]of Object.entries(r)){const u=n.has(a.toLowerCase())?xA:s(l);R.isUndefined(u)||(o[a]=u)}}return i.pop(),o};return s(t)}let Q=class Rp extends Error{static from(e,n,i,s,r,o){const a=new Rp(e.message,n||e.code,i,s,r);return Object.defineProperty(a,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),a.name=e.name,e.status!=null&&a.status==null&&(a.status=e.status),o&&Object.assign(a,o),a}constructor(e,n,i,s,r){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),i&&(this.config=i),s&&(this.request=s),r&&(this.response=r,this.status=r.status)}toJSON(){const e=this.config,n=e&&R.hasOwnProp(e,"redact")?e.redact:void 0,i=R.isArray(n)&&n.length>0?SA(e,n):R.toJSONObject(e);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:i,code:this.code,status:this.status}}};Q.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",Q.ERR_BAD_OPTION="ERR_BAD_OPTION",Q.ECONNABORTED="ECONNABORTED",Q.ETIMEDOUT="ETIMEDOUT",Q.ECONNREFUSED="ECONNREFUSED",Q.ERR_NETWORK="ERR_NETWORK",Q.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",Q.ERR_DEPRECATED="ERR_DEPRECATED",Q.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",Q.ERR_BAD_REQUEST="ERR_BAD_REQUEST",Q.ERR_CANCELED="ERR_CANCELED",Q.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",Q.ERR_INVALID_URL="ERR_INVALID_URL",Q.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const EA=null,Op=100;function Za(t){return R.isPlainObject(t)||R.isArray(t)}function kp(t){return R.endsWith(t,"[]")?t.slice(0,-2):t}function xa(t,e,n){return t?t.concat(e).map(function(i,s){return i=kp(i),!n&&s?"["+i+"]":i}).join(n?".":""):e}function AA(t){return R.isArray(t)&&!t.some(Za)}const TA=R.toFlatObject(R,{},null,function(t){return/^is[A-Z]/.test(t)});function wo(t,e,n){if(!R.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=R.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,O){return!R.isUndefined(O[b])});const i=n.metaTokens,s=n.visitor||x,r=n.dots,o=n.indexes,a=n.Blob||typeof Blob<"u"&&Blob,l=n.maxDepth===void 0?Op:n.maxDepth,u=a&&R.isSpecCompliantForm(e),c=[];if(!R.isFunction(s))throw new TypeError("visitor must be a function");function f(b){if(b===null)return"";if(R.isDate(b))return b.toISOString();if(R.isBoolean(b))return b.toString();if(!u&&R.isBlob(b))throw new Q("Blob is not supported. Use a Buffer instead.");if(R.isArrayBuffer(b)||R.isTypedArray(b)){if(u&&typeof a=="function")return new a([b]);if(typeof $h<"u")return $h.from(b);throw new Q("Blob is not supported. Use a Buffer instead.",Q.ERR_NOT_SUPPORT)}return b}function p(b){if(b>l)throw new Q("Object is too deeply nested ("+b+" levels). Max depth: "+l,Q.ERR_FORM_DATA_DEPTH_EXCEEDED)}function m(b,O){if(l===1/0)return JSON.stringify(b);const M=[];return JSON.stringify(b,function(T,L){if(!R.isObject(L))return L;for(;M.length&&M[M.length-1]!==this;)M.pop();return M.push(L),p(O+M.length-1),L})}function x(b,O,M){let T=b;if(R.isReactNative(e)&&R.isReactNativeBlob(b))return e.append(xa(M,O,r),f(b)),!1;if(b&&!M&&typeof b=="object"){if(R.endsWith(O,"{}"))O=i?O:O.slice(0,-2),b=m(b,1);else if(R.isArray(b)&&AA(b)||(R.isFileList(b)||R.endsWith(O,"[]"))&&(T=R.toArray(b)))return O=kp(O),T.forEach(function(L,tt){!(R.isUndefined(L)||L===null)&&e.append(o===!0?xa([O],tt,r):o===null?O:O+"[]",f(L))}),!1}return Za(b)?!0:(e.append(xa(M,O,r),f(b)),!1)}const _=Object.assign(TA,{defaultVisitor:x,convertValue:f,isVisitable:Za});function E(b,O,M=0){if(!R.isUndefined(b)){if(p(M),c.indexOf(b)!==-1)throw new Error("Circular reference detected in "+O.join("."));c.push(b),R.forEach(b,function(T,L){(!(R.isUndefined(T)||T===null)&&s.call(e,T,R.isString(L)?L.trim():L,O,_))===!0&&E(T,O?O.concat(L):[L],M+1)}),c.pop()}}if(!R.isObject(t))throw new TypeError("data must be an object");return E(t),e}function Bh(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(n){return e[n]})}function zl(t,e){this._pairs=[],t&&wo(t,this,e)}const Uh=zl.prototype;Uh.append=function(t,e){this._pairs.push([t,e])},Uh.toString=function(t){const e=t?n=>t.call(this,n,Bh):Bh;return this._pairs.map(function(n){return e(n[0])+"="+e(n[1])},"").join("&")};function RA(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Cp(t,e,n){if(!e)return t;t=t||"";const i=R.isFunction(n)?{serialize:n}:n,s=R.getSafeProp(i,"encode")||RA,r=R.getSafeProp(i,"serialize");let o;if(r?o=r(e,i):o=R.isURLSearchParams(e)?e.toString():new zl(e,i).toString(s),o){const a=t.indexOf("#");a!==-1&&(t=t.slice(0,a)),t+=(t.indexOf("?")===-1?"?":"&")+o}return t}class jh{constructor(){this.handlers=[]}use(e,n,i){return this.handlers.push({fulfilled:e,rejected:n,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){R.forEach(this.handlers,function(n){n!==null&&e(n)})}}const Wl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},OA=typeof URLSearchParams<"u"?URLSearchParams:zl,kA=typeof FormData<"u"?FormData:null,CA=typeof Blob<"u"?Blob:null,MA={isBrowser:!0,classes:{URLSearchParams:OA,FormData:kA,Blob:CA},protocols:["http","https","file","blob","url","data"]},ql=typeof window<"u"&&typeof document<"u",Qa=typeof navigator=="object"&&navigator||void 0,PA=ql&&(!Qa||["ReactNative","NativeScript","NS"].indexOf(Qa.product)<0),IA=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",LA=ql&&window.location.href||"http://localhost",DA=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:ql,hasStandardBrowserEnv:PA,hasStandardBrowserWebWorkerEnv:IA,navigator:Qa,origin:LA},Symbol.toStringTag,{value:"Module"})),de={...DA,...MA};function NA(t,e){return wo(t,new de.classes.URLSearchParams,{visitor:function(n,i,s,r){return de.isNode&&R.isBuffer(n)?(this.append(i,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...e})}const Hh=Op;function Mp(t){if(t>Hh)throw new Q("FormData field is too deeply nested ("+t+" levels). Max depth: "+Hh,Q.ERR_FORM_DATA_DEPTH_EXCEEDED)}function $A(t){const e=[],n=/\w+|\[(\w*)]/g;let i;for(;(i=n.exec(t))!==null;)Mp(e.length),e.push(i[0]==="[]"?"":i[1]||i[0]);return e}function FA(t){const e={},n=Object.keys(t);let i;const s=n.length;let r;for(i=0;i=n.length;return o=!o&&R.isArray(s)?s.length:o,l?(R.hasOwnProp(s,o)?s[o]=R.isArray(s[o])?s[o].concat(i):[s[o],i]:s[o]=i,!a):((!R.hasOwnProp(s,o)||!R.isObject(s[o]))&&(s[o]=[]),e(n,i,s[o],r)&&R.isArray(s[o])&&(s[o]=FA(s[o])),!a)}if(R.isFormData(t)&&R.isFunction(t.entries)){const n={};return R.forEachEntry(t,(i,s)=>{e($A(i),s,n,0)}),n}return null}const Ci=(t,e)=>t!=null&&R.hasOwnProp(t,e)?t[e]:void 0;function BA(t,e,n){if(R.isString(t))try{return(e||JSON.parse)(t),R.trim(t)}catch(i){if(i.name!=="SyntaxError")throw i}return(n||JSON.stringify)(t)}const Js={transitional:Wl,adapter:["xhr","http","fetch"],transformRequest:[function(t,e){const n=e.getContentType()||"",i=n.indexOf("application/json")>-1,s=R.isObject(t);if(s&&R.isHTMLForm(t)&&(t=new FormData(t)),R.isFormData(t))return i?JSON.stringify(Pp(t)):t;if(R.isArrayBuffer(t)||R.isBuffer(t)||R.isStream(t)||R.isFile(t)||R.isBlob(t)||R.isReadableStream(t))return t;if(R.isArrayBufferView(t))return t.buffer;if(R.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let r;if(s){const o=Ci(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return NA(t,o).toString();if((r=R.isFileList(t))||n.indexOf("multipart/form-data")>-1){const a=Ci(this,"env"),l=a&&a.FormData;return wo(r?{"files[]":t}:t,l&&new l,o)}}return s||i?(e.setContentType("application/json",!1),BA(t)):t}],transformResponse:[function(t){const e=Ci(this,"transitional")||Js.transitional,n=e&&e.forcedJSONParsing,i=Ci(this,"responseType"),s=i==="json";if(R.isResponse(t)||R.isReadableStream(t))return t;if(t&&R.isString(t)&&(n&&!i||s)){const r=!(e&&e.silentJSONParsing)&&s;try{return JSON.parse(t,Ci(this,"parseReviver"))}catch(o){if(r)throw o.name==="SyntaxError"?Q.from(o,Q.ERR_BAD_RESPONSE,this,null,Ci(this,"response")):o}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:de.classes.FormData,Blob:de.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};R.forEach(["delete","get","head","post","put","patch","query"],t=>{Js.headers[t]={}});function wa(t,e){const n=this||Js,i=e||n,s=Se.from(i.headers);let r=i.data;return R.forEach(t,function(o){r=o.call(n,r,s.normalize(),e?e.status:void 0)}),s.normalize(),r}function Ip(t){return!!(t&&t.__CANCEL__)}let Zs=class extends Q{constructor(t,e,n){super(t??"canceled",Q.ERR_CANCELED,e,n),this.name="CanceledError",this.__CANCEL__=!0}};function Lp(t,e,n){const i=n.config.validateStatus;!n.status||!i||i(n.status)?t(n):e(new Q("Request failed with status code "+n.status,n.status>=400&&n.status<500?Q.ERR_BAD_REQUEST:Q.ERR_BAD_RESPONSE,n.config,n.request,n))}function UA(t){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(t);return e&&e[1]||""}function jA(t,e){t=t||10;const n=new Array(t),i=new Array(t);let s=0,r=0,o;return e=e!==void 0?e:1e3,function(a){const l=Date.now(),u=i[r];o||(o=l),n[s]=a,i[s]=l;let c=r,f=0;for(;c!==s;)f+=n[c++],c=c%t;if(s=(s+1)%t,s===r&&(r=(r+1)%t),l-o{n=l,s=null,r&&(clearTimeout(r),r=null),t(...a)};return[(...a)=>{const l=Date.now(),u=l-n;u>=i?o(a,l):(s=a,r||(r=setTimeout(()=>{r=null,o(s)},i-u)))},()=>s&&o(s)]}const Qr=(t,e,n=3)=>{let i=0;const s=jA(50,250);return HA(r=>{if(!r||typeof r.loaded!="number")return;const o=r.loaded,a=r.lengthComputable?r.total:void 0,l=a!=null?Math.min(o,a):o,u=Math.max(0,l-i),c=s(u);i=Math.max(i,l);const f={loaded:l,total:a,progress:a?l/a:void 0,bytes:u,rate:c||void 0,estimated:c&&a?(a-l)/c:void 0,event:r,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(f)},n)},Vh=(t,e)=>{const n=t!=null;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},zh=t=>(...e)=>R.asap(()=>t(...e)),VA=de.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,de.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(de.origin),de.navigator&&/(msie|trident)/i.test(de.navigator.userAgent)):()=>!0,zA=de.hasStandardBrowserEnv?{write(t,e,n,i,s,r,o){if(typeof document>"u")return;const a=[`${t}=${encodeURIComponent(e)}`];R.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),R.isString(i)&&a.push(`path=${i}`),R.isString(s)&&a.push(`domain=${s}`),r===!0&&a.push("secure"),R.isString(o)&&a.push(`SameSite=${o}`),document.cookie=a.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let n=0;nt instanceof Se?{...t}:t;function _i(t,e){t=t||{},e=e||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function i(c,f,p,m){return R.isPlainObject(c)&&R.isPlainObject(f)?R.merge.call({caseless:m},c,f):R.isPlainObject(f)?R.merge({},f):R.isArray(f)?f.slice():f}function s(c,f,p,m){if(R.isUndefined(f)){if(!R.isUndefined(c))return i(void 0,c,p,m)}else return i(c,f,p,m)}function r(c,f){if(!R.isUndefined(f))return i(void 0,f)}function o(c,f){if(R.isUndefined(f)){if(!R.isUndefined(c))return i(void 0,c)}else return i(void 0,f)}function a(c){const f=R.hasOwnProp(e,"transitional")?e.transitional:void 0;if(!R.isUndefined(f))if(R.isPlainObject(f)){if(R.hasOwnProp(f,c))return f[c]}else return;const p=R.hasOwnProp(t,"transitional")?t.transitional:void 0;if(R.isPlainObject(p)&&R.hasOwnProp(p,c))return p[c]}function l(c,f,p){if(R.hasOwnProp(e,p))return i(c,f);if(R.hasOwnProp(t,p))return i(void 0,c)}const u={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,allowedSocketPaths:o,responseEncoding:o,validateStatus:l,headers:(c,f,p)=>s(qh(c),qh(f),p,!0)};return R.forEach(Object.keys({...t,...e}),function(c){if(c==="__proto__"||c==="constructor"||c==="prototype")return;const f=R.hasOwnProp(u,c)?u[c]:s,p=R.hasOwnProp(t,c)?t[c]:void 0,m=R.hasOwnProp(e,c)?e[c]:void 0,x=f(p,m,c);R.isUndefined(x)&&f!==l||(n[c]=x)}),R.hasOwnProp(e,"validateStatus")&&R.isUndefined(e.validateStatus)&&a("validateStatusUndefinedResolves")===!1&&(R.hasOwnProp(t,"validateStatus")?n.validateStatus=i(void 0,t.validateStatus):delete n.validateStatus),n}const JA=["content-type","content-length"];function ZA(t,e,n){if(n!=="content-only"){t.set(e);return}Object.entries(e||{}).forEach(([i,s])=>{JA.includes(i.toLowerCase())&&t.set(i,s)})}const QA=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16)));function Np(t){const e=_i({},t),n=p=>R.hasOwnProp(e,p)?e[p]:void 0,i=n("data");let s=n("withXSRFToken");const r=n("xsrfHeaderName"),o=n("xsrfCookieName");let a=n("headers");const l=n("auth"),u=n("baseURL"),c=n("allowAbsoluteUrls"),f=n("url");if(e.headers=a=Se.from(a),e.url=Cp(Dp(u,f,c,e),n("params"),n("paramsSerializer")),l){const p=R.getSafeProp(l,"username")||"",m=R.getSafeProp(l,"password")||"";try{a.set("Authorization","Basic "+btoa(p+":"+(m?QA(m):"")))}catch(x){throw Q.from(x,Q.ERR_BAD_OPTION_VALUE,t)}}if(R.isFormData(i)&&(de.hasStandardBrowserEnv||de.hasStandardBrowserWebWorkerEnv||R.isReactNative(i)?a.setContentType(void 0):R.isFunction(i.getHeaders)&&ZA(a,i.getHeaders(),n("formDataHeaderPolicy"))),de.hasStandardBrowserEnv&&(R.isFunction(s)&&(s=s(e)),s===!0||s==null&&VA(e.url))){const p=r&&o&&zA.read(o);p&&a.set(r,p)}return e}const tT=typeof XMLHttpRequest<"u",eT=tT&&function(t){return new Promise(function(e,n){const i=Np(t);let s=i.data;const r=Se.from(i.headers).normalize();let{responseType:o,onUploadProgress:a,onDownloadProgress:l}=i,u,c,f,p,m;function x(){p&&p(),m&&m(),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 E(){if(!_)return;const O=Se.from("getAllResponseHeaders"in _&&_.getAllResponseHeaders()),M={data:!o||o==="text"||o==="json"?_.responseText:_.response,status:_.status,statusText:_.statusText,headers:O,config:t,request:_};Lp(function(T){e(T),x()},function(T){n(T),x()},M),_=null}"onloadend"in _?_.onloadend=E:_.onreadystatechange=function(){!_||_.readyState!==4||_.status===0&&!(_.responseURL&&_.responseURL.startsWith("file:"))||setTimeout(E)},_.onabort=function(){_&&(n(new Q("Request aborted",Q.ECONNABORTED,t,_)),x(),_=null)},_.onerror=function(O){const M=O&&O.message?O.message:"Network Error",T=new Q(M,Q.ERR_NETWORK,t,_);T.event=O||null,n(T),x(),_=null},_.ontimeout=function(){let O=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const M=i.transitional||Wl;i.timeoutErrorMessage&&(O=i.timeoutErrorMessage),n(new Q(O,M.clarifyTimeoutError?Q.ETIMEDOUT:Q.ECONNABORTED,t,_)),x(),_=null},s===void 0&&r.setContentType(null),"setRequestHeader"in _&&R.forEach(Tp(r),function(O,M){_.setRequestHeader(M,O)}),R.isUndefined(i.withCredentials)||(_.withCredentials=!!i.withCredentials),o&&o!=="json"&&(_.responseType=i.responseType),l&&([f,m]=Qr(l,!0),_.addEventListener("progress",f)),a&&_.upload&&([c,p]=Qr(a),_.upload.addEventListener("progress",c),_.upload.addEventListener("loadend",p)),(i.cancelToken||i.signal)&&(u=O=>{_&&(n(!O||O.type?new Zs(null,t,_):O),_.abort(),x(),_=null)},i.cancelToken&&i.cancelToken.subscribe(u),i.signal&&(i.signal.aborted?u():i.signal.addEventListener("abort",u)));const b=UA(i.url);if(b&&!de.protocols.includes(b)){n(new Q("Unsupported protocol "+b+":",Q.ERR_BAD_REQUEST,t)),x();return}_.send(s||null)})},nT=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;const n=new AbortController;let i=!1;const s=function(l){if(!i){i=!0,o();const u=l instanceof Error?l:this.reason;n.abort(u instanceof Q?u:new Zs(u instanceof Error?u.message:u))}};let r=e&&setTimeout(()=>{r=null,s(new Q(`timeout of ${e}ms exceeded`,Q.ETIMEDOUT))},e);const o=()=>{t&&(r&&clearTimeout(r),r=null,t.forEach(l=>{l.unsubscribe?l.unsubscribe(s):l.removeEventListener("abort",s)}),t=null)};t.forEach(l=>l.addEventListener("abort",s,{once:!0}));const{signal:a}=n;return a.unsubscribe=()=>R.asap(o),a},iT=function*(t,e){let n=t.byteLength;if(n{const s=sT(t,e);let r=0,o,a=l=>{o||(o=!0,i&&i(l))};return new ReadableStream({async pull(l){try{const{done:u,value:c}=await s.next();if(u){a(),l.close();return}let f=c.byteLength;if(n){let p=r+=f;n(p)}l.enqueue(new Uint8Array(c))}catch(u){throw a(u),u}},cancel(l){return a(l),s.return()}},{highWaterMark:2})},to=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,oT=(t,e,n)=>e+2f>=2&&i.charCodeAt(f-2)===37&&i.charCodeAt(f-1)===51&&(i.charCodeAt(f)===68||i.charCodeAt(f)===100);l>=0&&(i.charCodeAt(l)===61?(a++,l--):u(l)&&(a++,l-=3)),a===1&&l>=0&&(i.charCodeAt(l)===61||u(l))&&a++;const c=Math.floor(r/4)*3-(a||0);return c>0?c:0}let s=0;for(let r=0,o=i.length;r=55296&&a<=56319&&r+1=56320&&l<=57343?(s+=4,r++):s+=3}else s+=3}return s}const Yl="1.18.1",Gh=64*1024,{isFunction:Sr}=R,lT=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16))),Kh=t=>{if(!R.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},Xh=(t,...e)=>{try{return!!t(...e)}catch{return!1}},cT=t=>{const e=t.indexOf("://");let n=t;return e!==-1&&(n=n.slice(e+3)),n.includes("@")||n.includes(":")},uT=t=>{const e=R.global!==void 0&&R.global!==null?R.global:globalThis,{ReadableStream:n,TextEncoder:i}=e;t=R.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},t);const{fetch:s,Request:r,Response:o}=t,a=s?Sr(s):typeof fetch=="function",l=Sr(r),u=Sr(o);if(!a)return!1;const c=a&&Sr(n),f=a&&(typeof i=="function"?(b=>O=>b.encode(O))(new i):async b=>new Uint8Array(await new r(b).arrayBuffer())),p=l&&c&&Xh(()=>{let b=!1;const O=new r(de.origin,{body:new n,method:"POST",get duplex(){return b=!0,"half"}}),M=O.headers.has("Content-Type");return O.body!=null&&O.body.cancel(),b&&!M}),m=u&&c&&Xh(()=>R.isReadableStream(new o("").body)),x={stream:m&&(b=>b.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(b=>{!x[b]&&(x[b]=(O,M)=>{let T=O&&O[b];if(T)return T.call(O);throw new Q(`Response type '${b}' is not supported`,Q.ERR_NOT_SUPPORT,M)})});const _=async b=>{if(b==null)return 0;if(R.isBlob(b))return b.size;if(R.isSpecCompliantForm(b))return(await new r(de.origin,{method:"POST",body:b}).arrayBuffer()).byteLength;if(R.isArrayBufferView(b)||R.isArrayBuffer(b))return b.byteLength;if(R.isURLSearchParams(b)&&(b=b+""),R.isString(b))return(await f(b)).byteLength},E=async(b,O)=>R.toFiniteNumber(b.getContentLength())??_(O);return async b=>{let{url:O,method:M,data:T,signal:L,cancelToken:tt,timeout:K,onDownloadProgress:X,onUploadProgress:dt,responseType:ot,headers:mt,withCredentials:wt="same-origin",fetchOptions:Vt,maxContentLength:It,maxBodyLength:nt}=Np(b);const st=R.isNumber(It)&&It>-1,lt=R.isNumber(nt)&&nt>-1,$t=ft=>R.hasOwnProp(b,ft)?b[ft]:void 0;let zt=s||fetch;ot=ot?(ot+"").toLowerCase():"text";let Yt=nT([L,tt&&tt.toAbortSignal()],K),Tt=null;const ct=Yt&&Yt.unsubscribe&&(()=>{Yt.unsubscribe()});let ae,bt=null;const Ut=()=>new Q("Request body larger than maxBodyLength limit",Q.ERR_BAD_REQUEST,b,Tt);try{let ft;const Qt=$t("auth");if(Qt){const C=R.getSafeProp(Qt,"username")||"",V=R.getSafeProp(Qt,"password")||"";ft={username:C,password:V}}if(cT(O)){const C=new URL(O,de.origin);if(!ft&&(C.username||C.password)){const V=Kh(C.username),W=Kh(C.password);ft={username:V,password:W}}(C.username||C.password)&&(C.username="",C.password="",O=C.href)}if(ft&&(mt.delete("authorization"),mt.set("Authorization","Basic "+btoa(lT((ft.username||"")+":"+(ft.password||""))))),st&&typeof O=="string"&&O.startsWith("data:")&&aT(O)>It)throw new Q("maxContentLength size of "+It+" exceeded",Q.ERR_BAD_RESPONSE,b,Tt);if(lt&&M!=="get"&&M!=="head"){const C=await _(T);if(typeof C=="number"&&isFinite(C)&&(ae=C,C>nt))throw Ut()}const Ne=lt&&(R.isReadableStream(T)||R.isStream(T)),qe=(C,V,W)=>Yh(C,Gh,H=>{if(lt&&H>nt)throw bt=Ut();V&&V(H)},W);if(p&&M!=="get"&&M!=="head"&&(dt||Ne)){if(ae=ae??await E(mt,T),ae!==0||Ne){let C=new r(O,{method:"POST",body:T,duplex:"half"}),V;if(R.isFormData(T)&&(V=C.headers.get("content-type"))&&mt.setContentType(V),C.body){const[W,H]=dt&&Vh(ae,Qr(zh(dt)))||[];T=qe(C.body,W,H)}}}else if(Ne&&!l&&c&&M!=="get"&&M!=="head")T=qe(T);else if(Ne&&l&&!p&&M!=="get"&&M!=="head")throw new Q("Stream request bodies are not supported by the current fetch implementation",Q.ERR_NOT_SUPPORT,b,Tt);R.isString(wt)||(wt=wt?"include":"omit");const Ye=l&&"credentials"in r.prototype;if(R.isFormData(T)){const C=mt.getContentType();C&&/^multipart\/form-data/i.test(C)&&!/boundary=/i.test(C)&&mt.delete("content-type")}mt.set("User-Agent","axios/"+Yl,!1);const w={...Vt,signal:Yt,method:M.toUpperCase(),headers:Tp(mt.normalize()),body:T,duplex:"half",credentials:Ye?wt:void 0};Tt=l&&new r(O,w);let S=await(l?zt(Tt,Vt):zt(O,w));const D=Se.from(S.headers);if(st){const C=R.toFiniteNumber(D.getContentLength());if(C!=null&&C>It)throw new Q("maxContentLength size of "+It+" exceeded",Q.ERR_BAD_RESPONSE,b,Tt)}const $=m&&(ot==="stream"||ot==="response");if(m&&S.body&&(X||st||$&&ct)){const C={};["status","statusText","headers"].forEach(J=>{C[J]=S[J]});const V=R.toFiniteNumber(D.getContentLength()),[W,H]=X&&Vh(V,Qr(zh(X),!0))||[];let j=0;const et=J=>{if(st&&(j=J,j>It))throw new Q("maxContentLength size of "+It+" exceeded",Q.ERR_BAD_RESPONSE,b,Tt);W&&W(J)};S=new o(Yh(S.body,Gh,et,()=>{H&&H(),ct&&ct()}),C)}ot=ot||"text";let B=await x[R.findKey(x,ot)||"text"](S,b);if(st&&!m&&!$){let C;if(B!=null&&(typeof B.byteLength=="number"?C=B.byteLength:typeof B.size=="number"?C=B.size:typeof B=="string"&&(C=typeof i=="function"?new i().encode(B).byteLength:B.length)),typeof C=="number"&&C>It)throw new Q("maxContentLength size of "+It+" exceeded",Q.ERR_BAD_RESPONSE,b,Tt)}return!$&&ct&&ct(),await new Promise((C,V)=>{Lp(C,V,{data:B,headers:Se.from(S.headers),status:S.status,statusText:S.statusText,config:b,request:Tt})})}catch(ft){if(ct&&ct(),Yt&&Yt.aborted&&Yt.reason instanceof Q){const Qt=Yt.reason;throw Qt.config=b,Tt&&(Qt.request=Tt),ft!==Qt&&Object.defineProperty(Qt,"cause",{__proto__:null,value:ft,writable:!0,enumerable:!1,configurable:!0}),Qt}if(bt)throw Tt&&!bt.request&&(bt.request=Tt),bt;if(ft instanceof Q)throw Tt&&!ft.request&&(ft.request=Tt),ft;if(ft&&ft.name==="TypeError"&&/Load failed|fetch/i.test(ft.message)){const Qt=new Q("Network Error",Q.ERR_NETWORK,b,Tt,ft&&ft.response);throw Object.defineProperty(Qt,"cause",{__proto__:null,value:ft.cause||ft,writable:!0,enumerable:!1,configurable:!0}),Qt}throw Q.from(ft,ft&&ft.code,b,Tt,ft&&ft.response)}}},hT=new Map,$p=t=>{let e=t&&t.env||{};const{fetch:n,Request:i,Response:s}=e,r=[i,s,n];let o=r.length,a=o,l,u,c=hT;for(;a--;)l=r[a],u=c.get(l),u===void 0&&c.set(l,u=a?new Map:uT(e)),c=u;return u};$p();const Gl={http:EA,xhr:eT,fetch:{get:$p}};R.forEach(Gl,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});const Jh=t=>`- ${t}`,fT=t=>R.isFunction(t)||t===null||t===!1;function dT(t,e){t=R.isArray(t)?t:[t];const{length:n}=t;let i,s;const r={};for(let o=0;o`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=n?o.length>1?`since : -`+o.map(Jh).join(` -`):" "+Jh(o[0]):"as no adapter specified";throw new Q("There is no suitable adapter to dispatch the request "+a,Q.ERR_NOT_SUPPORT)}return s}const Fp={getAdapter:dT,adapters:Gl};function Sa(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Zs(null,t)}function Zh(t){return Sa(t),t.headers=Se.from(t.headers),t.data=wa.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Fp.getAdapter(t.adapter||Js.adapter,t)(t).then(function(e){Sa(t),t.response=e;try{e.data=wa.call(t,t.transformResponse,e)}finally{delete t.response}return e.headers=Se.from(e.headers),e},function(e){if(!Ip(e)&&(Sa(t),e&&e.response)){t.response=e.response;try{e.response.data=wa.call(t,t.transformResponse,e.response)}finally{delete t.response}e.response.headers=Se.from(e.response.headers)}return Promise.reject(e)})}const eo={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{eo[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const Qh={};eo.transitional=function(t,e,n){function i(s,r){return"[Axios v"+Yl+"] Transitional option '"+s+"'"+r+(n?". "+n:"")}return(s,r,o)=>{if(t===!1)throw new Q(i(r," has been removed"+(e?" in "+e:"")),Q.ERR_DEPRECATED);return e&&!Qh[r]&&(Qh[r]=!0,console.warn(i(r," has been deprecated since v"+e+" and will be removed in the near future"))),t?t(s,r,o):!0}},eo.spelling=function(t){return(e,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function pT(t,e,n){if(typeof t!="object"||t===null)throw new Q("options must be an object",Q.ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let s=i.length;for(;s-- >0;){const r=i[s],o=Object.prototype.hasOwnProperty.call(e,r)?e[r]:void 0;if(o){const a=t[r],l=a===void 0||o(a,r,t);if(l!==!0)throw new Q("option "+r+" must be "+l,Q.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Q("Unknown option "+r,Q.ERR_BAD_OPTION)}}const Lr={assertOptions:pT,validators:eo},ye=Lr.validators;let di=class{constructor(t){this.defaults=t||{},this.interceptors={request:new jh,response:new jh}}async request(t,e){try{return await this._request(t,e)}catch(n){if(n instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const s=(()=>{if(!i.stack)return"";const r=i.stack.indexOf(` -`);return r===-1?"":i.stack.slice(r+1)})();try{if(!n.stack)n.stack=s;else if(s){const r=s.indexOf(` -`),o=r===-1?-1:s.indexOf(` -`,r+1),a=o===-1?"":s.slice(o+1);String(n.stack).endsWith(a)||(n.stack+=` -`+s)}}catch{}}throw n}}_request(t,e){typeof t=="string"?(e=e||{},e.url=t):e=t||{},e=_i(this.defaults,e);const{transitional:n,paramsSerializer:i,headers:s}=e;n!==void 0&&Lr.assertOptions(n,{silentJSONParsing:ye.transitional(ye.boolean),forcedJSONParsing:ye.transitional(ye.boolean),clarifyTimeoutError:ye.transitional(ye.boolean),legacyInterceptorReqResOrdering:ye.transitional(ye.boolean),advertiseZstdAcceptEncoding:ye.transitional(ye.boolean),validateStatusUndefinedResolves:ye.transitional(ye.boolean)},!1),i!=null&&(R.isFunction(i)?e.paramsSerializer={serialize:i}:Lr.assertOptions(i,{encode:ye.function,serialize:ye.function},!0)),e.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?e.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:e.allowAbsoluteUrls=!0),Lr.assertOptions(e,{baseUrl:ye.spelling("baseURL"),withXsrfToken:ye.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();let r=s&&R.merge(s.common,s[e.method]);s&&R.forEach(["delete","get","head","post","put","patch","query","common"],m=>{delete s[m]}),e.headers=Se.concat(r,s);const o=[];let a=!0;this.interceptors.request.forEach(function(m){if(typeof m.runWhen=="function"&&m.runWhen(e)===!1)return;a=a&&m.synchronous;const x=e.transitional||Wl;x&&x.legacyInterceptorReqResOrdering?o.unshift(m.fulfilled,m.rejected):o.push(m.fulfilled,m.rejected)});const l=[];this.interceptors.response.forEach(function(m){l.push(m.fulfilled,m.rejected)});let u,c=0,f;if(!a){const m=[Zh.bind(this),void 0];for(m.unshift(...o),m.push(...l),f=m.length,u=Promise.resolve(e);c{if(!i._listeners)return;let r=i._listeners.length;for(;r-- >0;)i._listeners[r](s);i._listeners=null}),this.promise.then=s=>{let r;const o=new Promise(a=>{i.subscribe(a),r=a}).then(s);return o.cancel=function(){i.unsubscribe(r)},o},e(function(s,r,o){i.reason||(i.reason=new Zs(s,r,o),n(i.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=i=>{e.abort(i)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new Bp(function(n){e=n}),cancel:e}}};function mT(t){return function(e){return t.apply(null,e)}}function _T(t){return R.isObject(t)&&t.isAxiosError===!0}const tl={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,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(tl).forEach(([t,e])=>{tl[e]=t});function Up(t){const e=new di(t),n=gp(di.prototype.request,e);return R.extend(n,di.prototype,e,{allOwnKeys:!0}),R.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return Up(_i(t,i))},n}const Jt=Up(Js);Jt.Axios=di,Jt.CanceledError=Zs,Jt.CancelToken=gT,Jt.isCancel=Ip,Jt.VERSION=Yl,Jt.toFormData=wo,Jt.AxiosError=Q,Jt.Cancel=Jt.CanceledError,Jt.all=function(t){return Promise.all(t)},Jt.spread=mT,Jt.isAxiosError=_T,Jt.mergeConfig=_i,Jt.AxiosHeaders=Se,Jt.formToJSON=t=>Pp(R.isHTMLForm(t)?new FormData(t):t),Jt.getAdapter=Fp.getAdapter,Jt.HttpStatusCode=tl,Jt.default=Jt;const{Axios:eR,AxiosError:nR,CanceledError:iR,isCancel:sR,CancelToken:rR,VERSION:oR,all:aR,Cancel:lR,isAxiosError:Kl,spread:cR,toFormData:uR,AxiosHeaders:hR,HttpStatusCode:fR,formToJSON:dR,getAdapter:pR,mergeConfig:gR,create:mR}=Jt;function yT(){const t=Jt.create({headers:{requesttoken:lE()??"","X-Requested-With":"XMLHttpRequest"}});return uE(e=>{t.defaults.headers.requesttoken=e}),Object.assign(t,{CancelToken:Jt.CancelToken,isCancel:Jt.isCancel})}const tf="_nextcloudCsrfTokenReloaded";function bT(t){return async e=>{if(!Kl(e))throw e;const{config:n,response:i,request:s}=e,r=s?.responseURL;if(n&&!(tf in n)&&i?.status===412&&i?.data?.message==="CSRF check failed"){console.warn(`Request to ${r} failed because of a CSRF mismatch. Fetching a new token.`);const o=await cE();return t.defaults.headers.requesttoken=o,t({...n,[tf]:!0,headers:{...n.headers,requesttoken:o}})}throw e}}const ef="_nextcloudMaintenanceModeRetryDelay";function vT(t){return async e=>{if(!Kl(e))throw e;const{config:n,response:i,request:s}=e,r=s?.responseURL,o=i?.status,a=i?.headers;let l=n?.[ef]??1;if(o===503&&a?.["x-nextcloud-maintenance-mode"]==="1"&&n?.retryIfMaintenanceMode){if(l*=2,l>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:r}),e;return console.warn(`Request to ${r} failed because of maintenance mode. Retrying in ${l}s`),await new Promise(u=>{setTimeout(u,l*1e3)}),t({...n,[ef]:l})}throw e}}async function xT(t){if(Kl(t)){const{config:e,response:n,request:i}=t,s=i?.responseURL;n?.status===401&&n?.data?.message==="Current user is not logged in"&&e?.reloadExpiredSession&&globalThis.location?.reload&&(console.error(`Request to ${s} failed because the user session expired. Reloading the page …`),globalThis.OC?.reload?globalThis.OC.reload():globalThis.location.reload())}throw t}const oi=yT();oi.interceptors.response.use(t=>t,bT(oi)),oi.interceptors.response.use(t=>t,vT(oi)),oi.interceptors.response.use(t=>t,xT);function wT(){const t=yn(null),e=yn(0);let n=null,i=!1;async function s(){try{const r=await oi.get(yl("/apps/serverinfo/update"));t.value=r.data,e.value++}catch{}finally{i||(n=setTimeout(s,2e3))}}return n=setTimeout(s,0),Ws(()=>{i=!0,n!==null&&(clearTimeout(n),n=null)}),{data:t,tick:e}}function ST(){const t=yn(null),e=yn(!0),n=yn(!1);async function i(){try{const s=await oi.get(yl("/apps/serverinfo/data"));t.value=s.data}catch{n.value=!0}finally{e.value=!1}}return i(),{data:t,loading:e,error:n}}const ET={class:"server-info-wrapper"},AT={class:"section server-infos-two"},TT={class:"row"},RT={class:"col col-6 col-l-12"},OT={key:0,class:"col col-6 col-l-12"},kT={class:"section server-infos-two"},CT={class:"row"},MT={class:"col col-6 col-l-12"},PT={class:"col col-6 col-l-12"},IT={class:"section php-database"},LT={class:"row"},DT={class:"col col-6 col-m-12"},NT={class:"col col-6 col-m-12"},$T={class:"col col-12"},FT={class:"section server-infos-two"},BT={class:"row"},UT={class:"col col-6 col-l-12"},jT={class:"col col-6 col-l-12"},HT={class:"section server-infos-two"},VT={class:"row"},zT={class:"col col-6 col-l-12"},WT={class:"col col-6 col-l-12"},qT={class:"section php-database"},YT={class:"row"},GT={class:"col col-6 col-m-12"},KT={class:"col col-6 col-m-12"},XT={class:"col col-12"},JT=Ae({name:"ServerInfo",__name:"SettingsAdmin",setup(t){const{data:e}=ST(),{data:n,tick:i}=wT();return(s,r)=>(z(),G("div",ET,[F(e)?(z(),G(Mt,{key:0},[v("div",AT,[v("div",TT,[v("div",RT,[pt(MS,{hostname:F(e).hostname,osname:F(e).osname,cpu:F(e).cpu,memTotal:F(e).memTotal,servertime:F(n)?.servertime??"",uptime:F(n)?.uptime??""},null,8,["hostname","osname","cpu","memTotal","servertime","uptime"])]),!F(n)||F(n).thermalzones.length>0?(z(),G("div",OT,[F(n)?(z(),Xe(HS,{key:1,thermalzones:F(n).thermalzones},null,8,["thermalzones"])):(z(),Xe(Ve,{key:0}))])):Ot("",!0)])]),v("div",kT,[v("div",CT,[v("div",MT,[F(n)?(z(),Xe(hx,{key:0,cpuload:F(n).cpu.load,cpunum:F(e).cpu.threads,tick:F(i)},null,8,["cpuload","cpunum","tick"])):(z(),Xe(Ve,{key:1}))]),v("div",PT,[F(n)?(z(),Xe(c2,{key:0,memTotal:F(n).memory.total,memFree:F(n).memory.free,swapTotal:F(n).memory.swap_total,swapFree:F(n).memory.swap_free,tick:F(i)},null,8,["memTotal","memFree","swapTotal","swapFree","tick"])):(z(),Xe(Ve,{key:1}))])])]),pt(Zx,{disks:F(e).diskinfo,freespace:F(e).freeSpace,storage:F(e).storage},null,8,["disks","freespace","storage"]),pt(Q2,{networkinfo:F(e).networkinfo,interfaces:F(e).networkinterfaces},null,8,["networkinfo","interfaces"]),pt(k0,{activeUsers:F(e).activeUsers,numUsers:F(e).storage.num_users},null,8,["activeUsers","numUsers"]),F(e).shares.num_shares>0?(z(),Xe(mS,{key:0,shares:F(e).shares},null,8,["shares"])):Ot("",!0),v("div",IT,[v("div",LT,[v("div",DT,[pt(zw,{php:F(e).php,fpm:F(e).fpm,phpinfo:F(e).phpinfo,phpinfoUrl:F(e).phpinfoUrl},null,8,["php","fpm","phpinfo","phpinfoUrl"])]),v("div",NT,[pt(Sx,{database:F(e).database},null,8,["database"])]),v("div",$T,[pt(lw,{extensions:F(e).php.extensions},null,8,["extensions"])])])]),pt(R2,{ocs:F(e).ocs},null,8,["ocs"])],64)):(z(),G(Mt,{key:1},[v("div",FT,[v("div",BT,[v("div",UT,[pt(Ve)]),v("div",jT,[pt(Ve)])])]),v("div",HT,[v("div",VT,[v("div",zT,[pt(Ve)]),v("div",WT,[pt(Ve)])])]),pt(Ve),pt(Ve),v("div",qT,[v("div",YT,[v("div",GT,[pt(Ve)]),v("div",KT,[pt(Ve)]),v("div",XT,[pt(Ve)])])])],64))]))}});b1(JT).mount("#serverinfo-settings"); +`):t}function ux(t,e){const{element:i,datasetIndex:o,index:r}=e,s=t.getDatasetMeta(o).controller,{label:n,value:a}=s.getLabelAndValue(r);return{chart:t,label:n,parsed:s.getParsed(r),raw:t.data.datasets[o].data[r],formattedValue:a,dataset:s.getDataset(),dataIndex:r,datasetIndex:o,element:i}}function Ch(t,e){const i=t.chart.ctx,{body:o,footer:r,title:s}=t,{boxWidth:n,boxHeight:a}=e,l=wi(e.bodyFont),u=wi(e.titleFont),c=wi(e.footerFont),d=s.length,p=r.length,g=o.length,v=Yi(e.padding);let b=v.height,C=0,_=o.reduce((T,N)=>T+N.before.length+N.lines.length+N.after.length,0);if(_+=t.beforeBody.length+t.afterBody.length,d&&(b+=d*u.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),_){const T=e.displayColors?Math.max(a,l.lineHeight):l.lineHeight;b+=g*T+(_-g)*l.lineHeight+(_-1)*e.bodySpacing}p&&(b+=e.footerMarginTop+p*c.lineHeight+(p-1)*e.footerSpacing);let k=0;const I=function(T){C=Math.max(C,i.measureText(T).width+k)};return i.save(),i.font=u.string,jt(t.title,I),i.font=l.string,jt(t.beforeBody.concat(t.afterBody),I),k=e.displayColors?n+2+e.boxPadding:0,jt(o,T=>{jt(T.before,I),jt(T.lines,I),jt(T.after,I)}),k=0,i.font=c.string,jt(t.footer,I),i.restore(),C+=v.width,{width:C,height:b}}function hx(t,e){const{y:i,height:o}=e;return it.height-o/2?"bottom":"center"}function dx(t,e,i,o){const{x:r,width:s}=o,n=i.caretSize+i.caretPadding;if(t==="left"&&r+s+n>e.width||t==="right"&&r-s-n<0)return!0}function fx(t,e,i,o){const{x:r,width:s}=i,{width:n,chartArea:{left:a,right:l}}=t;let u="center";return o==="center"?u=r<=(a+l)/2?"left":"right":r<=s/2?u="left":r>=n-s/2&&(u="right"),dx(u,t,e,i)&&(u="center"),u}function Eh(t,e,i){const o=i.yAlign||e.yAlign||hx(t,i);return{xAlign:i.xAlign||e.xAlign||fx(t,e,i,o),yAlign:o}}function px(t,e){let{x:i,width:o}=t;return e==="right"?i-=o:e==="center"&&(i-=o/2),i}function mx(t,e,i){let{y:o,height:r}=t;return e==="top"?o+=i:e==="bottom"?o-=r+i:o-=r/2,o}function Th(t,e,i,o){const{caretSize:r,caretPadding:s,cornerRadius:n}=t,{xAlign:a,yAlign:l}=i,u=r+s,{topLeft:c,topRight:d,bottomLeft:p,bottomRight:g}=Ns(n);let v=px(e,a);const b=mx(e,l,u);return l==="center"?a==="left"?v+=u:a==="right"&&(v-=u):a==="left"?v-=Math.max(c,p)+r:a==="right"&&(v+=Math.max(d,g)+r),{x:$e(v,0,o.width-e.width),y:$e(b,0,o.height-e.height)}}function As(t,e,i){const o=Yi(i.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-o.right:t.x+o.left}function Oh(t){return pi([],Oi(t))}function gx(t,e,i){return So(t,{tooltip:e,tooltipItems:i,type:"tooltip"})}function kh(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const Tp={beforeTitle:Ci,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,o=i?i.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(o>0&&e.dataIndex"u"?Tp[e].call(i,o):r}class Ah extends Qo{static positioners=wr;constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const i=this.chart,o=this.options.setContext(this.getContext()),r=o.enabled&&i.options.animation&&o.animations,s=new cp(this.chart,r);return r._cacheable&&(this._cachedAnimations=Object.freeze(s)),s}getContext(){return this.$context||(this.$context=gx(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,i){const{callbacks:o}=i,r=Fe(o,"beforeTitle",this,e),s=Fe(o,"title",this,e),n=Fe(o,"afterTitle",this,e);let a=[];return a=pi(a,Oi(r)),a=pi(a,Oi(s)),a=pi(a,Oi(n)),a}getBeforeBody(e,i){return Oh(Fe(i.callbacks,"beforeBody",this,e))}getBody(e,i){const{callbacks:o}=i,r=[];return jt(e,s=>{const n={before:[],lines:[],after:[]},a=kh(o,s);pi(n.before,Oi(Fe(a,"beforeLabel",this,s))),pi(n.lines,Fe(a,"label",this,s)),pi(n.after,Oi(Fe(a,"afterLabel",this,s))),r.push(n)}),r}getAfterBody(e,i){return Oh(Fe(i.callbacks,"afterBody",this,e))}getFooter(e,i){const{callbacks:o}=i,r=Fe(o,"beforeFooter",this,e),s=Fe(o,"footer",this,e),n=Fe(o,"afterFooter",this,e);let a=[];return a=pi(a,Oi(r)),a=pi(a,Oi(s)),a=pi(a,Oi(n)),a}_createItems(e){const i=this._active,o=this.chart.data,r=[],s=[],n=[];let a=[],l,u;for(l=0,u=i.length;le.filter(c,d,p,o))),e.itemSort&&(a=a.sort((c,d)=>e.itemSort(c,d,o))),jt(a,c=>{const d=kh(e.callbacks,c);r.push(Fe(d,"labelColor",this,c)),s.push(Fe(d,"labelPointStyle",this,c)),n.push(Fe(d,"labelTextColor",this,c))}),this.labelColors=r,this.labelPointStyles=s,this.labelTextColors=n,this.dataPoints=a,a}update(e,i){const o=this.options.setContext(this.getContext()),r=this._active;let s,n=[];if(!r.length)this.opacity!==0&&(s={opacity:0});else{const a=wr[o.position].call(this,r,this._eventPosition);n=this._createItems(o),this.title=this.getTitle(n,o),this.beforeBody=this.getBeforeBody(n,o),this.body=this.getBody(n,o),this.afterBody=this.getAfterBody(n,o),this.footer=this.getFooter(n,o);const l=this._size=Ch(this,o),u=Object.assign({},a,l),c=Eh(this.chart,o,u),d=Th(o,u,c,this.chart);this.xAlign=c.xAlign,this.yAlign=c.yAlign,s={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=n,this.$context=void 0,s&&this._resolveAnimations().update(this,s),e&&o.external&&o.external.call(this,{chart:this.chart,tooltip:this,replay:i})}drawCaret(e,i,o,r){const s=this.getCaretPosition(e,o,r);i.lineTo(s.x1,s.y1),i.lineTo(s.x2,s.y2),i.lineTo(s.x3,s.y3)}getCaretPosition(e,i,o){const{xAlign:r,yAlign:s}=this,{caretSize:n,cornerRadius:a}=o,{topLeft:l,topRight:u,bottomLeft:c,bottomRight:d}=Ns(a),{x:p,y:g}=e,{width:v,height:b}=i;let C,_,k,I,T,N;return s==="center"?(T=g+b/2,r==="left"?(C=p,_=C-n,I=T+n,N=T-n):(C=p+v,_=C+n,I=T-n,N=T+n),k=C):(r==="left"?_=p+Math.max(l,c)+n:r==="right"?_=p+v-Math.max(u,d)-n:_=this.caretX,s==="top"?(I=g,T=I-n,C=_-n,k=_+n):(I=g+b,T=I+n,C=_+n,k=_-n),N=I),{x1:C,x2:_,x3:k,y1:I,y2:T,y3:N}}drawTitle(e,i,o){const r=this.title,s=r.length;let n,a,l;if(s){const u=ha(o.rtl,this.x,this.width);for(e.x=As(this,o.titleAlign,o),i.textAlign=u.textAlign(o.titleAlign),i.textBaseline="middle",n=wi(o.titleFont),a=o.titleSpacing,i.fillStyle=o.titleColor,i.font=n.string,l=0;lk!==0)?(e.beginPath(),e.fillStyle=s.multiKeyBackground,Bu(e,{x:b,y:v,w:u,h:l,radius:_}),e.fill(),e.stroke(),e.fillStyle=n.backgroundColor,e.beginPath(),Bu(e,{x:C,y:v+1,w:u-2,h:l-2,radius:_}),e.fill()):(e.fillStyle=s.multiKeyBackground,e.fillRect(b,v,u,l),e.strokeRect(b,v,u,l),e.fillStyle=n.backgroundColor,e.fillRect(C,v+1,u-2,l-2))}e.fillStyle=this.labelTextColors[o]}drawBody(e,i,o){const{body:r}=this,{bodySpacing:s,bodyAlign:n,displayColors:a,boxHeight:l,boxWidth:u,boxPadding:c}=o,d=wi(o.bodyFont);let p=d.lineHeight,g=0;const v=ha(o.rtl,this.x,this.width),b=function(Y){i.fillText(Y,v.x(e.x+g),e.y+p/2),e.y+=p+s},C=v.textAlign(n);let _,k,I,T,N,tt,X;for(i.textAlign=n,i.textBaseline="middle",i.font=d.string,e.x=As(this,C,o),i.fillStyle=o.bodyColor,jt(this.beforeBody,b),g=a&&C!=="right"?n==="center"?u/2+c:u+2+c:0,T=0,tt=r.length;T0&&i.stroke()}_updateAnimationTarget(e){const i=this.chart,o=this.$animations,r=o&&o.x,s=o&&o.y;if(r||s){const n=wr[e.position].call(this,this._active,this._eventPosition);if(!n)return;const a=this._size=Ch(this,e),l=Object.assign({},n,this._size),u=Eh(i,e,l),c=Th(e,l,u,i);(r._to!==c.x||s._to!==c.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=a.width,this.height=a.height,this.caretX=n.x,this.caretY=n.y,this._resolveAnimations().update(this,c))}}_willRender(){return!!this.opacity}draw(e){const i=this.options.setContext(this.getContext());let o=this.opacity;if(!o)return;this._updateAnimationTarget(i);const r={width:this.width,height:this.height},s={x:this.x,y:this.y};o=Math.abs(o)<.001?0:o;const n=Yi(i.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;i.enabled&&a&&(e.save(),e.globalAlpha=o,this.drawBackground(s,e,r,i),Xy(e,i.textDirection),s.y+=n.top,this.drawTitle(s,e,i),this.drawBody(s,e,i),this.drawFooter(s,e,i),Yy(e,i.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,i){const o=this._active,r=e.map(({datasetIndex:a,index:l})=>{const u=this.chart.getDatasetMeta(a);if(!u)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:u.data[l],index:l}}),s=!tn(o,r),n=this._positionChanged(r,i);(s||n)&&(this._active=r,this._eventPosition=i,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,i,o=!0){if(i&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const r=this.options,s=this._active||[],n=this._getActiveElements(e,s,i,o),a=this._positionChanged(n,e),l=i||!tn(n,s)||a;return l&&(this._active=n,(r.enabled||r.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,i))),l}_getActiveElements(e,i,o,r){const s=this.options;if(e.type==="mouseout")return[];if(!r)return i.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const n=this.chart.getElementsAtEventForMode(e,s.mode,s,o);return s.reverse&&n.reverse(),n}_positionChanged(e,i){const{caretX:o,caretY:r,options:s}=this,n=wr[s.position].call(this,e,i);return n!==!1&&(o!==n.x||r!==n.y)}}var Jl={id:"tooltip",_element:Ah,positioners:wr,afterInit(t,e,i){i&&(t.tooltip=new Ah({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Tp},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const bx=(t,e,i,o)=>(typeof e=="string"?(i=t.push(e)-1,o.unshift({index:i,label:e})):isNaN(e)&&(i=null),i);function yx(t,e,i,o){const r=t.indexOf(e);if(r===-1)return bx(t,e,i,o);const s=t.lastIndexOf(e);return r!==s?i:r}const _x=(t,e)=>t===null?null:$e(Math.round(t),0,e);function Rh(t){const e=this.getLabels();return t>=0&&ti.length-1?null:this.getPixelForValue(i[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}function vx(t,e){const i=[],{bounds:o,step:r,min:s,max:n,precision:a,count:l,maxTicks:u,maxDigits:c,includeBounds:d}=t,p=r||1,g=u-1,{min:v,max:b}=e,C=!qt(s),_=!qt(n),k=!qt(l),I=(b-v)/(c+1);let T=ku((b-v)/g/p)*p,N,tt,X,Y;if(T<1e-14&&!C&&!_)return[{value:v},{value:b}];Y=Math.ceil(b/T)-Math.floor(v/T),Y>g&&(T=ku(Y*T/g/p)*p),qt(a)||(N=Math.pow(10,a),T=Math.ceil(T*N)/N),o==="ticks"?(tt=Math.floor(v/T)*T,X=Math.ceil(b/T)*T):(tt=v,X=b),C&&_&&r&&Hb((n-s)/r,T/1e3)?(Y=Math.round(Math.min((n-s)/T,u)),T=(n-s)/Y,tt=s,X=n):k?(tt=C?s:tt,X=_?n:X,Y=l-1,T=(X-tt)/Y):(Y=(X-tt)/T,Rr(Y,Math.round(Y),T/1e3)?Y=Math.round(Y):Y=Math.ceil(Y));const mt=Math.max(Au(T),Au(tt));N=Math.pow(10,qt(a)?mt:a),tt=Math.round(tt*N)/N,X=Math.round(X*N)/N;let nt=0;for(C&&(d&&tt!==s?(i.push({value:s}),ttn)break;i.push({value:gt})}return _&&d&&X!==n?i.length&&Rr(i[i.length-1].value,n,Mh(n,I,t))?i[i.length-1].value=n:i.push({value:n}):(!_||X===n)&&i.push({value:X}),i}function Mh(t,e,{horizontal:i,minRotation:o}){const r=Pi(o),s=(i?Math.sin(r):Math.cos(r))||.001,n=.75*e*(""+t).length;return Math.min(e/s,n)}class xx extends tr{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,i){return qt(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:i,maxDefined:o}=this.getUserBounds();let{min:r,max:s}=this;const n=l=>r=i?r:l,a=l=>s=o?s:l;if(e){const l=qo(r),u=qo(s);l<0&&u<0?a(0):l>0&&u>0&&n(0)}if(r===s){let l=s===0?1:Math.abs(s*.05);a(s+l),e||n(r-l)}this.min=r,this.max=s}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:i,stepSize:o}=e,r;return o?(r=Math.ceil(this.max/o)-Math.floor(this.min/o)+1,r>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${o} would result generating up to ${r} ticks. Limiting to 1000.`),r=1e3)):(r=this.computeTickLimit(),i=i||11),i&&(r=Math.min(i,r)),r}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,i=e.ticks;let o=this.getTickLimit();o=Math.max(2,o);const r={maxTicks:o,bounds:e.bounds,min:e.min,max:e.max,precision:i.precision,step:i.stepSize,count:i.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:i.minRotation||0,includeBounds:i.includeBounds!==!1},s=this._range||this,n=vx(r,s);return e.bounds==="ticks"&&Ub(n,this,"value"),e.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}configure(){const e=this.ticks;let i=this.min,o=this.max;if(super.configure(),this.options.offset&&e.length){const r=(o-i)/Math.max(e.length-1,1)/2;i-=r,o+=r}this._startValue=i,this._endValue=o,this._valueRange=o-i}getLabelForValue(e){return Bl(e,this.chart.options.locale,this.options.ticks.format)}}class kp extends xx{static id="linear";static defaults={ticks:{callback:Qf.formatters.numeric}};determineDataLimits(){const{min:e,max:i}=this.getMinMax(!0);this.min=Me(e)?e:0,this.max=Me(i)?i:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),i=e?this.width:this.height,o=Pi(this.options.ticks.minRotation),r=(e?Math.sin(o):Math.cos(o))||.001,s=this._resolveTickFontOptions(0);return Math.ceil(i/Math.min(40,s.lineHeight/r))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}const Ln={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},je=Object.keys(Ln);function Ih(t,e){return t-e}function Ph(t,e){if(qt(e))return null;const i=t._adapter,{parser:o,round:r,isoWeekday:s}=t._parseOpts;let n=e;return typeof o=="function"&&(n=o(n)),Me(n)||(n=typeof o=="string"?i.parse(n,o):i.parse(n)),n===null?null:(r&&(n=r==="week"&&(Vr(s)||s===!0)?i.startOf(n,"isoWeek",s):i.startOf(n,r)),+n)}function Lh(t,e,i,o){const r=je.length;for(let s=je.indexOf(t);s=je.indexOf(i);s--){const n=je[s];if(Ln[n].common&&t._adapter.diff(r,o,n)>=e-1)return n}return je[i?je.indexOf(i):0]}function Sx(t){for(let e=je.indexOf(t)+1,i=je.length;e=e?i[o]:i[r];t[s]=!0}}function Cx(t,e,i,o){const r=t._adapter,s=+r.startOf(e[0].value,o),n=e[e.length-1].value;let a,l;for(a=s;a<=n;a=+r.add(a,1,o))l=i[a],l>=0&&(e[l].major=!0);return e}function Dh(t,e,i){const o=[],r={},s=e.length;let n,a;for(n=0;n+e.value))}initOffsets(e=[]){let i=0,o=0,r,s;this.options.offset&&e.length&&(r=this.getDecimalForValue(e[0]),e.length===1?i=1-r:i=(this.getDecimalForValue(e[1])-r)/2,s=this.getDecimalForValue(e[e.length-1]),e.length===1?o=s:o=(s-this.getDecimalForValue(e[e.length-2]))/2);const n=e.length<3?.5:.25;i=$e(i,0,n),o=$e(o,0,n),this._offsets={start:i,end:o,factor:1/(i+1+o)}}_generate(){const e=this._adapter,i=this.min,o=this.max,r=this.options,s=r.time,n=s.unit||Lh(s.minUnit,i,o,this._getLabelCapacity(i)),a=$t(r.ticks.stepSize,1),l=n==="week"?s.isoWeekday:!1,u=Vr(l)||l===!0,c={};let d=i,p,g;if(u&&(d=+e.startOf(d,"isoWeek",l)),d=+e.startOf(d,u?"day":n),e.diff(o,i,n)>1e5*a)throw new Error(i+" and "+o+" are too far apart with stepSize of "+a+" "+n);const v=r.ticks.source==="data"&&this.getDataTimestamps();for(p=d,g=0;p+b)}getLabelForValue(e){const i=this._adapter,o=this.options.time;return o.tooltipFormat?i.format(e,o.tooltipFormat):i.format(e,o.displayFormats.datetime)}format(e,i){const o=this.options.time.displayFormats,r=this._unit,s=i||o[r];return this._adapter.format(e,s)}_tickFormatFunction(e,i,o,r){const s=this.options,n=s.ticks.callback;if(n)return re(n,[e,i,o],this);const a=s.time.displayFormats,l=this._unit,u=this._majorUnit,c=l&&a[l],d=u&&a[u],p=o[i],g=u&&d&&p&&p.major;return this._adapter.format(e,r||(g?d:c))}generateTickLabels(e){let i,o,r;for(i=0,o=e.length;i0?a:1}getDataTimestamps(){let e=this._cache.data||[],i,o;if(e.length)return e;const r=this.getMatchingVisibleMetas();if(this._normalized&&r.length)return this._cache.data=r[0].controller.getAllParsedValues(this);for(i=0,o=r.length;i=t[o].pos&&e<=t[r].pos&&({lo:o,hi:r}=ho(t,"pos",e)),{pos:s,time:a}=t[o],{pos:n,time:l}=t[r]):(e>=t[o].time&&e<=t[r].time&&({lo:o,hi:r}=ho(t,"time",e)),{time:s,pos:a}=t[o],{time:n,pos:l}=t[r]);const u=n-s;return u?a+(l-a)*(e-s)/u:a}class mk extends $h{static id="timeseries";static defaults=$h.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),i=this._table=this.buildLookupTable(e);this._minPos=Rs(i,this.min),this._tableRange=Rs(i,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:i,max:o}=this,r=[],s=[];let n,a,l,u,c;for(n=0,a=e.length;n=i&&u<=o&&r.push(u);if(r.length<2)return[{time:i,pos:0},{time:o,pos:1}];for(n=0,a=r.length;nr-s)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const i=this.getDataTimestamps(),o=this.getLabelTimestamps();return i.length&&o.length?e=this.normalize(i.concat(o)):e=i.length?i:o,e=this._cache.all=e,e}getDecimalForValue(e){return(Rs(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const i=this._offsets,o=this.getDecimalForPixel(e)/i.factor-i.end;return Rs(this._table,o*this._tableRange+this._minPos,!0)}}const Ap={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},Ex={ariaLabel:{type:String},ariaDescribedby:{type:String}},Tx={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...Ap,...Ex},Ox=If[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function Po(t){return Jo(t)?At(t):t}function kx(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return Jo(e)?new Proxy(t,{}):t}function Ax(t,e){const i=t.options;i&&e&&Object.assign(i,e)}function Rp(t,e){t.labels=e}function Mp(t,e,i){const o=[];t.datasets=e.map(r=>{const s=t.datasets.find(n=>n[i]===r[i]);return!s||!r.data||o.includes(s)?{...r}:(o.push(s),Object.assign(s,r),s)})}function Rx(t,e){const i={labels:[],datasets:[]};return Rp(i,t.labels),Mp(i,t.datasets,e),i}const Mx=Yt({props:Tx,setup(t,e){let{expose:i,slots:o}=e;const r=Qe(null),s=Sn(null);i({chart:s});const n=()=>{if(!r.value)return;const{type:u,data:c,options:d,plugins:p,datasetIdKey:g}=t,v=Rx(c,g),b=kx(v,c);s.value=new vo(r.value,{type:u,data:b,options:{...d},plugins:p})},a=()=>{const u=At(s.value);u&&(t.destroyDelay>0?setTimeout(()=>{u.destroy(),s.value=null},t.destroyDelay):(u.destroy(),s.value=null))},l=u=>{u.update(t.updateMode)};return Tn(n),Zo(a),Ni([()=>t.options,()=>t.data],(u,c)=>{let[d,p]=u,[g,v]=c;const b=At(s.value);if(!b)return;let C=!1;if(d){const _=Po(d),k=Po(g);_&&_!==k&&(Ax(b,_),C=!0)}if(p){const _=Po(p.labels),k=Po(v.labels),I=Po(p.datasets),T=Po(v.datasets);_!==k&&(Rp(b.config.data,_),C=!0),I&&I!==T&&(Mp(b.config.data,I,t.datasetIdKey),C=!0)}C&&qd(()=>{l(b)})},{deep:!0}),()=>Ga("canvas",{role:"img","aria-label":t.ariaLabel,"aria-describedby":t.ariaDescribedby,ref:r},[Ga("p",{},[o.default?o.default():""])])}});function Ix(t,e){return vo.register(e),Yt({props:Ap,setup(i,o){let{expose:r}=o;const s=Sn(null),n=a=>{s.value=a?.chart};return r({chart:s}),()=>Ga(Mx,Ox({ref:n},{type:t,...i}))}})}const Ip=Ix("line",Xl),Px={name:"ChipIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Lx=["aria-hidden","aria-label"],Nx=["fill","width","height"],Dx={d:"M6,4H18V5H21V7H18V9H21V11H18V13H21V15H18V17H21V19H18V20H6V19H3V17H6V15H3V13H6V11H3V9H6V7H3V5H6V4M11,15V18H12V15H11M13,15V18H14V15H13M15,15V18H16V15H15Z"},$x={key:0};function Fx(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon chip-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",Dx,[i.title?(H(),G("title",$x,P(i.title),1)):Ct("",!0)])],8,Nx))],16,Lx)}const Bx=he(Px,[["render",Fx]]);function co(t){const e=["MB","GB","TB","PB","EB"];let i=t,o=0;for(;i>=1024&&o=1024&&oa+" %"},grid:{display:!1}}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{callbacks:{label:a=>a.parsed.y.toFixed(1)+" %"}}}},n=se(()=>{if(e.cpuload===!1||e.cpunum<=0)return W("serverinfo","CPU info not available");const a=e.cpuload.map(u=>(u/e.cpunum*100).toFixed(1)),l=e.cpuload.map(u=>u.toFixed(2));return W("serverinfo","Load average: {percentage} % ({load}) last minute",{percentage:a[0],load:l[0]})});return Ni(()=>e.tick,()=>{const a=e.cpuload;if(a===!1||e.cpunum<=0||a.length===0)return;const l=[...r.value.labels.slice(1),new Date().toLocaleTimeString()],u=[...r.value.datasets[0].data.slice(1),a[0]/e.cpunum*100];r.value={labels:l,datasets:[{...o,data:u}]}}),(a,l)=>(H(),G(St,null,[at(Xe,{icon:Bx,title:M(W)("serverinfo","Load")},null,8,["title"]),x("div",jx,[x("div",Hx,[t.cpuload!==!1?(H(),le(M(Ip),{key:0,data:r.value,options:s},null,8,["data"])):Ct("",!0)])]),x("p",null,[l[0]||(l[0]=x("span",{id:"cpubox",class:"cpubox"},"  ",-1)),l[1]||(l[1]=bt("   ",-1)),x("em",null,P(n.value),1)])],64))}}),zx=he(Ux,[["__scopeId","data-v-50985e28"]]),Vx={name:"DatabaseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Wx=["aria-hidden","aria-label"],qx=["fill","width","height"],Gx={d:"M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M4,9V12C4,14.21 7.58,16 12,16C16.42,16 20,14.21 20,12V9C20,11.21 16.42,13 12,13C7.58,13 4,11.21 4,9M4,14V17C4,19.21 7.58,21 12,21C16.42,21 20,19.21 20,17V14C20,16.21 16.42,18 12,18C7.58,18 4,16.21 4,14Z"},Kx={key:0};function Xx(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon database-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",Gx,[i.title?(H(),G("title",Kx,P(i.title),1)):Ct("",!0)])],8,qx))],16,Wx)}const Yx=he(Vx,[["render",Xx]]),Jx={class:"server-info-table"},Zx={class:"info"},Qx={class:"info"},tw={class:"info"},ew=Yt({__name:"DatabaseSection",props:{database:{}},setup(t){return(e,i)=>(H(),G(St,null,[at(Xe,{icon:Yx,title:M(W)("serverinfo","Database")},null,8,["title"]),x("div",Jx,[x("table",null,[x("tbody",null,[x("tr",null,[x("td",null,P(M(W)("serverinfo","Type:")),1),x("td",Zx,P(t.database.type),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Version:")),1),x("td",Qx,P(t.database.version),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Size:")),1),x("td",tw,P(M(Gi)(t.database.size)),1)])])])])],64))}}),iw={name:"HarddiskIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ow=["aria-hidden","aria-label"],rw=["fill","width","height"],sw={d:"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12,4A6,6 0 0,0 6,10C6,13.31 8.69,16 12.1,16L11.22,13.77C10.95,13.29 11.11,12.68 11.59,12.4L12.45,11.9C12.93,11.63 13.54,11.79 13.82,12.27L15.74,14.69C17.12,13.59 18,11.9 18,10A6,6 0 0,0 12,4M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M12.09,13.27L14.58,19.58L17.17,18.08L12.95,12.77L12.09,13.27Z"},nw={key:0};function aw(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon harddisk-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",sw,[i.title?(H(),G("title",nw,P(i.title),1)):Ct("",!0)])],8,rw))],16,ow)}const lw=he(iw,[["render",aw]]),cw={class:"section disk-status"},uw={class:"row row--cards"},hw={class:"diskchart-container"},dw=["aria-label"],fw={class:"diskinfo-container"},pw=["title"],mw={class:"diskinfo"},gw={class:"diskinfo__row"},bw={class:"info"},yw={class:"diskinfo__row"},_w={class:"info"},vw={class:"diskinfo__row"},xw={class:"info"},ww={class:"diskinfo__row"},Sw={class:"info-color-label--available"},Cw={class:"info"},Ew={class:"diskinfo__row"},Tw={class:"info-color-label--used"},Ow={class:"info"},kw={key:0},Aw=Yt({__name:"DiskSection",props:{disks:{},freespace:{},storage:{}},setup(t){const e=t;vo.register(Nv,__,Jl);const i=[],o=[];function r(l){return l.split("/").pop()??l}function s(l){return W("serverinfo","{used} of {total} used",{used:co(l.used),total:co(l.used+l.available)})}function n(l){const u=Number.parseFloat(l);return Number.isNaN(u)?l:Math.round(u)+"%"}function a(l,u){return{id:"centerLabel",afterDatasetsDraw(c){const{ctx:d,chartArea:p}=c,g=Math.round((p.right-p.left)*.24);d.save(),d.fillStyle=u,d.font=`bold ${g}px ${getComputedStyle(c.canvas).fontFamily}`,d.textAlign="center",d.textBaseline="middle",d.fillText(l,(p.left+p.right)/2,(p.top+p.bottom)/2),d.restore()}}}return Tn(()=>{const l=Zl(),u=nl("--color-border-maxcontrast","rgb(148, 148, 148)"),c=nl("--color-main-text","#222222");e.disks.forEach((d,p)=>{const g=i[p];g&&o.push(new vo(g,{type:"doughnut",data:{labels:[W("serverinfo","Used"),W("serverinfo","Available")],datasets:[{backgroundColor:[l,u],borderWidth:0,borderRadius:4,spacing:2,hoverOffset:4,data:[d.used,d.available]}]},options:{responsive:!0,maintainAspectRatio:!0,aspectRatio:1,cutout:"70%",layout:{padding:4},plugins:{legend:{display:!1},tooltip:{callbacks:{label:v=>`${v.label}: ${co(v.parsed)}`}}}},plugins:[a(n(d.percent),c)]}))})}),Zo(()=>{o.forEach(l=>l.destroy()),o.length=0}),(l,u)=>(H(),G("div",cw,[at(Xe,{icon:lw,title:M(W)("serverinfo","Disk")},null,8,["title"]),x("div",uw,[(H(!0),G(St,null,On(t.disks,(c,d)=>(H(),G("div",{key:c.device,class:"infobox text-center-mobile"},[x("div",hw,[x("canvas",{ref_for:!0,ref:p=>{p&&(i[d]=p)},class:"DiskChart",role:"img","aria-label":s(c)},null,8,dw)]),x("div",fw,[x("h3",{title:c.device},P(r(c.device)),9,pw),x("dl",mw,[x("div",gw,[x("dt",null,P(M(W)("serverinfo","Mount:")),1),x("dd",bw,P(c.mount),1)]),x("div",yw,[x("dt",null,P(M(W)("serverinfo","Filesystem:")),1),x("dd",_w,P(c.fs),1)]),x("div",vw,[x("dt",null,P(M(W)("serverinfo","Size:")),1),x("dd",xw,P(M(co)(c.used+c.available)),1)]),x("div",ww,[x("dt",Sw,P(M(W)("serverinfo","Available:")),1),x("dd",Cw,P(M(co)(c.available)),1)]),x("div",Ew,[x("dt",Tw,P(M(W)("serverinfo","Used:")),1),x("dd",Ow,P(c.percent)+" ("+P(M(co)(c.used))+") ",1)])])])]))),128))]),x("p",null,[bt(P(M(W)("serverinfo","Files:"))+" ",1),x("strong",null,P(t.storage.num_files),1)]),x("p",null,[bt(P(M(W)("serverinfo","Storages:"))+" ",1),x("strong",null,P(t.storage.num_storages),1)]),t.freespace!==null?(H(),G("p",kw,[bt(P(M(W)("serverinfo","Free Space:"))+" ",1),x("strong",null,P(M(Gi)(t.freespace)),1)])):Ct("",!0)]))}}),Rw=he(Aw,[["__scopeId","data-v-025684c3"]]),Mw={name:"MemoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Iw=["aria-hidden","aria-label"],Pw=["fill","width","height"],Lw={d:"M17,17H7V7H17M21,11V9H19V7C19,5.89 18.1,5 17,5H15V3H13V5H11V3H9V5H7C5.89,5 5,5.89 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11M13,13H11V11H13M15,9H9V15H15V9Z"},Nw={key:0};function Dw(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon memory-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",Lw,[i.title?(H(),G("title",Nw,P(i.title),1)):Ct("",!0)])],8,Pw))],16,Iw)}const $w=he(Mw,[["render",Dw]]),Fw={id:"memorySection",class:"infobox"},Bw={class:"chart-wrapper"},va=60,jw=Yt({__name:"MemoryChartSection",props:{memTotal:{},memFree:{},swapTotal:{},swapFree:{},tick:{}},setup(t){const e=t;vo.register(Op,Ep,kp,Xl,es,wp,Jl);const i=se(()=>e.memTotal!=="N/A"&&e.memFree!=="N/A"),o=se(()=>e.swapTotal!=="N/A"&&e.swapFree!=="N/A");function r(){return"rgb(148, 148, 148)"}const s={label:W("serverinfo","RAM Usage:"),borderColor:r(),backgroundColor:Pp(Zl(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},n={label:W("serverinfo","SWAP Usage:"),borderColor:"rgba(100,100,100,0.8)",backgroundColor:"rgba(100,100,100,0.2)",fill:!0,pointRadius:0,borderWidth:1,tension:.2},a=Sn({labels:Array(va).fill(""),datasets:[{...s,data:Array(va).fill(null)},{...n,data:Array(va).fill(null)}]}),l=Qe(1),u=se(()=>({animation:!1,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{display:!1},y:{min:0,max:l.value,ticks:{color:r(),callback:p=>p+" GB"},grid:{display:!1}}},plugins:{legend:{display:!1},tooltip:{callbacks:{label:p=>(p.dataset.label??"")+" "+p.parsed.y.toFixed(2)+" GB"}}}})),c=se(()=>{if(!i.value)return W("serverinfo","RAM info not available");const p=e.memTotal*1024*1024,g=(e.memTotal-e.memFree)*1024*1024;return W("serverinfo","RAM: Total: {memTotalBytes}/Current usage: {memUsageBytes}",{memTotalBytes:Gi(p),memUsageBytes:Gi(g)})}),d=se(()=>{if(!o.value)return W("serverinfo","SWAP info not available");const p=e.swapTotal*1024*1024,g=(e.swapTotal-e.swapFree)*1024*1024;return W("serverinfo","SWAP: Total: {swapTotalBytes}/Current usage: {swapUsageBytes}",{swapTotalBytes:Gi(p),swapUsageBytes:Gi(g)})});return Ni(()=>e.tick,()=>{if(!i.value)return;const p=e.memTotal/1024,g=o.value?e.swapTotal/1024:0;l.value=Math.ceil(Math.max(p,g));const v=[...a.value.labels.slice(1),new Date().toLocaleTimeString()],b=(e.memTotal-e.memFree)/1024,C=[...a.value.datasets[0].data.slice(1),b],_=o.value?(e.swapTotal-e.swapFree)/1024:null,k=[...a.value.datasets[1].data.slice(1),_];a.value={labels:v,datasets:[{...s,data:C},{...n,data:k}]}}),(p,g)=>(H(),G(St,null,[at(Xe,{icon:$w,title:M(W)("serverinfo","Memory")},null,8,["title"]),x("div",Fw,[x("div",Bw,[i.value?(H(),le(M(Ip),{key:0,data:a.value,options:u.value},null,8,["data","options"])):Ct("",!0)])]),x("p",null,[g[0]||(g[0]=x("span",{id:"rambox",class:"rambox"},"  ",-1)),g[1]||(g[1]=bt("   ",-1)),x("em",null,P(c.value),1)]),x("p",null,[g[2]||(g[2]=x("span",{id:"swapbox",class:"swapbox"},"  ",-1)),g[3]||(g[3]=bt("   ",-1)),x("em",null,P(d.value),1)])],64))}}),Hw=he(jw,[["__scopeId","data-v-4eb376e5"]]),Lp=Symbol.for("NcFormBox:context");function Uw(){return Ho(Lp,{isInFormBox:!1,formBoxItemClass:void 0})}const Co=(t,e)=>{const i=t.__vccOpts||t;for(const[o,r]of e)i[o]=r;return i},zw=Yt({__name:"NcFormBox",props:{row:{type:Boolean}},setup(t){const e=Y0();return Zd(Lp,{isInFormBox:!0,formBoxItemClass:e.ncFormBox__item}),(i,o)=>(H(),G("div",{class:De([i.$style.ncFormBox,t.row?i.$style.ncFormBox_row:i.$style.ncFormBox_col])},[Ge(i.$slots,"default",{itemClass:i.$style.ncFormBox__item})],2))}}),Vw="_ncFormBox_s7kf-",Ww="_ncFormBox_row_GzYuE",qw="_ncFormBox__item_691pI",Gw="_ncFormBox_col_Lt4lg",Kw={"material-design-icon":"_material-design-icon_JPsV1",ncFormBox:Vw,ncFormBox_row:Ww,ncFormBox__item:qw,ncFormBox_col:Gw},Xw={$style:Kw},xa=Co(zw,[["__cssModules",Xw]]);typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;function Yw(t,e,i){return Ni(t,(o,r,s)=>{o&&e(o,r,s)},{...i,once:!1})}var Jw="M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z",Zw="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",Qw="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z",t2="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z";window._nc_vue_element_id=window._nc_vue_element_id??0;function Ql(){return`nc-vue-${window._nc_vue_element_id++}`}const[e2]=window.OC?.config?.version?.split(".")??[],i2=Number.parseInt(e2??"34"),o2=i2<32,r2=["id"],s2=Yt({inheritAttrs:!1,__name:"NcFormBoxItem",props:{tag:{},label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},class:{default:()=>{}},itemClasses:{default:()=>{}}},emits:["click"],setup(t){const e=lf(),{formBoxItemClass:i}=Uw(),o=Ql(),r=()=>!!t.description||!!e.description;return(s,n)=>(H(),G("div",{class:De([t.class,s.$style.formBoxItem,M(i),{[s.$style.formBoxItem_inverted]:t.invertedAccent&&r(),[s.$style.formBoxItem_legacy]:M(o2)}])},[x("span",{class:De(s.$style.formBoxItem__content)},[(H(),le(nf(t.tag),Ie({class:[s.$style.formBoxItem__element,t.itemClasses]},s.$attrs,{onClick:n[0]||(n[0]=a=>s.$emit("click",a))}),{default:Oe(()=>[Ge(s.$slots,"default",{descriptionId:M(o)},()=>[bt(P(t.label||"⚠️ Label is missing"),1)])]),_:3},16,["class"])),r()?(H(),G("span",{key:0,id:M(o),class:De(s.$style.formBoxItem__description)},[Ge(s.$slots,"description",{},()=>[bt(P(t.description),1)])],10,r2)):Ct("",!0)],2),x("span",{class:De(s.$style.formBoxItem__icon)},[Ge(s.$slots,"icon",{descriptionId:M(o)},()=>[n[1]||(n[1]=bt(" ⚠️ Icon is missing ",-1))])],2)],2))}}),n2="_formBoxItem_Gp-TA",a2="_formBoxItem__description_UqZJ1",l2="_formBoxItem_legacy_dP9aJ",c2="_formBoxItem_inverted_BU-i-",u2="_formBoxItem__element_jHCux",h2="_formBoxItem__content_UKovC",d2="_formBoxItem__icon_AvkP3",f2={"material-design-icon":"_material-design-icon_8BFGk",formBoxItem:n2,formBoxItem__description:a2,formBoxItem_legacy:l2,formBoxItem_inverted:c2,formBoxItem__element:u2,formBoxItem__content:h2,formBoxItem__icon:d2},p2={$style:f2},Np=Co(s2,[["__cssModules",p2]]),m2=["aria-hidden","aria-label"],g2={key:0,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},b2=["d"],y2=["innerHTML"],_2=Yt({__name:"NcIconSvgWrapper",props:{directional:{type:Boolean},inline:{type:Boolean},svg:{default:""},name:{default:void 0},path:{default:""},size:{default:20}},setup(t){Nf(r=>({fb515064:i.value}));const e=t,i=se(()=>typeof e.size=="number"?`${e.size}px`:e.size),o=se(()=>{if(!e.svg||e.path)return;const r=Hf.sanitize(e.svg),s=new DOMParser().parseFromString(r,"image/svg+xml");return s.querySelector("parsererror")?"":(s.documentElement.id&&s.documentElement.removeAttribute("id"),s.documentElement.outerHTML)});return(r,s)=>(H(),G("span",{"aria-hidden":t.name?void 0:"true","aria-label":t.name||void 0,class:De(["icon-vue",{"icon-vue--directional":t.directional,"icon-vue--inline":t.inline}]),role:"img"},[o.value?(H(),G("span",{key:1,innerHTML:o.value},null,8,y2)):(H(),G("svg",g2,[x("path",{d:t.path},null,8,b2)]))],10,m2))}}),tc=Co(_2,[["__scopeId","data-v-aaedb1c3"]]),v2=Symbol("");var Dp={},Fs={};Fs.byteLength=S2,Fs.toByteArray=E2,Fs.fromByteArray=k2;for(var xi=[],Ze=[],x2=typeof Uint8Array<"u"?Uint8Array:Array,wa="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Lo=0,w2=wa.length;Lo0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.indexOf("=");i===-1&&(i=e);var o=i===e?0:4-i%4;return[i,o]}function S2(t){var e=$p(t),i=e[0],o=e[1];return(i+o)*3/4-o}function C2(t,e,i){return(e+i)*3/4-i}function E2(t){var e,i=$p(t),o=i[0],r=i[1],s=new x2(C2(t,o,r)),n=0,a=r>0?o-4:o,l;for(l=0;l>16&255,s[n++]=e>>8&255,s[n++]=e&255;return r===2&&(e=Ze[t.charCodeAt(l)]<<2|Ze[t.charCodeAt(l+1)]>>4,s[n++]=e&255),r===1&&(e=Ze[t.charCodeAt(l)]<<10|Ze[t.charCodeAt(l+1)]<<4|Ze[t.charCodeAt(l+2)]>>2,s[n++]=e>>8&255,s[n++]=e&255),s}function T2(t){return xi[t>>18&63]+xi[t>>12&63]+xi[t>>6&63]+xi[t&63]}function O2(t,e,i){for(var o,r=[],s=e;sa?a:n+s));return o===1?(e=t[i-1],r.push(xi[e>>2]+xi[e<<4&63]+"==")):o===2&&(e=(t[i-2]<<8)+t[i-1],r.push(xi[e>>10]+xi[e>>4&63]+xi[e<<2&63]+"=")),r.join("")}var al={};al.read=function(t,e,i,o,r){var s,n,a=r*8-o-1,l=(1<>1,c=-7,d=i?r-1:0,p=i?-1:1,g=t[e+d];for(d+=p,s=g&(1<<-c)-1,g>>=-c,c+=a;c>0;s=s*256+t[e+d],d+=p,c-=8);for(n=s&(1<<-c)-1,s>>=-c,c+=o;c>0;n=n*256+t[e+d],d+=p,c-=8);if(s===0)s=1-u;else{if(s===l)return n?NaN:(g?-1:1)*(1/0);n=n+Math.pow(2,o),s=s-u}return(g?-1:1)*n*Math.pow(2,s-o)},al.write=function(t,e,i,o,r,s){var n,a,l,u=s*8-r-1,c=(1<>1,p=r===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=o?0:s-1,v=o?1:-1,b=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,n=c):(n=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-n))<1&&(n--,l*=2),n+d>=1?e+=p/l:e+=p*Math.pow(2,1-d),e*l>=2&&(n++,l/=2),n+d>=c?(a=0,n=c):n+d>=1?(a=(e*l-1)*Math.pow(2,r),n=n+d):(a=e*Math.pow(2,d-1)*Math.pow(2,r),n=0));r>=8;t[i+g]=a&255,g+=v,a/=256,r-=8);for(n=n<0;t[i+g]=n&255,g+=v,n/=256,u-=8);t[i+g-v]|=b*128};(function(t){const e=Fs,i=al,o=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=c,t.SlowBuffer=N,t.INSPECT_MAX_BYTES=50;const r=2147483647;t.kMaxLength=r;const{Uint8Array:s,ArrayBuffer:n,SharedArrayBuffer:a}=globalThis;c.TYPED_ARRAY_SUPPORT=l(),!c.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function l(){try{const h=new s(1),f={foo:function(){return 42}};return Object.setPrototypeOf(f,s.prototype),Object.setPrototypeOf(h,f),h.foo()===42}catch{return!1}}Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}});function u(h){if(h>r)throw new RangeError('The value "'+h+'" is invalid for option "size"');const f=new s(h);return Object.setPrototypeOf(f,c.prototype),f}function c(h,f,m){if(typeof h=="number"){if(typeof f=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return v(h)}return d(h,f,m)}c.poolSize=8192;function d(h,f,m){if(typeof h=="string")return b(h,f);if(n.isView(h))return _(h);if(h==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h);if(lt(h,n)||h&<(h.buffer,n)||typeof a<"u"&&(lt(h,a)||h&<(h.buffer,a)))return k(h,f,m);if(typeof h=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const E=h.valueOf&&h.valueOf();if(E!=null&&E!==h)return c.from(E,f,m);const A=I(h);if(A)return A;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof h[Symbol.toPrimitive]=="function")return c.from(h[Symbol.toPrimitive]("string"),f,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h)}c.from=function(h,f,m){return d(h,f,m)},Object.setPrototypeOf(c.prototype,s.prototype),Object.setPrototypeOf(c,s);function p(h){if(typeof h!="number")throw new TypeError('"size" argument must be of type number');if(h<0)throw new RangeError('The value "'+h+'" is invalid for option "size"')}function g(h,f,m){return p(h),h<=0?u(h):f!==void 0?typeof m=="string"?u(h).fill(f,m):u(h).fill(f):u(h)}c.alloc=function(h,f,m){return g(h,f,m)};function v(h){return p(h),u(h<0?0:T(h)|0)}c.allocUnsafe=function(h){return v(h)},c.allocUnsafeSlow=function(h){return v(h)};function b(h,f){if((typeof f!="string"||f==="")&&(f="utf8"),!c.isEncoding(f))throw new TypeError("Unknown encoding: "+f);const m=tt(h,f)|0;let E=u(m);const A=E.write(h,f);return A!==m&&(E=E.slice(0,A)),E}function C(h){const f=h.length<0?0:T(h.length)|0,m=u(f);for(let E=0;E=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return h|0}function N(h){return+h!=h&&(h=0),c.alloc(+h)}c.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==c.prototype},c.compare=function(h,f){if(lt(h,s)&&(h=c.from(h,h.offset,h.byteLength)),lt(f,s)&&(f=c.from(f,f.offset,f.byteLength)),!c.isBuffer(h)||!c.isBuffer(f))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===f)return 0;let m=h.length,E=f.length;for(let A=0,$=Math.min(m,E);A<$;++A)if(h[A]!==f[A]){m=h[A],E=f[A];break}return mE.length?(c.isBuffer($)||($=c.from($)),$.copy(E,A)):s.prototype.set.call(E,$,A);else if(c.isBuffer($))$.copy(E,A);else throw new TypeError('"list" argument must be an Array of Buffers');A+=$.length}return E};function tt(h,f){if(c.isBuffer(h))return h.length;if(n.isView(h)||lt(h,n))return h.byteLength;if(typeof h!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof h);const m=h.length,E=arguments.length>2&&arguments[2]===!0;if(!E&&m===0)return 0;let A=!1;for(;;)switch(f){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return U(h).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return st(h).length;default:if(A)return E?-1:U(h).length;f=(""+f).toLowerCase(),A=!0}}c.byteLength=tt;function X(h,f,m){let E=!1;if((f===void 0||f<0)&&(f=0),f>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,f>>>=0,m<=f))return"";for(h||(h="utf8");;)switch(h){case"hex":return ht(this,f,m);case"utf8":case"utf-8":return ut(this,f,m);case"ascii":return Gt(this,f,m);case"latin1":case"binary":return Mt(this,f,m);case"base64":return rt(this,f,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return de(this,f,m);default:if(E)throw new TypeError("Unknown encoding: "+h);h=(h+"").toLowerCase(),E=!0}}c.prototype._isBuffer=!0;function Y(h,f,m){const E=h[f];h[f]=h[m],h[m]=E}c.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let f=0;ff&&(h+=" ... "),""},o&&(c.prototype[o]=c.prototype.inspect),c.prototype.compare=function(h,f,m,E,A){if(lt(h,s)&&(h=c.from(h,h.offset,h.byteLength)),!c.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(f===void 0&&(f=0),m===void 0&&(m=h?h.length:0),E===void 0&&(E=0),A===void 0&&(A=this.length),f<0||m>h.length||E<0||A>this.length)throw new RangeError("out of range index");if(E>=A&&f>=m)return 0;if(E>=A)return-1;if(f>=m)return 1;if(f>>>=0,m>>>=0,E>>>=0,A>>>=0,this===h)return 0;let $=A-E,K=m-f;const Pt=Math.min($,K),ee=this.slice(E,A),Lt=h.slice(f,m);for(let _t=0;_t2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,yt(m)&&(m=A?0:h.length-1),m<0&&(m=h.length+m),m>=h.length){if(A)return-1;m=h.length-1}else if(m<0)if(A)m=0;else return-1;if(typeof f=="string"&&(f=c.from(f,E)),c.isBuffer(f))return f.length===0?-1:nt(h,f,m,E,A);if(typeof f=="number")return f=f&255,typeof s.prototype.indexOf=="function"?A?s.prototype.indexOf.call(h,f,m):s.prototype.lastIndexOf.call(h,f,m):nt(h,[f],m,E,A);throw new TypeError("val must be string, number or Buffer")}function nt(h,f,m,E,A){let $=1,K=h.length,Pt=f.length;if(E!==void 0&&(E=String(E).toLowerCase(),E==="ucs2"||E==="ucs-2"||E==="utf16le"||E==="utf-16le")){if(h.length<2||f.length<2)return-1;$=2,K/=2,Pt/=2,m/=2}function ee(_t,Xt){return $===1?_t[Xt]:_t.readUInt16BE(Xt*$)}let Lt;if(A){let _t=-1;for(Lt=m;LtK&&(m=K-Pt),Lt=m;Lt>=0;Lt--){let _t=!0;for(let Xt=0;XtA&&(E=A)):E=A;const $=f.length;E>$/2&&(E=$/2);let K;for(K=0;K>>0,isFinite(m)?(m=m>>>0,E===void 0&&(E="utf8")):(E=m,m=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const A=this.length-f;if((m===void 0||m>A)&&(m=A),h.length>0&&(m<0||f<0)||f>this.length)throw new RangeError("Attempt to write outside buffer bounds");E||(E="utf8");let $=!1;for(;;)switch(E){case"hex":return gt(this,h,f,m);case"utf8":case"utf-8":return Et(this,h,f,m);case"ascii":case"latin1":case"binary":return zt(this,h,f,m);case"base64":return Nt(this,h,f,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return it(this,h,f,m);default:if($)throw new TypeError("Unknown encoding: "+E);E=(""+E).toLowerCase(),$=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function rt(h,f,m){return f===0&&m===h.length?e.fromByteArray(h):e.fromByteArray(h.slice(f,m))}function ut(h,f,m){m=Math.min(h.length,m);const E=[];let A=f;for(;A239?4:$>223?3:$>191?2:1;if(A+Pt<=m){let ee,Lt,_t,Xt;switch(Pt){case 1:$<128&&(K=$);break;case 2:ee=h[A+1],(ee&192)===128&&(Xt=($&31)<<6|ee&63,Xt>127&&(K=Xt));break;case 3:ee=h[A+1],Lt=h[A+2],(ee&192)===128&&(Lt&192)===128&&(Xt=($&15)<<12|(ee&63)<<6|Lt&63,Xt>2047&&(Xt<55296||Xt>57343)&&(K=Xt));break;case 4:ee=h[A+1],Lt=h[A+2],_t=h[A+3],(ee&192)===128&&(Lt&192)===128&&(_t&192)===128&&(Xt=($&15)<<18|(ee&63)<<12|(Lt&63)<<6|_t&63,Xt>65535&&Xt<1114112&&(K=Xt))}}K===null?(K=65533,Pt=1):K>65535&&(K-=65536,E.push(K>>>10&1023|55296),K=56320|K&1023),E.push(K),A+=Pt}return Vt(E)}const Bt=4096;function Vt(h){const f=h.length;if(f<=Bt)return String.fromCharCode.apply(String,h);let m="",E=0;for(;EE)&&(m=E);let A="";for(let $=f;$m&&(h=m),f<0?(f+=m,f<0&&(f=0)):f>m&&(f=m),fm)throw new RangeError("Trying to access beyond buffer length")}c.prototype.readUintLE=c.prototype.readUIntLE=function(h,f,m){h=h>>>0,f=f>>>0,m||vt(h,f,this.length);let E=this[h],A=1,$=0;for(;++$>>0,f=f>>>0,m||vt(h,f,this.length);let E=this[h+--f],A=1;for(;f>0&&(A*=256);)E+=this[h+--f]*A;return E},c.prototype.readUint8=c.prototype.readUInt8=function(h,f){return h=h>>>0,f||vt(h,1,this.length),this[h]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(h,f){return h=h>>>0,f||vt(h,2,this.length),this[h]|this[h+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(h,f){return h=h>>>0,f||vt(h,2,this.length),this[h]<<8|this[h+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(h,f){return h=h>>>0,f||vt(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(h,f){return h=h>>>0,f||vt(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},c.prototype.readBigUInt64LE=Ot(function(h){h=h>>>0,R(h,"offset");const f=this[h],m=this[h+7];(f===void 0||m===void 0)&&V(h,this.length-8);const E=f+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,A=this[++h]+this[++h]*2**8+this[++h]*2**16+m*2**24;return BigInt(E)+(BigInt(A)<>>0,R(h,"offset");const f=this[h],m=this[h+7];(f===void 0||m===void 0)&&V(h,this.length-8);const E=f*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],A=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+m;return(BigInt(E)<>>0,f=f>>>0,m||vt(h,f,this.length);let E=this[h],A=1,$=0;for(;++$=A&&(E-=Math.pow(2,8*f)),E},c.prototype.readIntBE=function(h,f,m){h=h>>>0,f=f>>>0,m||vt(h,f,this.length);let E=f,A=1,$=this[h+--E];for(;E>0&&(A*=256);)$+=this[h+--E]*A;return A*=128,$>=A&&($-=Math.pow(2,8*f)),$},c.prototype.readInt8=function(h,f){return h=h>>>0,f||vt(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},c.prototype.readInt16LE=function(h,f){h=h>>>0,f||vt(h,2,this.length);const m=this[h]|this[h+1]<<8;return m&32768?m|4294901760:m},c.prototype.readInt16BE=function(h,f){h=h>>>0,f||vt(h,2,this.length);const m=this[h+1]|this[h]<<8;return m&32768?m|4294901760:m},c.prototype.readInt32LE=function(h,f){return h=h>>>0,f||vt(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},c.prototype.readInt32BE=function(h,f){return h=h>>>0,f||vt(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},c.prototype.readBigInt64LE=Ot(function(h){h=h>>>0,R(h,"offset");const f=this[h],m=this[h+7];(f===void 0||m===void 0)&&V(h,this.length-8);const E=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(m<<24);return(BigInt(E)<>>0,R(h,"offset");const f=this[h],m=this[h+7];(f===void 0||m===void 0)&&V(h,this.length-8);const E=(f<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(E)<>>0,f||vt(h,4,this.length),i.read(this,h,!0,23,4)},c.prototype.readFloatBE=function(h,f){return h=h>>>0,f||vt(h,4,this.length),i.read(this,h,!1,23,4)},c.prototype.readDoubleLE=function(h,f){return h=h>>>0,f||vt(h,8,this.length),i.read(this,h,!0,52,8)},c.prototype.readDoubleBE=function(h,f){return h=h>>>0,f||vt(h,8,this.length),i.read(this,h,!1,52,8)};function Ht(h,f,m,E,A,$){if(!c.isBuffer(h))throw new TypeError('"buffer" argument must be a Buffer instance');if(f>A||f<$)throw new RangeError('"value" argument is out of bounds');if(m+E>h.length)throw new RangeError("Index out of range")}c.prototype.writeUintLE=c.prototype.writeUIntLE=function(h,f,m,E){if(h=+h,f=f>>>0,m=m>>>0,!E){const K=Math.pow(2,8*m)-1;Ht(this,h,f,m,K,0)}let A=1,$=0;for(this[f]=h&255;++$>>0,m=m>>>0,!E){const K=Math.pow(2,8*m)-1;Ht(this,h,f,m,K,0)}let A=m-1,$=1;for(this[f+A]=h&255;--A>=0&&($*=256);)this[f+A]=h/$&255;return f+m},c.prototype.writeUint8=c.prototype.writeUInt8=function(h,f,m){return h=+h,f=f>>>0,m||Ht(this,h,f,1,255,0),this[f]=h&255,f+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(h,f,m){return h=+h,f=f>>>0,m||Ht(this,h,f,2,65535,0),this[f]=h&255,this[f+1]=h>>>8,f+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(h,f,m){return h=+h,f=f>>>0,m||Ht(this,h,f,2,65535,0),this[f]=h>>>8,this[f+1]=h&255,f+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(h,f,m){return h=+h,f=f>>>0,m||Ht(this,h,f,4,4294967295,0),this[f+3]=h>>>24,this[f+2]=h>>>16,this[f+1]=h>>>8,this[f]=h&255,f+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(h,f,m){return h=+h,f=f>>>0,m||Ht(this,h,f,4,4294967295,0),this[f]=h>>>24,this[f+1]=h>>>16,this[f+2]=h>>>8,this[f+3]=h&255,f+4};function ft(h,f,m,E,A){B(f,E,A,h,m,7);let $=Number(f&BigInt(4294967295));h[m++]=$,$=$>>8,h[m++]=$,$=$>>8,h[m++]=$,$=$>>8,h[m++]=$;let K=Number(f>>BigInt(32)&BigInt(4294967295));return h[m++]=K,K=K>>8,h[m++]=K,K=K>>8,h[m++]=K,K=K>>8,h[m++]=K,m}function te(h,f,m,E,A){B(f,E,A,h,m,7);let $=Number(f&BigInt(4294967295));h[m+7]=$,$=$>>8,h[m+6]=$,$=$>>8,h[m+5]=$,$=$>>8,h[m+4]=$;let K=Number(f>>BigInt(32)&BigInt(4294967295));return h[m+3]=K,K=K>>8,h[m+2]=K,K=K>>8,h[m+1]=K,K=K>>8,h[m]=K,m+8}c.prototype.writeBigUInt64LE=Ot(function(h,f=0){return ft(this,h,f,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=Ot(function(h,f=0){return te(this,h,f,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(h,f,m,E){if(h=+h,f=f>>>0,!E){const Pt=Math.pow(2,8*m-1);Ht(this,h,f,m,Pt-1,-Pt)}let A=0,$=1,K=0;for(this[f]=h&255;++A>0)-K&255;return f+m},c.prototype.writeIntBE=function(h,f,m,E){if(h=+h,f=f>>>0,!E){const Pt=Math.pow(2,8*m-1);Ht(this,h,f,m,Pt-1,-Pt)}let A=m-1,$=1,K=0;for(this[f+A]=h&255;--A>=0&&($*=256);)h<0&&K===0&&this[f+A+1]!==0&&(K=1),this[f+A]=(h/$>>0)-K&255;return f+m},c.prototype.writeInt8=function(h,f,m){return h=+h,f=f>>>0,m||Ht(this,h,f,1,127,-128),h<0&&(h=255+h+1),this[f]=h&255,f+1},c.prototype.writeInt16LE=function(h,f,m){return h=+h,f=f>>>0,m||Ht(this,h,f,2,32767,-32768),this[f]=h&255,this[f+1]=h>>>8,f+2},c.prototype.writeInt16BE=function(h,f,m){return h=+h,f=f>>>0,m||Ht(this,h,f,2,32767,-32768),this[f]=h>>>8,this[f+1]=h&255,f+2},c.prototype.writeInt32LE=function(h,f,m){return h=+h,f=f>>>0,m||Ht(this,h,f,4,2147483647,-2147483648),this[f]=h&255,this[f+1]=h>>>8,this[f+2]=h>>>16,this[f+3]=h>>>24,f+4},c.prototype.writeInt32BE=function(h,f,m){return h=+h,f=f>>>0,m||Ht(this,h,f,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[f]=h>>>24,this[f+1]=h>>>16,this[f+2]=h>>>8,this[f+3]=h&255,f+4},c.prototype.writeBigInt64LE=Ot(function(h,f=0){return ft(this,h,f,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=Ot(function(h,f=0){return te(this,h,f,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ue(h,f,m,E,A,$){if(m+E>h.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function ti(h,f,m,E,A){return f=+f,m=m>>>0,A||Ue(h,f,m,4),i.write(h,f,m,E,23,4),m+4}c.prototype.writeFloatLE=function(h,f,m){return ti(this,h,f,!0,m)},c.prototype.writeFloatBE=function(h,f,m){return ti(this,h,f,!1,m)};function ei(h,f,m,E,A){return f=+f,m=m>>>0,A||Ue(h,f,m,8),i.write(h,f,m,E,52,8),m+8}c.prototype.writeDoubleLE=function(h,f,m){return ei(this,h,f,!0,m)},c.prototype.writeDoubleBE=function(h,f,m){return ei(this,h,f,!1,m)},c.prototype.copy=function(h,f,m,E){if(!c.isBuffer(h))throw new TypeError("argument should be a Buffer");if(m||(m=0),!E&&E!==0&&(E=this.length),f>=h.length&&(f=h.length),f||(f=0),E>0&&E=this.length)throw new RangeError("Index out of range");if(E<0)throw new RangeError("sourceEnd out of bounds");E>this.length&&(E=this.length),h.length-f>>0,m=m===void 0?this.length:m>>>0,h||(h=0);let A;if(typeof h=="number")for(A=f;A2**32?A=D(String(m)):typeof m=="bigint"&&(A=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(A=D(A)),A+="n"),E+=` It must be ${f}. Received ${A}`,E},RangeError);function D(h){let f="",m=h.length;const E=h[0]==="-"?1:0;for(;m>=E+4;m-=3)f=`_${h.slice(m-3,m)}${f}`;return`${h.slice(0,m)}${f}`}function F(h,f,m){R(f,"offset"),(h[f]===void 0||h[f+m]===void 0)&&V(f,h.length-(m+1))}function B(h,f,m,E,A,$){if(h>m||h= 0${K} and < 2${K} ** ${($+1)*8}${K}`:Pt=`>= -(2${K} ** ${($+1)*8-1}${K}) and < 2 ** ${($+1)*8-1}${K}`,new w.ERR_OUT_OF_RANGE("value",Pt,h)}F(E,A,$)}function R(h,f){if(typeof h!="number")throw new w.ERR_INVALID_ARG_TYPE(f,"number",h)}function V(h,f,m){throw Math.floor(h)!==h?(R(h,m),new w.ERR_OUT_OF_RANGE("offset","an integer",h)):f<0?new w.ERR_BUFFER_OUT_OF_BOUNDS:new w.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${f}`,h)}const q=/[^+/0-9A-Za-z-_]/g;function z(h){if(h=h.split("=")[0],h=h.trim().replace(q,""),h.length<2)return"";for(;h.length%4!==0;)h=h+"=";return h}function U(h,f){f=f||1/0;let m;const E=h.length;let A=null;const $=[];for(let K=0;K55295&&m<57344){if(!A){if(m>56319){(f-=3)>-1&&$.push(239,191,189);continue}else if(K+1===E){(f-=3)>-1&&$.push(239,191,189);continue}A=m;continue}if(m<56320){(f-=3)>-1&&$.push(239,191,189),A=m;continue}m=(A-55296<<10|m-56320)+65536}else A&&(f-=3)>-1&&$.push(239,191,189);if(A=null,m<128){if((f-=1)<0)break;$.push(m)}else if(m<2048){if((f-=2)<0)break;$.push(m>>6|192,m&63|128)}else if(m<65536){if((f-=3)<0)break;$.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((f-=4)<0)break;$.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return $}function et(h){const f=[];for(let m=0;m>8,A=m%256,$.push(A),$.push(E);return $}function st(h){return e.toByteArray(z(h))}function ot(h,f,m,E){let A;for(A=0;A=f.length||A>=h.length);++A)f[A+m]=h[A];return A}function lt(h,f){return h instanceof f||h!=null&&h.constructor!=null&&h.constructor.name!=null&&h.constructor.name===f.name}function yt(h){return h!==h}const It=(function(){const h="0123456789abcdef",f=new Array(256);for(let m=0;m<16;++m){const E=m*16;for(let A=0;A<16;++A)f[E+A]=h[m]+h[A]}return f})();function Ot(h){return typeof BigInt>"u"?Kt:h}function Kt(){throw new Error("BigInt not supported")}})(Dp);const Bh=Dp.Buffer;function A2(t){const e=wn(t),i=Ho(v2,null)!==null,o=se(()=>i&&e.to?"RouterLink":e.href?"a":"button"),r=se(()=>o.value==="RouterLink"||o.value==="a"),s=se(()=>o.value==="a"),n=se(()=>o.value==="RouterLink"),a=se(()=>o.value==="button"),l=se(()=>{if(o.value==="RouterLink")return{to:e.to,activeClass:"active",...e.additionalAttrs?.("RouterLink")??{}};if(o.value==="a")return{href:e.href,target:e.target,download:e.download||void 0,rel:"nofollow noreferrer noopener",...e.additionalAttrs?.("a")??{}};if(o.value==="button")return{type:e.type||"button",disabled:e.disabled,...e.additionalAttrs?.("button")??{}}});return{tag:o,isLink:r,isHyperLink:s,isRouterLink:n,isButton:a,attrs:l}}const R2=Yt({__name:"NcFormBoxButton",props:{label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},to:{default:()=>{}},href:{default:()=>{}},target:{default:()=>{}},disabled:{type:Boolean,default:!1}},emits:["click"],setup(t){const{tag:e,attrs:i,isLink:o}=A2({to:ps(()=>t.to),href:ps(()=>t.href),target:ps(()=>t.target),disabled:ps(()=>t.disabled)}),r=se(()=>{if(o.value)return t.target==="_blank"?t2:Jw});return(s,n)=>(H(),le(Np,Ie({tag:M(e),itemClasses:["button-vue",s.$style.formBoxButton],invertedAccent:t.invertedAccent},M(i),{tabindex:"0",onClick:n[0]||(n[0]=a=>s.$emit("click",a))}),El({_:2},[s.$slots.default||t.label?{name:"default",fn:Oe(()=>[Ge(s.$slots,"default",{},()=>[bt(P(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:Oe(()=>[Ge(s.$slots,"description",{},()=>[bt(P(t.description),1)])]),key:"1"}:void 0,s.$slots.icon||r.value?{name:"icon",fn:Oe(()=>[Ge(s.$slots,"icon",{},()=>[r.value?(H(),le(tc,{key:0,path:r.value,inline:""},null,8,["path"])):Ct("",!0)])]),key:"2"}:void 0]),1040,["tag","itemClasses","invertedAccent"]))}}),M2="_formBoxButton_E8Xfr",I2={"material-design-icon":"_material-design-icon_MaIxG",formBoxButton:M2},P2={$style:I2},L2=Co(R2,[["__cssModules",P2]]);class N2{bundle;constructor(e){this.bundle={pluralFunction:e,translations:{}}}addTranslations(e){const i=Object.values(e.translations[""]??{}).map(({msgid:o,msgid_plural:r,msgstr:s})=>r!==void 0?[`_${o}_::_${r}_`,s]:[o,s[0]]);this.bundle.translations={...this.bundle.translations,...Object.fromEntries(i)}}gettext(e,i={}){return W("",e,i,void 0,{bundle:this.bundle})}ngettext(e,i,o,r={}){return B1("",e,i,o,r,{bundle:this.bundle})}}class D2{debug=!1;language="en";translations={};setLanguage(e){return this.language=e,this}detectLocale(){return this.detectLanguage()}detectLanguage(){return this.setLanguage(Ml().replace("-","_"))}addTranslation(e,i){return this.translations[e]=i,this}enableDebugMode(){return this.debug=!0,this}build(){this.debug&&console.debug(`Creating gettext instance for language ${this.language}`);const e=new N2(i=>j1(i,this.language));return this.language in this.translations&&e.addTranslations(this.translations[this.language]),e}}function $2(){return new D2}const Fp=$2().detectLanguage().build(),jh=(...t)=>Fp.gettext(...t);function F2(...t){for(const e of t)if(!e.registered){for(const{l:i,t:o}of e){if(i!==Ml()||!o)continue;const r=Object.fromEntries(Object.entries(o).map(([s,n])=>[s,{msgid:s,msgid_plural:n.p,msgstr:n.v}]));Fp.addTranslations({translations:{"":r}})}e.registered=!0}}const B2=[{l:"ar",t:{}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{Copied:{v:["Zkopírováno"]},"Copy to clipboard":{v:["Zkopírovat do schránky"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{Copied:{v:["Kopieret"]},"Copy to clipboard":{v:["Kopiér til udklipsholderen"]}}},{l:"de",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"de-DE",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"el",t:{}},{l:"en-GB",t:{Copied:{v:["Copied"]},"Copy to clipboard":{v:["Copy to clipboard"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{Copied:{v:["Kopeeritud"]},"Copy to clipboard":{v:["Kopeeri lõikelauale"]}}},{l:"eu",t:{}},{l:"fa",t:{}},{l:"fi",t:{}},{l:"fr",t:{Copied:{v:["Copié"]},"Copy to clipboard":{v:["Copier dans le presse-papiers"]}}},{l:"ga",t:{Copied:{v:["Cóipeáilte"]},"Copy to clipboard":{v:["Cóipeáil chuig an ghearrthaisce"]}}},{l:"gl",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar ao portapapeis"]}}},{l:"he",t:{}},{l:"hr",t:{Copied:{v:["Kopirano"]},"Copy to clipboard":{v:["Kopiraj u međuspremnik"]}}},{l:"hu",t:{Copied:{v:["Másolva"]},"Copy to clipboard":{v:["Vágólapra másolás"]}}},{l:"id",t:{Copied:{v:["Disalin"]},"Copy to clipboard":{v:["Salin ke clipboard"]}}},{l:"is",t:{}},{l:"it",t:{}},{l:"ja",t:{Copied:{v:["コピーされました"]},"Copy to clipboard":{v:["クリップボードにコピー"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{Copied:{v:["복사됨"]},"Copy to clipboard":{v:["클립보드로 복사"]}}},{l:"lo",t:{Copied:{v:["ສຳເນົາແລ້ວ"]},"Copy to clipboard":{v:["ສຳເນົາໃສ່ຄລິບບອດ"]}}},{l:"lt-LT",t:{Copied:{v:["Nukopijuota"]},"Copy to clipboard":{v:["Kopijuoti į iškarpinę"]}}},{l:"lv",t:{}},{l:"mk",t:{Copied:{v:["Копирано"]},"Copy to clipboard":{v:["Копирај во клипбоард"]}}},{l:"mn",t:{Copied:{v:["Хуулагдлаа"]},"Copy to clipboard":{v:["Санах ой руу хуулах"]}}},{l:"my",t:{}},{l:"nb",t:{}},{l:"nl",t:{Copied:{v:["Gekopieerd"]},"Copy to clipboard":{v:["Kopieer naar klembord"]}}},{l:"oc",t:{}},{l:"pl",t:{}},{l:"pt-BR",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar para a área de transferência"]}}},{l:"pt-PT",t:{}},{l:"ro",t:{}},{l:"ru",t:{Copied:{v:["Скопировано"]},"Copy to clipboard":{v:["Скопировать в буфер"]}}},{l:"sk",t:{}},{l:"sl",t:{}},{l:"sr",t:{}},{l:"sv",t:{Copied:{v:["Kopierad"]},"Copy to clipboard":{v:["Kopiera till urklipp"]}}},{l:"tr",t:{Copied:{v:["Kopyalandı"]},"Copy to clipboard":{v:["Panoya kopyalandı"]}}},{l:"uk",t:{}},{l:"uz",t:{Copied:{v:["Nusxalandi"]},"Copy to clipboard":{v:["Buferga nusxalash"]}}},{l:"zh-CN",t:{}},{l:"zh-HK",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["複製到剪貼簿"]}}},{l:"zh-TW",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["複製到剪貼簿"]}}}];F2(B2);const j2=2e3;function H2(t){const e=Qe(!1),i=se(()=>e.value?Zw:Qw),o=se(()=>e.value?jh("Copied"):jh("Copy to clipboard"));async function r(){if(e.value)return;const s=mg(t);try{await navigator.clipboard.writeText(s)}catch{prompt("",s)}e.value=!0,setTimeout(()=>{e.value=!1},j2)}return{isCopied:e,copy:r,icon:i,altText:o}}const U2={class:"hidden-visually"},Sa=Yt({__name:"NcFormBoxCopyButton",props:{label:{default:()=>{}},value:{},disabled:{type:Boolean,default:!1}},emits:["copy"],setup(t,{emit:e}){const i=e,{isCopied:o,copy:r,icon:s,altText:n}=H2(()=>t.value);return Yw(o,()=>i("copy")),(a,l)=>(H(),le(L2,{disabled:t.disabled,invertedAccent:"",onClick:M(r)},El({description:Oe(()=>[bt(P(t.value),1)]),icon:Oe(()=>[at(tc,{path:M(s),inline:""},null,8,["path"])]),_:2},[a.$slots.default||t.label?{name:"default",fn:Oe(()=>[x("span",U2,P(M(n)),1),Ge(a.$slots,"default",{},()=>[bt(P(t.label),1)])]),key:"0"}:void 0]),1032,["disabled","onClick"]))}}),z2=` + + +`,V2=Yt({__name:"NcIconToggleSwitch",props:{checked:{type:Boolean},size:{default:34},inline:{type:Boolean,default:!1}},setup(t){Nf(o=>({v6bd152af:e.value,v16fd8ca9:i.value}));const e=se(()=>t.checked?"var(--color-primary-element)":"var(--color-text-maxcontrast)"),i=se(()=>t.checked?"calc(17 / 24 * 100%)":"calc(7 / 24 * 100%)");return(o,r)=>(H(),le(tc,{class:De(o.$style.iconToggleSwitch),svg:z2,size:t.size,inline:t.inline},null,8,["class","size","inline"]))}}),W2="_iconToggleSwitch_IKWaj",q2={"material-design-icon":"_material-design-icon_63AMQ",iconToggleSwitch:W2},G2={$style:q2},K2=Co(V2,[["__cssModules",G2]]),X2=["id","aria-describedby","disabled"],Y2=Yt({__name:"NcFormBoxSwitch",props:Pc({label:{default:()=>{}},description:{default:()=>{}},disabled:{type:Boolean,default:!1}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:Pc(["enable","disable"],["update:modelValue"]),setup(t,{emit:e}){const i=i0(t,"modelValue"),o=e,r=Ql();return Ni(i,()=>{i.value?o("enable"):o("disable")},{flush:"sync"}),(s,n)=>(H(),le(Np,{tag:"label",for:M(r)},El({icon:Oe(({descriptionId:a})=>[kg(x("input",{id:M(r),"onUpdate:modelValue":n[0]||(n[0]=l=>i.value=l),class:De(s.$style.formBoxSwitch__input),type:"checkbox",role:"switch","aria-describedby":a,disabled:t.disabled},null,10,X2),[[J0,i.value]]),at(K2,{checked:i.value,inline:""},null,8,["checked"])]),_:2},[s.$slots.default||t.label?{name:"default",fn:Oe(()=>[Ge(s.$slots,"default",{},()=>[bt(P(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:Oe(()=>[Ge(s.$slots,"description",{},()=>[bt(P(t.description),1)])]),key:"1"}:void 0]),1032,["for"]))}}),J2="_formBoxSwitch__input_n8432",Z2={"material-design-icon":"_material-design-icon_v0XYD",formBoxSwitch__input:J2},Q2={$style:Z2},Ca=Co(Y2,[["__cssModules",Q2]]),tS=["aria-describedby"],eS=Yt({__name:"NcFormGroup",props:{label:{default:()=>{}},description:{default:()=>{}},hideLabel:{type:Boolean,default:!1},hideDescription:{type:Boolean,default:!1},noGap:{type:Boolean,default:!1}},setup(t){const e=lf(),i=`${`nc-form-group-${Ql()}`}-description`,o=()=>!!t.description||!!e.description,r=()=>o()?i:void 0,s=()=>t.hideLabel&&(!o()||t.hideDescription);return(n,a)=>(H(),G("fieldset",{class:De([n.$style.formGroup,{[n.$style.formGroup_noGap]:t.noGap}]),"aria-describedby":r()},[x("legend",{class:De([n.$style.formGroup__label,{"hidden-visually":t.hideLabel}])},[Ge(n.$slots,"label",{},()=>[bt(P(t.label||"⚠️ Missing label"),1)])],2),o()?(H(),G("div",{key:0,id:i,class:De([n.$style.formGroup__description,{"hidden-visually":t.hideDescription}])},[Ge(n.$slots,"description",{},()=>[bt(P(t.description),1)])],2)):Ct("",!0),x("div",{class:De([n.$style.formGroup__content,{[n.$style.formGroup__content_only]:s()}])},[Ge(n.$slots,"default")],2)],10,tS))}}),iS="_formGroup_P4ub1",oS="_formGroup_noGap_I25Tm",rS="_formGroup__label_dvGhm",sS="_formGroup__description_rqVc0",nS="_formGroup__content_fnqsg",aS="_formGroup__content_only_G-Ivq",lS={"material-design-icon":"_material-design-icon_2NWOj",formGroup:iS,formGroup_noGap:oS,formGroup__label:rS,formGroup__description:sS,formGroup__content:nS,formGroup__content_only:aS},cS={$style:lS},Hh=Co(eS,[["__cssModules",cS]]),uS={name:"ConnectionIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},hS=["aria-hidden","aria-label"],dS=["fill","width","height"],fS={d:"M21.4 7.5C22.2 8.3 22.2 9.6 21.4 10.3L18.6 13.1L10.8 5.3L13.6 2.5C14.4 1.7 15.7 1.7 16.4 2.5L18.2 4.3L21.2 1.3L22.6 2.7L19.6 5.7L21.4 7.5M15.6 13.3L14.2 11.9L11.4 14.7L9.3 12.6L12.1 9.8L10.7 8.4L7.9 11.2L6.4 9.8L3.6 12.6C2.8 13.4 2.8 14.7 3.6 15.4L5.4 17.2L1.4 21.2L2.8 22.6L6.8 18.6L8.6 20.4C9.4 21.2 10.7 21.2 11.4 20.4L14.2 17.6L12.8 16.2L15.6 13.3Z"},pS={key:0};function mS(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon connection-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",fS,[i.title?(H(),G("title",pS,P(i.title),1)):Ct("",!0)])],8,dS))],16,hS)}const gS=he(uS,[["render",mS]]),bS={class:"section monitoring"},Uh="NC-Token",yS=Yt({__name:"MonitoringSection",props:{ocs:{}},setup(t){const e=t,i=Array.from(crypto.getRandomValues(new Uint8Array(32)),a=>a.toString(16).padStart(2,"0")).join(""),o=Qe(!1),r=Qe(!0),s=Qe(!0),n=se(()=>{try{const a=new URL(e.ocs);return o.value&&a.searchParams.set("format","json"),r.value||a.searchParams.set("skipApps","false"),s.value||a.searchParams.set("skipUpdate","false"),a.toString()}catch{return e.ocs}});return(a,l)=>(H(),G("div",bS,[at(Xe,{icon:gS,title:M(W)("serverinfo","External monitoring API")},null,8,["title"]),at(M(xa),null,{default:Oe(()=>[at(M(Sa),{label:M(W)("serverinfo","Endpoint URL"),value:n.value},null,8,["label","value"])]),_:1}),at(M(Hh),{label:M(W)("serverinfo","Configuration")},{default:Oe(()=>[at(M(xa),null,{default:Oe(()=>[at(M(Ca),{modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=u=>o.value=u),label:M(W)("serverinfo","Output in JSON")},null,8,["modelValue","label"]),at(M(Ca),{modelValue:r.value,"onUpdate:modelValue":l[1]||(l[1]=u=>r.value=u),label:M(W)("serverinfo","Skip apps section"),description:M(W)("serverinfo","Including the apps section sends an external request to the app store")},null,8,["modelValue","label","description"]),at(M(Ca),{modelValue:s.value,"onUpdate:modelValue":l[2]||(l[2]=u=>s.value=u),label:M(W)("serverinfo","Skip server update")},null,8,["modelValue","label"])]),_:1})]),_:1},8,["label"]),at(M(Hh),{label:M(W)("serverinfo","Authentication"),description:M(W)("serverinfo","This token was generated in your browser and is not stored until you run the command below. Send it in the {header} header with every request.",{header:Uh})},{default:Oe(()=>[at(M(xa),null,{default:Oe(()=>[at(M(Sa),{label:M(W)("serverinfo","Command to store the token"),value:`occ config:app:set serverinfo token --value ${M(i)}`},null,8,["label","value"]),at(M(Sa),{label:M(W)("serverinfo","Request header"),value:`${Uh}: ${M(i)}`},null,8,["label","value"])]),_:1})]),_:1},8,["label","description"])]))}}),_S=he(yS,[["__scopeId","data-v-94a398b4"]]),vS={name:"LanIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xS=["aria-hidden","aria-label"],wS=["fill","width","height"],SS={d:"M10,2C8.89,2 8,2.89 8,4V7C8,8.11 8.89,9 10,9H11V11H2V13H6V15H5C3.89,15 3,15.89 3,17V20C3,21.11 3.89,22 5,22H9C10.11,22 11,21.11 11,20V17C11,15.89 10.11,15 9,15H8V13H16V15H15C13.89,15 13,15.89 13,17V20C13,21.11 13.89,22 15,22H19C20.11,22 21,21.11 21,20V17C21,15.89 20.11,15 19,15H18V13H22V11H13V9H14C15.11,9 16,8.11 16,7V4C16,2.89 15.11,2 14,2H10M10,4H14V7H10V4M5,17H9V20H5V17M15,17H19V20H15V17Z"},CS={key:0};function ES(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon lan-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",SS,[i.title?(H(),G("title",CS,P(i.title),1)):Ct("",!0)])],8,wS))],16,xS)}const TS=he(vS,[["render",ES]]),OS={class:"section network-infos"},kS={class:"info"},AS={class:"info"},RS={class:"info"},MS={class:"row row--cards"},IS={class:"infobox"},PS={class:"interface-wrapper"},LS={class:"info"},NS={class:"info"},DS={class:"info"},$S={class:"info"},FS={class:"info"},BS=Yt({__name:"NetworkSection",props:{networkinfo:{},interfaces:{}},setup(t){return(e,i)=>(H(),G("div",OS,[at(Xe,{icon:TS,title:M(W)("serverinfo","Network")},null,8,["title"]),x("div",null,[bt(P(M(W)("serverinfo","Hostname:"))+" ",1),x("span",kS,P(t.networkinfo.hostname),1)]),x("div",null,[bt(P(M(W)("serverinfo","Gateway:"))+" ",1),x("span",AS,P(t.networkinfo.gateway),1)]),x("div",null,[bt(P(M(W)("serverinfo","DNS:"))+" ",1),x("span",RS,P(t.networkinfo.dns),1)]),x("div",MS,[(H(!0),G(St,null,On(t.interfaces,o=>(H(),G("div",{key:o.name},[x("div",IS,[x("div",PS,[x("h3",null,P(o.name),1),bt(" "+P(M(W)("serverinfo","Status:"))+" ",1),x("span",LS,P(o.up?"up":"down"),1),i[1]||(i[1]=x("br",null,null,-1)),bt(" "+P(M(W)("serverinfo","Speed:"))+" ",1),x("span",NS,P(o.speed)+" ("+P(M(W)("serverinfo","Duplex:"))+" "+P(o.duplex)+")",1),i[2]||(i[2]=x("br",null,null,-1)),o.mac?(H(),G(St,{key:0},[bt(P(M(W)("serverinfo","MAC:"))+" ",1),x("span",DS,P(o.mac),1),i[0]||(i[0]=x("br",null,null,-1))],64)):Ct("",!0),bt(" "+P(M(W)("serverinfo","IPv4:"))+" ",1),x("span",$S,P(o.ipv4.join(", ")),1),i[3]||(i[3]=x("br",null,null,-1)),bt(" "+P(M(W)("serverinfo","IPv6:"))+" ",1),x("span",FS,P(o.ipv6.join(", ")),1)])])]))),128))])]))}}),jS={name:"PuzzleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},HS=["aria-hidden","aria-label"],US=["fill","width","height"],zS={d:"M20.5,11H19V7C19,5.89 18.1,5 17,5H13V3.5A2.5,2.5 0 0,0 10.5,1A2.5,2.5 0 0,0 8,3.5V5H4A2,2 0 0,0 2,7V10.8H3.5C5,10.8 6.2,12 6.2,13.5C6.2,15 5,16.2 3.5,16.2H2V20A2,2 0 0,0 4,22H7.8V20.5C7.8,19 9,17.8 10.5,17.8C12,17.8 13.2,19 13.2,20.5V22H17A2,2 0 0,0 19,20V16H20.5A2.5,2.5 0 0,0 23,13.5A2.5,2.5 0 0,0 20.5,11Z"},VS={key:0};function WS(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon puzzle-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",zS,[i.title?(H(),G("title",VS,P(i.title),1)):Ct("",!0)])],8,US))],16,HS)}const qS=he(jS,[["render",WS]]),GS={class:"server-info__tag-wrapper"},KS=Yt({__name:"PhpExtensionsSection",props:{extensions:{}},setup(t){return(e,i)=>(H(),G(St,null,[at(Xe,{icon:qS,title:M(W)("serverinfo","PHP extensions")},null,8,["title"]),x("div",GS,[t.extensions?(H(!0),G(St,{key:0},On(t.extensions,o=>(H(),G("span",{key:o,class:"server-info__php-extension-tag"},P(o),1))),128)):(H(),G(St,{key:1},[bt(P(M(W)("serverinfo","Unable to list extensions")),1)],64))])],64))}}),XS={name:"CogsIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},YS=["aria-hidden","aria-label"],JS=["fill","width","height"],ZS={d:"M15.9,18.45C17.25,18.45 18.35,17.35 18.35,16C18.35,14.65 17.25,13.55 15.9,13.55C14.54,13.55 13.45,14.65 13.45,16C13.45,17.35 14.54,18.45 15.9,18.45M21.1,16.68L22.58,17.84C22.71,17.95 22.75,18.13 22.66,18.29L21.26,20.71C21.17,20.86 21,20.92 20.83,20.86L19.09,20.16C18.73,20.44 18.33,20.67 17.91,20.85L17.64,22.7C17.62,22.87 17.47,23 17.3,23H14.5C14.32,23 14.18,22.87 14.15,22.7L13.89,20.85C13.46,20.67 13.07,20.44 12.71,20.16L10.96,20.86C10.81,20.92 10.62,20.86 10.54,20.71L9.14,18.29C9.05,18.13 9.09,17.95 9.22,17.84L10.7,16.68L10.65,16L10.7,15.31L9.22,14.16C9.09,14.05 9.05,13.86 9.14,13.71L10.54,11.29C10.62,11.13 10.81,11.07 10.96,11.13L12.71,11.84C13.07,11.56 13.46,11.32 13.89,11.15L14.15,9.29C14.18,9.13 14.32,9 14.5,9H17.3C17.47,9 17.62,9.13 17.64,9.29L17.91,11.15C18.33,11.32 18.73,11.56 19.09,11.84L20.83,11.13C21,11.07 21.17,11.13 21.26,11.29L22.66,13.71C22.75,13.86 22.71,14.05 22.58,14.16L21.1,15.31L21.15,16L21.1,16.68M6.69,8.07C7.56,8.07 8.26,7.37 8.26,6.5C8.26,5.63 7.56,4.92 6.69,4.92A1.58,1.58 0 0,0 5.11,6.5C5.11,7.37 5.82,8.07 6.69,8.07M10.03,6.94L11,7.68C11.07,7.75 11.09,7.87 11.03,7.97L10.13,9.53C10.08,9.63 9.96,9.67 9.86,9.63L8.74,9.18L8,9.62L7.81,10.81C7.79,10.92 7.7,11 7.59,11H5.79C5.67,11 5.58,10.92 5.56,10.81L5.4,9.62L4.64,9.18L3.5,9.63C3.41,9.67 3.3,9.63 3.24,9.53L2.34,7.97C2.28,7.87 2.31,7.75 2.39,7.68L3.34,6.94L3.31,6.5L3.34,6.06L2.39,5.32C2.31,5.25 2.28,5.13 2.34,5.03L3.24,3.47C3.3,3.37 3.41,3.33 3.5,3.37L4.63,3.82L5.4,3.38L5.56,2.19C5.58,2.08 5.67,2 5.79,2H7.59C7.7,2 7.79,2.08 7.81,2.19L8,3.38L8.74,3.82L9.86,3.37C9.96,3.33 10.08,3.37 10.13,3.47L11.03,5.03C11.09,5.13 11.07,5.25 11,5.32L10.03,6.06L10.06,6.5L10.03,6.94Z"},QS={key:0};function tC(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon cogs-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",ZS,[i.title?(H(),G("title",QS,P(i.title),1)):Ct("",!0)])],8,JS))],16,YS)}const eC=he(XS,[["render",tC]]),iC={name:"LanguagePhpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},oC=["aria-hidden","aria-label"],rC=["fill","width","height"],sC={d:"M12,18.08C5.37,18.08 0,15.36 0,12C0,8.64 5.37,5.92 12,5.92C18.63,5.92 24,8.64 24,12C24,15.36 18.63,18.08 12,18.08M6.81,10.13C7.35,10.13 7.72,10.23 7.9,10.44C8.08,10.64 8.12,11 8.03,11.47C7.93,12 7.74,12.34 7.45,12.56C7.17,12.78 6.74,12.89 6.16,12.89H5.29L5.82,10.13H6.81M3.31,15.68H4.75L5.09,13.93H6.32C6.86,13.93 7.3,13.87 7.65,13.76C8,13.64 8.32,13.45 8.61,13.18C8.85,12.96 9.04,12.72 9.19,12.45C9.34,12.19 9.45,11.89 9.5,11.57C9.66,10.79 9.55,10.18 9.17,9.75C8.78,9.31 8.18,9.1 7.35,9.1H4.59L3.31,15.68M10.56,7.35L9.28,13.93H10.7L11.44,10.16H12.58C12.94,10.16 13.18,10.22 13.29,10.34C13.4,10.46 13.42,10.68 13.36,11L12.79,13.93H14.24L14.83,10.86C14.96,10.24 14.86,9.79 14.56,9.5C14.26,9.23 13.71,9.1 12.91,9.1H11.64L12,7.35H10.56M18,10.13C18.55,10.13 18.91,10.23 19.09,10.44C19.27,10.64 19.31,11 19.22,11.47C19.12,12 18.93,12.34 18.65,12.56C18.36,12.78 17.93,12.89 17.35,12.89H16.5L17,10.13H18M14.5,15.68H15.94L16.28,13.93H17.5C18.05,13.93 18.5,13.87 18.85,13.76C19.2,13.64 19.5,13.45 19.8,13.18C20.04,12.96 20.24,12.72 20.38,12.45C20.53,12.19 20.64,11.89 20.7,11.57C20.85,10.79 20.74,10.18 20.36,9.75C20,9.31 19.37,9.1 18.54,9.1H15.79L14.5,15.68Z"},nC={key:0};function aC(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon language-php-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",sC,[i.title?(H(),G("title",nC,P(i.title),1)):Ct("",!0)])],8,rC))],16,oC)}const lC=he(iC,[["render",aC]]),cC={class:"server-info-table"},uC={class:"info"},hC={class:"info"},dC={class:"info"},fC={class:"info"},pC={class:"info"},mC={key:0},gC=["href"],bC={class:"server-info-table"},yC={class:"info"},_C={class:"info"},vC={class:"info"},xC={class:"info"},wC={class:"info"},SC={class:"info"},CC={class:"info"},EC={class:"info"},TC={class:"info"},OC={class:"info"},kC={class:"info"},AC={class:"info"},RC=Yt({__name:"PhpSection",props:{php:{},fpm:{type:[Object,Boolean]},phpinfo:{type:Boolean},phpinfoUrl:{}},setup(t){return(e,i)=>(H(),G(St,null,[at(Xe,{icon:lC,title:M(W)("serverinfo","PHP")},null,8,["title"]),x("div",cC,[x("table",null,[x("tbody",null,[x("tr",null,[x("td",null,P(M(W)("serverinfo","Version:")),1),x("td",uC,P(t.php.version),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Memory limit:")),1),x("td",hC,P(M(Gi)(t.php.memory_limit)),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Max execution time:")),1),x("td",dC,P(t.php.max_execution_time)+" "+P(M(W)("serverinfo","seconds")),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Upload max size:")),1),x("td",fC,P(M(Gi)(t.php.upload_max_filesize)),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","OPcache Revalidate Frequency:")),1),x("td",pC,P(t.php.opcache_revalidate_freq)+" "+P(M(W)("serverinfo","seconds")),1)]),t.phpinfo?(H(),G("tr",mC,[x("td",null,P(M(W)("serverinfo","PHP Info:")),1),x("td",null,[x("a",{class:"info",target:"_blank",rel:"noopener noreferrer",href:t.phpinfoUrl},P(M(W)("serverinfo","Show phpinfo")),9,gC)])])):Ct("",!0)])])]),t.fpm!==!1?(H(),G(St,{key:0},[at(Xe,{icon:eC,title:M(W)("serverinfo","FPM worker pool")},null,8,["title"]),x("div",bC,[x("table",null,[x("tbody",null,[x("tr",null,[x("td",null,P(M(W)("serverinfo","Pool name:")),1),x("td",yC,P(t.fpm.pool),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Pool type:")),1),x("td",_C,P(t.fpm["process-manager"]),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Start time:")),1),x("td",vC,P(t.fpm["start-time"]),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Accepted connections:")),1),x("td",xC,P(t.fpm["accepted-conn"]),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Total processes:")),1),x("td",wC,P(t.fpm["total-processes"]),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Active processes:")),1),x("td",SC,P(t.fpm["active-processes"]),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Idle processes:")),1),x("td",CC,P(t.fpm["idle-processes"]),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Listen queue:")),1),x("td",EC,P(t.fpm["listen-queue"]),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Slow requests:")),1),x("td",TC,P(t.fpm["slow-requests"]),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Max listen queue:")),1),x("td",OC,P(t.fpm["max-listen-queue"]),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Max active processes:")),1),x("td",kC,P(t.fpm["max-active-processes"]),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Max children reached:")),1),x("td",AC,P(t.fpm["max-children-reached"]),1)])])])])],64)):Ct("",!0)],64))}}),MC={},IC={class:"section section-skeleton","aria-busy":"true"};function PC(t,e){return H(),G("div",IC,[...e[0]||(e[0]=[x("div",{class:"skeleton-bar skeleton-title"},null,-1),x("div",{class:"skeleton-bar skeleton-chart"},null,-1)])])}const Je=he(MC,[["render",PC],["__scopeId","data-v-9a2b13f0"]]),LC={name:"ShareVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},NC=["aria-hidden","aria-label"],DC=["fill","width","height"],$C={d:"M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z"},FC={key:0};function BC(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon share-variant-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",$C,[i.title?(H(),G("title",FC,P(i.title),1)):Ct("",!0)])],8,DC))],16,NC)}const jC=he(LC,[["render",BC]]),HC={class:"section network-infos"},UC={class:"row row--cards"},zC={class:"infobox"},VC={class:"interface-wrapper"},WC={class:"info"},qC={class:"info"},GC={class:"info"},KC={class:"info"},XC={class:"info"},YC={class:"info"},JC={class:"info"},ZC=Yt({__name:"SharesSection",props:{shares:{}},setup(t){return(e,i)=>(H(),G("div",HC,[at(Xe,{icon:jC,title:M(W)("serverinfo","Shares")},null,8,["title"]),x("div",UC,[x("div",null,[x("div",zC,[x("div",VC,[t.shares.num_shares_user>0?(H(),G(St,{key:0},[bt(P(M(W)("serverinfo","Users:"))+" ",1),x("span",WC,P(t.shares.num_shares_user),1),i[0]||(i[0]=x("br",null,null,-1))],64)):Ct("",!0),t.shares.num_shares_groups>0?(H(),G(St,{key:1},[bt(P(M(W)("serverinfo","Groups:"))+" ",1),x("span",qC,P(t.shares.num_shares_groups),1),i[1]||(i[1]=x("br",null,null,-1))],64)):Ct("",!0),t.shares.num_shares_link>0?(H(),G(St,{key:2},[bt(P(M(W)("serverinfo","Links:"))+" ",1),x("span",GC,P(t.shares.num_shares_link),1),i[2]||(i[2]=x("br",null,null,-1))],64)):Ct("",!0),t.shares.num_shares_mail>0?(H(),G(St,{key:3},[bt(P(M(W)("serverinfo","Emails:"))+" ",1),x("span",KC,P(t.shares.num_shares_mail),1),i[3]||(i[3]=x("br",null,null,-1))],64)):Ct("",!0),t.shares.num_fed_shares_sent>0?(H(),G(St,{key:4},[bt(P(M(W)("serverinfo","Federated sent:"))+" ",1),x("span",XC,P(t.shares.num_fed_shares_sent),1),i[4]||(i[4]=x("br",null,null,-1))],64)):Ct("",!0),t.shares.num_fed_shares_received>0?(H(),G(St,{key:5},[bt(P(M(W)("serverinfo","Federated received:"))+" ",1),x("span",YC,P(t.shares.num_fed_shares_received),1),i[5]||(i[5]=x("br",null,null,-1))],64)):Ct("",!0),t.shares.num_shares_room>0?(H(),G(St,{key:6},[bt(P(M(W)("serverinfo","Talk conversations:"))+" ",1),x("span",JC,P(t.shares.num_shares_room),1),i[6]||(i[6]=x("br",null,null,-1))],64)):Ct("",!0)])])])])]))}}),QC={name:"MonitorIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},tE=["aria-hidden","aria-label"],eE=["fill","width","height"],iE={d:"M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z"},oE={key:0};function rE(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon monitor-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",iE,[i.title?(H(),G("title",oE,P(i.title),1)):Ct("",!0)])],8,eE))],16,tE)}const sE=he(QC,[["render",rE]]),nE={class:"server-info-table"},aE={class:"info"},lE={class:"info"},cE={key:0},uE={class:"info"},hE={class:"info"},dE={class:"info"},fE=Yt({__name:"SystemSection",props:{hostname:{},osname:{},cpu:{},memTotal:{},servertime:{},uptime:{}},setup(t){return(e,i)=>(H(),G(St,null,[at(Xe,{icon:sE,title:t.hostname},null,8,["title"]),x("div",nE,[x("table",null,[x("tbody",null,[x("tr",null,[x("td",null,P(M(W)("serverinfo","Operating System:")),1),x("td",aE,P(t.osname),1)]),x("tr",null,[x("td",null,P(M(W)("serverinfo","CPU:")),1),x("td",lE,P(M(W)("serverinfo","{name} ({threads} threads)",{name:t.cpu.name,threads:t.cpu.threads})),1)]),t.memTotal>0?(H(),G("tr",cE,[x("td",null,P(M(W)("serverinfo","Memory:")),1),x("td",uE,P(M(co)(t.memTotal)),1)])):Ct("",!0),x("tr",null,[x("td",null,P(M(W)("serverinfo","Server time:")),1),x("td",null,[x("span",hE,P(t.servertime),1)])]),x("tr",null,[x("td",null,P(M(W)("serverinfo","Uptime:")),1),x("td",null,[x("span",dE,P(t.uptime),1)])])])])])],64))}}),pE={name:"ThermometerIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},mE=["aria-hidden","aria-label"],gE=["fill","width","height"],bE={d:"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V8H11V5A1 1 0 0 1 12 4Z"},yE={key:0};function _E(t,e,i,o,r,s){return H(),G("span",Ie(t.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon thermometer-icon",role:"img",onClick:e[0]||(e[0]=n=>t.$emit("click",n))}),[(H(),G("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[x("path",bE,[i.title?(H(),G("title",yE,P(i.title),1)):Ct("",!0)])],8,gE))],16,mE)}const vE=he(pE,[["render",_E]]),xE={class:"table-wrapper"},wE={class:"server-infos-table"},SE={class:"info"},CE=Yt({__name:"ThermalSection",props:{thermalzones:{}},setup(t){return(e,i)=>(H(),G(St,null,[at(Xe,{icon:vE,title:M(W)("serverinfo","Temperature")},null,8,["title"]),x("div",xE,[x("table",wE,[x("tbody",null,[(H(!0),G(St,null,On(t.thermalzones,o=>(H(),G("tr",{key:o.zone},[x("td",null,P(o.type)+":",1),x("td",null,[i[0]||(i[0]=bt(" ",-1)),x("span",SE,P(o.temp),1),i[1]||(i[1]=bt("°C",-1))])]))),128))])])])],64))}});function EE(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Bp={exports:{}},oe=Bp.exports={},bi,yi;function ll(){throw new Error("setTimeout has not been defined")}function cl(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?bi=setTimeout:bi=ll}catch{bi=ll}try{typeof clearTimeout=="function"?yi=clearTimeout:yi=cl}catch{yi=cl}})();function jp(t){if(bi===setTimeout)return setTimeout(t,0);if((bi===ll||!bi)&&setTimeout)return bi=setTimeout,setTimeout(t,0);try{return bi(t,0)}catch{try{return bi.call(null,t,0)}catch{return bi.call(this,t,0)}}}function TE(t){if(yi===clearTimeout)return clearTimeout(t);if((yi===cl||!yi)&&clearTimeout)return yi=clearTimeout,clearTimeout(t);try{return yi(t)}catch{try{return yi.call(null,t)}catch{return yi.call(this,t)}}}var Li=[],Vo=!1,fo,Bs=-1;function OE(){!Vo||!fo||(Vo=!1,fo.length?Li=fo.concat(Li):Bs=-1,Li.length&&Hp())}function Hp(){if(!Vo){var t=jp(OE);Vo=!0;for(var e=Li.length;e;){for(fo=Li,Li=[];++Bs1)for(var i=1;iconsole.error("SEMVER",...e):()=>{},Ea}var Ta,Vh;function Vp(){if(Vh)return Ta;Vh=1;const t="2.0.0",e=256,i=Number.MAX_SAFE_INTEGER||9007199254740991,o=16,r=e-6;return Ta={MAX_LENGTH:e,MAX_SAFE_COMPONENT_LENGTH:o,MAX_SAFE_BUILD_LENGTH:r,MAX_SAFE_INTEGER:i,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},Ta}var Oa={exports:{}},Wh;function AE(){return Wh||(Wh=1,(function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:o,MAX_LENGTH:r}=Vp(),s=zp();e=t.exports={};const n=e.re=[],a=e.safeRe=[],l=e.src=[],u=e.safeSrc=[],c=e.t={};let d=0;const p="[a-zA-Z0-9-]",g=[["\\s",1],["\\d",r],[p,o]],v=C=>{for(const[_,k]of g)C=C.split(`${_}*`).join(`${_}{0,${k}}`).split(`${_}+`).join(`${_}{1,${k}}`);return C},b=(C,_,k)=>{const I=v(_),T=d++;s(C,T,_),c[C]=T,l[T]=_,u[T]=I,n[T]=new RegExp(_,k?"g":void 0),a[T]=new RegExp(I,k?"g":void 0)};b("NUMERICIDENTIFIER","0|[1-9]\\d*"),b("NUMERICIDENTIFIERLOOSE","\\d+"),b("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${p}*`),b("MAINVERSION",`(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})`),b("MAINVERSIONLOOSE",`(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})`),b("PRERELEASEIDENTIFIER",`(?:${l[c.NONNUMERICIDENTIFIER]}|${l[c.NUMERICIDENTIFIER]})`),b("PRERELEASEIDENTIFIERLOOSE",`(?:${l[c.NONNUMERICIDENTIFIER]}|${l[c.NUMERICIDENTIFIERLOOSE]})`),b("PRERELEASE",`(?:-(${l[c.PRERELEASEIDENTIFIER]}(?:\\.${l[c.PRERELEASEIDENTIFIER]})*))`),b("PRERELEASELOOSE",`(?:-?(${l[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[c.PRERELEASEIDENTIFIERLOOSE]})*))`),b("BUILDIDENTIFIER",`${p}+`),b("BUILD",`(?:\\+(${l[c.BUILDIDENTIFIER]}(?:\\.${l[c.BUILDIDENTIFIER]})*))`),b("FULLPLAIN",`v?${l[c.MAINVERSION]}${l[c.PRERELEASE]}?${l[c.BUILD]}?`),b("FULL",`^${l[c.FULLPLAIN]}$`),b("LOOSEPLAIN",`[v=\\s]*${l[c.MAINVERSIONLOOSE]}${l[c.PRERELEASELOOSE]}?${l[c.BUILD]}?`),b("LOOSE",`^${l[c.LOOSEPLAIN]}$`),b("GTLT","((?:<|>)?=?)"),b("XRANGEIDENTIFIERLOOSE",`${l[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),b("XRANGEIDENTIFIER",`${l[c.NUMERICIDENTIFIER]}|x|X|\\*`),b("XRANGEPLAIN",`[v=\\s]*(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:${l[c.PRERELEASE]})?${l[c.BUILD]}?)?)?`),b("XRANGEPLAINLOOSE",`[v=\\s]*(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:${l[c.PRERELEASELOOSE]})?${l[c.BUILD]}?)?)?`),b("XRANGE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAIN]}$`),b("XRANGELOOSE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAINLOOSE]}$`),b("COERCEPLAIN",`(^|[^\\d])(\\d{1,${i}})(?:\\.(\\d{1,${i}}))?(?:\\.(\\d{1,${i}}))?`),b("COERCE",`${l[c.COERCEPLAIN]}(?:$|[^\\d])`),b("COERCEFULL",l[c.COERCEPLAIN]+`(?:${l[c.PRERELEASE]})?(?:${l[c.BUILD]})?(?:$|[^\\d])`),b("COERCERTL",l[c.COERCE],!0),b("COERCERTLFULL",l[c.COERCEFULL],!0),b("LONETILDE","(?:~>?)"),b("TILDETRIM",`(\\s*)${l[c.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",b("TILDE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAIN]}$`),b("TILDELOOSE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAINLOOSE]}$`),b("LONECARET","(?:\\^)"),b("CARETTRIM",`(\\s*)${l[c.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",b("CARET",`^${l[c.LONECARET]}${l[c.XRANGEPLAIN]}$`),b("CARETLOOSE",`^${l[c.LONECARET]}${l[c.XRANGEPLAINLOOSE]}$`),b("COMPARATORLOOSE",`^${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]})$|^$`),b("COMPARATOR",`^${l[c.GTLT]}\\s*(${l[c.FULLPLAIN]})$|^$`),b("COMPARATORTRIM",`(\\s*)${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]}|${l[c.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",b("HYPHENRANGE",`^\\s*(${l[c.XRANGEPLAIN]})\\s+-\\s+(${l[c.XRANGEPLAIN]})\\s*$`),b("HYPHENRANGELOOSE",`^\\s*(${l[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[c.XRANGEPLAINLOOSE]})\\s*$`),b("STAR","(<|>)?=?\\s*\\*"),b("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),b("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Oa,Oa.exports)),Oa.exports}var ka,qh;function RE(){if(qh)return ka;qh=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return ka=i=>i?typeof i!="object"?t:i:e,ka}var Aa,Gh;function ME(){if(Gh)return Aa;Gh=1;const t=/^[0-9]+$/,e=(i,o)=>{if(typeof i=="number"&&typeof o=="number")return i===o?0:ie(o,i)},Aa}var Ra,Kh;function Wp(){if(Kh)return Ra;Kh=1;const t=zp(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:i}=Vp(),{safeRe:o,t:r}=AE(),s=RE(),{compareIdentifiers:n}=ME();class a{constructor(u,c){if(c=s(c),u instanceof a){if(u.loose===!!c.loose&&u.includePrerelease===!!c.includePrerelease)return u;u=u.version}else if(typeof u!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof u}".`);if(u.length>e)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",u,c),this.options=c,this.loose=!!c.loose,this.includePrerelease=!!c.includePrerelease;const d=u.trim().match(c.loose?o[r.LOOSE]:o[r.FULL]);if(!d)throw new TypeError(`Invalid Version: ${u}`);if(this.raw=u,this.major=+d[1],this.minor=+d[2],this.patch=+d[3],this.major>i||this.major<0)throw new TypeError("Invalid major version");if(this.minor>i||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>i||this.patch<0)throw new TypeError("Invalid patch version");d[4]?this.prerelease=d[4].split(".").map(p=>{if(/^[0-9]+$/.test(p)){const g=+p;if(g>=0&&gu.major?1:this.minoru.minor?1:this.patchu.patch?1:0}comparePre(u){if(u instanceof a||(u=new a(u,this.options)),this.prerelease.length&&!u.prerelease.length)return-1;if(!this.prerelease.length&&u.prerelease.length)return 1;if(!this.prerelease.length&&!u.prerelease.length)return 0;let c=0;do{const d=this.prerelease[c],p=u.prerelease[c];if(t("prerelease compare",c,d,p),d===void 0&&p===void 0)return 0;if(p===void 0)return 1;if(d===void 0)return-1;if(d!==p)return n(d,p)}while(++c)}compareBuild(u){u instanceof a||(u=new a(u,this.options));let c=0;do{const d=this.build[c],p=u.build[c];if(t("build compare",c,d,p),d===void 0&&p===void 0)return 0;if(p===void 0)return 1;if(d===void 0)return-1;if(d!==p)return n(d,p)}while(++c)}inc(u,c,d){if(u.startsWith("pre")){if(!c&&d===!1)throw new Error("invalid increment argument: identifier is empty");if(c){const p=`-${c}`.match(this.options.loose?o[r.PRERELEASELOOSE]:o[r.PRERELEASE]);if(!p||p[1]!==c)throw new Error(`invalid identifier: ${c}`)}}switch(u){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",c,d);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",c,d);break;case"prepatch":this.prerelease.length=0,this.inc("patch",c,d),this.inc("pre",c,d);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",c,d),this.inc("pre",c,d);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const p=Number(d)?1:0;if(this.prerelease.length===0)this.prerelease=[p];else{let g=this.prerelease.length;for(;--g>=0;)typeof this.prerelease[g]=="number"&&(this.prerelease[g]++,g=-2);if(g===-1){if(c===this.prerelease.join(".")&&d===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(p)}}if(c){let g=[c,p];d===!1&&(g=[c]),n(this.prerelease[0],c)===0?isNaN(this.prerelease[1])&&(this.prerelease=g):this.prerelease=g}break}default:throw new Error(`invalid increment argument: ${u}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return Ra=a,Ra}var Ma,Xh;function IE(){if(Xh)return Ma;Xh=1;const t=Wp();return Ma=(e,i)=>new t(e,i).major,Ma}var PE=IE();const Yh=Rl(PE);var Ia,Jh;function LE(){if(Jh)return Ia;Jh=1;const t=Wp();return Ia=(e,i,o=!1)=>{if(e instanceof t)return e;try{return new t(e,i)}catch(r){if(!o)return null;throw r}},Ia}var Pa,Zh;function NE(){if(Zh)return Pa;Zh=1;const t=LE();return Pa=(e,i)=>{const o=t(e,i);return o?o.version:null},Pa}var DE=NE();const $E=Rl(DE);class FE{bus;constructor(e){typeof e.getVersion!="function"||!$E(e.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):Yh(e.getVersion())!==Yh(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()),this.bus=e}getVersion(){return"3.3.3"}subscribe(e,i){this.bus.subscribe(e,i)}unsubscribe(e,i){this.bus.unsubscribe(e,i)}emit(e,...i){this.bus.emit(e,...i)}}class BE{handlers=new Map;getVersion(){return"3.3.3"}subscribe(e,i){this.handlers.set(e,(this.handlers.get(e)||[]).concat(i))}unsubscribe(e,i){this.handlers.set(e,(this.handlers.get(e)||[]).filter(o=>o!==i))}emit(e,...i){(this.handlers.get(e)||[]).forEach(o=>{try{o(i[0])}catch(r){console.error("could not invoke event listener",r)}})}}let mr=null;function ec(){return mr!==null?mr:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof window?._nc_event_bus<"u"?mr=new FE(window._nc_event_bus):mr=window._nc_event_bus=new BE,mr)}function qp(t,e){ec().subscribe(t,e)}function jE(t,e){ec().unsubscribe(t,e)}function HE(t,...e){ec().emit(t,...e)}class ln{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(e,i,o){this.scope=`${o?ln.GLOBAL_SCOPE_PERSISTENT:ln.GLOBAL_SCOPE_VOLATILE}_${btoa(e)}_`,this.wrapped=i}scopeKey(e){return`${this.scope}${e}`}setItem(e,i){this.wrapped.setItem(this.scopeKey(e),i)}getItem(e){return this.wrapped.getItem(this.scopeKey(e))}removeItem(e){this.wrapped.removeItem(this.scopeKey(e))}clear(){Object.keys(this.wrapped).filter(e=>e.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped))}}class UE{appId;persisted=!1;clearedOnLogout=!1;constructor(e){this.appId=e}persist(e=!0){return this.persisted=e,this}clearOnLogout(e=!0){return this.clearedOnLogout=e,this}build(){return new ln(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function zE(t){return new UE(t)}GE();function VE(){return globalThis._nc_auth_requestToken?globalThis._nc_auth_requestToken:globalThis.document?document.head.dataset.requesttoken??null:null}function Gp(t){if(!t||typeof t!="string")throw new Error("Invalid CSRF token given",{cause:{token:t}});globalThis._nc_auth_requestToken!==t&&(globalThis._nc_auth_requestToken=t,globalThis.document&&(document.head.dataset.requesttoken=t),HE("csrf-token-update",{token:t,_internal:!0}))}async function WE(){const t=Al("/csrftoken"),e=await fetch(t);if(!e.ok)throw new Error("Could not fetch CSRF token from API",{cause:e});try{const{token:i}=await e.json();return Gp(i),i}catch(i){throw new Error("Could not parse CSRF token from API response",{cause:i})}}function qE(t){const e=async({token:i})=>{try{t(i)}catch(o){console.error("Error updating CSRF token observer",o)}};return qp("csrf-token-update",e),()=>jE("csrf-token-update",e)}function GE(){qp("csrf-token-update",({token:t,_internal:e})=>{e||Gp(t)})}zE("public").persist().build();function Kp(t,e){return function(){return t.apply(e,arguments)}}const{toString:KE}=Object.prototype,{getPrototypeOf:Xo}=Object,{iterator:is,toStringTag:Xp}=Symbol,cn=(({hasOwnProperty:t})=>(e,i)=>t.call(e,i))(Object.prototype),Kr=(t,e)=>{let i=t;const o=[];for(;i!=null&&i!==Object.prototype;){if(o.indexOf(i)!==-1)return!1;if(o.push(i),cn(i,e))return!0;i=Xo(i)}return!1},XE=(t,e)=>t!=null&&Kr(t,e)?t[e]:void 0,ic=(t=>e=>{const i=KE.call(e);return t[i]||(t[i]=i.slice(8,-1).toLowerCase())})(Object.create(null)),li=t=>(t=t.toLowerCase(),e=>ic(e)===t),Nn=t=>e=>typeof e===t,{isArray:xo}=Array,Yo=Nn("undefined");function er(t){return t!==null&&!Yo(t)&&t.constructor!==null&&!Yo(t.constructor)&&He(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const Yp=li("ArrayBuffer");function YE(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&Yp(t.buffer),e}const JE=Nn("string"),He=Nn("function"),Jp=Nn("number"),ir=t=>t!==null&&typeof t=="object",ZE=t=>t===!0||t===!1,js=t=>{if(!ir(t))return!1;const e=Xo(t);return(e===null||e===Object.prototype||Xo(e)===null)&&!Kr(t,Xp)&&!Kr(t,is)},QE=t=>{if(!ir(t)||er(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},tT=li("Date"),eT=li("File"),iT=t=>!!(t&&typeof t.uri<"u"),oT=t=>t&&typeof t.getParts<"u",rT=li("Blob"),sT=li("FileList"),nT=t=>ir(t)&&He(t.pipe);function aT(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Pr<"u"?Pr:{}}const Qh=aT(),td=typeof Qh.FormData<"u"?Qh.FormData:void 0,lT=t=>{if(!t)return!1;if(td&&t instanceof td)return!0;const e=Xo(t);if(!e||e===Object.prototype||!He(t.append))return!1;const i=ic(t);return i==="formdata"||i==="object"&&He(t.toString)&&t.toString()==="[object FormData]"},cT=li("URLSearchParams"),[uT,hT,dT,fT]=["ReadableStream","Request","Response","Headers"].map(li),pT=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function os(t,e,{allOwnKeys:i=!1}={}){if(t===null||typeof t>"u")return;let o,r;if(typeof t!="object"&&(t=[t]),xo(t))for(o=0,r=t.length;o0;)if(r=i[o],e===r.toLowerCase())return r;return null}const po=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Pr,Qp=t=>!Yo(t)&&t!==po;function hl(...t){const{caseless:e,skipUndefined:i}=Qp(this)&&this||{},o={},r=(s,n)=>{if(n==="__proto__"||n==="constructor"||n==="prototype")return;const a=e&&typeof n=="string"&&Zp(o,n)||n,l=cn(o,a)?o[a]:void 0;js(l)&&js(s)?o[a]=hl(l,s):js(s)?o[a]=hl({},s):xo(s)?o[a]=s.slice():(!i||!Yo(s))&&(o[a]=s)};for(let s=0,n=t.length;s(os(e,(r,s)=>{i&&He(r)?Object.defineProperty(t,s,{__proto__:null,value:Kp(r,i),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,s,{__proto__:null,value:r,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:o}),t),gT=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),bT=(t,e,i,o)=>{t.prototype=Object.create(e.prototype,o),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),i&&Object.assign(t.prototype,i)},yT=(t,e,i,o)=>{let r,s,n;const a={};if(e=e||{},t==null)return e;do{for(r=Object.getOwnPropertyNames(t),s=r.length;s-- >0;)n=r[s],(!o||o(n,t,e))&&!a[n]&&(e[n]=t[n],a[n]=!0);t=i!==!1&&Xo(t)}while(t&&(!i||i(t,e))&&t!==Object.prototype);return e},_T=(t,e,i)=>{t=String(t),(i===void 0||i>t.length)&&(i=t.length),i-=e.length;const o=t.indexOf(e,i);return o!==-1&&o===i},vT=t=>{if(!t)return null;if(xo(t))return t;let e=t.length;if(!Jp(e))return null;const i=new Array(e);for(;e-- >0;)i[e]=t[e];return i},xT=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Xo(Uint8Array)),wT=(t,e)=>{const i=(t&&t[is]).call(t);let o;for(;(o=i.next())&&!o.done;){const r=o.value;e.call(t,r[0],r[1])}},ST=(t,e)=>{let i;const o=[];for(;(i=t.exec(e))!==null;)o.push(i);return o},CT=li("HTMLFormElement"),ET=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,i,o){return i.toUpperCase()+o}),{propertyIsEnumerable:TT}=Object.prototype,OT=li("RegExp"),tm=(t,e)=>{const i=Object.getOwnPropertyDescriptors(t),o={};os(i,(r,s)=>{let n;(n=e(r,s,t))!==!1&&(o[s]=n||r)}),Object.defineProperties(t,o)},kT=t=>{tm(t,(e,i)=>{if(He(t)&&["arguments","caller","callee"].includes(i))return!1;const o=t[i];if(He(o)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+i+"'")})}})},AT=(t,e)=>{const i={},o=r=>{r.forEach(s=>{i[s]=!0})};return xo(t)?o(t):o(String(t).split(e)),i},RT=()=>{},MT=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function IT(t){return!!(t&&He(t.append)&&t[Xp]==="FormData"&&t[is])}const PT=t=>{const e=new WeakSet,i=o=>{if(ir(o)){if(e.has(o))return;if(er(o))return o;if(!("toJSON"in o)){e.add(o);const r=xo(o)?[]:{};return os(o,(s,n)=>{const a=i(s);!Yo(a)&&(r[n]=a)}),e.delete(o),r}}return o};return i(t)},LT=li("AsyncFunction"),NT=t=>t&&(ir(t)||He(t))&&He(t.then)&&He(t.catch),em=((t,e)=>t?setImmediate:e?((i,o)=>(po.addEventListener("message",({source:r,data:s})=>{r===po&&s===i&&o.length&&o.shift()()},!1),r=>{o.push(r),po.postMessage(i,"*")}))(`axios@${Math.random()}`,[]):i=>setTimeout(i))(typeof setImmediate=="function",He(po.postMessage)),DT=typeof queueMicrotask<"u"?queueMicrotask.bind(po):typeof ul<"u"&&ul.nextTick||em,im=t=>t!=null&&He(t[is]),$T=t=>t!=null&&Kr(t,is)&&im(t),O={isArray:xo,isArrayBuffer:Yp,isBuffer:er,isFormData:lT,isArrayBufferView:YE,isString:JE,isNumber:Jp,isBoolean:ZE,isObject:ir,isPlainObject:js,isEmptyObject:QE,isReadableStream:uT,isRequest:hT,isResponse:dT,isHeaders:fT,isUndefined:Yo,isDate:tT,isFile:eT,isReactNativeBlob:iT,isReactNative:oT,isBlob:rT,isRegExp:OT,isFunction:He,isStream:nT,isURLSearchParams:cT,isTypedArray:xT,isFileList:sT,forEach:os,merge:hl,extend:mT,trim:pT,stripBOM:gT,inherits:bT,toFlatObject:yT,kindOf:ic,kindOfTest:li,endsWith:_T,toArray:vT,forEachEntry:wT,matchAll:ST,isHTMLForm:CT,hasOwnProperty:cn,hasOwnProp:cn,hasOwnInPrototypeChain:Kr,getSafeProp:XE,reduceDescriptors:tm,freezeMethods:kT,toObjectSet:AT,toCamelCase:ET,noop:RT,toFiniteNumber:MT,findKey:Zp,global:po,isContextDefined:Qp,isSpecCompliantForm:IT,toJSONObject:PT,isAsyncFn:LT,isThenable:NT,setImmediate:em,asap:DT,isIterable:im,isSafeIterable:$T},FT=O.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"]),BT=t=>{const e={};let i,o,r;return t&&t.split(` +`).forEach(function(s){r=s.indexOf(":"),i=s.substring(0,r).trim().toLowerCase(),o=s.substring(r+1).trim(),!(!i||e[i]&&FT[i])&&(i==="set-cookie"?e[i]?e[i].push(o):e[i]=[o]:e[i]=e[i]?e[i]+", "+o:o)}),e};function jT(t){let e=0,i=t.length;for(;ee;){const o=t.charCodeAt(i-1);if(o!==9&&o!==32)break;i-=1}return e===0&&i===t.length?t:t.slice(e,i)}const HT=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),UT=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function oc(t,e){return O.isArray(t)?t.map(i=>oc(i,e)):jT(String(t).replace(e,""))}const zT=t=>oc(t,HT),VT=t=>oc(t,UT);function om(t){const e=Object.create(null);return O.forEach(t.toJSON(),(i,o)=>{e[o]=VT(i)}),e}const ed=Symbol("internals");function gr(t){return t&&String(t).trim().toLowerCase()}function Hs(t){return t===!1||t==null?t:O.isArray(t)?t.map(Hs):zT(String(t))}function WT(t){const e=Object.create(null),i=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let o;for(;o=i.exec(t);)e[o[1]]=o[2];return e}const qT=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function La(t,e,i,o,r){if(O.isFunction(o))return o.call(this,e,i);if(r&&(e=i),!!O.isString(e)){if(O.isString(o))return e.indexOf(o)!==-1;if(O.isRegExp(o))return o.test(e)}}function GT(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,i,o)=>i.toUpperCase()+o)}function KT(t,e){const i=O.toCamelCase(" "+e);["get","set","has"].forEach(o=>{Object.defineProperty(t,o+i,{__proto__:null,value:function(r,s,n){return this[o].call(this,e,r,s,n)},configurable:!0})})}let Re=class{constructor(t){t&&this.set(t)}set(t,e,i){const o=this;function r(n,a,l){const u=gr(a);if(!u)return;const c=O.findKey(o,u);(!c||o[c]===void 0||l===!0||l===void 0&&o[c]!==!1)&&(o[c||a]=Hs(n))}const s=(n,a)=>O.forEach(n,(l,u)=>r(l,u,a));if(O.isPlainObject(t)||t instanceof this.constructor)s(t,e);else if(O.isString(t)&&(t=t.trim())&&!qT(t))s(BT(t),e);else if(O.isObject(t)&&O.isSafeIterable(t)){let n=Object.create(null),a,l;for(const u of t){if(!O.isArray(u))throw new TypeError("Object iterator must return a key-value pair");l=u[0],O.hasOwnProp(n,l)?(a=n[l],n[l]=O.isArray(a)?[...a,u[1]]:[a,u[1]]):n[l]=u[1]}s(n,e)}else t!=null&&r(e,t,i);return this}get(t,e){if(t=gr(t),t){const i=O.findKey(this,t);if(i){const o=this[i];if(!e)return o;if(e===!0)return WT(o);if(O.isFunction(e))return e.call(this,o,i);if(O.isRegExp(e))return e.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=gr(t),t){const i=O.findKey(this,t);return!!(i&&this[i]!==void 0&&(!e||La(this,this[i],i,e)))}return!1}delete(t,e){const i=this;let o=!1;function r(s){if(s=gr(s),s){const n=O.findKey(i,s);n&&(!e||La(i,i[n],n,e))&&(delete i[n],o=!0)}}return O.isArray(t)?t.forEach(r):r(t),o}clear(t){const e=Object.keys(this);let i=e.length,o=!1;for(;i--;){const r=e[i];(!t||La(this,this[r],r,t,!0))&&(delete this[r],o=!0)}return o}normalize(t){const e=this,i={};return O.forEach(this,(o,r)=>{const s=O.findKey(i,r);if(s){e[s]=Hs(o),delete e[r];return}const n=t?GT(r):String(r).trim();n!==r&&delete e[r],e[n]=Hs(o),i[n]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return O.forEach(this,(i,o)=>{i!=null&&i!==!1&&(e[o]=t&&O.isArray(i)?i.join(", "):i)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,e])=>t+": "+e).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const i=new this(t);return e.forEach(o=>i.set(o)),i}static accessor(t){const e=(this[ed]=this[ed]={accessors:{}}).accessors,i=this.prototype;function o(r){const s=gr(r);e[s]||(KT(i,r),e[s]=!0)}return O.isArray(t)?t.forEach(o):o(t),this}};Re.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),O.reduceDescriptors(Re.prototype,({value:t},e)=>{let i=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(o){this[i]=o}}}),O.freezeMethods(Re);const XT="[REDACTED ****]";function YT(t){if(O.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(O.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function JT(t,e){const i=new Set(e.map(s=>String(s).toLowerCase())),o=[],r=s=>{if(s===null||typeof s!="object"||O.isBuffer(s))return s;if(o.indexOf(s)!==-1)return;s instanceof Re&&(s=s.toJSON()),o.push(s);let n;if(O.isArray(s))n=[],s.forEach((a,l)=>{const u=r(a);O.isUndefined(u)||(n[l]=u)});else{if(!O.isPlainObject(s)&&YT(s))return o.pop(),s;n=Object.create(null);for(const[a,l]of Object.entries(s)){const u=i.has(a.toLowerCase())?XT:r(l);O.isUndefined(u)||(n[a]=u)}}return o.pop(),n};return r(t)}let Q=class rm extends Error{static from(e,i,o,r,s,n){const a=new rm(e.message,i||e.code,o,r,s);return Object.defineProperty(a,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),a.name=e.name,e.status!=null&&a.status==null&&(a.status=e.status),n&&Object.assign(a,n),a}constructor(e,i,o,r,s){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,i&&(this.code=i),o&&(this.config=o),r&&(this.request=r),s&&(this.response=s,this.status=s.status)}toJSON(){const e=this.config,i=e&&O.hasOwnProp(e,"redact")?e.redact:void 0,o=O.isArray(i)&&i.length>0?JT(e,i):O.toJSONObject(e);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:o,code:this.code,status:this.status}}};Q.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",Q.ERR_BAD_OPTION="ERR_BAD_OPTION",Q.ECONNABORTED="ECONNABORTED",Q.ETIMEDOUT="ETIMEDOUT",Q.ECONNREFUSED="ECONNREFUSED",Q.ERR_NETWORK="ERR_NETWORK",Q.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",Q.ERR_DEPRECATED="ERR_DEPRECATED",Q.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",Q.ERR_BAD_REQUEST="ERR_BAD_REQUEST",Q.ERR_CANCELED="ERR_CANCELED",Q.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",Q.ERR_INVALID_URL="ERR_INVALID_URL",Q.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const ZT=null,sm=100;function dl(t){return O.isPlainObject(t)||O.isArray(t)}function nm(t){return O.endsWith(t,"[]")?t.slice(0,-2):t}function Na(t,e,i){return t?t.concat(e).map(function(o,r){return o=nm(o),!i&&r?"["+o+"]":o}).join(i?".":""):e}function QT(t){return O.isArray(t)&&!t.some(dl)}const tO=O.toFlatObject(O,{},null,function(t){return/^is[A-Z]/.test(t)});function Dn(t,e,i){if(!O.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,i=O.toFlatObject(i,{metaTokens:!0,dots:!1,indexes:!1},!1,function(_,k){return!O.isUndefined(k[_])});const o=i.metaTokens,r=i.visitor||v,s=i.dots,n=i.indexes,a=i.Blob||typeof Blob<"u"&&Blob,l=i.maxDepth===void 0?sm:i.maxDepth,u=a&&O.isSpecCompliantForm(e),c=[];if(!O.isFunction(r))throw new TypeError("visitor must be a function");function d(_){if(_===null)return"";if(O.isDate(_))return _.toISOString();if(O.isBoolean(_))return _.toString();if(!u&&O.isBlob(_))throw new Q("Blob is not supported. Use a Buffer instead.");if(O.isArrayBuffer(_)||O.isTypedArray(_)){if(u&&typeof a=="function")return new a([_]);if(typeof Bh<"u")return Bh.from(_);throw new Q("Blob is not supported. Use a Buffer instead.",Q.ERR_NOT_SUPPORT)}return _}function p(_){if(_>l)throw new Q("Object is too deeply nested ("+_+" levels). Max depth: "+l,Q.ERR_FORM_DATA_DEPTH_EXCEEDED)}function g(_,k){if(l===1/0)return JSON.stringify(_);const I=[];return JSON.stringify(_,function(T,N){if(!O.isObject(N))return N;for(;I.length&&I[I.length-1]!==this;)I.pop();return I.push(N),p(k+I.length-1),N})}function v(_,k,I){let T=_;if(O.isReactNative(e)&&O.isReactNativeBlob(_))return e.append(Na(I,k,s),d(_)),!1;if(_&&!I&&typeof _=="object"){if(O.endsWith(k,"{}"))k=o?k:k.slice(0,-2),_=g(_,1);else if(O.isArray(_)&&QT(_)||(O.isFileList(_)||O.endsWith(k,"[]"))&&(T=O.toArray(_)))return k=nm(k),T.forEach(function(N,tt){!(O.isUndefined(N)||N===null)&&e.append(n===!0?Na([k],tt,s):n===null?k:k+"[]",d(N))}),!1}return dl(_)?!0:(e.append(Na(I,k,s),d(_)),!1)}const b=Object.assign(tO,{defaultVisitor:v,convertValue:d,isVisitable:dl});function C(_,k,I=0){if(!O.isUndefined(_)){if(p(I),c.indexOf(_)!==-1)throw new Error("Circular reference detected in "+k.join("."));c.push(_),O.forEach(_,function(T,N){(!(O.isUndefined(T)||T===null)&&r.call(e,T,O.isString(N)?N.trim():N,k,b))===!0&&C(T,k?k.concat(N):[N],I+1)}),c.pop()}}if(!O.isObject(t))throw new TypeError("data must be an object");return C(t),e}function id(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(i){return e[i]})}function rc(t,e){this._pairs=[],t&&Dn(t,this,e)}const od=rc.prototype;od.append=function(t,e){this._pairs.push([t,e])},od.toString=function(t){const e=t?i=>t.call(this,i,id):id;return this._pairs.map(function(i){return e(i[0])+"="+e(i[1])},"").join("&")};function eO(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function am(t,e,i){if(!e)return t;t=t||"";const o=O.isFunction(i)?{serialize:i}:i,r=O.getSafeProp(o,"encode")||eO,s=O.getSafeProp(o,"serialize");let n;if(s?n=s(e,o):n=O.isURLSearchParams(e)?e.toString():new rc(e,o).toString(r),n){const a=t.indexOf("#");a!==-1&&(t=t.slice(0,a)),t+=(t.indexOf("?")===-1?"?":"&")+n}return t}class rd{constructor(){this.handlers=[]}use(e,i,o){return this.handlers.push({fulfilled:e,rejected:i,synchronous:o?o.synchronous:!1,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){O.forEach(this.handlers,function(i){i!==null&&e(i)})}}const sc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},iO=typeof URLSearchParams<"u"?URLSearchParams:rc,oO=typeof FormData<"u"?FormData:null,rO=typeof Blob<"u"?Blob:null,sO={isBrowser:!0,classes:{URLSearchParams:iO,FormData:oO,Blob:rO},protocols:["http","https","file","blob","url","data"]},nc=typeof window<"u"&&typeof document<"u",fl=typeof navigator=="object"&&navigator||void 0,nO=nc&&(!fl||["ReactNative","NativeScript","NS"].indexOf(fl.product)<0),aO=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",lO=nc&&window.location.href||"http://localhost",cO=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:nc,hasStandardBrowserEnv:nO,hasStandardBrowserWebWorkerEnv:aO,navigator:fl,origin:lO},Symbol.toStringTag,{value:"Module"})),ye={...cO,...sO};function uO(t,e){return Dn(t,new ye.classes.URLSearchParams,{visitor:function(i,o,r,s){return ye.isNode&&O.isBuffer(i)?(this.append(o,i.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...e})}const sd=sm;function lm(t){if(t>sd)throw new Q("FormData field is too deeply nested ("+t+" levels). Max depth: "+sd,Q.ERR_FORM_DATA_DEPTH_EXCEEDED)}function hO(t){const e=[],i=/\w+|\[(\w*)]/g;let o;for(;(o=i.exec(t))!==null;)lm(e.length),e.push(o[0]==="[]"?"":o[1]||o[0]);return e}function dO(t){const e={},i=Object.keys(t);let o;const r=i.length;let s;for(o=0;o=i.length;return n=!n&&O.isArray(r)?r.length:n,l?(O.hasOwnProp(r,n)?r[n]=O.isArray(r[n])?r[n].concat(o):[r[n],o]:r[n]=o,!a):((!O.hasOwnProp(r,n)||!O.isObject(r[n]))&&(r[n]=[]),e(i,o,r[n],s)&&O.isArray(r[n])&&(r[n]=dO(r[n])),!a)}if(O.isFormData(t)&&O.isFunction(t.entries)){const i={};return O.forEachEntry(t,(o,r)=>{e(hO(o),r,i,0)}),i}return null}const No=(t,e)=>t!=null&&O.hasOwnProp(t,e)?t[e]:void 0;function fO(t,e,i){if(O.isString(t))try{return(e||JSON.parse)(t),O.trim(t)}catch(o){if(o.name!=="SyntaxError")throw o}return(i||JSON.stringify)(t)}const rs={transitional:sc,adapter:["xhr","http","fetch"],transformRequest:[function(t,e){const i=e.getContentType()||"",o=i.indexOf("application/json")>-1,r=O.isObject(t);if(r&&O.isHTMLForm(t)&&(t=new FormData(t)),O.isFormData(t))return o?JSON.stringify(cm(t)):t;if(O.isArrayBuffer(t)||O.isBuffer(t)||O.isStream(t)||O.isFile(t)||O.isBlob(t)||O.isReadableStream(t))return t;if(O.isArrayBufferView(t))return t.buffer;if(O.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(r){const n=No(this,"formSerializer");if(i.indexOf("application/x-www-form-urlencoded")>-1)return uO(t,n).toString();if((s=O.isFileList(t))||i.indexOf("multipart/form-data")>-1){const a=No(this,"env"),l=a&&a.FormData;return Dn(s?{"files[]":t}:t,l&&new l,n)}}return r||o?(e.setContentType("application/json",!1),fO(t)):t}],transformResponse:[function(t){const e=No(this,"transitional")||rs.transitional,i=e&&e.forcedJSONParsing,o=No(this,"responseType"),r=o==="json";if(O.isResponse(t)||O.isReadableStream(t))return t;if(t&&O.isString(t)&&(i&&!o||r)){const s=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t,No(this,"parseReviver"))}catch(n){if(s)throw n.name==="SyntaxError"?Q.from(n,Q.ERR_BAD_RESPONSE,this,null,No(this,"response")):n}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ye.classes.FormData,Blob:ye.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};O.forEach(["delete","get","head","post","put","patch","query"],t=>{rs.headers[t]={}});function Da(t,e){const i=this||rs,o=e||i,r=Re.from(o.headers);let s=o.data;return O.forEach(t,function(n){s=n.call(i,s,r.normalize(),e?e.status:void 0)}),r.normalize(),s}function um(t){return!!(t&&t.__CANCEL__)}let ss=class extends Q{constructor(t,e,i){super(t??"canceled",Q.ERR_CANCELED,e,i),this.name="CanceledError",this.__CANCEL__=!0}};function hm(t,e,i){const o=i.config.validateStatus;!i.status||!o||o(i.status)?t(i):e(new Q("Request failed with status code "+i.status,i.status>=400&&i.status<500?Q.ERR_BAD_REQUEST:Q.ERR_BAD_RESPONSE,i.config,i.request,i))}function pO(t){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(t);return e&&e[1]||""}function mO(t,e){t=t||10;const i=new Array(t),o=new Array(t);let r=0,s=0,n;return e=e!==void 0?e:1e3,function(a){const l=Date.now(),u=o[s];n||(n=l),i[r]=a,o[r]=l;let c=s,d=0;for(;c!==r;)d+=i[c++],c=c%t;if(r=(r+1)%t,r===s&&(s=(s+1)%t),l-n{i=l,r=null,s&&(clearTimeout(s),s=null),t(...a)};return[(...a)=>{const l=Date.now(),u=l-i;u>=o?n(a,l):(r=a,s||(s=setTimeout(()=>{s=null,n(r)},o-u)))},()=>r&&n(r)]}const un=(t,e,i=3)=>{let o=0;const r=mO(50,250);return gO(s=>{if(!s||typeof s.loaded!="number")return;const n=s.loaded,a=s.lengthComputable?s.total:void 0,l=a!=null?Math.min(n,a):n,u=Math.max(0,l-o),c=r(u);o=Math.max(o,l);const d={loaded:l,total:a,progress:a?l/a:void 0,bytes:u,rate:c||void 0,estimated:c&&a?(a-l)/c:void 0,event:s,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(d)},i)},nd=(t,e)=>{const i=t!=null;return[o=>e[0]({lengthComputable:i,total:t,loaded:o}),e[1]]},ad=t=>(...e)=>O.asap(()=>t(...e)),bO=ye.hasStandardBrowserEnv?((t,e)=>i=>(i=new URL(i,ye.origin),t.protocol===i.protocol&&t.host===i.host&&(e||t.port===i.port)))(new URL(ye.origin),ye.navigator&&/(msie|trident)/i.test(ye.navigator.userAgent)):()=>!0,yO=ye.hasStandardBrowserEnv?{write(t,e,i,o,r,s,n){if(typeof document>"u")return;const a=[`${t}=${encodeURIComponent(e)}`];O.isNumber(i)&&a.push(`expires=${new Date(i).toUTCString()}`),O.isString(o)&&a.push(`path=${o}`),O.isString(r)&&a.push(`domain=${r}`),s===!0&&a.push("secure"),O.isString(n)&&a.push(`SameSite=${n}`),document.cookie=a.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let i=0;it instanceof Re?{...t}:t;function wo(t,e){t=t||{},e=e||{};const i=Object.create(null);Object.defineProperty(i,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function o(c,d,p,g){return O.isPlainObject(c)&&O.isPlainObject(d)?O.merge.call({caseless:g},c,d):O.isPlainObject(d)?O.merge({},d):O.isArray(d)?d.slice():d}function r(c,d,p,g){if(O.isUndefined(d)){if(!O.isUndefined(c))return o(void 0,c,p,g)}else return o(c,d,p,g)}function s(c,d){if(!O.isUndefined(d))return o(void 0,d)}function n(c,d){if(O.isUndefined(d)){if(!O.isUndefined(c))return o(void 0,c)}else return o(void 0,d)}function a(c){const d=O.hasOwnProp(e,"transitional")?e.transitional:void 0;if(!O.isUndefined(d))if(O.isPlainObject(d)){if(O.hasOwnProp(d,c))return d[c]}else return;const p=O.hasOwnProp(t,"transitional")?t.transitional:void 0;if(O.isPlainObject(p)&&O.hasOwnProp(p,c))return p[c]}function l(c,d,p){if(O.hasOwnProp(e,p))return o(c,d);if(O.hasOwnProp(t,p))return o(void 0,c)}const u={url:s,method:s,data:s,baseURL:n,transformRequest:n,transformResponse:n,paramsSerializer:n,timeout:n,timeoutMessage:n,withCredentials:n,withXSRFToken:n,adapter:n,responseType:n,xsrfCookieName:n,xsrfHeaderName:n,onUploadProgress:n,onDownloadProgress:n,decompress:n,maxContentLength:n,maxBodyLength:n,beforeRedirect:n,transport:n,httpAgent:n,httpsAgent:n,cancelToken:n,socketPath:n,allowedSocketPaths:n,responseEncoding:n,validateStatus:l,headers:(c,d,p)=>r(cd(c),cd(d),p,!0)};return O.forEach(Object.keys({...t,...e}),function(c){if(c==="__proto__"||c==="constructor"||c==="prototype")return;const d=O.hasOwnProp(u,c)?u[c]:r,p=O.hasOwnProp(t,c)?t[c]:void 0,g=O.hasOwnProp(e,c)?e[c]:void 0,v=d(p,g,c);O.isUndefined(v)&&d!==l||(i[c]=v)}),O.hasOwnProp(e,"validateStatus")&&O.isUndefined(e.validateStatus)&&a("validateStatusUndefinedResolves")===!1&&(O.hasOwnProp(t,"validateStatus")?i.validateStatus=o(void 0,t.validateStatus):delete i.validateStatus),i}const EO=["content-type","content-length"];function TO(t,e,i){if(i!=="content-only"){t.set(e);return}Object.entries(e||{}).forEach(([o,r])=>{EO.includes(o.toLowerCase())&&t.set(o,r)})}const OO=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,i)=>String.fromCharCode(parseInt(i,16)));function fm(t){const e=wo({},t),i=p=>O.hasOwnProp(e,p)?e[p]:void 0,o=i("data");let r=i("withXSRFToken");const s=i("xsrfHeaderName"),n=i("xsrfCookieName");let a=i("headers");const l=i("auth"),u=i("baseURL"),c=i("allowAbsoluteUrls"),d=i("url");if(e.headers=a=Re.from(a),e.url=am(dm(u,d,c,e),i("params"),i("paramsSerializer")),l){const p=O.getSafeProp(l,"username")||"",g=O.getSafeProp(l,"password")||"";try{a.set("Authorization","Basic "+btoa(p+":"+(g?OO(g):"")))}catch(v){throw Q.from(v,Q.ERR_BAD_OPTION_VALUE,t)}}if(O.isFormData(o)&&(ye.hasStandardBrowserEnv||ye.hasStandardBrowserWebWorkerEnv||O.isReactNative(o)?a.setContentType(void 0):O.isFunction(o.getHeaders)&&TO(a,o.getHeaders(),i("formDataHeaderPolicy"))),ye.hasStandardBrowserEnv&&(O.isFunction(r)&&(r=r(e)),r===!0||r==null&&bO(e.url))){const p=s&&n&&yO.read(n);p&&a.set(s,p)}return e}const kO=typeof XMLHttpRequest<"u",AO=kO&&function(t){return new Promise(function(e,i){const o=fm(t);let r=o.data;const s=Re.from(o.headers).normalize();let{responseType:n,onUploadProgress:a,onDownloadProgress:l}=o,u,c,d,p,g;function v(){p&&p(),g&&g(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let b=new XMLHttpRequest;b.open(o.method.toUpperCase(),o.url,!0),b.timeout=o.timeout;function C(){if(!b)return;const k=Re.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),I={data:!n||n==="text"||n==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:k,config:t,request:b};hm(function(T){e(T),v()},function(T){i(T),v()},I),b=null}"onloadend"in b?b.onloadend=C:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.startsWith("file:"))||setTimeout(C)},b.onabort=function(){b&&(i(new Q("Request aborted",Q.ECONNABORTED,t,b)),v(),b=null)},b.onerror=function(k){const I=k&&k.message?k.message:"Network Error",T=new Q(I,Q.ERR_NETWORK,t,b);T.event=k||null,i(T),v(),b=null},b.ontimeout=function(){let k=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const I=o.transitional||sc;o.timeoutErrorMessage&&(k=o.timeoutErrorMessage),i(new Q(k,I.clarifyTimeoutError?Q.ETIMEDOUT:Q.ECONNABORTED,t,b)),v(),b=null},r===void 0&&s.setContentType(null),"setRequestHeader"in b&&O.forEach(om(s),function(k,I){b.setRequestHeader(I,k)}),O.isUndefined(o.withCredentials)||(b.withCredentials=!!o.withCredentials),n&&n!=="json"&&(b.responseType=o.responseType),l&&([d,g]=un(l,!0),b.addEventListener("progress",d)),a&&b.upload&&([c,p]=un(a),b.upload.addEventListener("progress",c),b.upload.addEventListener("loadend",p)),(o.cancelToken||o.signal)&&(u=k=>{b&&(i(!k||k.type?new ss(null,t,b):k),b.abort(),v(),b=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const _=pO(o.url);if(_&&!ye.protocols.includes(_)){i(new Q("Unsupported protocol "+_+":",Q.ERR_BAD_REQUEST,t)),v();return}b.send(r||null)})},RO=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;const i=new AbortController;let o=!1;const r=function(l){if(!o){o=!0,n();const u=l instanceof Error?l:this.reason;i.abort(u instanceof Q?u:new ss(u instanceof Error?u.message:u))}};let s=e&&setTimeout(()=>{s=null,r(new Q(`timeout of ${e}ms exceeded`,Q.ETIMEDOUT))},e);const n=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(l=>{l.unsubscribe?l.unsubscribe(r):l.removeEventListener("abort",r)}),t=null)};t.forEach(l=>l.addEventListener("abort",r,{once:!0}));const{signal:a}=i;return a.unsubscribe=()=>O.asap(n),a},MO=function*(t,e){let i=t.byteLength;if(i{const r=IO(t,e);let s=0,n,a=l=>{n||(n=!0,o&&o(l))};return new ReadableStream({async pull(l){try{const{done:u,value:c}=await r.next();if(u){a(),l.close();return}let d=c.byteLength;if(i){let p=s+=d;i(p)}l.enqueue(new Uint8Array(c))}catch(u){throw a(u),u}},cancel(l){return a(l),r.return()}},{highWaterMark:2})},hn=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,LO=(t,e,i)=>e+2d>=2&&o.charCodeAt(d-2)===37&&o.charCodeAt(d-1)===51&&(o.charCodeAt(d)===68||o.charCodeAt(d)===100);l>=0&&(o.charCodeAt(l)===61?(a++,l--):u(l)&&(a++,l-=3)),a===1&&l>=0&&(o.charCodeAt(l)===61||u(l))&&a++;const c=Math.floor(s/4)*3-(a||0);return c>0?c:0}let r=0;for(let s=0,n=o.length;s=55296&&a<=56319&&s+1=56320&&l<=57343?(r+=4,s++):r+=3}else r+=3}return r}const ac="1.18.1",hd=64*1024,{isFunction:Ms}=O,DO=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,i)=>String.fromCharCode(parseInt(i,16))),dd=t=>{if(!O.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},fd=(t,...e)=>{try{return!!t(...e)}catch{return!1}},$O=t=>{const e=t.indexOf("://");let i=t;return e!==-1&&(i=i.slice(e+3)),i.includes("@")||i.includes(":")},FO=t=>{const e=O.global!==void 0&&O.global!==null?O.global:globalThis,{ReadableStream:i,TextEncoder:o}=e;t=O.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},t);const{fetch:r,Request:s,Response:n}=t,a=r?Ms(r):typeof fetch=="function",l=Ms(s),u=Ms(n);if(!a)return!1;const c=a&&Ms(i),d=a&&(typeof o=="function"?(_=>k=>_.encode(k))(new o):async _=>new Uint8Array(await new s(_).arrayBuffer())),p=l&&c&&fd(()=>{let _=!1;const k=new s(ye.origin,{body:new i,method:"POST",get duplex(){return _=!0,"half"}}),I=k.headers.has("Content-Type");return k.body!=null&&k.body.cancel(),_&&!I}),g=u&&c&&fd(()=>O.isReadableStream(new n("").body)),v={stream:g&&(_=>_.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(_=>{!v[_]&&(v[_]=(k,I)=>{let T=k&&k[_];if(T)return T.call(k);throw new Q(`Response type '${_}' is not supported`,Q.ERR_NOT_SUPPORT,I)})});const b=async _=>{if(_==null)return 0;if(O.isBlob(_))return _.size;if(O.isSpecCompliantForm(_))return(await new s(ye.origin,{method:"POST",body:_}).arrayBuffer()).byteLength;if(O.isArrayBufferView(_)||O.isArrayBuffer(_))return _.byteLength;if(O.isURLSearchParams(_)&&(_=_+""),O.isString(_))return(await d(_)).byteLength},C=async(_,k)=>O.toFiniteNumber(_.getContentLength())??b(k);return async _=>{let{url:k,method:I,data:T,signal:N,cancelToken:tt,timeout:X,onDownloadProgress:Y,onUploadProgress:mt,responseType:nt,headers:gt,withCredentials:Et="same-origin",fetchOptions:zt,maxContentLength:Nt,maxBodyLength:it}=fm(_);const rt=O.isNumber(Nt)&&Nt>-1,ut=O.isNumber(it)&&it>-1,Bt=ft=>O.hasOwnProp(_,ft)?_[ft]:void 0;let Vt=r||fetch;nt=nt?(nt+"").toLowerCase():"text";let Gt=RO([N,tt&&tt.toAbortSignal()],X),Mt=null;const ht=Gt&&Gt.unsubscribe&&(()=>{Gt.unsubscribe()});let de,vt=null;const Ht=()=>new Q("Request body larger than maxBodyLength limit",Q.ERR_BAD_REQUEST,_,Mt);try{let ft;const te=Bt("auth");if(te){const R=O.getSafeProp(te,"username")||"",V=O.getSafeProp(te,"password")||"";ft={username:R,password:V}}if($O(k)){const R=new URL(k,ye.origin);if(!ft&&(R.username||R.password)){const V=dd(R.username),q=dd(R.password);ft={username:V,password:q}}(R.username||R.password)&&(R.username="",R.password="",k=R.href)}if(ft&&(gt.delete("authorization"),gt.set("Authorization","Basic "+btoa(DO((ft.username||"")+":"+(ft.password||""))))),rt&&typeof k=="string"&&k.startsWith("data:")&&NO(k)>Nt)throw new Q("maxContentLength size of "+Nt+" exceeded",Q.ERR_BAD_RESPONSE,_,Mt);if(ut&&I!=="get"&&I!=="head"){const R=await b(T);if(typeof R=="number"&&isFinite(R)&&(de=R,R>it))throw Ht()}const Ue=ut&&(O.isReadableStream(T)||O.isStream(T)),ti=(R,V,q)=>ud(R,hd,z=>{if(ut&&z>it)throw vt=Ht();V&&V(z)},q);if(p&&I!=="get"&&I!=="head"&&(mt||Ue)){if(de=de??await C(gt,T),de!==0||Ue){let R=new s(k,{method:"POST",body:T,duplex:"half"}),V;if(O.isFormData(T)&&(V=R.headers.get("content-type"))&>.setContentType(V),R.body){const[q,z]=mt&&nd(de,un(ad(mt)))||[];T=ti(R.body,q,z)}}}else if(Ue&&!l&&c&&I!=="get"&&I!=="head")T=ti(T);else if(Ue&&l&&!p&&I!=="get"&&I!=="head")throw new Q("Stream request bodies are not supported by the current fetch implementation",Q.ERR_NOT_SUPPORT,_,Mt);O.isString(Et)||(Et=Et?"include":"omit");const ei=l&&"credentials"in s.prototype;if(O.isFormData(T)){const R=gt.getContentType();R&&/^multipart\/form-data/i.test(R)&&!/boundary=/i.test(R)&>.delete("content-type")}gt.set("User-Agent","axios/"+ac,!1);const w={...zt,signal:Gt,method:I.toUpperCase(),headers:om(gt.normalize()),body:T,duplex:"half",credentials:ei?Et:void 0};Mt=l&&new s(k,w);let S=await(l?Vt(Mt,zt):Vt(k,w));const D=Re.from(S.headers);if(rt){const R=O.toFiniteNumber(D.getContentLength());if(R!=null&&R>Nt)throw new Q("maxContentLength size of "+Nt+" exceeded",Q.ERR_BAD_RESPONSE,_,Mt)}const F=g&&(nt==="stream"||nt==="response");if(g&&S.body&&(Y||rt||F&&ht)){const R={};["status","statusText","headers"].forEach(J=>{R[J]=S[J]});const V=O.toFiniteNumber(D.getContentLength()),[q,z]=Y&&nd(V,un(ad(Y),!0))||[];let U=0;const et=J=>{if(rt&&(U=J,U>Nt))throw new Q("maxContentLength size of "+Nt+" exceeded",Q.ERR_BAD_RESPONSE,_,Mt);q&&q(J)};S=new n(ud(S.body,hd,et,()=>{z&&z(),ht&&ht()}),R)}nt=nt||"text";let B=await v[O.findKey(v,nt)||"text"](S,_);if(rt&&!g&&!F){let R;if(B!=null&&(typeof B.byteLength=="number"?R=B.byteLength:typeof B.size=="number"?R=B.size:typeof B=="string"&&(R=typeof o=="function"?new o().encode(B).byteLength:B.length)),typeof R=="number"&&R>Nt)throw new Q("maxContentLength size of "+Nt+" exceeded",Q.ERR_BAD_RESPONSE,_,Mt)}return!F&&ht&&ht(),await new Promise((R,V)=>{hm(R,V,{data:B,headers:Re.from(S.headers),status:S.status,statusText:S.statusText,config:_,request:Mt})})}catch(ft){if(ht&&ht(),Gt&&Gt.aborted&&Gt.reason instanceof Q){const te=Gt.reason;throw te.config=_,Mt&&(te.request=Mt),ft!==te&&Object.defineProperty(te,"cause",{__proto__:null,value:ft,writable:!0,enumerable:!1,configurable:!0}),te}if(vt)throw Mt&&!vt.request&&(vt.request=Mt),vt;if(ft instanceof Q)throw Mt&&!ft.request&&(ft.request=Mt),ft;if(ft&&ft.name==="TypeError"&&/Load failed|fetch/i.test(ft.message)){const te=new Q("Network Error",Q.ERR_NETWORK,_,Mt,ft&&ft.response);throw Object.defineProperty(te,"cause",{__proto__:null,value:ft.cause||ft,writable:!0,enumerable:!1,configurable:!0}),te}throw Q.from(ft,ft&&ft.code,_,Mt,ft&&ft.response)}}},BO=new Map,pm=t=>{let e=t&&t.env||{};const{fetch:i,Request:o,Response:r}=e,s=[o,r,i];let n=s.length,a=n,l,u,c=BO;for(;a--;)l=s[a],u=c.get(l),u===void 0&&c.set(l,u=a?new Map:FO(e)),c=u;return u};pm();const lc={http:ZT,xhr:AO,fetch:{get:pm}};O.forEach(lc,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});const pd=t=>`- ${t}`,jO=t=>O.isFunction(t)||t===null||t===!1;function HO(t,e){t=O.isArray(t)?t:[t];const{length:i}=t;let o,r;const s={};for(let n=0;n`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=i?n.length>1?`since : +`+n.map(pd).join(` +`):" "+pd(n[0]):"as no adapter specified";throw new Q("There is no suitable adapter to dispatch the request "+a,Q.ERR_NOT_SUPPORT)}return r}const mm={getAdapter:HO,adapters:lc};function $a(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ss(null,t)}function md(t){return $a(t),t.headers=Re.from(t.headers),t.data=Da.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),mm.getAdapter(t.adapter||rs.adapter,t)(t).then(function(e){$a(t),t.response=e;try{e.data=Da.call(t,t.transformResponse,e)}finally{delete t.response}return e.headers=Re.from(e.headers),e},function(e){if(!um(e)&&($a(t),e&&e.response)){t.response=e.response;try{e.response.data=Da.call(t,t.transformResponse,e.response)}finally{delete t.response}e.response.headers=Re.from(e.response.headers)}return Promise.reject(e)})}const dn={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{dn[t]=function(i){return typeof i===t||"a"+(e<1?"n ":" ")+t}});const gd={};dn.transitional=function(t,e,i){function o(r,s){return"[Axios v"+ac+"] Transitional option '"+r+"'"+s+(i?". "+i:"")}return(r,s,n)=>{if(t===!1)throw new Q(o(s," has been removed"+(e?" in "+e:"")),Q.ERR_DEPRECATED);return e&&!gd[s]&&(gd[s]=!0,console.warn(o(s," has been deprecated since v"+e+" and will be removed in the near future"))),t?t(r,s,n):!0}},dn.spelling=function(t){return(e,i)=>(console.warn(`${i} is likely a misspelling of ${t}`),!0)};function UO(t,e,i){if(typeof t!="object"||t===null)throw new Q("options must be an object",Q.ERR_BAD_OPTION_VALUE);const o=Object.keys(t);let r=o.length;for(;r-- >0;){const s=o[r],n=Object.prototype.hasOwnProperty.call(e,s)?e[s]:void 0;if(n){const a=t[s],l=a===void 0||n(a,s,t);if(l!==!0)throw new Q("option "+s+" must be "+l,Q.ERR_BAD_OPTION_VALUE);continue}if(i!==!0)throw new Q("Unknown option "+s,Q.ERR_BAD_OPTION)}}const Us={assertOptions:UO,validators:dn},Se=Us.validators;let yo=class{constructor(t){this.defaults=t||{},this.interceptors={request:new rd,response:new rd}}async request(t,e){try{return await this._request(t,e)}catch(i){if(i instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const r=(()=>{if(!o.stack)return"";const s=o.stack.indexOf(` +`);return s===-1?"":o.stack.slice(s+1)})();try{if(!i.stack)i.stack=r;else if(r){const s=r.indexOf(` +`),n=s===-1?-1:r.indexOf(` +`,s+1),a=n===-1?"":r.slice(n+1);String(i.stack).endsWith(a)||(i.stack+=` +`+r)}}catch{}}throw i}}_request(t,e){typeof t=="string"?(e=e||{},e.url=t):e=t||{},e=wo(this.defaults,e);const{transitional:i,paramsSerializer:o,headers:r}=e;i!==void 0&&Us.assertOptions(i,{silentJSONParsing:Se.transitional(Se.boolean),forcedJSONParsing:Se.transitional(Se.boolean),clarifyTimeoutError:Se.transitional(Se.boolean),legacyInterceptorReqResOrdering:Se.transitional(Se.boolean),advertiseZstdAcceptEncoding:Se.transitional(Se.boolean),validateStatusUndefinedResolves:Se.transitional(Se.boolean)},!1),o!=null&&(O.isFunction(o)?e.paramsSerializer={serialize:o}:Us.assertOptions(o,{encode:Se.function,serialize:Se.function},!0)),e.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?e.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:e.allowAbsoluteUrls=!0),Us.assertOptions(e,{baseUrl:Se.spelling("baseURL"),withXsrfToken:Se.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();let s=r&&O.merge(r.common,r[e.method]);r&&O.forEach(["delete","get","head","post","put","patch","query","common"],g=>{delete r[g]}),e.headers=Re.concat(s,r);const n=[];let a=!0;this.interceptors.request.forEach(function(g){if(typeof g.runWhen=="function"&&g.runWhen(e)===!1)return;a=a&&g.synchronous;const v=e.transitional||sc;v&&v.legacyInterceptorReqResOrdering?n.unshift(g.fulfilled,g.rejected):n.push(g.fulfilled,g.rejected)});const l=[];this.interceptors.response.forEach(function(g){l.push(g.fulfilled,g.rejected)});let u,c=0,d;if(!a){const g=[md.bind(this),void 0];for(g.unshift(...n),g.push(...l),d=g.length,u=Promise.resolve(e);c{if(!o._listeners)return;let s=o._listeners.length;for(;s-- >0;)o._listeners[s](r);o._listeners=null}),this.promise.then=r=>{let s;const n=new Promise(a=>{o.subscribe(a),s=a}).then(r);return n.cancel=function(){o.unsubscribe(s)},n},e(function(r,s,n){o.reason||(o.reason=new ss(r,s,n),i(o.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 i=this._listeners.indexOf(e);i!==-1&&this._listeners.splice(i,1)}toAbortSignal(){const e=new AbortController,i=o=>{e.abort(o)};return this.subscribe(i),e.signal.unsubscribe=()=>this.unsubscribe(i),e.signal}static source(){let e;return{token:new gm(function(i){e=i}),cancel:e}}};function VO(t){return function(e){return t.apply(null,e)}}function WO(t){return O.isObject(t)&&t.isAxiosError===!0}const pl={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,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(pl).forEach(([t,e])=>{pl[e]=t});function bm(t){const e=new yo(t),i=Kp(yo.prototype.request,e);return O.extend(i,yo.prototype,e,{allOwnKeys:!0}),O.extend(i,e,null,{allOwnKeys:!0}),i.create=function(o){return bm(wo(t,o))},i}const Zt=bm(rs);Zt.Axios=yo,Zt.CanceledError=ss,Zt.CancelToken=zO,Zt.isCancel=um,Zt.VERSION=ac,Zt.toFormData=Dn,Zt.AxiosError=Q,Zt.Cancel=Zt.CanceledError,Zt.all=function(t){return Promise.all(t)},Zt.spread=VO,Zt.isAxiosError=WO,Zt.mergeConfig=wo,Zt.AxiosHeaders=Re,Zt.formToJSON=t=>cm(O.isHTMLForm(t)?new FormData(t):t),Zt.getAdapter=mm.getAdapter,Zt.HttpStatusCode=pl,Zt.default=Zt;const{Axios:gk,AxiosError:bk,CanceledError:yk,isCancel:_k,CancelToken:vk,VERSION:xk,all:wk,Cancel:Sk,isAxiosError:cc,spread:Ck,toFormData:Ek,AxiosHeaders:Tk,HttpStatusCode:Ok,formToJSON:kk,getAdapter:Ak,mergeConfig:Rk,create:Mk}=Zt;function qO(){const t=Zt.create({headers:{requesttoken:VE()??"","X-Requested-With":"XMLHttpRequest"}});return qE(e=>{t.defaults.headers.requesttoken=e}),Object.assign(t,{CancelToken:Zt.CancelToken,isCancel:Zt.isCancel})}const bd="_nextcloudCsrfTokenReloaded";function GO(t){return async e=>{if(!cc(e))throw e;const{config:i,response:o,request:r}=e,s=r?.responseURL;if(i&&!(bd in i)&&o?.status===412&&o?.data?.message==="CSRF check failed"){console.warn(`Request to ${s} failed because of a CSRF mismatch. Fetching a new token.`);const n=await WE();return t.defaults.headers.requesttoken=n,t({...i,[bd]:!0,headers:{...i.headers,requesttoken:n}})}throw e}}const yd="_nextcloudMaintenanceModeRetryDelay";function KO(t){return async e=>{if(!cc(e))throw e;const{config:i,response:o,request:r}=e,s=r?.responseURL,n=o?.status,a=o?.headers;let l=i?.[yd]??1;if(n===503&&a?.["x-nextcloud-maintenance-mode"]==="1"&&i?.retryIfMaintenanceMode){if(l*=2,l>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:s}),e;return console.warn(`Request to ${s} failed because of maintenance mode. Retrying in ${l}s`),await new Promise(u=>{setTimeout(u,l*1e3)}),t({...i,[yd]:l})}throw e}}async function XO(t){if(cc(t)){const{config:e,response:i,request:o}=t,r=o?.responseURL;i?.status===401&&i?.data?.message==="Current user is not logged in"&&e?.reloadExpiredSession&&globalThis.location?.reload&&(console.error(`Request to ${r} failed because the user session expired. Reloading the page …`),globalThis.OC?.reload?globalThis.OC.reload():globalThis.location.reload())}throw t}const uo=qO();uo.interceptors.response.use(t=>t,GO(uo)),uo.interceptors.response.use(t=>t,KO(uo)),uo.interceptors.response.use(t=>t,XO);function YO(){const t=Qe(null),e=Qe(0);let i=null,o=!1;async function r(){try{const s=await uo.get(Al("/apps/serverinfo/update"));t.value=s.data,e.value++}catch{}finally{o||(i=setTimeout(r,2e3))}}return i=setTimeout(r,0),Zo(()=>{o=!0,i!==null&&(clearTimeout(i),i=null)}),{data:t,tick:e}}function JO(){const t=Qe(null),e=Qe(!0),i=Qe(!1);async function o(){try{const r=await uo.get(Al("/apps/serverinfo/data"));t.value=r.data}catch{i.value=!0}finally{e.value=!1}}return o(),{data:t,loading:e,error:i}}const ZO={class:"server-info-wrapper"},QO={class:"section server-infos-two"},tk={class:"row"},ek={key:0},ik={class:"section server-infos-two"},ok={class:"row"},rk={class:"section php-database"},sk={class:"row"},nk={class:"section server-infos-two"},ak={class:"row"},lk={class:"section server-infos-two"},ck={class:"row"},uk={class:"section php-database"},hk={class:"row"},dk=Yt({name:"ServerInfo",__name:"SettingsAdmin",setup(t){const{data:e}=JO(),{data:i,tick:o}=YO();return(r,s)=>(H(),G("div",ZO,[M(e)?(H(),G(St,{key:0},[x("div",QO,[x("div",tk,[x("div",null,[at(fE,{hostname:M(e).hostname,osname:M(e).osname,cpu:M(e).cpu,memTotal:M(e).memTotal,servertime:M(i)?.servertime??"",uptime:M(i)?.uptime??""},null,8,["hostname","osname","cpu","memTotal","servertime","uptime"])]),!M(i)||M(i).thermalzones.length>0?(H(),G("div",ek,[M(i)?(H(),le(CE,{key:1,thermalzones:M(i).thermalzones},null,8,["thermalzones"])):(H(),le(Je,{key:0}))])):Ct("",!0)])]),x("div",ik,[x("div",ok,[x("div",null,[M(i)?(H(),le(zx,{key:0,cpuload:M(i).cpu.load,cpunum:M(e).cpu.threads,tick:M(o)},null,8,["cpuload","cpunum","tick"])):(H(),le(Je,{key:1}))]),x("div",null,[M(i)?(H(),le(Hw,{key:0,memTotal:M(i).memory.total,memFree:M(i).memory.free,swapTotal:M(i).memory.swap_total,swapFree:M(i).memory.swap_free,tick:M(o)},null,8,["memTotal","memFree","swapTotal","swapFree","tick"])):(H(),le(Je,{key:1}))])])]),at(Rw,{disks:M(e).diskinfo,freespace:M(e).freeSpace,storage:M(e).storage},null,8,["disks","freespace","storage"]),at(BS,{networkinfo:M(e).networkinfo,interfaces:M(e).networkinterfaces},null,8,["networkinfo","interfaces"]),at(ab,{activeUsers:M(e).activeUsers,numUsers:M(e).storage.num_users},null,8,["activeUsers","numUsers"]),M(e).shares.num_shares>0?(H(),le(ZC,{key:0,shares:M(e).shares},null,8,["shares"])):Ct("",!0),x("div",rk,[x("div",sk,[x("div",null,[at(RC,{php:M(e).php,fpm:M(e).fpm,phpinfo:M(e).phpinfo,phpinfoUrl:M(e).phpinfoUrl},null,8,["php","fpm","phpinfo","phpinfoUrl"])]),x("div",null,[at(ew,{database:M(e).database},null,8,["database"])])]),at(KS,{extensions:M(e).php.extensions},null,8,["extensions"])]),at(_S,{ocs:M(e).ocs},null,8,["ocs"])],64)):(H(),G(St,{key:1},[x("div",nk,[x("div",ak,[x("div",null,[at(Je)]),x("div",null,[at(Je)])])]),x("div",lk,[x("div",ck,[x("div",null,[at(Je)]),x("div",null,[at(Je)])])]),at(Je),at(Je),x("div",uk,[x("div",hk,[x("div",null,[at(Je)]),x("div",null,[at(Je)])]),at(Je)])],64))]))}});e1(dk).mount("#serverinfo-settings"); //# sourceMappingURL=serverinfo-main.mjs.map diff --git a/js/serverinfo-main.mjs.license b/js/serverinfo-main.mjs.license index 9c1e57d4..a8d0eb38 100644 --- a/js/serverinfo-main.mjs.license +++ b/js/serverinfo-main.mjs.license @@ -3,8 +3,10 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: ISC SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: Anthony Fu SPDX-FileCopyrightText: David Myers SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 (https://cure53.de/) +SPDX-FileCopyrightText: Eduardo San Martin Morote SPDX-FileCopyrightText: Evan You SPDX-FileCopyrightText: GitHub Inc. SPDX-FileCopyrightText: Jakub Juszczak @@ -38,6 +40,9 @@ This file is generated from multiple sources. Included packages: - @nextcloud/router - version: 3.1.0 - license: GPL-3.0-or-later +- @nextcloud/vue + - version: 9.9.0 + - license: AGPL-3.0-or-later - @vitejs/plugin-vue - version: 6.0.7 - license: MIT @@ -53,6 +58,9 @@ This file is generated from multiple sources. Included packages: - @vue/shared - version: 3.5.35 - license: MIT +- @vueuse/shared + - version: 14.4.0 + - license: MIT - axios - version: 1.18.1 - license: MIT @@ -83,3 +91,6 @@ This file is generated from multiple sources. Included packages: - vue-material-design-icons - version: 5.3.1 - license: MIT +- vue-router + - version: 5.2.0 + - license: MIT diff --git a/js/serverinfo-main.mjs.map b/js/serverinfo-main.mjs.map index b5e01a99..8ffb87f6 100644 --- a/js/serverinfo-main.mjs.map +++ b/js/serverinfo-main.mjs.map @@ -1 +1 @@ -{"version":3,"file":"serverinfo-main.mjs","sources":["../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../node_modules/@nextcloud/router/dist/index.mjs","../node_modules/dompurify/dist/purify.es.mjs","../node_modules/escape-html/index.js","../node_modules/@nextcloud/l10n/dist/chunks/translation-DoG5ZELJ.mjs","../node_modules/vue-material-design-icons/AccountGroup.vue","../src/components/SectionHeading.vue","../src/components/ActiveUsersSection.vue","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/dist/chunks/helpers.dataset.js","../node_modules/chart.js/dist/chart.js","../node_modules/vue-chartjs/dist/index.js","../node_modules/vue-material-design-icons/Chip.vue","../src/utils.ts","../src/components/CpuChartSection.vue","../node_modules/vue-material-design-icons/Database.vue","../src/components/DatabaseSection.vue","../node_modules/vue-material-design-icons/Harddisk.vue","../src/components/DiskSection.vue","../node_modules/vue-material-design-icons/Memory.vue","../src/components/MemoryChartSection.vue","../node_modules/vue-material-design-icons/Connection.vue","../src/components/MonitoringSection.vue","../node_modules/vue-material-design-icons/Lan.vue","../src/components/NetworkSection.vue","../node_modules/vue-material-design-icons/Puzzle.vue","../src/components/PhpExtensionsSection.vue","../node_modules/vue-material-design-icons/Cogs.vue","../node_modules/vue-material-design-icons/LanguagePhp.vue","../src/components/PhpSection.vue","../src/components/SectionSkeleton.vue","../node_modules/vue-material-design-icons/ShareVariant.vue","../src/components/SharesSection.vue","../node_modules/vue-material-design-icons/Monitor.vue","../src/components/SystemSection.vue","../node_modules/vue-material-design-icons/Thermometer.vue","../src/components/ThermalSection.vue","../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/re.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/major.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/valid.js","../node_modules/@nextcloud/event-bus/dist/index.mjs","../node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","../node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","../node_modules/@nextcloud/browser-storage/dist/index.js","../node_modules/@nextcloud/auth/dist/index.mjs","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/sanitizeHeaderValue.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../node_modules/@nextcloud/axios/dist/client.js","../node_modules/@nextcloud/axios/dist/interceptors/csrf-token.js","../node_modules/@nextcloud/axios/dist/interceptors/maintenance-mode.js","../node_modules/@nextcloud/axios/dist/interceptors/not-logged-in.js","../node_modules/@nextcloud/axios/dist/index.js","../src/composables/useLiveData.ts","../src/composables/useStaticData.ts","../src/views/SettingsAdmin.vue","../src/main.ts"],"sourcesContent":["const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","/**\n* @vue/shared v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"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\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return extend(\n // inheriting all iterator properties\n Object.create(innerIterator),\n {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n }\n }\n );\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n const target = toRaw(this);\n const proto = getProto(target);\n const rawValue = toRaw(value);\n const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value;\n const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);\n if (!hadKey) {\n target.add(valueToAdd);\n trigger(target, \"add\", valueToAdd, valueToAdd);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction reactive(target) {\n if (/* @__PURE__ */ isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n if (target[\"__v_skip\"] || !Object.isExtensible(target)) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = targetTypeMap(toRawType(target));\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReactive(value) {\n if (/* @__PURE__ */ isReadonly(value)) {\n return /* @__PURE__ */ isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? /* @__PURE__ */ toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;\n\n// @__NO_SIDE_EFFECTS__\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ref(value) {\n return createRef(value, false);\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (/* @__PURE__ */ isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, key, _defaultValue) {\n this._object = _object;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n this._key = isSymbol(key) ? key : String(key);\n this._raw = toRaw(_object);\n let shallow = true;\n let obj = _object;\n if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {\n do {\n shallow = !isProxy(obj) || isShallow(obj);\n } while (shallow && (obj = obj[\"__v_raw\"]));\n }\n this._shallow = shallow;\n }\n get value() {\n let val = this._object[this._key];\n if (this._shallow) {\n val = unref(val);\n }\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {\n const nestedRef = this._object[this._key];\n if (/* @__PURE__ */ isRef(nestedRef)) {\n nestedRef.value = newVal;\n return;\n }\n }\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(this._raw, this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRef(source, key, defaultValue) {\n if (/* @__PURE__ */ isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return /* @__PURE__ */ ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n return new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment, parentNode }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n const mountContainer = parentNode(vnode.el) || container;\n mount(vnode, mountContainer, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n const pendingMount = pendingMounts.get(vnode);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(vnode);\n }\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (!pendingMount && shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n function hydrateAnchor(target2, targetNode) {\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n }\n function hydrateDisabledTeleport(node2, vnode2) {\n vnode2.anchor = hydrateChildren(\n nextSibling(node2),\n vnode2,\n parentNode(node2),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n const disabled = isTeleportDisabled(vnode.props);\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n hydrateDisabledTeleport(node, vnode);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(\n target,\n vnode,\n createText,\n insert,\n // if target is the same as the main view, insert anchors before current node\n // to avoid hydrating mismatch\n parentNode(node) === target ? node : null\n );\n }\n } else {\n vnode.anchor = nextSibling(node);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n } else if (disabled) {\n if (vnode.shapeFlag & 16) {\n hydrateDisabledTeleport(node, vnode);\n vnode.targetStart = node;\n vnode.targetAnchor = nextSibling(node);\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert, anchor = null) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target, anchor);\n insert(targetAnchor, target, anchor);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = /* @__PURE__ */ Symbol(\"_leaveCb\");\nconst enterCbKey = /* @__PURE__ */ Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n const child = children && children.length ? findNonCommentChild(children) : (\n // Keep explicit default-slot conditionals on the same transition path\n // as regular v-if branches, which render a comment placeholder.\n instance.subTree ? createCommentVNode() : void 0\n );\n if (!child) {\n return;\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return;\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n const done = el[enterCbKey].bind(null, false);\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n const done = el[leaveCbKey].bind(null, false);\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n const cls = content.getAttribute(\"class\");\n if (cls) content.$cls = cls;\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && !isMismatchAllowed(el, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n logMismatchError();\n }\n while (next) {\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n const { textContent } = el;\n if (textContent !== clientText && // innerHTML normalize \\r\\n or \\r into a single \\n in the DOM\n textContent !== clientText.replace(/\\r\\n|\\r/g, \"\\n\")) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${textContent}\n - expected on client: ${clientText}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement && !isReservedProp(key)) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasCheckedMismatch = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!hasCheckedMismatch) {\n hasCheckedMismatch = true;\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n logMismatchError();\n }\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return list.includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createInnerComp(\n loadingComponent,\n instance\n );\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n instance2.__keepAliveStorageContainer = storageContainer;\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type\n );\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate ","\n\n\n\n\n\n","\n\n\n\n","/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n let id = 0;\n return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n return value === null || value === undefined;\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */ function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for(i = len - 1; i >= 0; i--){\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for(i = 0, ilen = a0.length; i < ilen; ++i){\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for(; k < klen; ++k){\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return [\n '__proto__',\n 'prototype',\n 'constructor'\n ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [\n source\n ];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for(let i = 0; i < ilen; ++i){\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for(let k = 0, klen = keys.length; k < klen; ++k){\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': (v)=>v,\n // default resolvers\n x: (o)=>o.x,\n y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts){\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return (obj)=>{\n for (const k of keys){\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a){\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for(i = 1; i < sqrt; i++){\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b)=>a - b).pop();\n return result;\n}\n/**\n * Verifies that attempting to coerce n to string or number won't throw a TypeError.\n */ function isNonPrimitive(n) {\n return typeof n === 'symbol' || typeof n === 'object' && n !== null && !(Symbol.toPrimitive in n || 'toString' in n || 'valueOf' in n);\n}\nfunction isNumber(n) {\n return !isNonPrimitive(n) && !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for(i = 0, ilen = array.length; i < ilen; i++){\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while(Math.round(x * e) / e !== x){\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index)=>table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while(hi - lo > 1){\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while(start < end && values[start] < min){\n start++;\n }\n while(end > start && values[end - 1] > max){\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n 'push',\n 'pop',\n 'shift',\n 'splice',\n 'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [\n listener\n ]\n }\n });\n arrayEvents.forEach((key)=>{\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value (...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object)=>{\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key)=>{\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n const set = new Set(items);\n if (set.size === items.length) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function(...args) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, ()=>{\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const { iScale , vScale , _parsed } = meta;\n const spanGaps = meta.dataset ? meta.dataset.options ? meta.dataset.options.spanGaps : null : null;\n const axis = iScale.axis;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = Math.min(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo);\n if (spanGaps) {\n const distanceToDefinedLo = _parsed.slice(0, start + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n start -= Math.max(0, distanceToDefinedLo);\n }\n start = _limitValue(start, 0, pointCount - 1);\n }\n if (maxDefined) {\n let end = Math.max(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1);\n if (spanGaps) {\n const distanceToDefinedHi = _parsed.slice(end - 1).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n end += Math.max(0, distanceToDefinedHi);\n }\n count = _limitValue(end, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n const { xScale , yScale , _scaleRanges } = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n linear: (t)=>t,\n easeInQuad: (t)=>t * t,\n easeOutQuad: (t)=>-t * (t - 2),\n easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: (t)=>t * t * t,\n easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: (t)=>t * t * t * t,\n easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: (t)=>t * t * t * t * t,\n easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n easeOutSine: (t)=>Math.sin(t * HALF_PI),\n easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic (t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack (t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack (t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack (t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n easeOutBounce (t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n 'x',\n 'y',\n 'borderWidth',\n 'radius',\n 'tension'\n];\nconst colors = [\n 'color',\n 'borderColor',\n 'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: (v)=>v | 0\n }\n }\n }\n });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n return isArray(value) ? value : '' + value;\n },\n numeric (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([\n 1,\n 2,\n 3,\n 5,\n 10,\n 15\n ].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n var Ticks = {\n formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n clip: true,\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options)=>options.lineWidth,\n tickColor: (_ctx, options)=>options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name)=>name !== 'backdropPadding'\n });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for(let i = 0, n = keys.length; i < n; ++i){\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n constructor(_descriptors, _appliers){\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get () {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set (value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach((apply)=>apply(this));\n }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n _scriptable: (name)=>!name.startsWith('on'),\n _indexable: (name)=>name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [\n applyAnimationsDefaults,\n applyLayoutsDefaults,\n applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for(i = 0; i < ilen; i++){\n thing = arrayOfThings[i];\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for(j = 0, jlen = thing.length; j < jlen; j++){\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for(i = 0; i < gcLen; i++){\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n if (!ctx && !canvas) {\n return;\n }\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch(style){\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */ case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */ case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */ const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [\n text\n ];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for(i = 0; i < lines.length; ++i){\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += Number(font.lineHeight);\n }\n ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n const { x , y , w , h , radius } = rect;\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch(matches[3]){\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n for (const prop of keys){\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n return _readValueToProps(value, [\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight'\n ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for(i = 0, ilen = inputs.length; i < ilen; ++i){\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n const { min , max } = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope)=>_createResolver([\n scope,\n ...scopes\n ], prefixes, finalRootScopes, fallback)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop) {\n return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys (target) {\n return getKeysFromAllScopes(target);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop, receiver) {\n return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(proxy);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return Reflect.has(proxy, prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys () {\n return Reflect.ownKeys(proxy);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n scriptable: true,\n indexable: true\n}) {\n const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys } = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n let value = _proxy[prop]; // resolve from proxy\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n const { _proxy , _context , _subProxy , _stack } = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter((s)=>s !== arr);\n value = [];\n for (const item of arr){\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes){\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [\n ...parentScopes,\n ...rootScopes\n ];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [\n ''\n ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while(key){\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes){\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes){\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes){\n for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const { iScale } = meta;\n const { key ='r' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen - 1; ++i){\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for(i = 0, ilen = points.length; i < ilen; ++i){\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt)=>!pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for(i = 0, ilen = points.length; i < ilen; ++i){\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * @private\n */ function _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for(let i = 0; i < 4; i++){\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const { offsetX , offsetY } = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const { canvas , currentDevicePixelRatio } = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const { x , y , box } = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let { width , height } = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let { width , height } = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = round1(chart.height * pixelRatio);\n const deviceWidth = round1(chart.width * pixelRatio);\n chart.height = round1(chart.height);\n chart.width = round1(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive () {\n passiveSupported = true;\n return false;\n }\n };\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x (x) {\n return rectX + rectX + width - x;\n },\n setWidth (w) {\n width = w;\n },\n textAlign (align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus (x, value) {\n return x - value;\n },\n leftForLtr (x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x (x) {\n return x;\n },\n setWidth (w) {},\n textAlign (align) {\n return align;\n },\n xPlus (x, value) {\n return x + value;\n },\n leftForLtr (x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction')\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b)=>a - b,\n normalize: (x)=>x\n };\n}\nfunction normalizeSegment({ start , end , count , loop , style }) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const { property , start: startBound , end: endBound } = bounds;\n const { between , normalize } = propertyFn(property);\n const count = points.length;\n let { start , end , loop } = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for(i = 0, ilen = count; i < ilen; ++i){\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\n function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [\n segment\n ];\n }\n const { property , start: startBound , end: endBound } = bounds;\n const count = points.length;\n const { compare , between , normalize } = propertyFn(property);\n const { start , end , loop , style } = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = ()=>inside || startIsBefore();\n const shouldStop = ()=>!inside || endIsBefore();\n for(let i = start, prev = start; i <= end; ++i){\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\n function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for(let i = 0; i < segments.length; i++){\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while(start < count && !points[start].skip){\n start++;\n }\n }\n while(start < count && points[start].skip){\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while(end > start && points[end % count].skip){\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\n function solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for(end = start + 1; end <= max; ++end){\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\n function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const { start , end } = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [\n {\n start,\n end,\n loop\n }\n ], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const { _datasetIndex: datasetIndex , options: { spanGaps } } = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while(points[s % count].skip){\n s -= dir;\n }\n while(points[e % count].skip){\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments){\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for(i = start + 1; i <= segment.end; i++){\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n const { xScale , yScale } = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\nfunction getDatasetClipArea(chart, meta) {\n const clip = meta._clip;\n if (clip.disabled) {\n return false;\n }\n const area = getDatasetArea(meta, chart.chartArea);\n return {\n left: clip.left === false ? 0 : area.left - (clip.left === true ? 0 : clip.left),\n right: clip.right === false ? chart.width : area.right + (clip.right === true ? 0 : clip.right),\n top: clip.top === false ? 0 : area.top - (clip.top === true ? 0 : clip.top),\n bottom: clip.bottom === false ? chart.height : area.bottom + (clip.bottom === true ? 0 : clip.bottom)\n };\n}\n\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, getStyle as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, distanceBetweenPoints as aF, noop as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, Ticks as aM, log10 as aN, _longestText as aO, _filterBetween as aP, _lookup as aQ, isPatternOrGradient as aR, getHoverColor as aS, clone as aT, _merger as aU, _mergerIf as aV, _deprecated as aW, _splitKey as aX, toFontString as aY, splineCurve as aZ, splineCurveMonotone as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, getDatasetClipArea as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _normalizeAngle as al, _readValueToProps as am, _updateBezierControlPoints as an, _computeSegments as ao, _boundSegments as ap, _steppedInterpolation as aq, _bezierInterpolation as ar, _pointInLine as as, _steppedLineTo as at, _bezierCurveTo as au, drawPoint as av, addRoundedRectPath as aw, toTRBL as ax, toTRBLCorners as ay, _boundSegment as az, isArray as b, fontString as b0, toLineHeight as b1, PITAU as b2, INFINITY as b3, RAD_PER_DEG as b4, QUARTER_PI as b5, TWO_THIRDS_PI as b6, _angleDiff as b7, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n//# sourceMappingURL=helpers.dataset.js.map\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, d as defaults, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as createContext, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _lookupByKey, C as _isPointInArea, D as getAngleFromPoint, E as toPadding, F as each, G as getMaximumSize, I as _getParentNode, J as readUsedSize, K as supportsEventListenerOptions, L as throttled, M as _isDomSupported, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as _limitValue, U as toDegrees, V as _measureText, W as _int16Range, X as _alignPixel, Y as clipArea, Z as renderText, $ as unclipArea, a0 as toFont, a1 as _toLeftRightCenter, a2 as _alignStartEnd, a3 as overrides, a4 as merge, a5 as _capitalize, a6 as descriptors, a7 as isFunction, a8 as _attachContext, a9 as _createResolver, aa as _descriptors, ab as mergeIf, ac as uid, ad as debounce, ae as retinaScale, af as clearCanvas, ag as setsEqual, ah as getDatasetClipArea, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _normalizeAngle, am as _readValueToProps, an as _updateBezierControlPoints, ao as _computeSegments, ap as _boundSegments, aq as _steppedInterpolation, ar as _bezierInterpolation, as as _pointInLine, at as _steppedLineTo, au as _bezierCurveTo, av as drawPoint, aw as addRoundedRectPath, ax as toTRBL, ay as toTRBLCorners, az as _boundSegment, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as distanceBetweenPoints, aG as noop, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as Ticks, aN as log10, aO as _longestText, aP as _filterBetween, aQ as _lookup } from './chunks/helpers.dataset.js';\nimport '@kurkle/color';\n\nclass Animator {\n constructor(){\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach((fn)=>fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, ()=>{\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart)=>{\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for(; i >= 0; --i){\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur)=>Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for(; i >= 0; --i){\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = /* #__PURE__ */ new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean (from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color (from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number (from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to){\n const currentValue = target[prop];\n to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n const from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n this._from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || elapsed < duration);\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej)=>{\n promises.push({\n res,\n rej\n });\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for(let i = 0; i < promises.length; i++){\n promises[i][method]();\n }\n }\n}\n\nclass Animations {\n constructor(chart, config){\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach((key)=>{\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions){\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [\n key\n ]).forEach((prop)=>{\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(()=>{\n target.options = newOptions;\n }, ()=>{\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for(i = props.length - 1; i >= 0; --i){\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for(let i = 0; i < keys.length; i++){\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n let found = false;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n found = true;\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n if (!found && !options.all) {\n return 0;\n }\n return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n const { iScale , vScale } = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const { min , max , minDefined , maxDefined } = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()){\n const value = stack[meta.index];\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const { chart , _cachedMeta: meta } = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const { iScale , vScale , index: datasetIndex } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for(let i = 0; i < ilen; ++i){\n const item = parsed[i];\n const { [iAxis]: index , [vAxis]: value } = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter((key)=>scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n });\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items){\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\nconst isDirectUpdateMode = (mode)=>mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared)=>shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart)=>canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\nclass DatasetController {\n static defaults = {};\n static datasetElementType = null;\n static dataElementType = null;\n constructor(chart, datasetIndex){\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r)=>axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n meta._stacked = isStacked(meta.vScale, meta);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const { _cachedMeta: meta , _data: data } = this;\n const { iScale , _stacked } = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = ()=>cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n for(i = 0; i < count; ++i){\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {\n mode\n });\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n const { min: otherMin , max: otherMax } = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for(i = 0; i < ilen; ++i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for(i = ilen - 1; i >= 0; --i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for(i = 0, ilen = parsed.length; i < ilen; ++i){\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || elements.length - start;\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for(i = start; i < start + count; ++i){\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for(i = 0; i < active.length; ++i){\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [\n `${elementType}Hover`,\n 'hover',\n elementType,\n ''\n ] : [\n elementType,\n ''\n ];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = ()=>this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions,\n includeOptions\n };\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList){\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr)=>{\n arr.length += count;\n for(i = arr.length - 1; i >= end; i--){\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for(i = start; i < end; ++i){\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([\n this.index,\n ...args\n ]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync([\n '_insertElements',\n this.getDataset().data.length - count,\n count\n ]);\n }\n _onDataPop() {\n this._sync([\n '_removeElements',\n this._cachedMeta.data.length - 1,\n 1\n ]);\n }\n _onDataShift() {\n this._sync([\n '_removeElements',\n 0,\n 1\n ]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync([\n '_removeElements',\n start,\n count\n ]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync([\n '_insertElements',\n start,\n newCount\n ]);\n }\n }\n _onDataUnshift() {\n this._sync([\n '_insertElements',\n 0,\n arguments.length\n ]);\n }\n}\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for(let i = 0, ilen = visibleMetas.length; i < ilen; i++){\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b)=>a - b));\n }\n return scale._cache.$bar;\n}\n function computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = ()=>{\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for(i = 0, ilen = values.length; i < ilen; ++i){\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for(i = 0, ilen = scale.ticks.length; i < ilen; ++i){\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\n function computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n function computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for(i = start, ilen = start + count; i < ilen; ++i){\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {\n start,\n end,\n reverse,\n top,\n bottom\n };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n const { start , end , reverse , top , bottom } = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, { inflateAmount }, ratio) {\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n static id = 'bar';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n };\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for(i = start, ilen = start + count; i < ilen; ++i){\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const { iScale , vScale } = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const { index , _cachedMeta: { vScale } } = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n for(let i = start; i < start + count; i++){\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base,\n head: base\n } : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const { iScale } = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type).filter((meta)=>meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n const skipNull = (meta)=>{\n const parsed = meta._parsed.find((item)=>item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets){\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getAxisCount() {\n return this._getAxis().length;\n }\n getFirstScaleIdForIndexAxis() {\n const scales = this.chart.scales;\n const indexScaleId = this.chart.options.indexAxis;\n return Object.keys(scales).filter((key)=>scales[key].axis === indexScaleId).shift();\n }\n _getAxis() {\n const axis = {};\n const firstScaleAxisId = this.getFirstScaleIdForIndexAxis();\n for (const dataset of this.chart.data.datasets){\n axis[valueOrDefault(this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId)] = true;\n }\n return Object.keys(axis);\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for(i = 0, ilen = meta.data.length; i < ilen; ++i){\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const { _cachedMeta: { vScale , _stacked , index: datasetIndex } , options: { base: baseValue , minBarLength } } = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n if (_stacked && !floating) {\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n const axisCount = this._getAxisCount();\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount) : computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);\n const axisID = this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID;\n const axisNumber = this._getAxis().indexOf(valueOrDefault(axisID, this.getFirstScaleIdForIndexAxis()));\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for(; i < ilen; ++i){\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\n\nclass BubbleController extends DatasetController {\n static id = 'bubble';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'borderWidth',\n 'radius'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {\n ratioX,\n ratioY,\n offsetX,\n offsetY\n };\n}\nclass DoughnutController extends DatasetController {\n static id = 'doughnut';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'circumference',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'x',\n 'y',\n 'offset',\n 'borderWidth',\n 'spacing'\n ]\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n };\n static descriptors = {\n _scriptable: (name)=>name !== 'spacing',\n _indexable: (name)=>name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n const { labels: { pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n if (data.labels.length && data.datasets.length) {\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !chart.getDataVisibility(i),\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: style.borderWidth,\n strokeStyle: style.borderColor,\n textAlign: textAlign,\n pointStyle: pointStyle,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i)=>+data[i];\n if (isObject(data[start])) {\n const { key ='value' } = this._parsing;\n getter = (i)=>+resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for(i = start, ilen = start + count; i < ilen; ++i){\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for(let i = 0; i < this.chart.data.datasets.length; ++i){\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min\n };\n }\n update(mode) {\n const chart = this.chart;\n const { chartArea } = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const { circumference , rotation } = this._getRotationExtents();\n const { ratioX , ratioY , offsetX , offsetY } = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for(i = 0; i < start; ++i){\n startAngle += this._circumference(i, reset);\n }\n for(i = start; i < start + count; ++i){\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for(i = 0; i < metaData.length; i++){\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for(i = 0, ilen = chart.data.datasets.length; i < ilen; ++i){\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for(i = 0, ilen = arcs.length; i < ilen; ++i){\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for(let i = 0, ilen = arcs.length; i < ilen; ++i){\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for(let i = 0; i < datasetIndex; ++i){\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n\nclass LineController extends DatasetController {\n static id = 'line';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { dataset: line , data: points = [] , _dataset } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = 0; i < pointsCount; ++i){\n const point = points[i];\n const properties = directUpdate ? point : {};\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n\nclass PolarAreaController extends DatasetController {\n static id = 'polarArea';\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ]\n }\n },\n indexAxis: 'r',\n startAngle: 0\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach((element, index)=>{\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for(i = 0; i < start; ++i){\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for(i = start; i < start + count; i++){\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index)=>{\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n}\n\nclass PieController extends DoughnutController {\n static id = 'pie';\n static defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n };\n}\n\nclass RadarController extends DatasetController {\n static id = 'radar';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n };\n static overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n };\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n\nclass ScatterController extends DatasetController {\n static id = 'scatter';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n static overrides = {\n interaction: {\n mode: 'point'\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { data: points = [] } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n if (!this.datasetElementType) {\n this.addElements();\n }\n const { dataset: line , _dataset } = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n delete meta.dataset;\n this.datasetElementType = false;\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const { showLine } = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = start; i < start + count; ++i){\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPieController: PieController,\nPolarAreaController: PolarAreaController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */ function abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */ class DateAdapterBase {\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */ static override(members) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n options;\n constructor(options){\n this.options = options || {};\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n formats() {\n return abstract();\n }\n parse() {\n return abstract();\n }\n format() {\n return abstract();\n }\n add() {\n return abstract();\n }\n diff() {\n return abstract();\n }\n startOf() {\n return abstract();\n }\n endOf() {\n return abstract();\n }\n}\nvar adapters = {\n _date: DateAdapterBase\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const { controller , data , _sorted } = metaset;\n const iScale = controller._cachedMeta.iScale;\n const spanGaps = metaset.dataset ? metaset.dataset.options ? metaset.dataset.options.spanGaps : null : null;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n const result = lookupMethod(data, axis, value);\n if (spanGaps) {\n const { vScale } = controller._cachedMeta;\n const { _parsed } = metaset;\n const distanceToDefinedLo = _parsed.slice(0, result.lo + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.lo -= Math.max(0, distanceToDefinedLo);\n const distanceToDefinedHi = _parsed.slice(result.hi).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.hi += Math.max(0, distanceToDefinedHi);\n }\n return result;\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n function evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for(let i = 0, ilen = metasets.length; i < ilen; ++i){\n const { index , data } = metasets[i];\n const { lo , hi } = binarySearch(metasets[i], axis, value, intersect);\n for(let j = lo; j <= hi; ++j){\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n function getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n function getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n function getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const { startAngle , endAngle } = element.getProps([\n 'startAngle',\n 'endAngle'\n ], useFinalPosition);\n const { angle } = getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n });\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [\n {\n element,\n datasetIndex,\n index\n }\n ];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n function getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index)=>{\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n var Interaction = {\n evaluateInteractionItems,\n modes: {\n index (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta)=>{\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({\n element,\n datasetIndex: meta.index,\n index\n });\n }\n });\n return elements;\n },\n dataset (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for(let i = 0; i < data.length; ++i){\n items.push({\n element: data[i],\n datasetIndex,\n index: i\n });\n }\n }\n return items;\n },\n point (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = [\n 'left',\n 'top',\n 'right',\n 'bottom'\n];\nfunction filterByPosition(array, position) {\n return array.filter((v)=>v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter((v)=>STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b)=>{\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for(i = 0, ilen = (boxes || []).length; i < ilen; ++i){\n box = boxes[i];\n ({ position: pos , options: { stack , stackWeight =1 } } = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts){\n const { stack , pos , stackWeight } = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n function setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const { vBoxMaxWidth , hBoxMaxHeight } = params;\n let i, ilen, layout;\n for(i = 0, ilen = layouts.length; i < ilen; ++i){\n layout = layouts[i];\n const { fullSize } = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter((wrap)=>wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const { pos , box } = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach((pos)=>{\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal ? marginForPositions([\n 'left',\n 'right'\n ]) : marginForPositions([\n 'top',\n 'bottom'\n ]);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for(i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i){\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n const { same , other } = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let { x , y } = chartArea;\n for (const layout of boxes){\n const box = layout.box;\n const stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n const weight = layout.stackWeight / stack.weight || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\nvar layouts = {\n addBox (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [\n {\n z: 0,\n draw (chartArea) {\n item.draw(chartArea);\n }\n }\n ];\n };\n chart.boxes.push(item);\n },\n removeBox (chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure (chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update (chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, (box)=>{\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap)=>wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, (layout)=>{\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\n const EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = (value)=>value === null || value === '';\n function initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const { x , y } = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList){\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart)=>{\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height)=>{\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver((entries)=>{\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event)=>{\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n addListener(canvas, type, proxy);\n return proxy;\n}\n class DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n [\n 'height',\n 'width'\n ].forEach((prop)=>{\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key)=>{\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = canvas && _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n static defaults = {};\n static defaultRoutes = undefined;\n x;\n y;\n active = false;\n options;\n $animations;\n tooltipPosition(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this;\n }\n const ret = {};\n props.forEach((prop)=>{\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for(i = 0, ilen = numMajorIndices - 1; i < ilen; i++){\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n function calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for(let i = 0, ilen = factors.length - 1; i < ilen; i++){\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n function getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n function skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for(i = 0; i < ticks.length; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n function skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while(next < 0){\n count++;\n next = Math.round(start + count * spacing);\n }\n for(i = Math.max(start, 0); i < end; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n function getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for(diff = arr[0], i = 1; i < len; ++i){\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align)=>align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset)=>edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit)=>Math.min(maxTicksLimit || ticksLength, ticksLength);\n function sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for(; i < len; i += increment){\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n function getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n function garbageCollect(caches, length) {\n each(caches, (cache)=>{\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for(i = 0; i < gcLen; ++i){\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n function getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n function getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const { top , left , bottom , right , chart } = scale;\n const { chartArea , scales } = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n}\nclass Scale extends Element {\n constructor(cfg){\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let { _userMin , _userMax , _suggestedMin , _suggestedMax } = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {\n min,\n max\n };\n }\n const metas = this.getMatchingVisibleMetas();\n for(let i = 0, ilen = metas.length; i < ilen; ++i){\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [\n this\n ]);\n }\n update(maxWidth, maxHeight, margins) {\n const { beginAtZero , grace , ticks: tickOpts } = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [\n this\n ]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [\n this\n ]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [\n this\n ]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [\n this\n ]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [\n this\n ]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [\n tick.value,\n i,\n ticks\n ], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [\n this\n ]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [\n this\n ]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [\n this\n ]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [\n this\n ]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const { chart , options: { ticks: tickOpts , title: titleOpts , grid: gridOpts } } = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const { first , last , widest , highest } = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const { ticks: { align , padding } , position } = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [\n this\n ]);\n }\n isHorizontal() {\n const { axis , position } = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const { ctx , _longestTextCache: caches } = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for(i = 0; i < length; i += increment){\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for(j = 0, jlen = label.length; j < jlen; ++j){\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx)=>({\n width: widths[idx] || 0,\n height: heights[idx] || 0\n });\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const { min , max } = this;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const { grid , position , border } = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for(i = 0; i < ticksLength; i += step){\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const { position , ticks: optionTicks } = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const { align , crossAlign , padding , mirror } = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += lineHeight / 2 * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n switch(textBaseline){\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch(textAlign){\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [\n x,\n y\n ],\n backdrop\n }\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const { position , ticks } = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const { position , ticks: { crossAlign , mirror , padding } } = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {\n textAlign,\n x\n };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n drawBackground() {\n const { ctx , options: { backgroundColor } , left , top , width , height } = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex((t)=>t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style)=>{\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for(i = 0, ilen = items.length; i < ilen; ++i){\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n drawBorder() {\n const { chart , ctx , options: { border , grid } } = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this.getLabelItems(chartArea);\n for (const item of items){\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const { ctx , options: { position , title , reverse } } = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const { titleX , titleY , maxWidth , rotation } = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [\n {\n z: tz,\n draw: (chartArea)=>{\n this.draw(chartArea);\n }\n }\n ];\n }\n return [\n {\n z: gz,\n draw: (chartArea)=>{\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n },\n {\n z: bz,\n draw: ()=>{\n this.drawBorder();\n }\n },\n {\n z: tz,\n draw: (chartArea)=>{\n this.drawLabels(chartArea);\n }\n }\n ];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override){\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach((property)=>{\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [\n scope\n ].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor(){\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [\n this.controllers,\n this.scales,\n this.elements\n ];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [\n ...args\n ].forEach((arg)=>{\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n this._exec(method, reg, arg);\n } else {\n each(arg, (item)=>{\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for(let i = 0; i < this._typedRegistries.length; i++){\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = /* #__PURE__ */ new Registry();\n\nclass PluginService {\n constructor(){\n this._init = undefined;\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n if (this._init === undefined) {\n return;\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n this._init = undefined;\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors){\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [\n chart,\n args,\n descriptor.options\n ];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n function allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for(let i = 0; i < keys.length; i++){\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for(let i = 0; i < local.length; i++){\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {\n plugins,\n localIds\n };\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, { plugins , localIds }, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins){\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {\n plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, { plugin , local }, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [\n ''\n ], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions){\n const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {\n axis\n };\n }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d)=>d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {\n scales: {}\n };\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n Object.keys(configScales).forEach((id)=>{\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [\n {\n axis\n },\n scaleConf,\n defaultScaleOptions[axis],\n defaultScaleOptions[defaultId]\n ]);\n });\n config.data.datasets.forEach((dataset)=>{\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach((defaultID)=>{\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [\n {\n axis\n },\n configScales[id],\n defaultScaleOptions[defaultID]\n ]);\n });\n });\n Object.keys(scales).forEach((key)=>{\n const scale = scales[key];\n mergeIf(scale, [\n defaults.scales[scale.type],\n defaults.scale\n ]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key)=>{\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config){\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, ()=>[\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`, ()=>[\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`, ()=>[\n [\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]\n ]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`, ()=>[\n [\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || []\n ]\n ]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const { options , type } = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach((keys)=>{\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach((key)=>addIfFound(scopes, mainScope, key));\n }\n keys.forEach((key)=>addIfFound(scopes, options, key));\n keys.forEach((key)=>addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach((key)=>addIfFound(scopes, defaults, key));\n keys.forEach((key)=>addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const { options , type } = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {\n type\n },\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = [\n ''\n ]) {\n const result = {\n $shared: true\n };\n const { resolver , subPrefixes } = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names){\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [\n ''\n ], descriptorDefaults) {\n const { resolver } = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter((p)=>!p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = (value)=>isObject(value) && Object.getOwnPropertyNames(value).some((key)=>isFunction(value[key]));\nfunction needContext(proxy, names) {\n const { isScriptable , isIndexable } = _descriptors(proxy);\n for (const prop of names){\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"4.5.1\";\n\nconst KNOWN_POSITIONS = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'chartArea'\n];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [\n context\n ], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [\n context\n ], chart);\n}\n function getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key)=>{\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c)=>c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys){\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n function determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n constructor(item, userConfig){\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce((mode)=>this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const { options: { aspectRatio , maintainAspectRatio } , width , height , _aspectRatio } = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n get registry() {\n return registry;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width,\n height\n };\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [\n this,\n newSize\n ], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID)=>{\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id)=>{\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map((id)=>{\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n each(items, (item)=>{\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id)=>{\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale)=>{\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b)=>a.index - b.index);\n if (numMeta > numData) {\n for(let i = numData; i < numMeta; ++i){\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const { _metasets: metasets , data: { datasets } } = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index)=>{\n if (datasets.filter((x)=>x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for(i = 0, ilen = datasets.length; i < ilen; i++){\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const { datasetElementType , dataElementType } = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex)=>{\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; i++){\n const { controller } = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller)=>{\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {\n mode\n });\n this._layers.sort(compare2Level('z', '_idx'));\n const { _active , _lastEvent } = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale)=>{\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const { _hiddenIndices } = this;\n const changes = this._getUniformDataChanges() || [];\n for (const { method , start , count } of changes){\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx)=>new Set(_dataChanges.filter((c)=>c[0] === idx).map((c, i)=>i + ',' + c.splice(1).join(',')));\n const changeSet = makeSet(0);\n for(let i = 1; i < datasetCount; i++){\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet).map((c)=>c.split(',')).map((a)=>({\n method: a[1],\n start: +a[2],\n count: +a[3]\n }));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box)=>{\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index)=>{\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this.getDatasetMeta(i).controller.configure();\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._updateDataset(i, isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {\n mode\n });\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {\n meta,\n index,\n mode,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const { width , height } = this._resizeBeforeDraw;\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const layers = this._layers;\n for(i = 0; i < layers.length && layers[i].z <= 0; ++i){\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for(; i < layers.length; ++i){\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n const clip = getDatasetClipArea(this, meta);\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (clip) {\n clipArea(ctx, clip);\n }\n meta.controller.draw();\n if (clip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter((x)=>x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible\n });\n this.update((ctx)=>ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for(i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const { canvas , ctx } = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y)=>{\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type)=>_add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener)=>{\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height)=>{\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = ()=>{\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = ()=>{\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter((p)=>p.plugin.id === pluginId).length === 1;\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin)=>(plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const { _active: lastActive = [] , options } = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [\n e,\n active,\n this\n ], this);\n if (isClick) {\n callback(options.onClick, [\n e,\n active,\n this\n ], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart)=>chart._plugins.invalidate());\n}\n\nfunction clipSelf(ctx, element, endAngle) {\n const { startAngle , x , y , outerRadius , innerRadius , options } = element;\n const { borderWidth , borderJoinStyle } = options;\n const outerAngleClip = Math.min(borderWidth / outerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.beginPath();\n ctx.arc(x, y, outerRadius - borderWidth / 2, startAngle + outerAngleClip / 2, endAngle - outerAngleClip / 2);\n if (innerRadius > 0) {\n const innerAngleClip = Math.min(borderWidth / innerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.arc(x, y, innerRadius + borderWidth / 2, endAngle - innerAngleClip / 2, startAngle + innerAngleClip / 2, true);\n } else {\n const clipWidth = Math.min(borderWidth / 2, outerRadius * _normalizeAngle(startAngle - endAngle));\n if (borderJoinStyle === 'round') {\n ctx.arc(x, y, clipWidth, endAngle - PI / 2, startAngle + PI / 2, true);\n } else if (borderJoinStyle === 'bevel') {\n const r = 2 * clipWidth * clipWidth;\n const endX = -r * Math.cos(endAngle + PI / 2) + x;\n const endY = -r * Math.sin(endAngle + PI / 2) + y;\n const startX = r * Math.cos(startAngle + PI / 2) + x;\n const startY = r * Math.sin(startAngle + PI / 2) + y;\n ctx.lineTo(endX, endY);\n ctx.lineTo(startX, startY);\n }\n }\n ctx.closePath();\n ctx.moveTo(0, 0);\n ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);\n ctx.clip('evenodd');\n}\nfunction clipArc(ctx, element, endAngle) {\n const { startAngle , pixelMargin , x , y , outerRadius , innerRadius } = element;\n let angleMargin = pixelMargin / outerRadius;\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, [\n 'outerStart',\n 'outerEnd',\n 'innerStart',\n 'innerEnd'\n ]);\n}\n/**\n * Parse border radius from the provided options\n */ function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val)=>{\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n/**\n * Convert (r, 𝜃) to (x, y)\n */ function rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */ function pathArc(ctx, element, offset, spacing, end, circular) {\n const { x , y , startAngle: start , pixelMargin , innerRadius: innerR } = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const { outerStart , outerEnd , innerStart , innerEnd } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference } = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference , options } = element;\n const { borderWidth , borderJoinStyle , borderDash , borderDashOffset , borderRadius } = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n if (options.selfJoin && endAngle - startAngle >= PI && borderRadius === 0 && borderJoinStyle !== 'miter') {\n clipSelf(ctx, element, endAngle);\n }\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\nclass ArcElement extends Element {\n static id = 'arc';\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n selfJoin: false\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash'\n };\n circumference;\n endAngle;\n fullCircles;\n innerRadius;\n outerRadius;\n pixelMargin;\n startAngle;\n constructor(cfg){\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n const { angle , distance } = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n });\n const { startAngle , endAngle , innerRadius , outerRadius , circumference } = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n const betweenAngles = _circumference >= TAU || nonZeroBetween;\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return betweenAngles && withinRadius;\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , startAngle , endAngle , innerRadius , outerRadius } = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const { offset , spacing } = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const { options , circumference } = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n ctx.restore();\n }\n}\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n function getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const { start: paramsStart = 0 , end: paramsEnd = count - 1 } = params;\n const { start: segmentStart , end: segmentEnd } = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n function pathSegment(ctx, line, segment, params) {\n const { points , options } = line;\n const { count , start , loop , ilen } = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let { move =true , reverse } = params || {};\n let i, point, prev;\n for(i = 0; i <= ilen; ++i){\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\n function fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const { count , start , ilen } = pathVars(points, segment, params);\n const { move =true , reverse } = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index)=>(start + (reverse ? ilen - index : index)) % count;\n const drawX = ()=>{\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for(i = 0; i <= ilen; ++i){\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\n function _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n function _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const { segments , options } = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments){\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {\n start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n static id = 'line';\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash' && name !== 'fill'\n };\n constructor(cfg){\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {\n property,\n start: value,\n end: value\n });\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for(i = 0, ilen = segments.length; i < ilen; ++i){\n const { start , end } = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n for (const segment of segments){\n loop &= segmentMethod(ctx, this, segment, {\n start,\n end: start + count - 1\n });\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const { [axis]: value } = el.getProps([\n axis\n ], useFinalPosition);\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n static id = 'point';\n parsed;\n skip;\n stop;\n /**\n * @type {any}\n */ static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n /**\n * @type {any}\n */ static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n\nfunction getBarBounds(bar, useFinalPosition) {\n const { x , y , base , width , height } = bar.getProps([\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {\n left,\n top,\n right,\n bottom\n };\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const { enableBorderRadius } = bar.getProps([\n 'enableBorderRadius'\n ]);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n function addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n static id = 'bar';\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const { inflateAmount , options: { borderColor , backgroundColor } } = this;\n const { inner , outer } = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , base , horizontal } = this.getProps([\n 'x',\n 'y',\n 'base',\n 'horizontal'\n ], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nBarElement: BarElement,\nLineElement: LineElement,\nPointElement: PointElement\n});\n\nconst BORDER_COLORS = [\n 'rgb(54, 162, 235)',\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map((color)=>color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBorderColor(i++));\n return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBackgroundColor(i++));\n return i;\n}\nfunction getColorizer(chart) {\n let i = 0;\n return (dataset, datasetIndex)=>{\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\nfunction containsColorsDefinitions(descriptors) {\n let k;\n for(k in descriptors){\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n return false;\n}\nfunction containsColorsDefinition(descriptor) {\n return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n return defaults.borderColor !== 'rgba(0,0,0,0.1)' || defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n id: 'colors',\n defaults: {\n enabled: true,\n forceOverride: false\n },\n beforeLayout (chart, _args, options) {\n if (!options.enabled) {\n return;\n }\n const { data: { datasets } , options: chartOptions } = chart.config;\n const { elements } = chartOptions;\n const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n if (!options.forceOverride && containsColorDefenition) {\n return;\n }\n const colorizer = getColorizer(chart);\n datasets.forEach(colorizer);\n }\n};\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for(i = 0; i < samples - 2; i++){\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for(j = avgRangeStart; j < avgRangeEnd; j++){\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const { x: pointAx , y: pointAy } = data[a];\n maxArea = area = -1;\n for(j = rangeOffs; j < rangeTo; j++){\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for(i = start; i < start + count; ++i){\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: data\n });\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset)=>{\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const { iScale } = meta;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {\n start,\n count\n };\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: (chart, args, options)=>{\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex)=>{\n const { _data , indexAxis } = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([\n indexAxis,\n chart.options.indexAxis\n ]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let { start , count } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch(options.algorithm){\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy (chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments){\n let { start , end } = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments){\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources){\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {\n property,\n start,\n end\n };\n}\nfunction _pointsFromSegments(boundary, line) {\n const { x =null , y =null } = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({ start , end })=>{\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({\n x: first.x,\n y\n });\n points.push({\n x: last.x,\n y\n });\n } else if (x !== null) {\n points.push({\n x,\n y: first.y\n });\n points.push({\n x,\n y: last.y\n });\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for(; end > start; end--){\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {\n tension: 0\n },\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [\n index\n ];\n let target;\n if (!propagate) {\n return fill;\n }\n while(fill !== false && visited.indexOf(fill) === -1){\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\n function _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return [\n 'origin',\n 'start',\n 'end',\n 'stack',\n 'shape'\n ].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\n function _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\n function _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\n function parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const { scale , index , line } = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n for(let j = segment.start; j <= segment.end; j++){\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({\n points,\n options: {}\n });\n}\n function getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for(let i = 0; i < metas.length; i++){\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\n function addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for(let j = 0; j < linesBelow.length; j++){\n const line = linesBelow[j];\n const { first , last , point } = findPoint(line, sourcePoint, 'x');\n if (!point || first && last) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\n function findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {\n first,\n last,\n point\n };\n}\n\nclass simpleArc {\n constructor(opts){\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const { x , y , radius } = this;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const { x , y , radius } = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const { chart , fill , line } = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\n function getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const { scale ={} , fill } = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const { scale , fill } = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for(let i = 0; i < length; ++i){\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const { chart , index , line , scale , axis } = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const { above =color , below =color } = fillOption || {};\n const meta = chart.getDatasetMeta(index);\n const clip = getDatasetClipArea(chart, meta);\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line,\n target,\n above,\n below,\n area,\n scale,\n axis,\n clip\n });\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const { line , target , above , below , area , scale , clip } = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n let fillColor = below;\n if (below !== above) {\n if (property === 'x') {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line,\n target,\n color: above,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n } else if (property === 'y') {\n clipHorizontal(ctx, target, area.left);\n fill(ctx, {\n line,\n target,\n color: below,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipHorizontal(ctx, target, area.right);\n fillColor = above;\n }\n }\n fill(ctx, {\n line,\n target,\n color: fillColor,\n scale,\n property,\n clip\n });\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction clipHorizontal(ctx, target, clipX) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(clipX, firstPoint.y);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(clipX, lastPoint.y);\n }\n }\n ctx.lineTo(clipX, target.first().y);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const { line , target , property , color , scale , clip } = cfg;\n const segments = _segments(line, target, property);\n for (const { source: src , target: tgt , start , end } of segments){\n const { style: { backgroundColor =color } = {} } = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, clip, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, clip, bounds) {\n const chartArea = scale.chart.chartArea;\n const { property , start , end } = bounds || {};\n if (property === 'x' || property === 'y') {\n let left, top, right, bottom;\n if (property === 'x') {\n left = start;\n top = chartArea.top;\n right = end;\n bottom = chartArea.bottom;\n } else {\n left = chartArea.left;\n top = start;\n right = chartArea.right;\n bottom = end;\n }\n ctx.beginPath();\n if (clip) {\n left = Math.max(left, clip.left);\n right = Math.min(right, clip.right);\n top = Math.max(top, clip.top);\n bottom = Math.min(bottom, clip.bottom);\n }\n ctx.rect(left, top, right - left, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate (chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for(i = 0; i < count; ++i){\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for(i = 0; i < count; ++i){\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw (chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw (chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw (chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize)=>{\n let { boxHeight =fontSize , boxWidth =fontSize } = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b)=>a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config){\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [\n this.chart\n ], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item)=>labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b)=>labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const { options , ctx } = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const { boxWidth , itemHeight } = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const { ctx , maxWidth , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [\n 0\n ];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i)=>{\n const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {\n left: 0,\n top,\n row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const { ctx , maxHeight , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i)=>{\n const { itemWidth , itemHeight } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {\n left,\n top: currentColHeight,\n col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const { legendHitBoxes: hitboxes , options: { align , labels: { padding } , rtl } } = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes){\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes){\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const { options: opts , columnSizes , lineWidths , ctx } = this;\n const { align , labels: labelOpts } = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const { padding } = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const { boxWidth , boxHeight , itemHeight } = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i)=>{\n ctx.strokeStyle = legendItem.fontColor;\n ctx.fillStyle = legendItem.fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size)=>Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for(i = 0; i < lh.length; ++i){\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [\n e,\n previous,\n this\n ], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [\n e,\n hoveredItem,\n this\n ], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [\n e,\n hoveredItem,\n this\n ], this);\n }\n }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {\n itemWidth,\n itemHeight\n };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b)=>a.length > b.length ? a : b);\n }\n return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start (chart, _args, options) {\n const legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop (chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate (chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate (chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent (chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick (e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx)=>ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels (chart) {\n const datasets = chart.data.datasets;\n const { labels: { usePointStyle , pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta)=>{\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx)=>ctx.chart.options.color,\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: (name)=>!name.startsWith('on'),\n labels: {\n _scriptable: (name)=>![\n 'generateLabels',\n 'filter',\n 'sort'\n ].includes(name)\n }\n }\n};\n\nclass Title extends Element {\n constructor(config){\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const { top , left , bottom , right , options } = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const { titleX , titleY , maxWidth , rotation } = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start (chart, _args, options) {\n createTitle(chart, options);\n },\n stop (chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate (chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start (chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop (chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate (chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst positioners = {\n average (items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n const xAverage = [\n ...xSet\n ].reduce((a, b)=>a + b) / xSet.size;\n return {\n x: xAverage,\n y: y / count\n };\n },\n nearest (items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\n function splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n function createTooltipItem(chart, item) {\n const { element , datasetIndex , index } = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const { label , value } = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n function getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const { body , footer , title } = tooltip;\n const { boxWidth , boxHeight } = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem)=>count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, (bodyItem)=>{\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width,\n height\n };\n}\nfunction determineYAlign(chart, size) {\n const { y , height } = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const { x , width } = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const { x , width } = size;\n const { width: chartWidth , chartArea: { left , right } } = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\n function determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let { x , width } = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let { y , height } = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n return y;\n}\n function getBackgroundPoint(options, size, alignment, chart) {\n const { caretSize , caretPadding , cornerRadius } = options;\n const { xAlign , yAlign } = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n function getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n beforeTitle: noop,\n title (tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label (tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor () {\n return this.options.bodyColor;\n },\n labelPointStyle (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n function invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n return result;\n}\nclass Tooltip extends Element {\n static positioners = positioners;\n constructor(config){\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const { callbacks } = options;\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n }\n getBody(tooltipItems, options) {\n const { callbacks } = options;\n const bodyItems = [];\n each(tooltipItems, (context)=>{\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n }\n getFooter(tooltipItems, options) {\n const { callbacks } = options;\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for(i = 0, len = active.length; i < len; ++i){\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array)=>options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b)=>options.itemSort(a, b, data));\n }\n each(tooltipItems, (context)=>{\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay\n });\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const { xAlign , yAlign } = this;\n const { caretSize , cornerRadius } = options;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n const { x: ptX , y: ptY } = tooltipPoint;\n const { width , height } = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {\n x1,\n x2,\n x3,\n y1,\n y2,\n y3\n };\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const { boxHeight , boxWidth } = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const { body } = this;\n const { bodySpacing , bodyAlign , displayColors , boxHeight , boxWidth , boxPadding } = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n for(i = 0, ilen = body.length; i < ilen; ++i){\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for(j = 0, jlen = lines.length; j < jlen; ++j){\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const { xAlign , yAlign } = this;\n const { x , y } = pt;\n const { width , height } = tooltipSize;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive.filter((i)=>this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const { caretX , caretY , options } = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit (chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart,\n options\n });\n }\n },\n beforeUpdate (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw (chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', {\n ...args,\n cancelable: true\n }) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent (chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts)=>opts.bodyFont.size,\n boxWidth: (ctx, opts)=>opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'width',\n 'height',\n 'caretX',\n 'caretY'\n ]\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name)=>name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: [\n 'interaction'\n ]\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColors: plugin_colors,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels)=>{\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max)=>index === null ? null : _limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\nclass CategoryScale extends Scale {\n static id = 'category';\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n constructor(cfg){\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const { index , label } of added){\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for(let value = min; value <= max; value++){\n ticks.push({\n value\n });\n }\n return ticks;\n }\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const { bounds , step , min , max , precision , count , maxTicks , maxDigits , includeBounds } = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const { min: rmin , max: rmax } = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [\n {\n value: rmin\n },\n {\n value: rmax\n }\n ];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for(; j < numSpaces; ++j){\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({\n value: tickValue\n });\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, { horizontal , minRotation }) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const { beginAtZero } = this.options;\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let { maxTicksLimit , stepSize } = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n static id = 'linear';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n\nconst log10Floor = (v)=>Math.floor(log10(v));\nconst changeExponent = (v, m)=>Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while(steps(min, max, rangeExp) > 10){\n rangeExp++;\n }\n while(steps(min, max, rangeExp) < 10){\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n function generateTicks(generationOptions, { min , max }) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while(value < max){\n ticks.push({\n value,\n major: isMajor(value),\n significand\n });\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({\n value: lastTick,\n major: isMajor(lastTick),\n significand\n });\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n static id = 'logarithmic';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [\n raw,\n index\n ]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n if (this._zero && this.min !== this._suggestedMin && !isNumberFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n setMax(changeExponent(min, +1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [\n label\n ];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\n function fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for(let i = 0; i < valueCount; i++){\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const { extra , additionalAngle , padding , size } = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n visible: true,\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const { left , top , right , bottom } = item;\n const apexesInArea = _isPointInArea({\n x: left,\n y: top\n }, area) || _isPointInArea({\n x: left,\n y: bottom\n }, area) || _isPointInArea({\n x: right,\n y: top\n }, area) || _isPointInArea({\n x: right,\n y: bottom\n }, area);\n return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const { centerPointLabels , display } = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n for(let i = 0; i < valueCount; i++){\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n const { left , top , right , bottom } = item;\n const { backdropColor } = opts;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\nfunction drawPointLabels(scale, labelCount) {\n const { ctx , options: { pointLabels } } = scale;\n for(let i = labelCount - 1; i >= 0; i--){\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const { x , y , textAlign } = item;\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const { ctx } = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for(let i = 1; i < labelCount; i++){\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const { color , lineWidth } = gridLineOpts;\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash || []);\n ctx.lineDashOffset = borderOpts.dashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n static id = 'radialLinear';\n static defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback (label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n };\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n constructor(cfg){\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index)=>{\n const label = callback(this.options.pointLabels.callback, [\n value,\n index\n ], this);\n return label || label === 0 ? label : '';\n }).filter((v, i)=>this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const { left , top , right , bottom } = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom\n };\n }\n drawBackground() {\n const { backgroundColor , grid: { circular } } = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const { angleLines , grid , border } = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index)=>{\n if (index !== 0 || index === 0 && this.min < 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for(i = labelCount - 1; i >= 0; i--){\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const { color , lineWidth } = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index)=>{\n if (index === 0 && this.min >= 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\n\nconst INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\n const UNITS = /* #__PURE__ */ Object.keys(INTERVALS);\n function sorter(a, b) {\n return a - b;\n}\n function parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const { parser , round , isoWeekday } = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n return +value;\n}\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for(let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i){\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\n function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for(let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--){\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n function determineMajorUnit(unit) {\n for(let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i){\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n function addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const { lo , hi } = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n function setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for(major = first; major <= last; major = +adapter.add(major, 1, majorUnit)){\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n function ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for(i = 0; i < ilen; ++i){\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n static id = 'time';\n static defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n callback: false,\n major: {\n enabled: false\n }\n }\n };\n constructor(props){\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {\n min,\n max\n };\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map((tick)=>+tick.value));\n }\n }\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start,\n end,\n factor: 1 / (start + 1 + end)\n };\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for(time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++){\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort(sorter).map((x)=>+x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n if (formatter) {\n return callback(formatter, [\n time,\n index,\n ticks\n ], this);\n }\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [\n exampleTime\n ], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return this._cache.data = this.normalize(timestamps);\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for(i = 0, ilen = labels.length; i < ilen; ++i){\n timestamps.push(parse(this, labels[i]));\n }\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({ lo , hi } = _lookupByKey(table, 'pos', val));\n }\n ({ pos: prevSource , time: prevTarget } = table[lo]);\n ({ pos: nextSource , time: nextTarget } = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({ lo , hi } = _lookupByKey(table, 'time', val));\n }\n ({ time: prevSource , pos: prevTarget } = table[lo]);\n ({ time: nextSource , pos: nextTarget } = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n static id = 'timeseries';\n static defaults = TimeScale.defaults;\n constructor(props){\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const { min , max } = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for(i = 0, ilen = timestamps.length; i < ilen; ++i){\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {\n time: min,\n pos: 0\n },\n {\n time: max,\n pos: 1\n }\n ];\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n return table;\n }\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b)=>a - b);\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, plugin_colors as Colors, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, defaults, elements, layouts, plugins, registerables, registry, scales };\n//# sourceMappingURL=chart.js.map\n","import { Chart as Chart$1, BarController, DoughnutController, LineController, PieController, PolarAreaController, RadarController, BubbleController, ScatterController } from 'chart.js';\nimport { version, isProxy, toRaw, defineComponent, ref, shallowRef, onMounted, onUnmounted, watch, nextTick, h } from 'vue';\n\nconst CommonProps = {\n data: {\n type: Object,\n required: true\n },\n options: {\n type: Object,\n default: ()=>({})\n },\n plugins: {\n type: Array,\n default: ()=>[]\n },\n datasetIdKey: {\n type: String,\n default: \"label\"\n },\n updateMode: {\n type: String,\n default: undefined\n }\n};\nconst A11yProps = {\n ariaLabel: {\n type: String\n },\n ariaDescribedby: {\n type: String\n }\n};\nconst Props = {\n type: {\n type: String,\n required: true\n },\n destroyDelay: {\n type: Number,\n default: 0 // No delay by default\n },\n ...CommonProps,\n ...A11yProps\n};\n\nconst compatProps = version[0] === \"2\" ? (internals, props)=>Object.assign(internals, {\n attrs: props\n }) : (internals, props)=>Object.assign(internals, props);\nfunction toRawIfProxy(obj) {\n return isProxy(obj) ? toRaw(obj) : obj;\n}\nfunction cloneProxy(obj) {\n let src = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : obj;\n return isProxy(src) ? new Proxy(obj, {}) : obj;\n}\nfunction setOptions(chart, nextOptions) {\n const options = chart.options;\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\nfunction setLabels(currentData, nextLabels) {\n currentData.labels = nextLabels;\n}\nfunction setDatasets(currentData, nextDatasets, datasetIdKey) {\n const addedDatasets = [];\n currentData.datasets = nextDatasets.map((nextDataset)=>{\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find((dataset)=>dataset[datasetIdKey] === nextDataset[datasetIdKey]);\n // There is no original to update, so simply add new one\n if (!currentDataset || !nextDataset.data || addedDatasets.includes(currentDataset)) {\n return {\n ...nextDataset\n };\n }\n addedDatasets.push(currentDataset);\n Object.assign(currentDataset, nextDataset);\n return currentDataset;\n });\n}\nfunction cloneData(data, datasetIdKey) {\n const nextData = {\n labels: [],\n datasets: []\n };\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n return nextData;\n}\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getDatasetAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"dataset\", {\n intersect: true\n }, false);\n}\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getElementAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"nearest\", {\n intersect: true\n }, false);\n}\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getElementsAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"index\", {\n intersect: true\n }, false);\n}\n\nconst Chart = defineComponent({\n props: Props,\n setup (props, param) {\n let { expose , slots } = param;\n const canvasRef = ref(null);\n const chartRef = shallowRef(null);\n expose({\n chart: chartRef\n });\n const renderChart = ()=>{\n if (!canvasRef.value) return;\n const { type , data , options , plugins , datasetIdKey } = props;\n const clonedData = cloneData(data, datasetIdKey);\n const proxiedData = cloneProxy(clonedData, data);\n chartRef.value = new Chart$1(canvasRef.value, {\n type,\n data: proxiedData,\n options: {\n ...options\n },\n plugins\n });\n };\n const destroyChart = ()=>{\n const chart = toRaw(chartRef.value);\n if (chart) {\n if (props.destroyDelay > 0) {\n setTimeout(()=>{\n chart.destroy();\n chartRef.value = null;\n }, props.destroyDelay);\n } else {\n chart.destroy();\n chartRef.value = null;\n }\n }\n };\n const update = (chart)=>{\n chart.update(props.updateMode);\n };\n onMounted(renderChart);\n onUnmounted(destroyChart);\n watch([\n ()=>props.options,\n ()=>props.data\n ], (param, param1)=>{\n let [nextOptionsProxy, nextDataProxy] = param, [prevOptionsProxy, prevDataProxy] = param1;\n const chart = toRaw(chartRef.value);\n if (!chart) {\n return;\n }\n let shouldUpdate = false;\n if (nextOptionsProxy) {\n const nextOptions = toRawIfProxy(nextOptionsProxy);\n const prevOptions = toRawIfProxy(prevOptionsProxy);\n if (nextOptions && nextOptions !== prevOptions) {\n setOptions(chart, nextOptions);\n shouldUpdate = true;\n }\n }\n if (nextDataProxy) {\n const nextLabels = toRawIfProxy(nextDataProxy.labels);\n const prevLabels = toRawIfProxy(prevDataProxy.labels);\n const nextDatasets = toRawIfProxy(nextDataProxy.datasets);\n const prevDatasets = toRawIfProxy(prevDataProxy.datasets);\n if (nextLabels !== prevLabels) {\n setLabels(chart.config.data, nextLabels);\n shouldUpdate = true;\n }\n if (nextDatasets && nextDatasets !== prevDatasets) {\n setDatasets(chart.config.data, nextDatasets, props.datasetIdKey);\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n nextTick(()=>{\n update(chart);\n });\n }\n }, {\n deep: true\n });\n return ()=>{\n return h(\"canvas\", {\n role: \"img\",\n \"aria-label\": props.ariaLabel,\n \"aria-describedby\": props.ariaDescribedby,\n ref: canvasRef\n }, [\n h(\"p\", {}, [\n slots.default ? slots.default() : \"\"\n ])\n ]);\n };\n }\n});\n\nfunction createTypedChart(type, registerables) {\n Chart$1.register(registerables);\n return defineComponent({\n props: CommonProps,\n setup (props, param) {\n let { expose } = param;\n const ref = shallowRef(null);\n const reforwardRef = (chartRef)=>{\n ref.value = chartRef?.chart;\n };\n expose({\n chart: ref\n });\n return ()=>{\n return h(Chart, compatProps({\n ref: reforwardRef\n }, {\n type,\n ...props\n }));\n };\n }\n });\n}\nconst Bar = /* #__PURE__ */ createTypedChart(\"bar\", BarController);\nconst Doughnut = /* #__PURE__ */ createTypedChart(\"doughnut\", DoughnutController);\nconst Line = /* #__PURE__ */ createTypedChart(\"line\", LineController);\nconst Pie = /* #__PURE__ */ createTypedChart(\"pie\", PieController);\nconst PolarArea = /* #__PURE__ */ createTypedChart(\"polarArea\", PolarAreaController);\nconst Radar = /* #__PURE__ */ createTypedChart(\"radar\", RadarController);\nconst Bubble = /* #__PURE__ */ createTypedChart(\"bubble\", BubbleController);\nconst Scatter = /* #__PURE__ */ createTypedChart(\"scatter\", ScatterController);\n\nexport { Bar, Bubble, Chart, Doughnut, Line, Pie, PolarArea, Radar, Scatter, createTypedChart, getDatasetAtEvent, getElementAtEvent, getElementsAtEvent };\n//# sourceMappingURL=index.js.map\n","\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Formats a size in megabytes to a human-readable string.\n *\n * @param mb size in megabytes\n */\nexport function formatMegabytes(mb: number): string {\n\tconst units = ['MB', 'GB', 'TB', 'PB', 'EB']\n\tlet value = mb\n\tlet i = 0\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024\n\t\ti++\n\t}\n\treturn value.toFixed(2) + ' ' + units[i]\n}\n\n/**\n * Adds alpha to a CSS color string (handles #RRGGBB and rgb()).\n *\n * @param color base colour as #RRGGBB or rgb(...)\n * @param alpha opacity between 0 and 1\n */\nexport function withAlpha(color: string, alpha: number): string {\n\tif (color.startsWith('#') && color.length === 7) {\n\t\tconst r = parseInt(color.slice(1, 3), 16)\n\t\tconst g = parseInt(color.slice(3, 5), 16)\n\t\tconst b = parseInt(color.slice(5, 7), 16)\n\t\treturn `rgba(${r}, ${g}, ${b}, ${alpha})`\n\t}\n\tif (color.startsWith('rgb(')) {\n\t\treturn color.replace('rgb(', 'rgba(').replace(')', `, ${alpha})`)\n\t}\n\treturn color\n}\n\n/**\n * Formats a size in bytes to a human-readable string.\n *\n * @param bytes size in bytes\n */\nexport function formatBytes(bytes: number): string {\n\tconst units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']\n\tlet value = Math.abs(bytes)\n\tlet i = 0\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024\n\t\ti++\n\t}\n\treturn value.toFixed(1) + ' ' + units[i]\n}\n\n/**\n * Reads a themed colour from the active theme's CSS custom properties, so that\n * canvas drawing (which cannot resolve `var(...)` itself) follows light/dark\n * mode and custom themes.\n *\n * @param name custom property name, including the leading dashes\n * @param fallback colour to use when the property is not set\n */\nexport function cssColor(name: string, fallback: string): string {\n\treturn getComputedStyle(document.documentElement)\n\t\t.getPropertyValue(name)\n\t\t.trim() || fallback\n}\n\n/**\n * The themed primary accent colour.\n */\nexport function primaryColor(): string {\n\treturn cssColor('--color-primary-element', '#3681c3')\n}\n","\n\n\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n","\n\n\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifier, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","import major from \"semver/functions/major.js\";\nimport valid from \"semver/functions/valid.js\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h) => h !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h) => {\n try {\n ;\n h(event[0]);\n } catch (e) {\n console.error(\"could not invoke event listener\", e);\n }\n });\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction subscribe(name, handler) {\n getBus().subscribe(name, handler);\n}\nfunction unsubscribe(name, handler) {\n getBus().unsubscribe(name, handler);\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\nexport {\n ProxyBus,\n SimpleBus,\n emit,\n subscribe,\n unsubscribe\n};\n//# sourceMappingURL=index.mjs.map\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport default class ScopedStorage {\n static GLOBAL_SCOPE_VOLATILE = 'nextcloud_vol';\n static GLOBAL_SCOPE_PERSISTENT = 'nextcloud_per';\n scope;\n wrapped;\n constructor(scope, wrapped, persistent) {\n this.scope = `${persistent ? ScopedStorage.GLOBAL_SCOPE_PERSISTENT : ScopedStorage.GLOBAL_SCOPE_VOLATILE}_${btoa(scope)}_`;\n this.wrapped = wrapped;\n }\n scopeKey(key) {\n return `${this.scope}${key}`;\n }\n setItem(key, value) {\n this.wrapped.setItem(this.scopeKey(key), value);\n }\n getItem(key) {\n return this.wrapped.getItem(this.scopeKey(key));\n }\n removeItem(key) {\n this.wrapped.removeItem(this.scopeKey(key));\n }\n clear() {\n Object.keys(this.wrapped)\n .filter((key) => key.startsWith(this.scope))\n .map(this.wrapped.removeItem.bind(this.wrapped));\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport ScopedStorage from \"./ScopedStorage.js\";\nexport default class StorageBuilder {\n appId;\n persisted = false;\n clearedOnLogout = false;\n constructor(appId) {\n this.appId = appId;\n }\n persist(persist = true) {\n this.persisted = persist;\n return this;\n }\n clearOnLogout(clear = true) {\n this.clearedOnLogout = clear;\n return this;\n }\n build() {\n return new ScopedStorage(this.appId, this.persisted ? window.localStorage : window.sessionStorage, !this.clearedOnLogout);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport ScopedStorage from \"./ScopedStorage.js\";\nimport StorageBuilder from \"./StorageBuilder.js\";\n/**\n * Get the storage builder for an app\n *\n * @param appId App ID to scope storage\n */\nexport function getBuilder(appId) {\n return new StorageBuilder(appId);\n}\n/**\n * Clear values from storage\n *\n * @param storage The storage to clear\n * @param pred Callback to check if value should be cleared\n */\nfunction clearStorage(storage, pred) {\n Object.keys(storage)\n .filter((k) => pred ? pred(k) : true)\n .map(storage.removeItem.bind(storage));\n}\n/**\n * Clear all values from all storages\n */\nexport function clearAll() {\n const storages = [\n window.sessionStorage,\n window.localStorage,\n ];\n storages.map((s) => clearStorage(s));\n}\n/**\n * Clear ony non persistent values\n */\nexport function clearNonPersistent() {\n const storages = [\n window.sessionStorage,\n window.localStorage,\n ];\n storages.map((s) => clearStorage(s, (k) => !k.startsWith(ScopedStorage.GLOBAL_SCOPE_PERSISTENT)));\n}\n","import { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\n_subscribeToTokenUpdates();\nfunction getRequestToken() {\n if (globalThis._nc_auth_requestToken) {\n return globalThis._nc_auth_requestToken;\n }\n if (globalThis.document) {\n return document.head.dataset.requesttoken ?? null;\n }\n return null;\n}\nfunction setRequestToken(token) {\n if (!token || typeof token !== \"string\") {\n throw new Error(\"Invalid CSRF token given\", { cause: { token } });\n }\n if (globalThis._nc_auth_requestToken === token) {\n return;\n }\n globalThis._nc_auth_requestToken = token;\n if (globalThis.document) {\n document.head.dataset.requesttoken = token;\n }\n emit(\"csrf-token-update\", { token, _internal: true });\n}\nasync function fetchRequestToken() {\n const url = generateUrl(\"/csrftoken\");\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\"Could not fetch CSRF token from API\", { cause: response });\n }\n try {\n const { token } = await response.json();\n setRequestToken(token);\n return token;\n } catch (error) {\n throw new Error(\"Could not parse CSRF token from API response\", { cause: error });\n }\n}\nfunction onRequestTokenUpdate(observer) {\n const wrapper = async ({ token }) => {\n try {\n observer(token);\n } catch (error) {\n console.error(\"Error updating CSRF token observer\", error);\n }\n };\n subscribe(\"csrf-token-update\", wrapper);\n return () => unsubscribe(\"csrf-token-update\", wrapper);\n}\nfunction _subscribeToTokenUpdates() {\n subscribe(\"csrf-token-update\", ({ token, _internal }) => {\n if (!_internal) {\n setRequestToken(token);\n }\n });\n}\nfunction getCSPNonce() {\n const meta = document?.querySelector('meta[name=\"csp-nonce\"]');\n if (!meta) {\n const token = getRequestToken();\n return token ? btoa(token) : void 0;\n }\n return meta.nonce;\n}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nconst browserStorage = getBuilder(\"public\").persist().build();\nclass GuestUser {\n _displayName;\n uid;\n isAdmin;\n constructor() {\n if (!browserStorage.getItem(\"guestUid\")) {\n browserStorage.setItem(\"guestUid\", randomUUID());\n }\n this._displayName = browserStorage.getItem(\"guestNickname\") || \"\";\n this.uid = browserStorage.getItem(\"guestUid\") || randomUUID();\n this.isAdmin = false;\n subscribe(\"user:info:changed\", (guest) => {\n this._displayName = guest.displayName;\n browserStorage.setItem(\"guestNickname\", guest.displayName || \"\");\n });\n }\n get displayName() {\n return this._displayName;\n }\n set displayName(displayName) {\n this._displayName = displayName;\n browserStorage.setItem(\"guestNickname\", displayName);\n emit(\"user:info:changed\", this);\n }\n}\nlet currentUser$1;\nfunction getGuestUser() {\n if (!currentUser$1) {\n currentUser$1 = new GuestUser();\n }\n return currentUser$1;\n}\nfunction getGuestNickname() {\n return getGuestUser()?.displayName || null;\n}\nfunction setGuestNickname(nickname) {\n if (!nickname || nickname.trim().length === 0) {\n throw new Error(\"Nickname cannot be empty\");\n }\n getGuestUser().displayName = nickname;\n}\nfunction randomUUID() {\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID();\n }\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n}\nlet currentUser;\nfunction getAttribute(el, attribute) {\n if (el) {\n return el.getAttribute(attribute);\n }\n return null;\n}\nfunction getCurrentUser() {\n if (currentUser !== void 0) {\n return currentUser;\n }\n const head = document?.getElementsByTagName(\"head\")[0];\n if (!head) {\n return null;\n }\n const uid = getAttribute(head, \"data-user\");\n if (uid === null) {\n currentUser = null;\n return currentUser;\n }\n currentUser = {\n uid,\n displayName: getAttribute(head, \"data-user-displayname\"),\n isAdmin: !!window._oc_isadmin\n };\n return currentUser;\n}\nexport {\n fetchRequestToken,\n getCSPNonce,\n getCurrentUser,\n getGuestNickname,\n getGuestUser,\n getRequestToken,\n onRequestTokenUpdate,\n setGuestNickname,\n setRequestToken\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Walk the prototype chain (excluding the shared Object.prototype) looking for\n * an own `prop`. This distinguishes genuine own/inherited members — including\n * class accessors and template prototypes — from members injected via\n * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which\n * live on Object.prototype itself and are therefore never matched.\n *\n * @param {*} thing The value whose chain to inspect\n * @param {string|symbol} prop The property key to look for\n *\n * @returns {boolean} True when `prop` is owned below Object.prototype\n */\nconst hasOwnInPrototypeChain = (thing, prop) => {\n let obj = thing;\n const seen = [];\n\n while (obj != null && obj !== Object.prototype) {\n if (seen.indexOf(obj) !== -1) {\n return false;\n }\n seen.push(obj);\n\n if (hasOwnProperty(obj, prop)) {\n return true;\n }\n obj = getPrototypeOf(obj);\n }\n return false;\n};\n\n/**\n * Read `obj[prop]` only when it is safe from Object.prototype pollution. Own\n * properties and members inherited from a non-Object.prototype source (a class\n * instance or template object) are honored; a value reachable only through a\n * polluted Object.prototype is ignored and `undefined` is returned.\n *\n * @param {*} obj The source object\n * @param {string|symbol} prop The property key to read\n *\n * @returns {*} The resolved value, or undefined when unsafe/absent\n */\nconst getSafeProp = (obj, prop) =>\n obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (!isObject(val)) {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n getPrototypeOf(prototype) === null) &&\n // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or\n // Symbol.iterator as evidence the value is a tagged/iterable type rather\n // than a plain object, while ignoring keys injected onto Object.prototype.\n !hasOwnInPrototypeChain(val, toStringTag) &&\n !hasOwnInPrototypeChain(val, iterator)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n // findKey lowercases the key, so caseless lookup only applies to strings —\n // symbol keys are identity-matched.\n const targetKey = (caseless && typeof key === 'string' && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n const source = objs[i];\n if (!source || isBuffer(source)) {\n continue;\n }\n\n forEach(source, assignValue);\n\n if (typeof source !== 'object' || isArray(source)) {\n continue;\n }\n\n const symbols = Object.getOwnPropertySymbols(source);\n for (let j = 0; j < symbols.length; j++) {\n const symbol = symbols[j];\n if (propertyIsEnumerable.call(source, symbol)) {\n assignValue(source[symbol], symbol);\n }\n }\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\nconst { propertyIsEnumerable } = Object.prototype;\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n/**\n * Determine if a value is iterable via an iterator that is NOT sourced solely\n * from a polluted Object.prototype. Use this instead of `isIterable` whenever\n * the iterable comes from untrusted input (e.g. user-supplied header sources),\n * so `Object.prototype[Symbol.iterator] = ...` cannot turn an ordinary object\n * into an attacker-controlled entries iterator.\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value has a non-polluted iterator\n */\nconst isSafeIterable = (thing) =>\n thing != null && hasOwnInPrototypeChain(thing, iterator) && isIterable(thing);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n hasOwnInPrototypeChain,\n getSafeProp,\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n isSafeIterable,\n};\n","var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n return;\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isSafeIterable(header)) {\n let obj = Object.create(null),\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw new TypeError('Object iterator must return a key-value pair');\n }\n\n key = entry[0];\n\n if (utils.hasOwnProp(obj, key)) {\n dest = obj[key];\n obj[key] = utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]];\n } else {\n obj[key] = entry[1];\n }\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n // Match native `Error` `cause` semantics: non-enumerable. The wrapped\n // error often carries circular internals (sockets, requests, agents), so\n // an enumerable `cause` makes structured loggers (pino/winston) and any\n // own-property walk throw \"Converting circular structure to JSON\".\n // Regression from #6982; see #7205. `__proto__: null` mirrors the\n // `message` descriptor below (prototype-pollution-safe descriptor).\n Object.defineProperty(axiosError, 'cause', {\n __proto__: null,\n value: error,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n// Default nesting limit shared with the inverse transform (formDataToJSON) so\n// the FormData <-> JSON round-trip stays symmetric.\nexport const DEFAULT_FORM_DATA_MAX_DEPTH = 100;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n const stack = [];\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n if (useBlob && typeof _Blob === 'function') {\n return new _Blob([value]);\n }\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(value);\n }\n throw new AxiosError('Blob is not supported. Use a Buffer instead.', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return value;\n }\n\n function throwIfMaxDepthExceeded(depth) {\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n }\n\n function stringifyWithDepthLimit(value, depth) {\n if (maxDepth === Infinity) {\n return JSON.stringify(value);\n }\n\n const ancestors = [];\n\n return JSON.stringify(value, function limitDepth(_key, currentValue) {\n if (!utils.isObject(currentValue)) {\n return currentValue;\n }\n\n while (ancestors.length && ancestors[ancestors.length - 1] !== this) {\n ancestors.pop();\n }\n\n ancestors.push(currentValue);\n throwIfMaxDepthExceeded(depth + ancestors.length - 1);\n\n return currentValue;\n });\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = stringifyWithDepthLimit(value, 1);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n throwIfMaxDepthExceeded(depth);\n\n if (stack.indexOf(value) !== -1) {\n throw new Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? (value) => encoder.call(this, value, encode)\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from './AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n url = url || '';\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n // Read serializer options pollution-safely: own properties and methods on a\n // class/template prototype are honored, but values injected onto a polluted\n // Object.prototype are ignored.\n const _encode = utils.getSafeProp(_options, 'encode') || encode;\n const serializeFn = utils.getSafeProp(_options, 'serialize');\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n advertiseZstdAcceptEncoding: false,\n validateStatusUndefinedResolves: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport { DEFAULT_FORM_DATA_MAX_DEPTH } from './toFormData.js';\n\nconst MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;\n\nfunction throwIfDepthExceeded(index) {\n if (index > MAX_DEPTH) {\n throw new AxiosError(\n 'FormData field is too deeply nested (' + index + ' levels). Max depth: ' + MAX_DEPTH,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n const path = [];\n const pattern = /\\w+|\\[(\\w*)]/g;\n let match;\n\n while ((match = pattern.exec(name)) !== null) {\n throwIfDepthExceeded(path.length);\n path.push(match[0] === '[]' ? '' : match[1] || match[0]);\n }\n\n return path;\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n throwIfDepthExceeded(index);\n\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n try {\n return decodeURIComponent(cookie.slice(eq + 1));\n } catch (e) {\n return cookie.slice(eq + 1);\n }\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\nconst malformedHttpProtocol = /^https?:(?!\\/\\/)/i;\nconst httpProtocolControlCharacters = /[\\t\\n\\r]/g;\n\nfunction stripLeadingC0ControlOrSpace(url) {\n let i = 0;\n while (i < url.length && url.charCodeAt(i) <= 0x20) {\n i++;\n }\n return url.slice(i);\n}\n\nfunction normalizeURLForProtocolCheck(url) {\n return stripLeadingC0ControlOrSpace(url).replace(httpProtocolControlCharacters, '');\n}\n\nfunction assertValidHttpProtocolURL(url, config) {\n if (typeof url === 'string' && malformedHttpProtocol.test(normalizeURLForProtocolCheck(url))) {\n throw new AxiosError(\n 'Invalid URL: missing \"//\" after protocol',\n AxiosError.ERR_INVALID_URL,\n config\n );\n }\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) {\n assertValidHttpProtocolURL(requestedURL, config);\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n assertValidHttpProtocolURL(baseURL, config);\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config1 = config1 || {};\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n function getMergedTransitionalOption(prop) {\n const transitional2 = utils.hasOwnProp(config2, 'transitional') ? config2.transitional : undefined;\n\n if (!utils.isUndefined(transitional2)) {\n if (utils.isPlainObject(transitional2)) {\n if (utils.hasOwnProp(transitional2, prop)) {\n return transitional2[prop];\n }\n } else {\n return undefined;\n }\n }\n\n const transitional1 = utils.hasOwnProp(config1, 'transitional') ? config1.transitional : undefined;\n\n if (utils.isPlainObject(transitional1) && utils.hasOwnProp(transitional1, prop)) {\n return transitional1[prop];\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n if (\n utils.hasOwnProp(config2, 'validateStatus') &&\n utils.isUndefined(config2.validateStatus) &&\n getMergedTransitionalOption('validateStatusUndefinedResolves') === false\n ) {\n if (utils.hasOwnProp(config1, 'validateStatus')) {\n config.validateStatus = getMergedValue(undefined, config1.validateStatus);\n } else {\n delete config.validateStatus;\n }\n }\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders || {}).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nfunction resolveConfig(config) {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls, newConfig),\n own('params'),\n own('paramsSerializer')\n );\n\n // HTTP basic authentication\n if (auth) {\n const username = utils.getSafeProp(auth, 'username') || '';\n const password = utils.getSafeProp(auth, 'password') || '';\n\n try {\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(username + ':' + (password ? encodeUTF8(password) : ''))\n );\n } catch (e) {\n throw AxiosError.from(e, AxiosError.ERR_BAD_OPTION_VALUE, config);\n }\n }\n\n if (utils.isFormData(data)) {\n if (\n platform.hasStandardBrowserEnv ||\n platform.hasStandardBrowserWebWorkerEnv ||\n utils.isReactNative(data)\n ) {\n headers.setContentType(undefined); // browser/web worker/RN handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\nexport default resolveConfig;\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n done();\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort, { once: true }));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: compute the exact percent-decoded UTF-8 byte length.\n *\n * @param {string} url\n * @returns {number}\n */\nconst isHexDigit = (charCode) =>\n (charCode >= 48 && charCode <= 57) ||\n (charCode >= 65 && charCode <= 70) ||\n (charCode >= 97 && charCode <= 102);\n\nconst isPercentEncodedByte = (str, i, len) =>\n i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));\n\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex = isHexDigit(a) && isHexDigit(b);\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Valid %XX triplets count as one decoded byte; this matches the bytes that\n // decodeURIComponent(body) would produce before Buffer re-encodes the string.\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {\n bytes += 1;\n i += 2;\n } else if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","export const VERSION = \"1.18.1\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\n// Node's WHATWG URL parser returns `username` and `password` percent-encoded.\n// Decode before composing the `auth` option so credentials such as\n// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the\n// original value for malformed input so a bad encoding never throws.\nconst decodeURIComponentSafe = (value) => {\n if (!utils.isString(value)) {\n return value;\n }\n\n try {\n return decodeURIComponent(value);\n } catch (error) {\n return value;\n }\n};\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst maybeWithAuthCredentials = (url) => {\n const protocolIndex = url.indexOf('://');\n let urlToCheck = url;\n if (protocolIndex !== -1) {\n urlToCheck = urlToCheck.slice(protocolIndex + 3);\n }\n return urlToCheck.includes('@') || urlToCheck.includes(':');\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n // AxiosError we raise while the request body is being streamed. Captured\n // by identity so the catch block can surface it directly, regardless of\n // how the runtime wraps the resulting fetch rejection (undici exposes it\n // as `err.cause`; some browsers drop the original error entirely).\n let pendingBodyError = null;\n\n const maxBodyLengthError = () =>\n new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n\n try {\n // HTTP basic authentication\n let auth = undefined;\n const configAuth = own('auth');\n\n if (configAuth) {\n const username = utils.getSafeProp(configAuth, 'username') || '';\n const password = utils.getSafeProp(configAuth, 'password') || '';\n auth = {\n username,\n password\n };\n }\n\n if (maybeWithAuthCredentials(url)) {\n const parsedURL = new URL(url, platform.origin);\n\n if (!auth && (parsedURL.username || parsedURL.password)) {\n const urlUsername = decodeURIComponentSafe(parsedURL.username);\n const urlPassword = decodeURIComponentSafe(parsedURL.password);\n auth = {\n username: urlUsername,\n password: urlPassword\n };\n }\n\n if (parsedURL.username || parsedURL.password) {\n parsedURL.username = '';\n parsedURL.password = '';\n url = parsedURL.href;\n }\n }\n\n if (auth) {\n headers.delete('authorization');\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(encodeUTF8((auth.username || '') + ':' + (auth.password || '')))\n );\n }\n\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against known-size bodies before dispatch using\n // the body's *actual* size — never a caller-declared Content-Length,\n // which could under-report to slip an oversized body past the check.\n // Unknown-size streams return undefined here and are counted per-chunk\n // below as fetch consumes them.\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await getBodyLength(data);\n if (typeof outboundLength === 'number' && isFinite(outboundLength)) {\n requestContentLength = outboundLength;\n if (outboundLength > maxBodyLength) {\n throw maxBodyLengthError();\n }\n }\n }\n\n // A streamed body under maxBodyLength must be counted as fetch consumes\n // it; its size is never trusted from a caller-declared Content-Length.\n const mustEnforceStreamBody =\n hasMaxBodyLength && (utils.isReadableStream(data) || utils.isStream(data));\n\n const trackRequestStream = (stream, onProgress, flush) =>\n trackStream(\n stream,\n DEFAULT_CHUNK_SIZE,\n (loadedBytes) => {\n if (hasMaxBodyLength && loadedBytes > maxBodyLength) {\n throw (pendingBodyError = maxBodyLengthError());\n }\n onProgress && onProgress(loadedBytes);\n },\n flush\n );\n\n if (\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (onUploadProgress || mustEnforceStreamBody)\n ) {\n requestContentLength =\n requestContentLength == null ? await resolveBodyLength(headers, data) : requestContentLength;\n\n // A declared length of 0 is only trusted to skip the wrap when we are\n // not enforcing a stream limit (which must not rely on that header).\n if (requestContentLength !== 0 || mustEnforceStreamBody) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] =\n (onUploadProgress &&\n progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n )) ||\n [];\n\n data = trackRequestStream(_request.body, onProgress, flush);\n }\n }\n } else if (\n mustEnforceStreamBody &&\n !isRequestSupported &&\n isReadableStreamSupported &&\n method !== 'get' &&\n method !== 'head'\n ) {\n data = trackRequestStream(data);\n } else if (\n mustEnforceStreamBody &&\n isRequestSupported &&\n !supportsRequestStream &&\n method !== 'get' &&\n method !== 'head'\n ) {\n throw new AxiosError(\n 'Stream request bodies are not supported by the current fetch implementation',\n AxiosError.ERR_NOT_SUPPORT,\n config,\n request\n );\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const responseHeaders = AxiosHeaders.from(response.headers);\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n if (err !== canceledError) {\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(canceledError, 'cause', {\n __proto__: null,\n value: err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n }\n throw canceledError;\n }\n\n // Surface a maxBodyLength violation we raised while the request body was\n // being streamed. Matching by identity (rather than reading\n // `err.cause.isAxiosError`) keeps the error deterministic across runtimes\n // and avoids both prototype-pollution reads and mis-attributing a foreign\n // AxiosError that merely happened to land in `err.cause`.\n if (pendingBodyError) {\n request && !pendingBodyError.request && (pendingBodyError.request = request);\n throw pendingBodyError;\n }\n\n // Re-throw AxiosErrors we raised synchronously (data: URL / content-length\n // pre-checks, response size enforcement) without re-wrapping them.\n if (err instanceof AxiosError) {\n request && !err.request && (err.request = request);\n throw err;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n const networkError = new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n );\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(networkError, 'cause', {\n __proto__: null,\n value: err.cause || err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n throw networkError;\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n AxiosError.ERR_NOT_SUPPORT\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object' || options === null) {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n advertiseZstdAcceptEncoding: validators.transitional(validators.boolean),\n validateStatusUndefinedResolves: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls, config);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: config && utils.hasOwnProp(config, 'data') ? config.data : undefined,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n create,\n} = axios;\n\nexport {\n axios as default,\n create,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\n","/*!\n * SPDX-License-Identifier: GPL-3.0-or-later\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n */\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth';\nimport Axios from 'axios';\n/**\n * Get an Axios instance with default Nextcloud headers and CSRF token handling.\n */\nexport function getCancelableClient() {\n const client = Axios.create({\n headers: {\n requesttoken: getRequestToken() ?? '',\n 'X-Requested-With': 'XMLHttpRequest',\n },\n });\n onRequestTokenUpdate((token) => {\n client.defaults.headers.requesttoken = token;\n });\n return Object.assign(client, {\n CancelToken: Axios.CancelToken,\n isCancel: Axios.isCancel,\n });\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { fetchRequestToken } from '@nextcloud/auth';\nimport { isAxiosError } from 'axios';\nconst RETRY_KEY = '_nextcloudCsrfTokenReloaded';\n/**\n * Handle CSRF token errors in Axios requests.\n *\n * @param axios - The axios instance the interceptor is attached to\n */\nexport function onCsrfTokenError(axios) {\n return async (error) => {\n if (!isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n if (config\n && !(RETRY_KEY in config)\n && response?.status === 412\n && response?.data?.message === 'CSRF check failed') {\n console.warn(`Request to ${responseURL} failed because of a CSRF mismatch. Fetching a new token.`);\n const token = await fetchRequestToken();\n axios.defaults.headers.requesttoken = token;\n return axios({\n ...config,\n [RETRY_KEY]: true,\n headers: {\n ...config.headers,\n requesttoken: token,\n },\n });\n }\n throw error;\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { isAxiosError } from 'axios';\nconst RETRY_DELAY_KEY = '_nextcloudMaintenanceModeRetryDelay';\n/**\n * Handles Nextcloud maintenance mode errors in Axios requests.\n *\n * @param axios - The current Axios instance\n */\nexport function onMaintenanceModeError(axios) {\n return async (error) => {\n if (!isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n const headers = response?.headers;\n let retryDelay = config?.[RETRY_DELAY_KEY] ?? 1;\n /**\n * Retry requests if they failed due to maintenance mode\n *\n * The delay is exponential. It starts at 2s and then doubles\n * until a final retry after 32s. This results in roughly 1m of\n * retries until we give up and throw the axios error towards\n * the caller.\n */\n if (status === 503\n && headers?.['x-nextcloud-maintenance-mode'] === '1'\n && config?.retryIfMaintenanceMode) {\n retryDelay *= 2;\n if (retryDelay > 32) {\n console.error('Retry delay exceeded one minute, giving up.', { responseURL });\n throw error;\n }\n console.warn(`Request to ${responseURL} failed because of maintenance mode. Retrying in ${retryDelay}s`);\n await new Promise((resolve) => {\n setTimeout(resolve, retryDelay * 1000);\n });\n return axios({\n ...config,\n [RETRY_DELAY_KEY]: retryDelay,\n });\n }\n throw error;\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { isAxiosError } from 'axios';\n/**\n * Axios response interceptor onError callback.\n * This interceptor checks if the response failed because of a expired user session\n * and if enabled it will cause a redirect to the login.\n *\n * @param error - The response error\n */\nexport async function onNotLoggedInError(error) {\n if (isAxiosError(error)) {\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n if (status === 401\n && response?.data?.message === 'Current user is not logged in'\n && config?.reloadExpiredSession\n && globalThis.location?.reload) {\n console.error(`Request to ${responseURL} failed because the user session expired. Reloading the page …`);\n if (globalThis.OC?.reload) {\n globalThis.OC.reload();\n }\n else {\n globalThis.location.reload();\n }\n }\n }\n throw error;\n}\n","/**\n * SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { getCancelableClient } from \"./client.js\";\nimport { onCsrfTokenError } from \"./interceptors/csrf-token.js\";\nimport { onMaintenanceModeError } from \"./interceptors/maintenance-mode.js\";\nimport { onNotLoggedInError } from \"./interceptors/not-logged-in.js\";\nconst cancelableClient = getCancelableClient();\ncancelableClient.interceptors.response.use((r) => r, onCsrfTokenError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onMaintenanceModeError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onNotLoggedInError);\nexport { isAxiosError, isCancel } from 'axios';\nexport default cancelableClient;\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { onUnmounted, ref } from 'vue'\n\nexport interface ThermalZone {\n\tzone: string\n\ttype: string\n\ttemp: number\n}\n\nexport interface LiveData {\n\tcpu: { load: number[] | false }\n\tmemory: { total: number, free: number, swap_total: number, swap_free: number }\n\tservertime: string\n\tuptime: string\n\tthermalzones: ThermalZone[]\n}\n\nexport function useLiveData() {\n\tconst data = ref(null)\n\tconst tick = ref(0)\n\n\tlet timeoutId: ReturnType | null = null\n\tlet stopped = false\n\n\tasync function poll() {\n\t\ttry {\n\t\t\tconst response = await axios.get(generateUrl('/apps/serverinfo/update'))\n\t\t\tdata.value = response.data\n\t\t\ttick.value++\n\t\t} catch {\n\t\t\t// Keep previous values on error\n\t\t} finally {\n\t\t\tif (!stopped) {\n\t\t\t\ttimeoutId = setTimeout(poll, 2000)\n\t\t\t}\n\t\t}\n\t}\n\n\ttimeoutId = setTimeout(poll, 0)\n\n\tonUnmounted(() => {\n\t\tstopped = true\n\t\tif (timeoutId !== null) {\n\t\t\tclearTimeout(timeoutId)\n\t\t\ttimeoutId = null\n\t\t}\n\t})\n\n\treturn { data, tick }\n}\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { ref } from 'vue'\n\nexport interface StaticData {\n\thostname: string\n\tosname: string\n\tcpu: { name: string, threads: number }\n\tdiskinfo: Array<{ device: string, fs: string, used: number, available: number, percent: string, mount: string }>\n\tnetworkinfo: { hostname: string, gateway: string, dns: string }\n\tnetworkinterfaces: Array<{\n\t\tname: string\n\t\tup: boolean\n\t\tipv4: string[]\n\t\tipv6: string[]\n\t\tmac: string\n\t\tspeed: string\n\t\tduplex: string\n\t\tloopback: boolean\n\t}>\n\tocs: string\n\tstorage: { num_files: number, num_storages: number, num_users: number }\n\tshares: {\n\t\tnum_shares: number\n\t\tnum_shares_user: number\n\t\tnum_shares_groups: number\n\t\tnum_shares_link: number\n\t\tnum_shares_mail: number\n\t\tnum_fed_shares_sent: number\n\t\tnum_fed_shares_received: number\n\t\tnum_shares_room: number\n\t}\n\tphp: {\n\t\tversion: string\n\t\tmemory_limit: number\n\t\tmax_execution_time: number\n\t\tupload_max_filesize: number\n\t\topcache_revalidate_freq: number\n\t\textensions: string[] | null\n\t}\n\tfpm: Record | false\n\tdatabase: { type: string, version: string, size: number }\n\tactiveUsers: { last1hour: number, last24hours: number, last7days: number, last1month: number }\n\tfreeSpace: number | null\n\tmemTotal: number\n\tphpinfo: boolean\n\tphpinfoUrl: string\n}\n\nexport function useStaticData() {\n\tconst data = ref(null)\n\tconst loading = ref(true)\n\tconst error = ref(false)\n\n\tasync function load() {\n\t\ttry {\n\t\t\tconst response = await axios.get(generateUrl('/apps/serverinfo/data'))\n\t\t\tdata.value = response.data\n\t\t} catch {\n\t\t\terror.value = true\n\t\t} finally {\n\t\t\tloading.value = false\n\t\t}\n\t}\n\n\tload()\n\n\treturn { data, loading, error }\n}\n","\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport SettingsAdmin from './views/SettingsAdmin.vue'\n\nimport './main.css'\n\ncreateApp(SettingsAdmin).mount('#serverinfo-settings')\n"],"names":["global","makeMap","str","map","key","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","writable","looseToNumber","n","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","a","b","equal","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","activeEffectScope","EffectScope","detached","l","currentEffectScope","current","fromParent","last","getCurrentScope","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","e","next","error","err","head","tail","prev","removeDep","refreshComputed","computed","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","reactiveReadArray","array","raw","toReactive","shallowReadArray","toRaw","toWrapped","isReadonly","toReadonly","isReactive","arrayInstrumentations","iterator","args","x","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self","method","wrapValue","iter","isShallow","result","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","index","wrapInitialAccumulator","acc","isNonTrackableKeys","builtInSymbols","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","readonly","MutableReactiveHandler","isArrayWithIntegerKey","isOldValueReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","done","createReadonlyMethod","createInstrumentations","shallow","instrumentations","rawKey","has","callback","observed","proto","rawValue","valueToAdd","get","hadItems","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","reactive","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isProxy","markRaw","r","ref","createRef","shallowRef","RefImpl","useDirectValue","unref","ref2","shallowUnwrapHandlers","proxyRefs","objectWithRefs","ComputedRefImpl","setter","isSSR","getterOrOptions","debugOptions","getter","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","failSilently","owner","cleanups","watch","source","cb","options","immediate","deep","once","scheduler","augmentJob","call","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","s","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","flushPostFlushCbs","deduped","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","withDirectives","vnode","directives","getComponentPublicInstance","bindings","dir","modifiers","invokeDirectiveHook","prevVNode","oldBindings","binding","hook","provide","currentInstance","provides","parentProvides","inject","defaultValue","treatDefaultAsFactory","getCurrentInstance","currentApp","ssrContextKey","useSSRContext","doWatch","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","watchStopHandle","isPre","queuePostRenderEffect","isFirstRun","watch$1","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","path","segments","TeleportEndKey","isTeleport","leaveCbKey","setTransitionHooks","hooks","defineComponent","extraOptions","markAsyncBoundary","isTemplateRefKey","refs","desc","pendingSetRefMap","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","isAsyncWrapper","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","canSetRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","newVal","pendingSetRef","isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","createHook","lifecycle","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","component","resolveAsset","warnMissing","maybeSelfReference","Component","selfName","getComponentName","resolve","registry","renderList","renderItem","cached","sourceIsArray","sourceIsReactiveArray","isReadonlySource","keys","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","state","PublicInstanceProxyHandlers","data","props","accessCache","appContext","shouldCacheAccess","publicGetter","cssModule","globalProperties","cssModules","descriptor","normalizePropsOrEmits","applyOptions","callHook","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","resolveInjections","methodHandler","opt","set","createWatcher","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","h","handler","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","namespace","createVNode","lastApp","getModelModifiers","modelName","emit","event","rawArgs","handlerName","onceHandler","mixinEmitsCache","normalizeEmitsOptions","comp","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","renderComponentRoot","withProxy","propsOptions","slots","attrs","renderCache","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","Comment","root","shapeFlag","filterModelListeners","cloneVNode","shouldUpdateComponent","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","hasPropValueChanged","emitsOptions","nextKeys","nextProp","prevProp","updateHOCHostEl","parent","suspense","internalObjectProto","createInternalObject","isInternalObject","initProps","rawProps","isStateful","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","mixinPropsCache","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","children","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","slotScopeIds","isSameVNodeType","getNextHostNode","unmount","Text","processText","processCommentNode","Static","mountStaticNode","Fragment","processFragment","processElement","processComponent","internals","moveStaticNode","nextSibling","removeStaticNode","mountElement","customElement","patchElement","vnodeHook","transition","dirs","mountChildren","resolveChildrenNamespace","setScopeId","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","subTree","isSuspense","parentVNode","child","cloneIfMounted","dynamicChildren","oldProps","newProps","toggleRecurse","patchBlockChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","placeholder","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","update","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","anchorVNode","resolveAsyncComponentPlaceholder","move","moveType","leave","delayLeave","afterLeave","remove2","performLeave","wasLeaving","doRemove","cacheIndex","memo","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","shouldInvalidateMemo","removeFragment","performRemove","bum","um","invalidateMount","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","anchorVnode","currentBlock","openBlock","disableTracking","closeBlock","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","createBlock","isVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","style","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","slot","slotFlag","toMerge","incoming","emptyAppContext","uid","internalSetCurrentInstance","setInSSRSetupState","g","registerGlobalSetter","setters","unsetCurrentInstance","setupResult","setupStatefulComponent","setup","setupContext","createSetupContext","isAsyncSetup","resolvedResult","handleSetupResult","finishComponentSetup","skipOptions","attrsProxyHandlers","includeInferred","computed$1","propsOrChildren","policy","tt","unsafeToTrustedHTML","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","node","selector","content","before","template","wrapper","vtcKey","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","CSS_VAR_TEXT","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","shouldPreserveTextareaResizeStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","attrName","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","originalStop","handlers","isNativeOn","patchProp","shouldSetAsProp","shouldSetAsPropForVueCE","camelize$1","getModelAssigner","assignKey","vModelCheckbox","_","modelValue","elementValue","getValue","checked","assign","found","filtered","getCheckboxValue","setChecked","rendererOptions","renderer","ensureRenderer","createApp","mount","containerOrSelector","normalizeContainer","resolveRootNamespace","_generateUrlPath","url","params","allOptions","_build","vars","generateUrl","baseOrRootURL","getRootUrl","webroot","pos","_arrayLikeToArray","_arrayWithHoles","_iterableToArrayLimit","t","f","o","_nonIterableRest","_slicedToArray","_unsupportedIterableToArray","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","construct","func","_len","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","arrayIsArray","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","numberToString","booleanToString","bigintToString","symbolToString","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","_len3","_key3","_len4","_key4","addToSet","transformCaseFunc","element","lcElement","cleanArray","clone","object","newObject","_ref2","_ref3","property","stringifyValue","valueAsRecord","valueToString","lookupGetter","stringified","fallbackValue","isRegex","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","_resolveSetOption","cfg","fallback","createDOMPurify","window","DOMPurify","document","originalDocument","currentScript","HTMLTemplateElement","Node","Element","NodeFilter","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","trustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicy","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","_createTrustedScriptURL","_getDefaultTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","MUSTACHE_EXPR$1","ERB_EXPR$1","TMPLIT_EXPR$1","DATA_ATTR$1","ARIA_ATTR$1","IS_SCRIPT_OR_DATA$1","ATTR_WHITESPACE$1","CUSTOM_ELEMENT$1","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","customElementHandling","previousTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkSvgNamespace","tagName","parentTagName","_checkMathMlNamespace","_checkHtmlNamespace","_checkValidNamespace","_forceRemove","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","attributes","attribute","_removeAttribute","_stripDisallowedAttributes","stack","_neutralizePatchLinkage","nodeType","lcTag","_initDocument","dirty","leadingWhitespace","matches","dirtyPayload","body","_createNodeIterator","_stripTemplateExpressions","_scrubTemplateExpressions2","_node$querySelectorAl","walker","currentNode","templates","tmpl","_isDocumentFragment","_isClobbered","realTagName","_isNode","_executeHooks","_isUnsafeNode","_sanitizeDisallowedNode","_isBasicCustomElement","parentNode","childCount","hoisted","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_sanitizeElements","removed","_isValidAttribute","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","namespaceURI","_setAttributeValue","_sanitizeAttributes","hookEvent","attr","attrValue","initValue","_sanitizeShadowDOM2","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","isElement","rootName","sr","importedNode","returnNode","inPlace","nn","walkRoot","nodeIterator","entry","serializedHTML","entryPoint","hookFunction","purify","matchHtmlRegExp","escapeHtml_1","escapeHtml","string","match","escape","lastIndex","getAppTranslations","appId","number","translate","placeholdersOrNumber","optionsOrNumber","identity","optSanitize","optEscape","escapeHTML","isValidReplacement","text2","vars2","number2","replacement","translation","_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","_createBlock","_resolveDynamicComponent","__props","_createTextVNode","percentageOfAllUsers","count","percentage","_hoisted_1","_hoisted_2","SectionHeading","AccountGroup","_unref","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_toDisplayString","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","round","lim","p2b","n2b","b2n","n2p","map$1","hex","h1","h2","eq","isShort","hexParse","alpha","hexString","HUE_RE","hsl2rgbn","k","hsv2rgbn","hwb2rgbn","w","rgb","hueValue","d","max","rgb2hsl","min","calln","hsl2rgb","hwb2rgb","hsv2rgb","hue","hueParse","p1","p2","rotate","deg","hslString","names$1","unpack","unpacked","tkeys","ok","nk","names","nameParse","RGB_RE","rgbParse","rgbString","interpolate","rgb1","rgb2","modHSL","ratio","fromObject","input","functionParse","Color","color","weight","w2","w1","noop","isNullOrUndef","isNumberFinite","finiteOrDefault","valueOrDefault","toPercentage","dimension","toDimension","each","loopable","reverse","_elementsEqual","a0","a1","ilen","v0","v1","klen","isValidKey","_merger","tval","sval","merge","sources","merger","mergeIf","_mergerIf","keyResolvers","_splitKey","parts","part","_getKeyResolver","resolveObjectKey","_capitalize","defined","setsEqual","_isClickEvent","PI","TAU","PITAU","INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","almostEquals","y","epsilon","niceNum","range","roundedRange","niceRange","fraction","_factorize","sqrt","isNonPrimitive","isNumber","almostWhole","rounded","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","_lookup","table","cmp","hi","lo","mid","_lookupByKey","ti","_rlookupByKey","_filterBetween","arrayEvents","listenArrayEvents","listener","unlistenArrayEvents","stub","listeners","_arrayUnique","items","requestAnimFrame","throttled","argsToUse","ticking","debounce","delay","timeout","_toLeftRightCenter","align","_alignStartEnd","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","iScale","vScale","_parsed","spanGaps","axis","minDefined","maxDefined","distanceToDefinedLo","point","distanceToDefinedHi","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","changed","atEdge","elasticIn","elasticOut","effects","isPatternOrGradient","getHoverColor","numbers","colors","applyAnimationsDefaults","defaults","applyLayoutsDefaults","intlCache","getNumberFormat","locale","cacheKey","formatter","formatNumber","num","formatters","tickValue","ticks","notation","delta","maxTick","calculateDelta","logDelta","numDecimal","Ticks","applyScaleDefaults","overrides","descriptors","getScope$1","Defaults","_descriptors","_appliers","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","appliers","toFontString","font","_measureText","gc","longest","textWidth","_alignPixel","chart","pixel","width","devicePixelRatio","halfWidth","clearCanvas","canvas","drawPoint","drawPointLegend","xOffset","yOffset","size","cornerRadius","xOffsetW","yOffsetW","rotation","radius","rad","_isPointInArea","area","margin","clipArea","unclipArea","_steppedLineTo","previous","flip","mode","midpoint","_bezierCurveTo","setRenderOpts","opts","decorateText","line","metrics","left","right","top","bottom","yDecoration","drawBackdrop","oldColor","renderText","lines","stroke","addRoundedRectPath","rect","LINE_HEIGHT","FONT_STYLE","toLineHeight","numberOrZero","_readValueToProps","objProps","read","toTRBL","toTRBLCorners","toPadding","toFont","inputs","info","_addGrace","minmax","grace","beginAtZero","change","keepZero","add","createContext","parentContext","_createResolver","scopes","rootScopes","getTarget","finalRootScopes","_resolve","_cached","_resolveWithPrefixes","getKeysFromAllScopes","storage","_attachContext","subProxy","descriptorDefaults","_resolveWithContext","_scriptable","_indexable","_allKeys","readKey","prefix","needsSubResolver","_proxy","_context","_subProxy","_resolveScriptable","_resolveArray","_stack","createSubResolver","isIndexable","resolver","resolveFallback","getScope","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","EPSILON","getPoint","getValueAxis","indexAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","pointsLen","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointAfter","monotoneCompute","valueAxis","pointBefore","iPixel","vPixel","splineCurveMonotone","slopeDelta","capControlPoint","pt","capBezierPoints","inArea","inAreaPrev","inAreaNext","_updateBezierControlPoints","loop","controlPoints","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","getStyle","positions","getPositionedStyle","styles","useOffsetPos","getCanvasPosition","touches","offsetX","offsetY","box","getRelativePosition","currentDevicePixelRatio","borderBox","paddings","borders","height","getContainerSize","maxWidth","maxHeight","containerStyle","containerBorder","containerPadding","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","containerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","supportsEventListenerOptions","passiveSupported","readUsedSize","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","getRightToLeftAdapter","rectX","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","rtl","overrideTextDirection","direction","original","restoreTextDirection","propertyFn","normalizeSegment","getSegment","segment","bounds","startBound","endBound","between","normalize","_boundSegment","compare","inside","subStart","startIsBefore","endIsBefore","shouldStart","shouldStop","_boundSegments","findStartAndEnd","solidSegments","_computeSegments","segmentOptions","splitByStyles","completeLoop","doSplitByStyles","chartContext","baseStyle","readStyle","datasetIndex","addStyle","st","styleChanged","getSizeForArea","scale","chartArea","field","getDatasetArea","getDatasetClipArea","clip","Animator","anims","date","callbacks","numSteps","remaining","draw","charts","animator","transparent","interpolators","factor","c0","Animation","currentValue","elapsed","remain","duration","promises","rej","Animations","config","animationOptions","animatedProps","option","newOptions","resolveTargetOptions","animations","awaitAll","running","animation","properties","anim","scaleClip","allowedOverflow","defaultClip","toClip","getSortedDatasetIndices","filterVisible","metasets","applyStack","dsIndex","singleMode","otherValue","convertObjectDataToArray","iAxisKey","vAxisKey","adata","isStacked","stacked","getStackKey","indexScale","valueScale","getUserBounds","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","positive","updateStacks","controller","parsed","iAxis","vAxis","itemStacks","visualValues","getFirstScaleId","scales","createDatasetContext","createDataContext","clearStacks","isDirectUpdateMode","cloneIfNotShared","shared","createStack","canStack","DatasetController","dataset","chooseId","xid","yid","rid","iid","vid","scaleID","_data","resetNewElements","stackChanged","oldStacked","scopeKeys","_stacked","sorted","isNotInOrderComparedToPrev","labels","singleScale","xAxisKey","yAxisKey","parsedValue","otherScale","otherMin","otherMax","_skip","elements","active","drawActiveElementsOnTop","elementType","sharing","sharedOptions","firstOpts","previouslySharedOptions","includeOptions","arg1","arg2","numMeta","numData","newCount","getRatioAndOffset","circumference","cutout","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","DoughnutController","pointStyle","textAlign","useBorderRadius","borderRadius","label","legendItem","legend","arcs","spacing","maxSize","chartWeight","maxRadius","outerRadius","innerRadius","radiusLength","animationOpts","centerX","centerY","animateScale","arc","metaData","total","ringWeightOffset","LineController","_dataset","maxGapLength","directUpdate","pointsCount","prevParsed","nullData","border","lastPoint","abstract","DateAdapterBase","members","adapters","binarySearch","metaset","intersect","_sorted","lookupMethod","evaluateInteractionItems","position","getDistanceMetricForAxis","useX","useY","deltaX","deltaY","getIntersectItems","useFinalPosition","includeInvisible","getNearestRadialItems","evaluationFunc","getNearestCartesianItems","distanceMetric","minDistance","inRange","center","distance","getNearestItems","getAxisItems","rangeMethod","intersectsItem","Interaction","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","wrapBoxes","boxes","layoutBoxes","stackWeight","buildStacks","layouts","setLayoutDims","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","buildLayoutBoxes","centerHorizontal","centerVertical","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","newWidth","newHeight","widthChanged","heightChanged","handleMaxPadding","updatePos","getMargins","horizontal","marginForPositions","fitBoxes","refitBoxes","refit","same","other","setBoxDims","placeBoxes","userPadding","layoutItem","minPadding","padding","availableWidth","availableHeight","verticalBoxes","horizontalBoxes","visibleVerticalBoxCount","BasePlatform","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","isNullOrEmpty","initCanvas","renderHeight","renderWidth","displayWidth","displayHeight","eventListenerOptions","addListener","removeListener","fromNativeEvent","nodeListContains","nodeList","createAttachObserver","observer","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","resize","listenDevicePixelRatioChanges","unlistenDevicePixelRatioChanges","createResizeObserver","releaseObserver","createProxyAndListen","DomPlatform","initial","proxies","_detectPlatform","Element$1","final","autoSkip","tickOpts","determinedMaxTicks","determineMaxTicks","ticksLimit","majorIndices","getMajorIndices","numMajorIndices","first","newTicks","skipMajors","calculateSpacing","avgMajorSpacing","skip","offset","tickLength","maxScale","maxChart","evenMajorSpacing","getEvenSpacing","factors","majorStart","majorEnd","length","diff","reverseAlign","offsetFromEdge","edge","getTicksLimit","ticksLength","maxTicksLimit","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","garbageCollect","caches","gcLen","getTickMarkLength","getTitleHeight","createScaleContext","createTickContext","tick","titleAlign","titleArgs","titleX","titleY","positionAxisID","Scale","_userMin","_userMax","_suggestedMin","_suggestedMax","metas","sampleSize","samplingEnabled","reversePixels","startPixel","endPixel","numTicks","minRotation","maxRotation","labelRotation","tickWidth","maxLabelDiagonal","labelSizes","maxLabelWidth","maxLabelHeight","minSize","titleOpts","gridOpts","display","isHorizontal","titleHeight","widest","highest","tickPadding","angleRadians","cos","sin","labelHeight","labelWidth","isRotated","labelsBelowTicks","offsetLeft","offsetRight","paddingLeft","paddingRight","paddingTop","paddingBottom","widths","heights","widestLabelSize","highestLabelSize","jlen","tickFont","fontString","lineHeight","nestedLabel","valueAt","idx","decimal","optionTicks","rot","grid","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","limit","step","optsAtIndex","optsAtIndexBorder","lineWidth","lineColor","borderDash","borderDashOffset","tickColor","tickBorderDash","tickBorderDashOffset","crossAlign","mirror","tickAndPadding","hTickAndPadding","lineCount","textOffset","textBaseline","halfCount","strokeColor","strokeWidth","tickTextAlign","backdrop","labelPadding","backgroundColor","drawLine","lastLineWidth","renderTextOptions","title","tz","gz","bz","axisID","fontSize","TypedRegistry","override","parentScope","isIChartComponent","registerDefaults","itemDefaults","routeDefaults","routes","propertyParts","sourceName","sourceScope","Registry","typedRegistry","reg","itemReg","camelMethod","PluginService","filter","all","plugins","allPlugins","createDescriptors","previousDescriptors","localIds","getOpts","pluginOpts","getIndexAxis","datasetDefaults","getAxisFromDefaultScaleID","getDefaultScaleIDFromAxis","idMatchesAxis","axisFromPosition","determineAxis","scaleOptions","getAxisFromDataset","retrieveAxisFromDatasets","boundDs","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","scaleConf","defaultId","defaultScaleOptions","defaultID","initOptions","initData","initConfig","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","datasetType","mainScope","resetCache","_scopeCache","keyLists","subPrefixes","getResolver","needContext","subResolver","resolverCache","hasFunction","isScriptable","scriptable","indexable","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","onAnimationsComplete","onAnimationProgress","getCanvas","instances","getChart","moveNumericKeys","intKey","determineLastEvent","lastEvent","inChartArea","isClick","Chart$1","invalidatePlugins","userConfig","initialCanvas","existingChart","maintainAspectRatio","_aspectRatio","newSize","newRatio","scalesOptions","axisOptions","scaleOpts","isRadial","scaleType","scaleClass","hasUpdated","datasets","newControllers","ControllerClass","datasetElementType","dataElementType","animsDisabled","_active","_lastEvent","existingEvents","newEvents","_hiddenIndices","changes","_dataChanges","datasetCount","makeSet","changeSet","noArea","layers","visible","dataIndex","platform","_add","_remove","attached","enabled","activeElements","lastActive","pluginId","replay","hoverOptions","eventFilter","Chart","clipSelf","borderWidth","borderJoinStyle","outerAngleClip","innerAngleClip","clipWidth","clipArc","pixelMargin","angleMargin","toRadiusCorners","parseBorderRadius$1","angleDelta","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","rThetaToXY","theta","pathArc","circular","innerR","spacingOffset","noSpacingInnerRadius","noSpacingOuterRadius","avNogSpacingRadius","adjustedAngle","beta","angleOffset","outerStart","outerEnd","innerStart","innerEnd","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","outerMidAdjustedAngle","pCenter","p4","innerMidAdjustedAngle","p8","outerStartX","outerStartY","outerEndX","outerEndY","drawArc","fullCircles","drawBorder","inner","ArcElement","chartX","chartY","rAdjust","_circumference","nonZeroBetween","betweenAngles","withinRadius","halfAngle","halfRadius","fix","radiusOffset","lineTo","getLineMethod","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","fastPathSegment","avgX","countX","prevX","lastY","pointIndex","drawX","truncX","_getSegmentMethod","_getInterpolationMethod","strokePathWithCache","strokePathDirect","segmentMethod","usePath2D","LineElement","_interpolate","interpolated","inRange$1","PointElement","mouseX","mouseY","_segments","tpoints","_findSegmentEnd","_getBounds","targetSegments","tgt","subBounds","fillSources","fillSource","_getEdge","_pointsFromSegments","boundary","linePoints","_createBoundaryLine","_loop","_shouldApplyFill","_resolveTarget","propagate","fill","visited","_decodeFill","parseFillOption","decodeTargetIndex","firstCh","_getTargetPixel","_getTargetValue","startValue","fillOption","_buildStackLine","sourcePoints","linesBelow","getLinesBelow","addPointsBelow","below","sourcePoint","postponed","findPoint","pointValue","firstValue","lastValue","simpleArc","_getTarget","getLineByIndex","computeBoundary","computeCircularBoundary","computeLinearBoundary","_drawfill","lineOpts","above","doFill","fillColor","clipVertical","clipHorizontal","clipY","lineLoop","clipX","src","notShape","clipBounds","interpolatedLineTo","targetLoop","interpolatedPoint","_args","positioners","xSet","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getTooltipSize","tooltip","footer","boxWidth","boxHeight","bodyFont","titleFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","bodyLineHeight","widthPadding","maxLineWidth","determineYAlign","doesNotFitWithAlign","xAlign","caret","determineXAlign","yAlign","chartWidth","determineAlignment","alignX","alignY","paddingAndSize","getBackgroundPoint","alignment","caretSize","caretPadding","topLeft","topRight","bottomLeft","bottomRight","getAlignedX","getBeforeAfterBodyLines","createTooltipContext","tooltipItems","overrideCallbacks","defaultCallbacks","labelCount","tooltipItem","invokeCallbackWithFallback","Tooltip","beforeTitle","afterTitle","bodyItems","scoped","beforeFooter","afterFooter","labelColors","labelPointStyles","labelTextColors","positionAndSize","backgroundPoint","tooltipPoint","caretPosition","ptX","ptY","x3","y3","titleSpacing","rtlHelper","labelColor","labelPointStyle","colorX","rtlColorX","yOffSet","colorY","drawOptions","outerX","innerX","bodySpacing","bodyAlign","displayColors","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","tooltipSize","animX","animY","opacity","hasTooltipContent","positionChanged","caretX","caretY","plugin_tooltip","addIfString","addedLabels","findOrAddLabel","_getLabelForValue","CategoryScale","added","generateTicks$1","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","unit","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","decimalPlaces","relativeLabelSize","LinearScaleBase","setMin","setMax","minSign","maxSign","stepSize","numericGeneratorOptions","LinearScale","INTERVALS","UNITS","sorter","parse","adapter","parser","isoWeekday","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","addTick","time","timestamps","timestamp","setMajorTicks","majorUnit","major","ticksFromTimestamps","TimeScale","_applyBounds","timeOpts","minor","weekday","hasWeekday","format","formats","fmt","minorFormat","majorFormat","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","displayFormats","exampleLabel","prevSource","nextSource","prevTarget","nextTarget","span","TimeSeriesScale","curr","CommonProps","A11yProps","Props","compatProps","toRawIfProxy","cloneProxy","setOptions","nextOptions","setLabels","currentData","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","cloneData","nextData","param","canvasRef","chartRef","renderChart","clonedData","proxiedData","destroyChart","param1","nextOptionsProxy","nextDataProxy","prevOptionsProxy","prevDataProxy","shouldUpdate","prevOptions","prevLabels","prevDatasets","createTypedChart","registerables","reforwardRef","Line","formatMegabytes","mb","units","withAlpha","formatBytes","bytes","cssColor","primaryColor","MAX_POINTS","Filler","passiveColor","datasetStyle","chartData","chartOptions","footerText","pct","load","cpuload","Chip","Database","canvasRefs","diskName","device","chartLabel","disk","shortPercent","percent","centerLabel","usedColor","availableColor","Harddisk","_Fragment","_renderList","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","hasMemory","hasSwap","ramDataset","swapDataset","maxGB","memText","used","swapText","memTotalGB","swapTotalGB","memUsageGB","ramData","swapUsageGB","swapData","Memory","formatJson","skipApps","skipUpdate","endpointUrl","Connection","Lan","iface","Puzzle","ext","LanguagePhp","Cogs","_hoisted_21","ShareVariant","Monitor","Thermometer","zone","getDefaultExportFromCjs","browser","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","Item","browserExports","process$1","debug_1","define_process_env_default","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","require$$0","debug","require$$1","exports","module","re","safeRe","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","token","createToken","isGlobal","safe","looseOption","emptyOpts","numeric","compareIdentifiers","anum","bnum","identifiers","require$$2","parseOptions","require$$3","require$$4","SemVer","release","identifier","identifierBase","prerelease","semver","loose","parse_1","throwErrors","er","ProxyBus","bus2","valid","SimpleBus","bus","getBus","subscribe","unsubscribe","ScopedStorage","wrapped","persistent","StorageBuilder","persist","clear","getBuilder","_subscribeToTokenUpdates","getRequestToken","setRequestToken","fetchRequestToken","response","onRequestTokenUpdate","_internal","bind","toString","toStringTag","hasOwnInPrototypeChain","thing","getSafeProp","kindOf","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","prototype","isEmptyObject","isFile","isReactNativeBlob","isReactNative","formData","isBlob","isFileList","isStream","G","FormDataCtor","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","allOwnKeys","findKey","_global","isContextDefined","objs","caseless","skipUndefined","assignValue","targetKey","symbols","symbol","propertyIsEnumerable","stripBOM","inherits","constructor","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","toArray","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","isHTMLForm","toCamelCase","isRegExp","reduceDescriptors","reducer","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","isSpecCompliantForm","toJSONObject","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","asap","isIterable","isSafeIterable","utils$1","buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","output","extraBytes","maxChunkLength","len2","ieee754","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","createBuffer","buf","encodingOrOffset","allocUnsafe","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","assertSize","alloc","encoding","actual","fromArrayLike","arrayView","copy","byteOffset","numberIsNaN","list","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","out","hexSliceLookupTable","newBuf","checkOffset","noAssert","mul","defineBigIntMethod","validateNumber","boundsError","checkInt","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","msg","received","addNumericalSeparator","checkBounds","INVALID_BASE64_RE","base64clean","leadSurrogate","byteArray","dst","alphabet","i16","BufferBigIntNotDefined","ignoreDuplicateOf","utils","parseHeaders","rawHeaders","trimSPorHTAB","INVALID_UNICODE_HEADER_VALUE_CHARS","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","sanitizeHeaderValue","sanitizeByteStringHeaderValue","toByteStringHeaderObject","headers","byteStringHeaders","header","$internals","normalizeHeader","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","matcher","deleted","deleteHeader","targets","asStrings","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","REDACTED","hasOwnOrPrototypeToJSON","redactConfig","redactKeys","lowerKeys","AxiosError","request","customProps","axiosError","message","serializedConfig","httpAdapter","DEFAULT_FORM_DATA_MAX_DEPTH","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","metaTokens","visitor","defaultVisitor","indexes","_Blob","maxDepth","useBlob","convertValue","throwIfMaxDepthExceeded","stringifyWithDepthLimit","ancestors","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","_options","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","toURLEncodedForm","helpers","MAX_DEPTH","throwIfDepthExceeded","parsePropPath","pattern","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","own","stringifySafely","contentType","hasJSONContentType","isObjectPayload","formSerializer","env","_FormData","transitional","forcedJSONParsing","responseType","JSONRequested","strictJSONParsing","status","transformData","isCancel","settle","reject","validateStatus","parseProtocol","speedometer","samplesCount","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","threshold","lastArgs","timer","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","rawLoaded","loaded","progressBytes","rate","progressEventDecorator","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","malformedHttpProtocol","httpProtocolControlCharacters","stripLeadingC0ControlOrSpace","normalizeURLForProtocolCheck","assertValidHttpProtocolURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","getMergedTransitionalOption","transitional2","transitional1","mergeDirectKeys","mergeMap","configValue","FORM_DATA_CONTENT_HEADERS","setFormDataHeaders","formHeaders","encodeUTF8","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","username","password","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","timeoutErrorMessage","cancel","CanceledError","protocol","composeSignals","signals","aborted","onabort","reason","signal","streamChunk","chunk","chunkSize","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","isHexDigit","charCode","isPercentEncodedByte","estimateDataURLDecodedBytes","comma","effectiveLen","pad","tailIsPct3D","VERSION","DEFAULT_CHUNK_SIZE","decodeURIComponentSafe","test","maybeWithAuthCredentials","protocolIndex","urlToCheck","factory","globalObject","ReadableStream","TextEncoder","envFetch","Request","Response","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","getBodyLength","resolveBodyLength","cancelToken","withCredentials","fetchOptions","maxContentLength","maxBodyLength","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","requestContentLength","pendingBodyError","maxBodyLengthError","configAuth","parsedURL","urlUsername","urlPassword","outboundLength","mustEnforceStreamBody","trackRequestStream","_request","contentTypeHeader","isCredentialsSupported","resolvedOptions","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","responseData","materializedSize","canceledError","networkError","seedCache","getFetch","fetch","seeds","seed","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","getAdapter","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","validators","deprecatedWarnings","validator","formatMessage","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","abort","spread","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","axios","Cancel","formToJSON","getCancelableClient","client","RETRY_KEY","onCsrfTokenError","responseURL","RETRY_DELAY_KEY","onMaintenanceModeError","retryDelay","onNotLoggedInError","cancelableClient","useLiveData","timeoutId","stopped","poll","useStaticData","loading","staticData","liveData","SystemSection","ThermalSection","SectionSkeleton","CpuChartSection","MemoryChartSection","DiskSection","NetworkSection","ActiveUsersSection","SharesSection","PhpSection","DatabaseSection","PhpExtensionsSection","MonitoringSection","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","SettingsAdmin"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,12,13,14,15,16,19,21,23,25,27,29,31,32,35,37,39,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113]} \ No newline at end of file +{"version":3,"file":"serverinfo-main.mjs","sources":["../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../node_modules/@nextcloud/router/dist/index.mjs","../node_modules/dompurify/dist/purify.es.mjs","../node_modules/escape-html/index.js","../node_modules/@nextcloud/l10n/dist/chunks/translation-DoG5ZELJ.mjs","../node_modules/vue-material-design-icons/AccountGroup.vue","../src/components/SectionHeading.vue","../src/components/ActiveUsersSection.vue","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/dist/chunks/helpers.dataset.js","../node_modules/chart.js/dist/chart.js","../node_modules/vue-chartjs/dist/index.js","../node_modules/vue-material-design-icons/Chip.vue","../src/utils.ts","../src/components/CpuChartSection.vue","../node_modules/vue-material-design-icons/Database.vue","../src/components/DatabaseSection.vue","../node_modules/vue-material-design-icons/Harddisk.vue","../src/components/DiskSection.vue","../node_modules/vue-material-design-icons/Memory.vue","../src/components/MemoryChartSection.vue","../node_modules/@nextcloud/vue/dist/chunks/useNcFormBox-Djlh582y.mjs","../node_modules/@nextcloud/vue/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBox-Bmqar8nn.mjs","../node_modules/@vueuse/shared/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/mdi-CpchYUUV.mjs","../node_modules/@nextcloud/vue/dist/chunks/createElementId-DhjFt1I9.mjs","../node_modules/@nextcloud/vue/dist/chunks/legacy-BoqDmOCa.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxItem-Cm8aZaVJ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconSvgWrapper-g8ubWhoz.mjs","../node_modules/vue-router/dist/useApi-CROJJdhE.js","../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxButton-G_PkUiQy.mjs","../node_modules/@nextcloud/l10n/dist/gettext.mjs","../node_modules/@nextcloud/vue/dist/chunks/_l10n-wdIzZwir.mjs","../node_modules/@nextcloud/vue/dist/chunks/useCopy-6F-qWHq0.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconToggleSwitch-CRvGt4su.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxSwitch-DSXiQcnq.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormGroup-N7qIFAwN.mjs","../node_modules/vue-material-design-icons/Connection.vue","../src/components/MonitoringSection.vue","../node_modules/vue-material-design-icons/Lan.vue","../src/components/NetworkSection.vue","../node_modules/vue-material-design-icons/Puzzle.vue","../src/components/PhpExtensionsSection.vue","../node_modules/vue-material-design-icons/Cogs.vue","../node_modules/vue-material-design-icons/LanguagePhp.vue","../src/components/PhpSection.vue","../src/components/SectionSkeleton.vue","../node_modules/vue-material-design-icons/ShareVariant.vue","../src/components/SharesSection.vue","../node_modules/vue-material-design-icons/Monitor.vue","../src/components/SystemSection.vue","../node_modules/vue-material-design-icons/Thermometer.vue","../src/components/ThermalSection.vue","../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/re.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/major.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/valid.js","../node_modules/@nextcloud/event-bus/dist/index.mjs","../node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","../node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","../node_modules/@nextcloud/browser-storage/dist/index.js","../node_modules/@nextcloud/auth/dist/index.mjs","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/sanitizeHeaderValue.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../node_modules/@nextcloud/axios/dist/client.js","../node_modules/@nextcloud/axios/dist/interceptors/csrf-token.js","../node_modules/@nextcloud/axios/dist/interceptors/maintenance-mode.js","../node_modules/@nextcloud/axios/dist/interceptors/not-logged-in.js","../node_modules/@nextcloud/axios/dist/index.js","../src/composables/useLiveData.ts","../src/composables/useStaticData.ts","../src/views/SettingsAdmin.vue","../src/main.ts"],"sourcesContent":["const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","/**\n* @vue/shared v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"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\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return extend(\n // inheriting all iterator properties\n Object.create(innerIterator),\n {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n }\n }\n );\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n const target = toRaw(this);\n const proto = getProto(target);\n const rawValue = toRaw(value);\n const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value;\n const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);\n if (!hadKey) {\n target.add(valueToAdd);\n trigger(target, \"add\", valueToAdd, valueToAdd);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction reactive(target) {\n if (/* @__PURE__ */ isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n if (target[\"__v_skip\"] || !Object.isExtensible(target)) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = targetTypeMap(toRawType(target));\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReactive(value) {\n if (/* @__PURE__ */ isReadonly(value)) {\n return /* @__PURE__ */ isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? /* @__PURE__ */ toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;\n\n// @__NO_SIDE_EFFECTS__\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ref(value) {\n return createRef(value, false);\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (/* @__PURE__ */ isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, key, _defaultValue) {\n this._object = _object;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n this._key = isSymbol(key) ? key : String(key);\n this._raw = toRaw(_object);\n let shallow = true;\n let obj = _object;\n if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {\n do {\n shallow = !isProxy(obj) || isShallow(obj);\n } while (shallow && (obj = obj[\"__v_raw\"]));\n }\n this._shallow = shallow;\n }\n get value() {\n let val = this._object[this._key];\n if (this._shallow) {\n val = unref(val);\n }\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {\n const nestedRef = this._object[this._key];\n if (/* @__PURE__ */ isRef(nestedRef)) {\n nestedRef.value = newVal;\n return;\n }\n }\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(this._raw, this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRef(source, key, defaultValue) {\n if (/* @__PURE__ */ isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return /* @__PURE__ */ ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n return new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment, parentNode }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n const mountContainer = parentNode(vnode.el) || container;\n mount(vnode, mountContainer, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n const pendingMount = pendingMounts.get(vnode);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(vnode);\n }\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (!pendingMount && shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n function hydrateAnchor(target2, targetNode) {\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n }\n function hydrateDisabledTeleport(node2, vnode2) {\n vnode2.anchor = hydrateChildren(\n nextSibling(node2),\n vnode2,\n parentNode(node2),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n const disabled = isTeleportDisabled(vnode.props);\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n hydrateDisabledTeleport(node, vnode);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(\n target,\n vnode,\n createText,\n insert,\n // if target is the same as the main view, insert anchors before current node\n // to avoid hydrating mismatch\n parentNode(node) === target ? node : null\n );\n }\n } else {\n vnode.anchor = nextSibling(node);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n } else if (disabled) {\n if (vnode.shapeFlag & 16) {\n hydrateDisabledTeleport(node, vnode);\n vnode.targetStart = node;\n vnode.targetAnchor = nextSibling(node);\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert, anchor = null) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target, anchor);\n insert(targetAnchor, target, anchor);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = /* @__PURE__ */ Symbol(\"_leaveCb\");\nconst enterCbKey = /* @__PURE__ */ Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n const child = children && children.length ? findNonCommentChild(children) : (\n // Keep explicit default-slot conditionals on the same transition path\n // as regular v-if branches, which render a comment placeholder.\n instance.subTree ? createCommentVNode() : void 0\n );\n if (!child) {\n return;\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return;\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n const done = el[enterCbKey].bind(null, false);\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n const done = el[leaveCbKey].bind(null, false);\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n const cls = content.getAttribute(\"class\");\n if (cls) content.$cls = cls;\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && !isMismatchAllowed(el, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n logMismatchError();\n }\n while (next) {\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n const { textContent } = el;\n if (textContent !== clientText && // innerHTML normalize \\r\\n or \\r into a single \\n in the DOM\n textContent !== clientText.replace(/\\r\\n|\\r/g, \"\\n\")) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${textContent}\n - expected on client: ${clientText}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement && !isReservedProp(key)) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasCheckedMismatch = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!hasCheckedMismatch) {\n hasCheckedMismatch = true;\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n logMismatchError();\n }\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return list.includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createInnerComp(\n loadingComponent,\n instance\n );\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n instance2.__keepAliveStorageContainer = storageContainer;\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type\n );\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate ","\n\n\n\n\n\n","\n\n\n\n","/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n let id = 0;\n return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n return value === null || value === undefined;\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */ function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for(i = len - 1; i >= 0; i--){\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for(i = 0, ilen = a0.length; i < ilen; ++i){\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for(; k < klen; ++k){\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return [\n '__proto__',\n 'prototype',\n 'constructor'\n ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [\n source\n ];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for(let i = 0; i < ilen; ++i){\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for(let k = 0, klen = keys.length; k < klen; ++k){\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': (v)=>v,\n // default resolvers\n x: (o)=>o.x,\n y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts){\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return (obj)=>{\n for (const k of keys){\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a){\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for(i = 1; i < sqrt; i++){\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b)=>a - b).pop();\n return result;\n}\n/**\n * Verifies that attempting to coerce n to string or number won't throw a TypeError.\n */ function isNonPrimitive(n) {\n return typeof n === 'symbol' || typeof n === 'object' && n !== null && !(Symbol.toPrimitive in n || 'toString' in n || 'valueOf' in n);\n}\nfunction isNumber(n) {\n return !isNonPrimitive(n) && !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for(i = 0, ilen = array.length; i < ilen; i++){\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while(Math.round(x * e) / e !== x){\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index)=>table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while(hi - lo > 1){\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while(start < end && values[start] < min){\n start++;\n }\n while(end > start && values[end - 1] > max){\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n 'push',\n 'pop',\n 'shift',\n 'splice',\n 'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [\n listener\n ]\n }\n });\n arrayEvents.forEach((key)=>{\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value (...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object)=>{\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key)=>{\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n const set = new Set(items);\n if (set.size === items.length) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function(...args) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, ()=>{\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const { iScale , vScale , _parsed } = meta;\n const spanGaps = meta.dataset ? meta.dataset.options ? meta.dataset.options.spanGaps : null : null;\n const axis = iScale.axis;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = Math.min(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo);\n if (spanGaps) {\n const distanceToDefinedLo = _parsed.slice(0, start + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n start -= Math.max(0, distanceToDefinedLo);\n }\n start = _limitValue(start, 0, pointCount - 1);\n }\n if (maxDefined) {\n let end = Math.max(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1);\n if (spanGaps) {\n const distanceToDefinedHi = _parsed.slice(end - 1).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n end += Math.max(0, distanceToDefinedHi);\n }\n count = _limitValue(end, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n const { xScale , yScale , _scaleRanges } = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n linear: (t)=>t,\n easeInQuad: (t)=>t * t,\n easeOutQuad: (t)=>-t * (t - 2),\n easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: (t)=>t * t * t,\n easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: (t)=>t * t * t * t,\n easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: (t)=>t * t * t * t * t,\n easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n easeOutSine: (t)=>Math.sin(t * HALF_PI),\n easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic (t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack (t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack (t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack (t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n easeOutBounce (t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n 'x',\n 'y',\n 'borderWidth',\n 'radius',\n 'tension'\n];\nconst colors = [\n 'color',\n 'borderColor',\n 'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: (v)=>v | 0\n }\n }\n }\n });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n return isArray(value) ? value : '' + value;\n },\n numeric (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([\n 1,\n 2,\n 3,\n 5,\n 10,\n 15\n ].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n var Ticks = {\n formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n clip: true,\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options)=>options.lineWidth,\n tickColor: (_ctx, options)=>options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name)=>name !== 'backdropPadding'\n });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for(let i = 0, n = keys.length; i < n; ++i){\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n constructor(_descriptors, _appliers){\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get () {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set (value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach((apply)=>apply(this));\n }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n _scriptable: (name)=>!name.startsWith('on'),\n _indexable: (name)=>name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [\n applyAnimationsDefaults,\n applyLayoutsDefaults,\n applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for(i = 0; i < ilen; i++){\n thing = arrayOfThings[i];\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for(j = 0, jlen = thing.length; j < jlen; j++){\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for(i = 0; i < gcLen; i++){\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n if (!ctx && !canvas) {\n return;\n }\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch(style){\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */ case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */ case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */ const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [\n text\n ];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for(i = 0; i < lines.length; ++i){\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += Number(font.lineHeight);\n }\n ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n const { x , y , w , h , radius } = rect;\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch(matches[3]){\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n for (const prop of keys){\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n return _readValueToProps(value, [\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight'\n ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for(i = 0, ilen = inputs.length; i < ilen; ++i){\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n const { min , max } = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope)=>_createResolver([\n scope,\n ...scopes\n ], prefixes, finalRootScopes, fallback)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop) {\n return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys (target) {\n return getKeysFromAllScopes(target);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop, receiver) {\n return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(proxy);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return Reflect.has(proxy, prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys () {\n return Reflect.ownKeys(proxy);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n scriptable: true,\n indexable: true\n}) {\n const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys } = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n let value = _proxy[prop]; // resolve from proxy\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n const { _proxy , _context , _subProxy , _stack } = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter((s)=>s !== arr);\n value = [];\n for (const item of arr){\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes){\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [\n ...parentScopes,\n ...rootScopes\n ];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [\n ''\n ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while(key){\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes){\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes){\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes){\n for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const { iScale } = meta;\n const { key ='r' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen - 1; ++i){\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for(i = 0, ilen = points.length; i < ilen; ++i){\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt)=>!pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for(i = 0, ilen = points.length; i < ilen; ++i){\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * @private\n */ function _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for(let i = 0; i < 4; i++){\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const { offsetX , offsetY } = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const { canvas , currentDevicePixelRatio } = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const { x , y , box } = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let { width , height } = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let { width , height } = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = round1(chart.height * pixelRatio);\n const deviceWidth = round1(chart.width * pixelRatio);\n chart.height = round1(chart.height);\n chart.width = round1(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive () {\n passiveSupported = true;\n return false;\n }\n };\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x (x) {\n return rectX + rectX + width - x;\n },\n setWidth (w) {\n width = w;\n },\n textAlign (align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus (x, value) {\n return x - value;\n },\n leftForLtr (x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x (x) {\n return x;\n },\n setWidth (w) {},\n textAlign (align) {\n return align;\n },\n xPlus (x, value) {\n return x + value;\n },\n leftForLtr (x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction')\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b)=>a - b,\n normalize: (x)=>x\n };\n}\nfunction normalizeSegment({ start , end , count , loop , style }) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const { property , start: startBound , end: endBound } = bounds;\n const { between , normalize } = propertyFn(property);\n const count = points.length;\n let { start , end , loop } = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for(i = 0, ilen = count; i < ilen; ++i){\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\n function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [\n segment\n ];\n }\n const { property , start: startBound , end: endBound } = bounds;\n const count = points.length;\n const { compare , between , normalize } = propertyFn(property);\n const { start , end , loop , style } = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = ()=>inside || startIsBefore();\n const shouldStop = ()=>!inside || endIsBefore();\n for(let i = start, prev = start; i <= end; ++i){\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\n function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for(let i = 0; i < segments.length; i++){\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while(start < count && !points[start].skip){\n start++;\n }\n }\n while(start < count && points[start].skip){\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while(end > start && points[end % count].skip){\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\n function solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for(end = start + 1; end <= max; ++end){\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\n function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const { start , end } = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [\n {\n start,\n end,\n loop\n }\n ], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const { _datasetIndex: datasetIndex , options: { spanGaps } } = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while(points[s % count].skip){\n s -= dir;\n }\n while(points[e % count].skip){\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments){\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for(i = start + 1; i <= segment.end; i++){\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n const { xScale , yScale } = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\nfunction getDatasetClipArea(chart, meta) {\n const clip = meta._clip;\n if (clip.disabled) {\n return false;\n }\n const area = getDatasetArea(meta, chart.chartArea);\n return {\n left: clip.left === false ? 0 : area.left - (clip.left === true ? 0 : clip.left),\n right: clip.right === false ? chart.width : area.right + (clip.right === true ? 0 : clip.right),\n top: clip.top === false ? 0 : area.top - (clip.top === true ? 0 : clip.top),\n bottom: clip.bottom === false ? chart.height : area.bottom + (clip.bottom === true ? 0 : clip.bottom)\n };\n}\n\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, getStyle as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, distanceBetweenPoints as aF, noop as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, Ticks as aM, log10 as aN, _longestText as aO, _filterBetween as aP, _lookup as aQ, isPatternOrGradient as aR, getHoverColor as aS, clone as aT, _merger as aU, _mergerIf as aV, _deprecated as aW, _splitKey as aX, toFontString as aY, splineCurve as aZ, splineCurveMonotone as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, getDatasetClipArea as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _normalizeAngle as al, _readValueToProps as am, _updateBezierControlPoints as an, _computeSegments as ao, _boundSegments as ap, _steppedInterpolation as aq, _bezierInterpolation as ar, _pointInLine as as, _steppedLineTo as at, _bezierCurveTo as au, drawPoint as av, addRoundedRectPath as aw, toTRBL as ax, toTRBLCorners as ay, _boundSegment as az, isArray as b, fontString as b0, toLineHeight as b1, PITAU as b2, INFINITY as b3, RAD_PER_DEG as b4, QUARTER_PI as b5, TWO_THIRDS_PI as b6, _angleDiff as b7, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n//# sourceMappingURL=helpers.dataset.js.map\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, d as defaults, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as createContext, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _lookupByKey, C as _isPointInArea, D as getAngleFromPoint, E as toPadding, F as each, G as getMaximumSize, I as _getParentNode, J as readUsedSize, K as supportsEventListenerOptions, L as throttled, M as _isDomSupported, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as _limitValue, U as toDegrees, V as _measureText, W as _int16Range, X as _alignPixel, Y as clipArea, Z as renderText, $ as unclipArea, a0 as toFont, a1 as _toLeftRightCenter, a2 as _alignStartEnd, a3 as overrides, a4 as merge, a5 as _capitalize, a6 as descriptors, a7 as isFunction, a8 as _attachContext, a9 as _createResolver, aa as _descriptors, ab as mergeIf, ac as uid, ad as debounce, ae as retinaScale, af as clearCanvas, ag as setsEqual, ah as getDatasetClipArea, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _normalizeAngle, am as _readValueToProps, an as _updateBezierControlPoints, ao as _computeSegments, ap as _boundSegments, aq as _steppedInterpolation, ar as _bezierInterpolation, as as _pointInLine, at as _steppedLineTo, au as _bezierCurveTo, av as drawPoint, aw as addRoundedRectPath, ax as toTRBL, ay as toTRBLCorners, az as _boundSegment, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as distanceBetweenPoints, aG as noop, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as Ticks, aN as log10, aO as _longestText, aP as _filterBetween, aQ as _lookup } from './chunks/helpers.dataset.js';\nimport '@kurkle/color';\n\nclass Animator {\n constructor(){\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach((fn)=>fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, ()=>{\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart)=>{\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for(; i >= 0; --i){\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur)=>Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for(; i >= 0; --i){\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = /* #__PURE__ */ new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean (from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color (from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number (from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to){\n const currentValue = target[prop];\n to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n const from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n this._from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || elapsed < duration);\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej)=>{\n promises.push({\n res,\n rej\n });\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for(let i = 0; i < promises.length; i++){\n promises[i][method]();\n }\n }\n}\n\nclass Animations {\n constructor(chart, config){\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach((key)=>{\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions){\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [\n key\n ]).forEach((prop)=>{\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(()=>{\n target.options = newOptions;\n }, ()=>{\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for(i = props.length - 1; i >= 0; --i){\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for(let i = 0; i < keys.length; i++){\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n let found = false;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n found = true;\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n if (!found && !options.all) {\n return 0;\n }\n return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n const { iScale , vScale } = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const { min , max , minDefined , maxDefined } = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()){\n const value = stack[meta.index];\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const { chart , _cachedMeta: meta } = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const { iScale , vScale , index: datasetIndex } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for(let i = 0; i < ilen; ++i){\n const item = parsed[i];\n const { [iAxis]: index , [vAxis]: value } = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter((key)=>scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n });\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items){\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\nconst isDirectUpdateMode = (mode)=>mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared)=>shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart)=>canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\nclass DatasetController {\n static defaults = {};\n static datasetElementType = null;\n static dataElementType = null;\n constructor(chart, datasetIndex){\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r)=>axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n meta._stacked = isStacked(meta.vScale, meta);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const { _cachedMeta: meta , _data: data } = this;\n const { iScale , _stacked } = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = ()=>cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n for(i = 0; i < count; ++i){\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {\n mode\n });\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n const { min: otherMin , max: otherMax } = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for(i = 0; i < ilen; ++i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for(i = ilen - 1; i >= 0; --i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for(i = 0, ilen = parsed.length; i < ilen; ++i){\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || elements.length - start;\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for(i = start; i < start + count; ++i){\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for(i = 0; i < active.length; ++i){\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [\n `${elementType}Hover`,\n 'hover',\n elementType,\n ''\n ] : [\n elementType,\n ''\n ];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = ()=>this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions,\n includeOptions\n };\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList){\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr)=>{\n arr.length += count;\n for(i = arr.length - 1; i >= end; i--){\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for(i = start; i < end; ++i){\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([\n this.index,\n ...args\n ]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync([\n '_insertElements',\n this.getDataset().data.length - count,\n count\n ]);\n }\n _onDataPop() {\n this._sync([\n '_removeElements',\n this._cachedMeta.data.length - 1,\n 1\n ]);\n }\n _onDataShift() {\n this._sync([\n '_removeElements',\n 0,\n 1\n ]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync([\n '_removeElements',\n start,\n count\n ]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync([\n '_insertElements',\n start,\n newCount\n ]);\n }\n }\n _onDataUnshift() {\n this._sync([\n '_insertElements',\n 0,\n arguments.length\n ]);\n }\n}\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for(let i = 0, ilen = visibleMetas.length; i < ilen; i++){\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b)=>a - b));\n }\n return scale._cache.$bar;\n}\n function computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = ()=>{\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for(i = 0, ilen = values.length; i < ilen; ++i){\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for(i = 0, ilen = scale.ticks.length; i < ilen; ++i){\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\n function computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n function computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for(i = start, ilen = start + count; i < ilen; ++i){\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {\n start,\n end,\n reverse,\n top,\n bottom\n };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n const { start , end , reverse , top , bottom } = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, { inflateAmount }, ratio) {\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n static id = 'bar';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n };\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for(i = start, ilen = start + count; i < ilen; ++i){\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const { iScale , vScale } = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const { index , _cachedMeta: { vScale } } = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n for(let i = start; i < start + count; i++){\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base,\n head: base\n } : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const { iScale } = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type).filter((meta)=>meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n const skipNull = (meta)=>{\n const parsed = meta._parsed.find((item)=>item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets){\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getAxisCount() {\n return this._getAxis().length;\n }\n getFirstScaleIdForIndexAxis() {\n const scales = this.chart.scales;\n const indexScaleId = this.chart.options.indexAxis;\n return Object.keys(scales).filter((key)=>scales[key].axis === indexScaleId).shift();\n }\n _getAxis() {\n const axis = {};\n const firstScaleAxisId = this.getFirstScaleIdForIndexAxis();\n for (const dataset of this.chart.data.datasets){\n axis[valueOrDefault(this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId)] = true;\n }\n return Object.keys(axis);\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for(i = 0, ilen = meta.data.length; i < ilen; ++i){\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const { _cachedMeta: { vScale , _stacked , index: datasetIndex } , options: { base: baseValue , minBarLength } } = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n if (_stacked && !floating) {\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n const axisCount = this._getAxisCount();\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount) : computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);\n const axisID = this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID;\n const axisNumber = this._getAxis().indexOf(valueOrDefault(axisID, this.getFirstScaleIdForIndexAxis()));\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for(; i < ilen; ++i){\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\n\nclass BubbleController extends DatasetController {\n static id = 'bubble';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'borderWidth',\n 'radius'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {\n ratioX,\n ratioY,\n offsetX,\n offsetY\n };\n}\nclass DoughnutController extends DatasetController {\n static id = 'doughnut';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'circumference',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'x',\n 'y',\n 'offset',\n 'borderWidth',\n 'spacing'\n ]\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n };\n static descriptors = {\n _scriptable: (name)=>name !== 'spacing',\n _indexable: (name)=>name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n const { labels: { pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n if (data.labels.length && data.datasets.length) {\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !chart.getDataVisibility(i),\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: style.borderWidth,\n strokeStyle: style.borderColor,\n textAlign: textAlign,\n pointStyle: pointStyle,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i)=>+data[i];\n if (isObject(data[start])) {\n const { key ='value' } = this._parsing;\n getter = (i)=>+resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for(i = start, ilen = start + count; i < ilen; ++i){\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for(let i = 0; i < this.chart.data.datasets.length; ++i){\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min\n };\n }\n update(mode) {\n const chart = this.chart;\n const { chartArea } = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const { circumference , rotation } = this._getRotationExtents();\n const { ratioX , ratioY , offsetX , offsetY } = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for(i = 0; i < start; ++i){\n startAngle += this._circumference(i, reset);\n }\n for(i = start; i < start + count; ++i){\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for(i = 0; i < metaData.length; i++){\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for(i = 0, ilen = chart.data.datasets.length; i < ilen; ++i){\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for(i = 0, ilen = arcs.length; i < ilen; ++i){\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for(let i = 0, ilen = arcs.length; i < ilen; ++i){\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for(let i = 0; i < datasetIndex; ++i){\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n\nclass LineController extends DatasetController {\n static id = 'line';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { dataset: line , data: points = [] , _dataset } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = 0; i < pointsCount; ++i){\n const point = points[i];\n const properties = directUpdate ? point : {};\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n\nclass PolarAreaController extends DatasetController {\n static id = 'polarArea';\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ]\n }\n },\n indexAxis: 'r',\n startAngle: 0\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach((element, index)=>{\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for(i = 0; i < start; ++i){\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for(i = start; i < start + count; i++){\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index)=>{\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n}\n\nclass PieController extends DoughnutController {\n static id = 'pie';\n static defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n };\n}\n\nclass RadarController extends DatasetController {\n static id = 'radar';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n };\n static overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n };\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n\nclass ScatterController extends DatasetController {\n static id = 'scatter';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n static overrides = {\n interaction: {\n mode: 'point'\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { data: points = [] } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n if (!this.datasetElementType) {\n this.addElements();\n }\n const { dataset: line , _dataset } = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n delete meta.dataset;\n this.datasetElementType = false;\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const { showLine } = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = start; i < start + count; ++i){\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPieController: PieController,\nPolarAreaController: PolarAreaController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */ function abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */ class DateAdapterBase {\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */ static override(members) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n options;\n constructor(options){\n this.options = options || {};\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n formats() {\n return abstract();\n }\n parse() {\n return abstract();\n }\n format() {\n return abstract();\n }\n add() {\n return abstract();\n }\n diff() {\n return abstract();\n }\n startOf() {\n return abstract();\n }\n endOf() {\n return abstract();\n }\n}\nvar adapters = {\n _date: DateAdapterBase\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const { controller , data , _sorted } = metaset;\n const iScale = controller._cachedMeta.iScale;\n const spanGaps = metaset.dataset ? metaset.dataset.options ? metaset.dataset.options.spanGaps : null : null;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n const result = lookupMethod(data, axis, value);\n if (spanGaps) {\n const { vScale } = controller._cachedMeta;\n const { _parsed } = metaset;\n const distanceToDefinedLo = _parsed.slice(0, result.lo + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.lo -= Math.max(0, distanceToDefinedLo);\n const distanceToDefinedHi = _parsed.slice(result.hi).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.hi += Math.max(0, distanceToDefinedHi);\n }\n return result;\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n function evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for(let i = 0, ilen = metasets.length; i < ilen; ++i){\n const { index , data } = metasets[i];\n const { lo , hi } = binarySearch(metasets[i], axis, value, intersect);\n for(let j = lo; j <= hi; ++j){\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n function getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n function getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n function getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const { startAngle , endAngle } = element.getProps([\n 'startAngle',\n 'endAngle'\n ], useFinalPosition);\n const { angle } = getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n });\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [\n {\n element,\n datasetIndex,\n index\n }\n ];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n function getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index)=>{\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n var Interaction = {\n evaluateInteractionItems,\n modes: {\n index (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta)=>{\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({\n element,\n datasetIndex: meta.index,\n index\n });\n }\n });\n return elements;\n },\n dataset (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for(let i = 0; i < data.length; ++i){\n items.push({\n element: data[i],\n datasetIndex,\n index: i\n });\n }\n }\n return items;\n },\n point (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = [\n 'left',\n 'top',\n 'right',\n 'bottom'\n];\nfunction filterByPosition(array, position) {\n return array.filter((v)=>v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter((v)=>STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b)=>{\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for(i = 0, ilen = (boxes || []).length; i < ilen; ++i){\n box = boxes[i];\n ({ position: pos , options: { stack , stackWeight =1 } } = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts){\n const { stack , pos , stackWeight } = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n function setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const { vBoxMaxWidth , hBoxMaxHeight } = params;\n let i, ilen, layout;\n for(i = 0, ilen = layouts.length; i < ilen; ++i){\n layout = layouts[i];\n const { fullSize } = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter((wrap)=>wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const { pos , box } = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach((pos)=>{\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal ? marginForPositions([\n 'left',\n 'right'\n ]) : marginForPositions([\n 'top',\n 'bottom'\n ]);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for(i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i){\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n const { same , other } = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let { x , y } = chartArea;\n for (const layout of boxes){\n const box = layout.box;\n const stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n const weight = layout.stackWeight / stack.weight || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\nvar layouts = {\n addBox (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [\n {\n z: 0,\n draw (chartArea) {\n item.draw(chartArea);\n }\n }\n ];\n };\n chart.boxes.push(item);\n },\n removeBox (chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure (chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update (chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, (box)=>{\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap)=>wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, (layout)=>{\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\n const EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = (value)=>value === null || value === '';\n function initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const { x , y } = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList){\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart)=>{\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height)=>{\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver((entries)=>{\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event)=>{\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n addListener(canvas, type, proxy);\n return proxy;\n}\n class DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n [\n 'height',\n 'width'\n ].forEach((prop)=>{\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key)=>{\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = canvas && _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n static defaults = {};\n static defaultRoutes = undefined;\n x;\n y;\n active = false;\n options;\n $animations;\n tooltipPosition(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this;\n }\n const ret = {};\n props.forEach((prop)=>{\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for(i = 0, ilen = numMajorIndices - 1; i < ilen; i++){\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n function calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for(let i = 0, ilen = factors.length - 1; i < ilen; i++){\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n function getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n function skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for(i = 0; i < ticks.length; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n function skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while(next < 0){\n count++;\n next = Math.round(start + count * spacing);\n }\n for(i = Math.max(start, 0); i < end; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n function getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for(diff = arr[0], i = 1; i < len; ++i){\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align)=>align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset)=>edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit)=>Math.min(maxTicksLimit || ticksLength, ticksLength);\n function sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for(; i < len; i += increment){\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n function getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n function garbageCollect(caches, length) {\n each(caches, (cache)=>{\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for(i = 0; i < gcLen; ++i){\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n function getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n function getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const { top , left , bottom , right , chart } = scale;\n const { chartArea , scales } = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n}\nclass Scale extends Element {\n constructor(cfg){\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let { _userMin , _userMax , _suggestedMin , _suggestedMax } = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {\n min,\n max\n };\n }\n const metas = this.getMatchingVisibleMetas();\n for(let i = 0, ilen = metas.length; i < ilen; ++i){\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [\n this\n ]);\n }\n update(maxWidth, maxHeight, margins) {\n const { beginAtZero , grace , ticks: tickOpts } = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [\n this\n ]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [\n this\n ]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [\n this\n ]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [\n this\n ]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [\n this\n ]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [\n tick.value,\n i,\n ticks\n ], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [\n this\n ]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [\n this\n ]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [\n this\n ]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [\n this\n ]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const { chart , options: { ticks: tickOpts , title: titleOpts , grid: gridOpts } } = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const { first , last , widest , highest } = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const { ticks: { align , padding } , position } = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [\n this\n ]);\n }\n isHorizontal() {\n const { axis , position } = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const { ctx , _longestTextCache: caches } = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for(i = 0; i < length; i += increment){\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for(j = 0, jlen = label.length; j < jlen; ++j){\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx)=>({\n width: widths[idx] || 0,\n height: heights[idx] || 0\n });\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const { min , max } = this;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const { grid , position , border } = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for(i = 0; i < ticksLength; i += step){\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const { position , ticks: optionTicks } = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const { align , crossAlign , padding , mirror } = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += lineHeight / 2 * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n switch(textBaseline){\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch(textAlign){\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [\n x,\n y\n ],\n backdrop\n }\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const { position , ticks } = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const { position , ticks: { crossAlign , mirror , padding } } = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {\n textAlign,\n x\n };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n drawBackground() {\n const { ctx , options: { backgroundColor } , left , top , width , height } = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex((t)=>t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style)=>{\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for(i = 0, ilen = items.length; i < ilen; ++i){\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n drawBorder() {\n const { chart , ctx , options: { border , grid } } = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this.getLabelItems(chartArea);\n for (const item of items){\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const { ctx , options: { position , title , reverse } } = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const { titleX , titleY , maxWidth , rotation } = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [\n {\n z: tz,\n draw: (chartArea)=>{\n this.draw(chartArea);\n }\n }\n ];\n }\n return [\n {\n z: gz,\n draw: (chartArea)=>{\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n },\n {\n z: bz,\n draw: ()=>{\n this.drawBorder();\n }\n },\n {\n z: tz,\n draw: (chartArea)=>{\n this.drawLabels(chartArea);\n }\n }\n ];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override){\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach((property)=>{\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [\n scope\n ].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor(){\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [\n this.controllers,\n this.scales,\n this.elements\n ];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [\n ...args\n ].forEach((arg)=>{\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n this._exec(method, reg, arg);\n } else {\n each(arg, (item)=>{\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for(let i = 0; i < this._typedRegistries.length; i++){\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = /* #__PURE__ */ new Registry();\n\nclass PluginService {\n constructor(){\n this._init = undefined;\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n if (this._init === undefined) {\n return;\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n this._init = undefined;\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors){\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [\n chart,\n args,\n descriptor.options\n ];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n function allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for(let i = 0; i < keys.length; i++){\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for(let i = 0; i < local.length; i++){\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {\n plugins,\n localIds\n };\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, { plugins , localIds }, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins){\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {\n plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, { plugin , local }, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [\n ''\n ], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions){\n const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {\n axis\n };\n }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d)=>d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {\n scales: {}\n };\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n Object.keys(configScales).forEach((id)=>{\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [\n {\n axis\n },\n scaleConf,\n defaultScaleOptions[axis],\n defaultScaleOptions[defaultId]\n ]);\n });\n config.data.datasets.forEach((dataset)=>{\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach((defaultID)=>{\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [\n {\n axis\n },\n configScales[id],\n defaultScaleOptions[defaultID]\n ]);\n });\n });\n Object.keys(scales).forEach((key)=>{\n const scale = scales[key];\n mergeIf(scale, [\n defaults.scales[scale.type],\n defaults.scale\n ]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key)=>{\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config){\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, ()=>[\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`, ()=>[\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`, ()=>[\n [\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]\n ]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`, ()=>[\n [\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || []\n ]\n ]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const { options , type } = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach((keys)=>{\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach((key)=>addIfFound(scopes, mainScope, key));\n }\n keys.forEach((key)=>addIfFound(scopes, options, key));\n keys.forEach((key)=>addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach((key)=>addIfFound(scopes, defaults, key));\n keys.forEach((key)=>addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const { options , type } = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {\n type\n },\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = [\n ''\n ]) {\n const result = {\n $shared: true\n };\n const { resolver , subPrefixes } = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names){\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [\n ''\n ], descriptorDefaults) {\n const { resolver } = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter((p)=>!p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = (value)=>isObject(value) && Object.getOwnPropertyNames(value).some((key)=>isFunction(value[key]));\nfunction needContext(proxy, names) {\n const { isScriptable , isIndexable } = _descriptors(proxy);\n for (const prop of names){\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"4.5.1\";\n\nconst KNOWN_POSITIONS = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'chartArea'\n];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [\n context\n ], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [\n context\n ], chart);\n}\n function getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key)=>{\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c)=>c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys){\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n function determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n constructor(item, userConfig){\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce((mode)=>this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const { options: { aspectRatio , maintainAspectRatio } , width , height , _aspectRatio } = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n get registry() {\n return registry;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width,\n height\n };\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [\n this,\n newSize\n ], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID)=>{\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id)=>{\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map((id)=>{\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n each(items, (item)=>{\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id)=>{\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale)=>{\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b)=>a.index - b.index);\n if (numMeta > numData) {\n for(let i = numData; i < numMeta; ++i){\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const { _metasets: metasets , data: { datasets } } = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index)=>{\n if (datasets.filter((x)=>x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for(i = 0, ilen = datasets.length; i < ilen; i++){\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const { datasetElementType , dataElementType } = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex)=>{\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; i++){\n const { controller } = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller)=>{\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {\n mode\n });\n this._layers.sort(compare2Level('z', '_idx'));\n const { _active , _lastEvent } = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale)=>{\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const { _hiddenIndices } = this;\n const changes = this._getUniformDataChanges() || [];\n for (const { method , start , count } of changes){\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx)=>new Set(_dataChanges.filter((c)=>c[0] === idx).map((c, i)=>i + ',' + c.splice(1).join(',')));\n const changeSet = makeSet(0);\n for(let i = 1; i < datasetCount; i++){\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet).map((c)=>c.split(',')).map((a)=>({\n method: a[1],\n start: +a[2],\n count: +a[3]\n }));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box)=>{\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index)=>{\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this.getDatasetMeta(i).controller.configure();\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._updateDataset(i, isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {\n mode\n });\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {\n meta,\n index,\n mode,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const { width , height } = this._resizeBeforeDraw;\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const layers = this._layers;\n for(i = 0; i < layers.length && layers[i].z <= 0; ++i){\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for(; i < layers.length; ++i){\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n const clip = getDatasetClipArea(this, meta);\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (clip) {\n clipArea(ctx, clip);\n }\n meta.controller.draw();\n if (clip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter((x)=>x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible\n });\n this.update((ctx)=>ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for(i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const { canvas , ctx } = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y)=>{\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type)=>_add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener)=>{\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height)=>{\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = ()=>{\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = ()=>{\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter((p)=>p.plugin.id === pluginId).length === 1;\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin)=>(plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const { _active: lastActive = [] , options } = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [\n e,\n active,\n this\n ], this);\n if (isClick) {\n callback(options.onClick, [\n e,\n active,\n this\n ], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart)=>chart._plugins.invalidate());\n}\n\nfunction clipSelf(ctx, element, endAngle) {\n const { startAngle , x , y , outerRadius , innerRadius , options } = element;\n const { borderWidth , borderJoinStyle } = options;\n const outerAngleClip = Math.min(borderWidth / outerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.beginPath();\n ctx.arc(x, y, outerRadius - borderWidth / 2, startAngle + outerAngleClip / 2, endAngle - outerAngleClip / 2);\n if (innerRadius > 0) {\n const innerAngleClip = Math.min(borderWidth / innerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.arc(x, y, innerRadius + borderWidth / 2, endAngle - innerAngleClip / 2, startAngle + innerAngleClip / 2, true);\n } else {\n const clipWidth = Math.min(borderWidth / 2, outerRadius * _normalizeAngle(startAngle - endAngle));\n if (borderJoinStyle === 'round') {\n ctx.arc(x, y, clipWidth, endAngle - PI / 2, startAngle + PI / 2, true);\n } else if (borderJoinStyle === 'bevel') {\n const r = 2 * clipWidth * clipWidth;\n const endX = -r * Math.cos(endAngle + PI / 2) + x;\n const endY = -r * Math.sin(endAngle + PI / 2) + y;\n const startX = r * Math.cos(startAngle + PI / 2) + x;\n const startY = r * Math.sin(startAngle + PI / 2) + y;\n ctx.lineTo(endX, endY);\n ctx.lineTo(startX, startY);\n }\n }\n ctx.closePath();\n ctx.moveTo(0, 0);\n ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);\n ctx.clip('evenodd');\n}\nfunction clipArc(ctx, element, endAngle) {\n const { startAngle , pixelMargin , x , y , outerRadius , innerRadius } = element;\n let angleMargin = pixelMargin / outerRadius;\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, [\n 'outerStart',\n 'outerEnd',\n 'innerStart',\n 'innerEnd'\n ]);\n}\n/**\n * Parse border radius from the provided options\n */ function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val)=>{\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n/**\n * Convert (r, 𝜃) to (x, y)\n */ function rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */ function pathArc(ctx, element, offset, spacing, end, circular) {\n const { x , y , startAngle: start , pixelMargin , innerRadius: innerR } = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const { outerStart , outerEnd , innerStart , innerEnd } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference } = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference , options } = element;\n const { borderWidth , borderJoinStyle , borderDash , borderDashOffset , borderRadius } = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n if (options.selfJoin && endAngle - startAngle >= PI && borderRadius === 0 && borderJoinStyle !== 'miter') {\n clipSelf(ctx, element, endAngle);\n }\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\nclass ArcElement extends Element {\n static id = 'arc';\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n selfJoin: false\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash'\n };\n circumference;\n endAngle;\n fullCircles;\n innerRadius;\n outerRadius;\n pixelMargin;\n startAngle;\n constructor(cfg){\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n const { angle , distance } = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n });\n const { startAngle , endAngle , innerRadius , outerRadius , circumference } = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n const betweenAngles = _circumference >= TAU || nonZeroBetween;\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return betweenAngles && withinRadius;\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , startAngle , endAngle , innerRadius , outerRadius } = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const { offset , spacing } = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const { options , circumference } = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n ctx.restore();\n }\n}\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n function getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const { start: paramsStart = 0 , end: paramsEnd = count - 1 } = params;\n const { start: segmentStart , end: segmentEnd } = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n function pathSegment(ctx, line, segment, params) {\n const { points , options } = line;\n const { count , start , loop , ilen } = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let { move =true , reverse } = params || {};\n let i, point, prev;\n for(i = 0; i <= ilen; ++i){\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\n function fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const { count , start , ilen } = pathVars(points, segment, params);\n const { move =true , reverse } = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index)=>(start + (reverse ? ilen - index : index)) % count;\n const drawX = ()=>{\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for(i = 0; i <= ilen; ++i){\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\n function _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n function _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const { segments , options } = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments){\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {\n start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n static id = 'line';\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash' && name !== 'fill'\n };\n constructor(cfg){\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {\n property,\n start: value,\n end: value\n });\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for(i = 0, ilen = segments.length; i < ilen; ++i){\n const { start , end } = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n for (const segment of segments){\n loop &= segmentMethod(ctx, this, segment, {\n start,\n end: start + count - 1\n });\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const { [axis]: value } = el.getProps([\n axis\n ], useFinalPosition);\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n static id = 'point';\n parsed;\n skip;\n stop;\n /**\n * @type {any}\n */ static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n /**\n * @type {any}\n */ static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n\nfunction getBarBounds(bar, useFinalPosition) {\n const { x , y , base , width , height } = bar.getProps([\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {\n left,\n top,\n right,\n bottom\n };\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const { enableBorderRadius } = bar.getProps([\n 'enableBorderRadius'\n ]);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n function addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n static id = 'bar';\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const { inflateAmount , options: { borderColor , backgroundColor } } = this;\n const { inner , outer } = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , base , horizontal } = this.getProps([\n 'x',\n 'y',\n 'base',\n 'horizontal'\n ], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nBarElement: BarElement,\nLineElement: LineElement,\nPointElement: PointElement\n});\n\nconst BORDER_COLORS = [\n 'rgb(54, 162, 235)',\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map((color)=>color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBorderColor(i++));\n return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBackgroundColor(i++));\n return i;\n}\nfunction getColorizer(chart) {\n let i = 0;\n return (dataset, datasetIndex)=>{\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\nfunction containsColorsDefinitions(descriptors) {\n let k;\n for(k in descriptors){\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n return false;\n}\nfunction containsColorsDefinition(descriptor) {\n return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n return defaults.borderColor !== 'rgba(0,0,0,0.1)' || defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n id: 'colors',\n defaults: {\n enabled: true,\n forceOverride: false\n },\n beforeLayout (chart, _args, options) {\n if (!options.enabled) {\n return;\n }\n const { data: { datasets } , options: chartOptions } = chart.config;\n const { elements } = chartOptions;\n const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n if (!options.forceOverride && containsColorDefenition) {\n return;\n }\n const colorizer = getColorizer(chart);\n datasets.forEach(colorizer);\n }\n};\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for(i = 0; i < samples - 2; i++){\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for(j = avgRangeStart; j < avgRangeEnd; j++){\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const { x: pointAx , y: pointAy } = data[a];\n maxArea = area = -1;\n for(j = rangeOffs; j < rangeTo; j++){\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for(i = start; i < start + count; ++i){\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: data\n });\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset)=>{\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const { iScale } = meta;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {\n start,\n count\n };\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: (chart, args, options)=>{\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex)=>{\n const { _data , indexAxis } = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([\n indexAxis,\n chart.options.indexAxis\n ]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let { start , count } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch(options.algorithm){\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy (chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments){\n let { start , end } = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments){\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources){\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {\n property,\n start,\n end\n };\n}\nfunction _pointsFromSegments(boundary, line) {\n const { x =null , y =null } = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({ start , end })=>{\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({\n x: first.x,\n y\n });\n points.push({\n x: last.x,\n y\n });\n } else if (x !== null) {\n points.push({\n x,\n y: first.y\n });\n points.push({\n x,\n y: last.y\n });\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for(; end > start; end--){\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {\n tension: 0\n },\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [\n index\n ];\n let target;\n if (!propagate) {\n return fill;\n }\n while(fill !== false && visited.indexOf(fill) === -1){\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\n function _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return [\n 'origin',\n 'start',\n 'end',\n 'stack',\n 'shape'\n ].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\n function _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\n function _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\n function parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const { scale , index , line } = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n for(let j = segment.start; j <= segment.end; j++){\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({\n points,\n options: {}\n });\n}\n function getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for(let i = 0; i < metas.length; i++){\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\n function addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for(let j = 0; j < linesBelow.length; j++){\n const line = linesBelow[j];\n const { first , last , point } = findPoint(line, sourcePoint, 'x');\n if (!point || first && last) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\n function findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {\n first,\n last,\n point\n };\n}\n\nclass simpleArc {\n constructor(opts){\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const { x , y , radius } = this;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const { x , y , radius } = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const { chart , fill , line } = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\n function getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const { scale ={} , fill } = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const { scale , fill } = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for(let i = 0; i < length; ++i){\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const { chart , index , line , scale , axis } = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const { above =color , below =color } = fillOption || {};\n const meta = chart.getDatasetMeta(index);\n const clip = getDatasetClipArea(chart, meta);\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line,\n target,\n above,\n below,\n area,\n scale,\n axis,\n clip\n });\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const { line , target , above , below , area , scale , clip } = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n let fillColor = below;\n if (below !== above) {\n if (property === 'x') {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line,\n target,\n color: above,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n } else if (property === 'y') {\n clipHorizontal(ctx, target, area.left);\n fill(ctx, {\n line,\n target,\n color: below,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipHorizontal(ctx, target, area.right);\n fillColor = above;\n }\n }\n fill(ctx, {\n line,\n target,\n color: fillColor,\n scale,\n property,\n clip\n });\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction clipHorizontal(ctx, target, clipX) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(clipX, firstPoint.y);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(clipX, lastPoint.y);\n }\n }\n ctx.lineTo(clipX, target.first().y);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const { line , target , property , color , scale , clip } = cfg;\n const segments = _segments(line, target, property);\n for (const { source: src , target: tgt , start , end } of segments){\n const { style: { backgroundColor =color } = {} } = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, clip, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, clip, bounds) {\n const chartArea = scale.chart.chartArea;\n const { property , start , end } = bounds || {};\n if (property === 'x' || property === 'y') {\n let left, top, right, bottom;\n if (property === 'x') {\n left = start;\n top = chartArea.top;\n right = end;\n bottom = chartArea.bottom;\n } else {\n left = chartArea.left;\n top = start;\n right = chartArea.right;\n bottom = end;\n }\n ctx.beginPath();\n if (clip) {\n left = Math.max(left, clip.left);\n right = Math.min(right, clip.right);\n top = Math.max(top, clip.top);\n bottom = Math.min(bottom, clip.bottom);\n }\n ctx.rect(left, top, right - left, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate (chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for(i = 0; i < count; ++i){\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for(i = 0; i < count; ++i){\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw (chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw (chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw (chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize)=>{\n let { boxHeight =fontSize , boxWidth =fontSize } = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b)=>a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config){\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [\n this.chart\n ], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item)=>labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b)=>labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const { options , ctx } = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const { boxWidth , itemHeight } = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const { ctx , maxWidth , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [\n 0\n ];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i)=>{\n const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {\n left: 0,\n top,\n row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const { ctx , maxHeight , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i)=>{\n const { itemWidth , itemHeight } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {\n left,\n top: currentColHeight,\n col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const { legendHitBoxes: hitboxes , options: { align , labels: { padding } , rtl } } = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes){\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes){\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const { options: opts , columnSizes , lineWidths , ctx } = this;\n const { align , labels: labelOpts } = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const { padding } = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const { boxWidth , boxHeight , itemHeight } = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i)=>{\n ctx.strokeStyle = legendItem.fontColor;\n ctx.fillStyle = legendItem.fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size)=>Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for(i = 0; i < lh.length; ++i){\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [\n e,\n previous,\n this\n ], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [\n e,\n hoveredItem,\n this\n ], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [\n e,\n hoveredItem,\n this\n ], this);\n }\n }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {\n itemWidth,\n itemHeight\n };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b)=>a.length > b.length ? a : b);\n }\n return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start (chart, _args, options) {\n const legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop (chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate (chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate (chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent (chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick (e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx)=>ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels (chart) {\n const datasets = chart.data.datasets;\n const { labels: { usePointStyle , pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta)=>{\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx)=>ctx.chart.options.color,\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: (name)=>!name.startsWith('on'),\n labels: {\n _scriptable: (name)=>![\n 'generateLabels',\n 'filter',\n 'sort'\n ].includes(name)\n }\n }\n};\n\nclass Title extends Element {\n constructor(config){\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const { top , left , bottom , right , options } = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const { titleX , titleY , maxWidth , rotation } = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start (chart, _args, options) {\n createTitle(chart, options);\n },\n stop (chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate (chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start (chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop (chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate (chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst positioners = {\n average (items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n const xAverage = [\n ...xSet\n ].reduce((a, b)=>a + b) / xSet.size;\n return {\n x: xAverage,\n y: y / count\n };\n },\n nearest (items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\n function splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n function createTooltipItem(chart, item) {\n const { element , datasetIndex , index } = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const { label , value } = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n function getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const { body , footer , title } = tooltip;\n const { boxWidth , boxHeight } = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem)=>count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, (bodyItem)=>{\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width,\n height\n };\n}\nfunction determineYAlign(chart, size) {\n const { y , height } = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const { x , width } = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const { x , width } = size;\n const { width: chartWidth , chartArea: { left , right } } = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\n function determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let { x , width } = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let { y , height } = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n return y;\n}\n function getBackgroundPoint(options, size, alignment, chart) {\n const { caretSize , caretPadding , cornerRadius } = options;\n const { xAlign , yAlign } = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n function getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n beforeTitle: noop,\n title (tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label (tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor () {\n return this.options.bodyColor;\n },\n labelPointStyle (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n function invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n return result;\n}\nclass Tooltip extends Element {\n static positioners = positioners;\n constructor(config){\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const { callbacks } = options;\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n }\n getBody(tooltipItems, options) {\n const { callbacks } = options;\n const bodyItems = [];\n each(tooltipItems, (context)=>{\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n }\n getFooter(tooltipItems, options) {\n const { callbacks } = options;\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for(i = 0, len = active.length; i < len; ++i){\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array)=>options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b)=>options.itemSort(a, b, data));\n }\n each(tooltipItems, (context)=>{\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay\n });\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const { xAlign , yAlign } = this;\n const { caretSize , cornerRadius } = options;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n const { x: ptX , y: ptY } = tooltipPoint;\n const { width , height } = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {\n x1,\n x2,\n x3,\n y1,\n y2,\n y3\n };\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const { boxHeight , boxWidth } = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const { body } = this;\n const { bodySpacing , bodyAlign , displayColors , boxHeight , boxWidth , boxPadding } = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n for(i = 0, ilen = body.length; i < ilen; ++i){\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for(j = 0, jlen = lines.length; j < jlen; ++j){\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const { xAlign , yAlign } = this;\n const { x , y } = pt;\n const { width , height } = tooltipSize;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive.filter((i)=>this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const { caretX , caretY , options } = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit (chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart,\n options\n });\n }\n },\n beforeUpdate (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw (chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', {\n ...args,\n cancelable: true\n }) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent (chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts)=>opts.bodyFont.size,\n boxWidth: (ctx, opts)=>opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'width',\n 'height',\n 'caretX',\n 'caretY'\n ]\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name)=>name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: [\n 'interaction'\n ]\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColors: plugin_colors,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels)=>{\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max)=>index === null ? null : _limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\nclass CategoryScale extends Scale {\n static id = 'category';\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n constructor(cfg){\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const { index , label } of added){\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for(let value = min; value <= max; value++){\n ticks.push({\n value\n });\n }\n return ticks;\n }\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const { bounds , step , min , max , precision , count , maxTicks , maxDigits , includeBounds } = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const { min: rmin , max: rmax } = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [\n {\n value: rmin\n },\n {\n value: rmax\n }\n ];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for(; j < numSpaces; ++j){\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({\n value: tickValue\n });\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, { horizontal , minRotation }) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const { beginAtZero } = this.options;\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let { maxTicksLimit , stepSize } = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n static id = 'linear';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n\nconst log10Floor = (v)=>Math.floor(log10(v));\nconst changeExponent = (v, m)=>Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while(steps(min, max, rangeExp) > 10){\n rangeExp++;\n }\n while(steps(min, max, rangeExp) < 10){\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n function generateTicks(generationOptions, { min , max }) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while(value < max){\n ticks.push({\n value,\n major: isMajor(value),\n significand\n });\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({\n value: lastTick,\n major: isMajor(lastTick),\n significand\n });\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n static id = 'logarithmic';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [\n raw,\n index\n ]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n if (this._zero && this.min !== this._suggestedMin && !isNumberFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n setMax(changeExponent(min, +1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [\n label\n ];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\n function fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for(let i = 0; i < valueCount; i++){\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const { extra , additionalAngle , padding , size } = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n visible: true,\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const { left , top , right , bottom } = item;\n const apexesInArea = _isPointInArea({\n x: left,\n y: top\n }, area) || _isPointInArea({\n x: left,\n y: bottom\n }, area) || _isPointInArea({\n x: right,\n y: top\n }, area) || _isPointInArea({\n x: right,\n y: bottom\n }, area);\n return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const { centerPointLabels , display } = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n for(let i = 0; i < valueCount; i++){\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n const { left , top , right , bottom } = item;\n const { backdropColor } = opts;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\nfunction drawPointLabels(scale, labelCount) {\n const { ctx , options: { pointLabels } } = scale;\n for(let i = labelCount - 1; i >= 0; i--){\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const { x , y , textAlign } = item;\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const { ctx } = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for(let i = 1; i < labelCount; i++){\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const { color , lineWidth } = gridLineOpts;\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash || []);\n ctx.lineDashOffset = borderOpts.dashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n static id = 'radialLinear';\n static defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback (label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n };\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n constructor(cfg){\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index)=>{\n const label = callback(this.options.pointLabels.callback, [\n value,\n index\n ], this);\n return label || label === 0 ? label : '';\n }).filter((v, i)=>this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const { left , top , right , bottom } = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom\n };\n }\n drawBackground() {\n const { backgroundColor , grid: { circular } } = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const { angleLines , grid , border } = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index)=>{\n if (index !== 0 || index === 0 && this.min < 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for(i = labelCount - 1; i >= 0; i--){\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const { color , lineWidth } = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index)=>{\n if (index === 0 && this.min >= 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\n\nconst INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\n const UNITS = /* #__PURE__ */ Object.keys(INTERVALS);\n function sorter(a, b) {\n return a - b;\n}\n function parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const { parser , round , isoWeekday } = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n return +value;\n}\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for(let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i){\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\n function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for(let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--){\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n function determineMajorUnit(unit) {\n for(let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i){\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n function addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const { lo , hi } = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n function setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for(major = first; major <= last; major = +adapter.add(major, 1, majorUnit)){\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n function ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for(i = 0; i < ilen; ++i){\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n static id = 'time';\n static defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n callback: false,\n major: {\n enabled: false\n }\n }\n };\n constructor(props){\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {\n min,\n max\n };\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map((tick)=>+tick.value));\n }\n }\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start,\n end,\n factor: 1 / (start + 1 + end)\n };\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for(time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++){\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort(sorter).map((x)=>+x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n if (formatter) {\n return callback(formatter, [\n time,\n index,\n ticks\n ], this);\n }\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [\n exampleTime\n ], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return this._cache.data = this.normalize(timestamps);\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for(i = 0, ilen = labels.length; i < ilen; ++i){\n timestamps.push(parse(this, labels[i]));\n }\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({ lo , hi } = _lookupByKey(table, 'pos', val));\n }\n ({ pos: prevSource , time: prevTarget } = table[lo]);\n ({ pos: nextSource , time: nextTarget } = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({ lo , hi } = _lookupByKey(table, 'time', val));\n }\n ({ time: prevSource , pos: prevTarget } = table[lo]);\n ({ time: nextSource , pos: nextTarget } = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n static id = 'timeseries';\n static defaults = TimeScale.defaults;\n constructor(props){\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const { min , max } = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for(i = 0, ilen = timestamps.length; i < ilen; ++i){\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {\n time: min,\n pos: 0\n },\n {\n time: max,\n pos: 1\n }\n ];\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n return table;\n }\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b)=>a - b);\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, plugin_colors as Colors, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, defaults, elements, layouts, plugins, registerables, registry, scales };\n//# sourceMappingURL=chart.js.map\n","import { Chart as Chart$1, BarController, DoughnutController, LineController, PieController, PolarAreaController, RadarController, BubbleController, ScatterController } from 'chart.js';\nimport { version, isProxy, toRaw, defineComponent, ref, shallowRef, onMounted, onUnmounted, watch, nextTick, h } from 'vue';\n\nconst CommonProps = {\n data: {\n type: Object,\n required: true\n },\n options: {\n type: Object,\n default: ()=>({})\n },\n plugins: {\n type: Array,\n default: ()=>[]\n },\n datasetIdKey: {\n type: String,\n default: \"label\"\n },\n updateMode: {\n type: String,\n default: undefined\n }\n};\nconst A11yProps = {\n ariaLabel: {\n type: String\n },\n ariaDescribedby: {\n type: String\n }\n};\nconst Props = {\n type: {\n type: String,\n required: true\n },\n destroyDelay: {\n type: Number,\n default: 0 // No delay by default\n },\n ...CommonProps,\n ...A11yProps\n};\n\nconst compatProps = version[0] === \"2\" ? (internals, props)=>Object.assign(internals, {\n attrs: props\n }) : (internals, props)=>Object.assign(internals, props);\nfunction toRawIfProxy(obj) {\n return isProxy(obj) ? toRaw(obj) : obj;\n}\nfunction cloneProxy(obj) {\n let src = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : obj;\n return isProxy(src) ? new Proxy(obj, {}) : obj;\n}\nfunction setOptions(chart, nextOptions) {\n const options = chart.options;\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\nfunction setLabels(currentData, nextLabels) {\n currentData.labels = nextLabels;\n}\nfunction setDatasets(currentData, nextDatasets, datasetIdKey) {\n const addedDatasets = [];\n currentData.datasets = nextDatasets.map((nextDataset)=>{\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find((dataset)=>dataset[datasetIdKey] === nextDataset[datasetIdKey]);\n // There is no original to update, so simply add new one\n if (!currentDataset || !nextDataset.data || addedDatasets.includes(currentDataset)) {\n return {\n ...nextDataset\n };\n }\n addedDatasets.push(currentDataset);\n Object.assign(currentDataset, nextDataset);\n return currentDataset;\n });\n}\nfunction cloneData(data, datasetIdKey) {\n const nextData = {\n labels: [],\n datasets: []\n };\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n return nextData;\n}\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getDatasetAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"dataset\", {\n intersect: true\n }, false);\n}\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getElementAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"nearest\", {\n intersect: true\n }, false);\n}\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getElementsAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"index\", {\n intersect: true\n }, false);\n}\n\nconst Chart = defineComponent({\n props: Props,\n setup (props, param) {\n let { expose , slots } = param;\n const canvasRef = ref(null);\n const chartRef = shallowRef(null);\n expose({\n chart: chartRef\n });\n const renderChart = ()=>{\n if (!canvasRef.value) return;\n const { type , data , options , plugins , datasetIdKey } = props;\n const clonedData = cloneData(data, datasetIdKey);\n const proxiedData = cloneProxy(clonedData, data);\n chartRef.value = new Chart$1(canvasRef.value, {\n type,\n data: proxiedData,\n options: {\n ...options\n },\n plugins\n });\n };\n const destroyChart = ()=>{\n const chart = toRaw(chartRef.value);\n if (chart) {\n if (props.destroyDelay > 0) {\n setTimeout(()=>{\n chart.destroy();\n chartRef.value = null;\n }, props.destroyDelay);\n } else {\n chart.destroy();\n chartRef.value = null;\n }\n }\n };\n const update = (chart)=>{\n chart.update(props.updateMode);\n };\n onMounted(renderChart);\n onUnmounted(destroyChart);\n watch([\n ()=>props.options,\n ()=>props.data\n ], (param, param1)=>{\n let [nextOptionsProxy, nextDataProxy] = param, [prevOptionsProxy, prevDataProxy] = param1;\n const chart = toRaw(chartRef.value);\n if (!chart) {\n return;\n }\n let shouldUpdate = false;\n if (nextOptionsProxy) {\n const nextOptions = toRawIfProxy(nextOptionsProxy);\n const prevOptions = toRawIfProxy(prevOptionsProxy);\n if (nextOptions && nextOptions !== prevOptions) {\n setOptions(chart, nextOptions);\n shouldUpdate = true;\n }\n }\n if (nextDataProxy) {\n const nextLabels = toRawIfProxy(nextDataProxy.labels);\n const prevLabels = toRawIfProxy(prevDataProxy.labels);\n const nextDatasets = toRawIfProxy(nextDataProxy.datasets);\n const prevDatasets = toRawIfProxy(prevDataProxy.datasets);\n if (nextLabels !== prevLabels) {\n setLabels(chart.config.data, nextLabels);\n shouldUpdate = true;\n }\n if (nextDatasets && nextDatasets !== prevDatasets) {\n setDatasets(chart.config.data, nextDatasets, props.datasetIdKey);\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n nextTick(()=>{\n update(chart);\n });\n }\n }, {\n deep: true\n });\n return ()=>{\n return h(\"canvas\", {\n role: \"img\",\n \"aria-label\": props.ariaLabel,\n \"aria-describedby\": props.ariaDescribedby,\n ref: canvasRef\n }, [\n h(\"p\", {}, [\n slots.default ? slots.default() : \"\"\n ])\n ]);\n };\n }\n});\n\nfunction createTypedChart(type, registerables) {\n Chart$1.register(registerables);\n return defineComponent({\n props: CommonProps,\n setup (props, param) {\n let { expose } = param;\n const ref = shallowRef(null);\n const reforwardRef = (chartRef)=>{\n ref.value = chartRef?.chart;\n };\n expose({\n chart: ref\n });\n return ()=>{\n return h(Chart, compatProps({\n ref: reforwardRef\n }, {\n type,\n ...props\n }));\n };\n }\n });\n}\nconst Bar = /* #__PURE__ */ createTypedChart(\"bar\", BarController);\nconst Doughnut = /* #__PURE__ */ createTypedChart(\"doughnut\", DoughnutController);\nconst Line = /* #__PURE__ */ createTypedChart(\"line\", LineController);\nconst Pie = /* #__PURE__ */ createTypedChart(\"pie\", PieController);\nconst PolarArea = /* #__PURE__ */ createTypedChart(\"polarArea\", PolarAreaController);\nconst Radar = /* #__PURE__ */ createTypedChart(\"radar\", RadarController);\nconst Bubble = /* #__PURE__ */ createTypedChart(\"bubble\", BubbleController);\nconst Scatter = /* #__PURE__ */ createTypedChart(\"scatter\", ScatterController);\n\nexport { Bar, Bubble, Chart, Doughnut, Line, Pie, PolarArea, Radar, Scatter, createTypedChart, getDatasetAtEvent, getElementAtEvent, getElementsAtEvent };\n//# sourceMappingURL=index.js.map\n","\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Formats a size in megabytes to a human-readable string.\n *\n * @param mb size in megabytes\n */\nexport function formatMegabytes(mb: number): string {\n\tconst units = ['MB', 'GB', 'TB', 'PB', 'EB']\n\tlet value = mb\n\tlet i = 0\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024\n\t\ti++\n\t}\n\treturn value.toFixed(2) + ' ' + units[i]\n}\n\n/**\n * Adds alpha to a CSS color string (handles #RRGGBB and rgb()).\n *\n * @param color base colour as #RRGGBB or rgb(...)\n * @param alpha opacity between 0 and 1\n */\nexport function withAlpha(color: string, alpha: number): string {\n\tif (color.startsWith('#') && color.length === 7) {\n\t\tconst r = parseInt(color.slice(1, 3), 16)\n\t\tconst g = parseInt(color.slice(3, 5), 16)\n\t\tconst b = parseInt(color.slice(5, 7), 16)\n\t\treturn `rgba(${r}, ${g}, ${b}, ${alpha})`\n\t}\n\tif (color.startsWith('rgb(')) {\n\t\treturn color.replace('rgb(', 'rgba(').replace(')', `, ${alpha})`)\n\t}\n\treturn color\n}\n\n/**\n * Formats a size in bytes to a human-readable string.\n *\n * @param bytes size in bytes\n */\nexport function formatBytes(bytes: number): string {\n\tconst units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']\n\tlet value = Math.abs(bytes)\n\tlet i = 0\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024\n\t\ti++\n\t}\n\treturn value.toFixed(1) + ' ' + units[i]\n}\n\n/**\n * Reads a themed colour from the active theme's CSS custom properties, so that\n * canvas drawing (which cannot resolve `var(...)` itself) follows light/dark\n * mode and custom themes.\n *\n * @param name custom property name, including the leading dashes\n * @param fallback colour to use when the property is not set\n */\nexport function cssColor(name: string, fallback: string): string {\n\treturn getComputedStyle(document.documentElement)\n\t\t.getPropertyValue(name)\n\t\t.trim() || fallback\n}\n\n/**\n * The themed primary accent colour.\n */\nexport function primaryColor(): string {\n\treturn cssColor('--color-primary-element', '#3681c3')\n}\n","\n\n\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","import { inject } from \"vue\";\nconst NC_FORM_BOX_CONTEXT_KEY = /* @__PURE__ */ Symbol.for(\"NcFormBox:context\");\nfunction useNcFormBox() {\n return inject(NC_FORM_BOX_CONTEXT_KEY, {\n isInFormBox: false,\n formBoxItemClass: void 0\n });\n}\nexport {\n NC_FORM_BOX_CONTEXT_KEY as N,\n useNcFormBox as u\n};\n//# sourceMappingURL=useNcFormBox-Djlh582y.mjs.map\n","const _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nexport {\n _export_sfc as _\n};\n//# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.mjs.map\n","import '../assets/NcFormBox-TRgICDO3.css';\nimport { defineComponent, useCssModule, provide, openBlock, createElementBlock, normalizeClass, renderSlot } from \"vue\";\nimport { N as NC_FORM_BOX_CONTEXT_KEY } from \"./useNcFormBox-Djlh582y.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBox\",\n props: {\n row: { type: Boolean }\n },\n setup(__props) {\n const style = useCssModule();\n provide(NC_FORM_BOX_CONTEXT_KEY, {\n isInFormBox: true,\n formBoxItemClass: style.ncFormBox__item\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([_ctx.$style.ncFormBox, __props.row ? _ctx.$style.ncFormBox_row : _ctx.$style.ncFormBox_col])\n }, [\n renderSlot(_ctx.$slots, \"default\", {\n itemClass: _ctx.$style.ncFormBox__item\n })\n ], 2);\n };\n }\n});\nconst ncFormBox = \"_ncFormBox_s7kf-\";\nconst ncFormBox_row = \"_ncFormBox_row_GzYuE\";\nconst ncFormBox__item = \"_ncFormBox__item_691pI\";\nconst ncFormBox_col = \"_ncFormBox_col_Lt4lg\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_JPsV1\",\n ncFormBox,\n ncFormBox_row,\n ncFormBox__item,\n ncFormBox_col\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBox = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBox as N\n};\n//# sourceMappingURL=NcFormBox-Bmqar8nn.mjs.map\n","import { computed, customRef, effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, isReactive, isRef, nextTick, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, provide, reactive, readonly, ref, shallowReadonly, shallowRef, toRef as toRef$1, toRefs as toRefs$1, toValue, unref, watch, watchEffect } from \"vue\";\n//#region computedEager/index.ts\n/**\n*\n* @deprecated This function will be removed in future version.\n*\n* Note: If you are using Vue 3.4+, you can straight use computed instead.\n* Because in Vue 3.4+, if computed new value does not change,\n* computed, effect, watch, watchEffect, render dependencies will not be triggered.\n* refer: https://github.com/vuejs/core/pull/5912\n*\n* @param fn effect function\n* @param options WatchOptionsBase\n* @returns readonly shallowRef\n*/\nfunction computedEager(fn, options) {\n\tvar _options$flush;\n\tconst result = shallowRef();\n\twatchEffect(() => {\n\t\tresult.value = fn();\n\t}, {\n\t\t...options,\n\t\tflush: (_options$flush = options === null || options === void 0 ? void 0 : options.flush) !== null && _options$flush !== void 0 ? _options$flush : \"sync\"\n\t});\n\treturn readonly(result);\n}\n/** @deprecated use `computedEager` instead */\nconst eagerComputed = computedEager;\n//#endregion\n//#region computedWithControl/index.ts\n/**\n* Explicitly define the deps of computed.\n*\n* @param source\n* @param fn\n*/\nfunction computedWithControl(source, fn, options = {}) {\n\tlet v = void 0;\n\tlet track;\n\tlet trigger;\n\tlet dirty = true;\n\tconst update = () => {\n\t\tdirty = true;\n\t\ttrigger();\n\t};\n\twatch(source, update, {\n\t\tflush: \"sync\",\n\t\t...options\n\t});\n\tconst get = typeof fn === \"function\" ? fn : fn.get;\n\tconst set = typeof fn === \"function\" ? void 0 : fn.set;\n\tconst result = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tif (dirty) {\n\t\t\t\t\tv = get(v);\n\t\t\t\t\tdirty = false;\n\t\t\t\t}\n\t\t\t\ttrack();\n\t\t\t\treturn v;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset === null || set === void 0 || set(v);\n\t\t\t}\n\t\t};\n\t});\n\tresult.trigger = update;\n\treturn result;\n}\n/** @deprecated use `computedWithControl` instead */\nconst controlledComputed = computedWithControl;\n//#endregion\n//#region createDisposableDirective/index.ts\n/**\n* Utility for authoring disposable directives. Reactive effects created within `mounted` directive hook will be tracked and automatically disposed when directive is unmounted.\n*\n* @see https://vueuse.org/createDisposableDirective\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createDisposableDirective(origin = {}) {\n\tfunction isFunc(fn) {\n\t\treturn typeof fn === \"function\";\n\t}\n\tconst normalisedOrigin = isFunc(origin) ? {\n\t\tmounted: origin,\n\t\tupdated: origin\n\t} : origin;\n\tconst { mounted, unmounted } = normalisedOrigin;\n\tif (!isFunc(mounted)) return origin;\n\tconst scopeWeakMap = /* @__PURE__ */ new WeakMap();\n\treturn {\n\t\t...normalisedOrigin,\n\t\tmounted(el, binding, vNode, prevNode) {\n\t\t\tvar _scopeWeakMap$get;\n\t\t\tconst scope = (_scopeWeakMap$get = scopeWeakMap.get(el)) !== null && _scopeWeakMap$get !== void 0 ? _scopeWeakMap$get : effectScope();\n\t\t\tscopeWeakMap.set(el, scope);\n\t\t\tscope.run(() => {\n\t\t\t\tmounted === null || mounted === void 0 || mounted(el, binding, vNode, prevNode);\n\t\t\t});\n\t\t},\n\t\tunmounted(el, binding, vNode, prevNode) {\n\t\t\tvar _scopeWeakMap$get2;\n\t\t\t(_scopeWeakMap$get2 = scopeWeakMap.get(el)) === null || _scopeWeakMap$get2 === void 0 || _scopeWeakMap$get2.stop();\n\t\t\tscopeWeakMap.delete(el);\n\t\t\tif (isFunc(unmounted)) unmounted(el, binding, vNode, prevNode);\n\t\t}\n\t};\n}\n//#endregion\n//#region tryOnScopeDispose/index.ts\n/**\n* Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing\n*\n* @param fn\n*/\nfunction tryOnScopeDispose(fn, failSilently) {\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(fn, failSilently);\n\t\treturn true;\n\t}\n\treturn false;\n}\n//#endregion\n//#region createEventHook/index.ts\n/**\n* Utility for creating event hooks\n*\n* @see https://vueuse.org/createEventHook\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createEventHook() {\n\tconst fns = /* @__PURE__ */ new Set();\n\tconst off = (fn) => {\n\t\tfns.delete(fn);\n\t};\n\tconst clear = () => {\n\t\tfns.clear();\n\t};\n\tconst on = (fn) => {\n\t\tfns.add(fn);\n\t\tconst offFn = () => off(fn);\n\t\ttryOnScopeDispose(offFn);\n\t\treturn { off: offFn };\n\t};\n\tconst trigger = (...args) => {\n\t\treturn Promise.all(Array.from(fns).map((fn) => fn(...args)));\n\t};\n\treturn {\n\t\ton,\n\t\toff,\n\t\ttrigger,\n\t\tclear\n\t};\n}\n//#endregion\n//#region createGlobalState/index.ts\n/**\n* Keep states in the global scope to be reusable across Vue instances.\n*\n* @see https://vueuse.org/createGlobalState\n* @param stateFactory A factory function to create the state\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createGlobalState(stateFactory) {\n\tlet initialized = false;\n\tlet state;\n\tconst scope = effectScope(true);\n\treturn ((...args) => {\n\t\tif (!initialized) {\n\t\t\tstate = scope.run(() => stateFactory(...args));\n\t\t\tinitialized = true;\n\t\t}\n\t\treturn state;\n\t});\n}\n//#endregion\n//#region provideLocal/map.ts\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n//#endregion\n//#region injectLocal/index.ts\n/**\n* On the basis of `inject`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* injectLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*\n* @__NO_SIDE_EFFECTS__\n*/\nconst injectLocal = (...args) => {\n\tvar _getCurrentInstance;\n\tconst key = args[0];\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null && !hasInjectionContext()) throw new Error(\"injectLocal must be called in setup\");\n\tif (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];\n\treturn inject(...args);\n};\n//#endregion\n//#region provideLocal/index.ts\n/**\n* On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* provideLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*/\nfunction provideLocal(key, value) {\n\tvar _getCurrentInstance;\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null) throw new Error(\"provideLocal must be called in setup\");\n\tif (!localProvidedStateMap.has(owner)) localProvidedStateMap.set(owner, Object.create(null));\n\tconst localProvidedState = localProvidedStateMap.get(owner);\n\tlocalProvidedState[key] = value;\n\treturn provide(key, value);\n}\n//#endregion\n//#region createInjectionState/index.ts\nfunction createInjectionState(composable, options) {\n\tconst key = (options === null || options === void 0 ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n\tconst defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;\n\tconst useProvidingState = (...args) => {\n\t\tconst state = composable(...args);\n\t\tprovideLocal(key, state);\n\t\treturn state;\n\t};\n\tconst useInjectedState = () => injectLocal(key, defaultValue);\n\treturn [useProvidingState, useInjectedState];\n}\n//#endregion\n//#region createRef/index.ts\n/**\n* Returns a `deepRef` or `shallowRef` depending on the `deep` param.\n*\n* @example createRef(1) // ShallowRef\n* @example createRef(1, false) // ShallowRef\n* @example createRef(1, true) // Ref\n* @example createRef(\"string\") // ShallowRef\n* @example createRef<\"A\"|\"B\">(\"A\", true) // Ref<\"A\"|\"B\">\n*\n* @param value\n* @param deep\n* @returns the `deepRef` or `shallowRef`\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createRef(value, deep) {\n\tif (deep === true) return ref(value);\n\telse return shallowRef(value);\n}\n//#endregion\n//#region utils/is.ts\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n\tif (!condition) console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {};\nconst rand = (min, max) => {\n\tmin = Math.ceil(min);\n\tmax = Math.floor(max);\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.hasOwn(val, key);\nconst isIOS = /* #__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n\tvar _window, _window2, _window3;\n\treturn isClient && !!((_window = window) === null || _window === void 0 || (_window = _window.navigator) === null || _window === void 0 ? void 0 : _window.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.navigator) === null || _window2 === void 0 ? void 0 : _window2.maxTouchPoints) > 2 && /iPad|Macintosh/.test((_window3 = window) === null || _window3 === void 0 ? void 0 : _window3.navigator.userAgent));\n}\n//#endregion\n//#region toRef/index.ts\nfunction toRef(...args) {\n\tif (args.length !== 1) return toRef$1(...args);\n\tconst r = args[0];\n\treturn typeof r === \"function\" ? readonly(customRef(() => ({\n\t\tget: r,\n\t\tset: noop\n\t}))) : ref(r);\n}\n//#endregion\n//#region utils/filters.ts\nfunction createFilterWrapper(filter, fn) {\n\tfunction wrapper(...args) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tPromise.resolve(filter(() => fn.apply(this, args), {\n\t\t\t\tfn,\n\t\t\t\tthisArg: this,\n\t\t\t\targs\n\t\t\t})).then(resolve).catch(reject);\n\t\t});\n\t}\n\tif (\"cancel\" in filter) Object.assign(wrapper, {\n\t\tcancel: filter.cancel,\n\t\tflush: filter.flush,\n\t\tisPending: filter.isPending\n\t});\n\treturn wrapper;\n}\nconst bypassFilter = (invoke) => {\n\treturn invoke();\n};\n/**\n* Create an EventFilter that debounce the events\n*/\nfunction debounceFilter(ms, options = {}) {\n\tlet timer;\n\tlet maxTimer;\n\tlet lastRejector = noop;\n\tlet lastResolve = noop;\n\tconst _pending = shallowRef(false);\n\tconst _clearTimeout = (timer) => {\n\t\tclearTimeout(timer);\n\t\tlastRejector();\n\t\tlastRejector = noop;\n\t};\n\tlet lastInvoker;\n\tconst handler = (invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst maxDuration = toValue(options.maxWait);\n\t\tif (timer) _clearTimeout(timer);\n\t\tif (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\t_pending.value = false;\n\t\t\treturn Promise.resolve(invoke());\n\t\t}\n\t\t_pending.value = true;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlastRejector = options.rejectOnCancel ? reject : resolve;\n\t\t\tlastResolve = resolve;\n\t\t\tlastInvoker = invoke;\n\t\t\tif (maxDuration && !maxTimer) maxTimer = setTimeout(() => {\n\t\t\t\tif (timer) _clearTimeout(timer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\t_pending.value = false;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}, maxDuration);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tif (maxTimer) _clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\t_pending.value = false;\n\t\t\t\tresolve(invoke());\n\t\t\t}, duration);\n\t\t});\n\t};\n\treturn Object.assign(handler, {\n\t\tcancel: () => {\n\t\t\tif (timer) {\n\t\t\t\t_clearTimeout(timer);\n\t\t\t\ttimer = void 0;\n\t\t\t}\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\t_pending.value = false;\n\t\t\tlastResolve = noop;\n\t\t},\n\t\tflush: () => {\n\t\t\tif (_pending.value) {\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\ttimer = void 0;\n\t\t\t\t}\n\t\t\t\tif (maxTimer) {\n\t\t\t\t\tclearTimeout(maxTimer);\n\t\t\t\t\tmaxTimer = void 0;\n\t\t\t\t}\n\t\t\t\t_pending.value = false;\n\t\t\t\tconst resolve = lastResolve;\n\t\t\t\tlastRejector = noop;\n\t\t\t\tlastResolve = noop;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}\n\t\t},\n\t\tisPending: shallowReadonly(_pending)\n\t});\n}\nfunction throttleFilter(...args) {\n\tlet lastExec = 0;\n\tlet timer;\n\tlet isLeading = true;\n\tlet lastRejector = noop;\n\tlet lastValue;\n\tlet ms;\n\tlet trailing;\n\tlet leading;\n\tlet rejectOnCancel;\n\tif (!isRef(args[0]) && typeof args[0] === \"object\") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]);\n\telse [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n\tconst clear = () => {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t\tlastRejector();\n\t\t\tlastRejector = noop;\n\t\t}\n\t};\n\tconst filter = (_invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst elapsed = Date.now() - lastExec;\n\t\tconst invoke = () => {\n\t\t\treturn lastValue = _invoke();\n\t\t};\n\t\tclear();\n\t\tif (duration <= 0) {\n\t\t\tlastExec = Date.now();\n\t\t\treturn invoke();\n\t\t}\n\t\tif (elapsed > duration) {\n\t\t\tlastExec = Date.now();\n\t\t\tif (leading || !isLeading) invoke();\n\t\t} else if (trailing) lastValue = new Promise((resolve, reject) => {\n\t\t\tlastRejector = rejectOnCancel ? reject : resolve;\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tisLeading = true;\n\t\t\t\tresolve(invoke());\n\t\t\t\tclear();\n\t\t\t}, Math.max(0, duration - elapsed));\n\t\t});\n\t\tif (!leading && !timer) timer = setTimeout(() => isLeading = true, duration);\n\t\tisLeading = false;\n\t\treturn lastValue;\n\t};\n\treturn filter;\n}\n/**\n* EventFilter that gives extra controls to pause and resume the filter\n*\n* @param extendFilter Extra filter to apply when the PausableFilter is active, default to none\n* @param options Options to configure the filter\n*/\nfunction pausableFilter(extendFilter = bypassFilter, options = {}) {\n\tconst { initialState = \"active\" } = options;\n\tconst isActive = toRef(initialState === \"active\");\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tfunction resume() {\n\t\tisActive.value = true;\n\t}\n\tconst eventFilter = (...args) => {\n\t\tif (isActive.value) extendFilter(...args);\n\t};\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume,\n\t\teventFilter\n\t};\n}\n//#endregion\n//#region utils/general.ts\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n\treturn new Promise((resolve, reject) => {\n\t\tif (throwOnTimeout) setTimeout(reject, ms, reason);\n\t\telse setTimeout(resolve, ms);\n\t});\n}\nfunction identity(arg) {\n\treturn arg;\n}\n/**\n* Create singleton promise function\n*\n* @example\n* ```\n* const promise = createSingletonPromise(async () => { ... })\n*\n* await promise()\n* await promise() // all of them will be bind to a single promise instance\n* await promise() // and be resolved together\n* ```\n*/\nfunction createSingletonPromise(fn) {\n\tlet _promise;\n\tfunction wrapper() {\n\t\tif (!_promise) _promise = fn();\n\t\treturn _promise;\n\t}\n\twrapper.reset = async () => {\n\t\tconst _prev = _promise;\n\t\t_promise = void 0;\n\t\tif (_prev) await _prev;\n\t};\n\treturn wrapper;\n}\nfunction invoke(fn) {\n\treturn fn();\n}\nfunction containsProp(obj, ...props) {\n\treturn props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n\tvar _target$match;\n\tif (typeof target === \"number\") return target + delta;\n\tconst value = ((_target$match = target.match(/^-?\\d+\\.?\\d*/)) === null || _target$match === void 0 ? void 0 : _target$match[0]) || \"\";\n\tconst unit = target.slice(value.length);\n\tconst result = Number.parseFloat(value) + delta;\n\tif (Number.isNaN(result)) return target;\n\treturn result + unit;\n}\n/**\n* Get a px value for SSR use, do not rely on this method outside of SSR as REM unit is assumed at 16px, which might not be the case on the client\n*/\nfunction pxValue(px) {\n\treturn px.endsWith(\"rem\") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);\n}\n/**\n* Create a new subset object by giving keys\n*/\nfunction objectPick(obj, keys, omitUndefined = false) {\n\treturn keys.reduce((n, k) => {\n\t\tif (k in obj) {\n\t\t\tif (!omitUndefined || obj[k] !== void 0) n[k] = obj[k];\n\t\t}\n\t\treturn n;\n\t}, {});\n}\n/**\n* Create a new subset object by omit giving keys\n*/\nfunction objectOmit(obj, keys, omitUndefined = false) {\n\treturn Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n\t\treturn (!omitUndefined || value !== void 0) && !keys.includes(key);\n\t}));\n}\nfunction objectEntries(obj) {\n\treturn Object.entries(obj);\n}\nfunction toArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n//#endregion\n//#region utils/port.ts\nfunction cacheStringFunction(fn) {\n\tconst cache = Object.create(null);\n\treturn ((str) => {\n\t\treturn cache[str] || (cache[str] = fn(str));\n\t});\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n\treturn str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n//#endregion\n//#region utils/vue.ts\nfunction getLifeCycleTarget(target) {\n\treturn target || getCurrentInstance();\n}\n//#endregion\n//#region createSharedComposable/index.ts\n/**\n* Make a composable function usable with multiple Vue instances.\n*\n* @see https://vueuse.org/createSharedComposable\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createSharedComposable(composable) {\n\tif (!isClient) return composable;\n\tlet subscribers = 0;\n\tlet state;\n\tlet scope;\n\tconst dispose = () => {\n\t\tsubscribers -= 1;\n\t\tif (scope && subscribers <= 0) {\n\t\t\tscope.stop();\n\t\t\tstate = void 0;\n\t\t\tscope = void 0;\n\t\t}\n\t};\n\treturn ((...args) => {\n\t\tsubscribers += 1;\n\t\tif (!scope) {\n\t\t\tscope = effectScope(true);\n\t\t\tstate = scope.run(() => composable(...args));\n\t\t}\n\t\ttryOnScopeDispose(dispose);\n\t\treturn state;\n\t});\n}\n//#endregion\n//#region extendRef/index.ts\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n\tfor (const [key, value] of Object.entries(extend)) {\n\t\tif (key === \"value\") continue;\n\t\tif (isRef(value) && unwrap) Object.defineProperty(ref, key, {\n\t\t\tget() {\n\t\t\t\treturn value.value;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tvalue.value = v;\n\t\t\t},\n\t\t\tenumerable\n\t\t});\n\t\telse Object.defineProperty(ref, key, {\n\t\t\tvalue,\n\t\t\tenumerable\n\t\t});\n\t}\n\treturn ref;\n}\n//#endregion\n//#region get/index.ts\nfunction get(obj, key) {\n\tif (key == null) return unref(obj);\n\treturn unref(obj)[key];\n}\n//#endregion\n//#region isDefined/index.ts\nfunction isDefined(v) {\n\treturn unref(v) != null;\n}\n//#endregion\n//#region makeDestructurable/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction makeDestructurable(obj, arr) {\n\tif (typeof Symbol !== \"undefined\") {\n\t\tconst clone = { ...obj };\n\t\tObject.defineProperty(clone, Symbol.iterator, {\n\t\t\tenumerable: false,\n\t\t\tvalue() {\n\t\t\t\tlet index = 0;\n\t\t\t\treturn { next: () => ({\n\t\t\t\t\tvalue: arr[index++],\n\t\t\t\t\tdone: index > arr.length\n\t\t\t\t}) };\n\t\t\t}\n\t\t});\n\t\treturn clone;\n\t} else return Object.assign([...arr], obj);\n}\n//#endregion\n//#region reactify/index.ts\n/**\n* Converts plain function into a reactive function.\n* The converted function accepts refs as it's arguments\n* and returns a ComputedRef, with proper typing.\n*\n* @param fn - Source function\n* @param options - Options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactify(fn, options) {\n\tconst unrefFn = (options === null || options === void 0 ? void 0 : options.computedGetter) === false ? unref : toValue;\n\treturn function(...args) {\n\t\treturn computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n\t};\n}\n/** @deprecated use `reactify` instead */\nconst createReactiveFn = reactify;\n//#endregion\n//#region reactifyObject/index.ts\n/**\n* Apply `reactify` to an object\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n\tlet keys = [];\n\tlet options;\n\tif (Array.isArray(optionsOrKeys)) keys = optionsOrKeys;\n\telse {\n\t\toptions = optionsOrKeys;\n\t\tconst { includeOwnProperties = true } = optionsOrKeys;\n\t\tkeys.push(...Object.keys(obj));\n\t\tif (includeOwnProperties) keys.push(...Object.getOwnPropertyNames(obj));\n\t}\n\treturn Object.fromEntries(keys.map((key) => {\n\t\tconst value = obj[key];\n\t\treturn [key, typeof value === \"function\" ? reactify(value.bind(obj), options) : value];\n\t}));\n}\n//#endregion\n//#region toReactive/index.ts\n/**\n* Converts ref to reactive.\n*\n* @see https://vueuse.org/toReactive\n* @param objectRef A ref of object\n*/\nfunction toReactive(objectRef) {\n\tif (!isRef(objectRef)) return reactive(objectRef);\n\treturn reactive(new Proxy({}, {\n\t\tget(_, p, receiver) {\n\t\t\treturn unref(Reflect.get(objectRef.value, p, receiver));\n\t\t},\n\t\tset(_, p, value) {\n\t\t\tif (isRef(objectRef.value[p]) && !isRef(value)) objectRef.value[p].value = value;\n\t\t\telse objectRef.value[p] = value;\n\t\t\treturn true;\n\t\t},\n\t\tdeleteProperty(_, p) {\n\t\t\treturn Reflect.deleteProperty(objectRef.value, p);\n\t\t},\n\t\thas(_, p) {\n\t\t\treturn Reflect.has(objectRef.value, p);\n\t\t},\n\t\townKeys() {\n\t\t\treturn Object.keys(objectRef.value);\n\t\t},\n\t\tgetOwnPropertyDescriptor() {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t};\n\t\t}\n\t}));\n}\n//#endregion\n//#region reactiveComputed/index.ts\n/**\n* Computed reactive object.\n*/\nfunction reactiveComputed(fn) {\n\treturn toReactive(computed(fn));\n}\n//#endregion\n//#region reactiveOmit/index.ts\n/**\n* Reactively omit fields from a reactive object\n*\n* @see https://vueuse.org/reactiveOmit\n*/\nfunction reactiveOmit(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n//#endregion\n//#region reactivePick/index.ts\n/**\n* Reactively pick fields from a reactive object\n*\n* @see https://vueuse.org/reactivePick\n*/\nfunction reactivePick(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n//#endregion\n//#region refAutoReset/index.ts\n/**\n* Create a ref which will be reset to the default value after some time.\n*\n* @see https://vueuse.org/refAutoReset\n* @param defaultValue The value which will be set.\n* @param afterMs A zero-or-greater delay in milliseconds.\n*/\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n\treturn customRef((track, trigger) => {\n\t\tlet value = toValue(defaultValue);\n\t\tlet timer;\n\t\tconst resetAfter = () => setTimeout(() => {\n\t\t\tvalue = toValue(defaultValue);\n\t\t\ttrigger();\n\t\t}, toValue(afterMs));\n\t\ttryOnScopeDispose(() => {\n\t\t\tclearTimeout(timer);\n\t\t});\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = resetAfter();\n\t\t\t}\n\t\t};\n\t});\n}\n/** @deprecated use `refAutoReset` instead */\nconst autoResetRef = refAutoReset;\n//#endregion\n//#region useDebounceFn/index.ts\n/**\n* Debounce execution of a function.\n*\n* @see https://vueuse.org/useDebounceFn\n* @param fn A function to be executed after delay milliseconds debounced.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param options Options\n*\n* @return A new, debounced, function with isPending, cancel, and flush properties.\n*/\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n\treturn createFilterWrapper(debounceFilter(ms, options), fn);\n}\n//#endregion\n//#region refDebounced/index.ts\n/**\n* Debounce updates of a ref.\n*\n* @return A new debounced ref.\n*/\nfunction refDebounced(value, ms = 200, options = {}) {\n\tconst debounced = ref(toValue(value));\n\tconst updater = useDebounceFn(() => {\n\t\tdebounced.value = value.value;\n\t}, ms, options);\n\twatch(value, () => updater());\n\treturn shallowReadonly(debounced);\n}\n/** @deprecated use `refDebounced` instead */\nconst debouncedRef = refDebounced;\n/** @deprecated use `refDebounced` instead */\nconst useDebounce = refDebounced;\n//#endregion\n//#region refDefault/index.ts\n/**\n* Apply default value to a ref.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refDefault(source, defaultValue) {\n\treturn computed({\n\t\tget() {\n\t\t\tvar _source$value;\n\t\t\treturn (_source$value = source.value) !== null && _source$value !== void 0 ? _source$value : defaultValue;\n\t\t},\n\t\tset(value) {\n\t\t\tsource.value = value;\n\t\t}\n\t});\n}\n//#endregion\n//#region refManualReset/index.ts\n/**\n* Create a ref with manual reset functionality.\n*\n* @see https://vueuse.org/refManualReset\n* @param defaultValue The value which will be set.\n*/\nfunction refManualReset(defaultValue) {\n\tlet value = toValue(defaultValue);\n\tlet trigger;\n\tconst reset = () => {\n\t\tvalue = toValue(defaultValue);\n\t\ttrigger();\n\t};\n\tconst refValue = customRef((track, _trigger) => {\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t}\n\t\t};\n\t});\n\trefValue.reset = reset;\n\treturn refValue;\n}\n//#endregion\n//#region useThrottleFn/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n* to `callback` when the throttled-function is executed.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* (default value: 200)\n*\n* @param [trailing] if true, call fn again after the time is up (default value: false)\n*\n* @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)\n*\n* @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)\n*\n* @return A new, throttled, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n\treturn createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n//#endregion\n//#region refThrottled/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param value Ref value to be watched with throttle effect\n* @param delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param trailing if true, update the value again after the delay time is up\n* @param leading if true, update the value on the leading edge of the ms timeout\n*/\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n\tif (delay <= 0) return value;\n\tconst throttled = ref(toValue(value));\n\tconst updater = useThrottleFn(() => {\n\t\tthrottled.value = value.value;\n\t}, delay, trailing, leading);\n\twatch(value, () => updater());\n\treturn throttled;\n}\n/** @deprecated use `refThrottled` instead */\nconst throttledRef = refThrottled;\n/** @deprecated use `refThrottled` instead */\nconst useThrottle = refThrottled;\n//#endregion\n//#region refWithControl/index.ts\n/**\n* Fine-grained controls over ref and its reactivity.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refWithControl(initial, options = {}) {\n\tlet source = initial;\n\tlet track;\n\tlet trigger;\n\tconst ref = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\treturn get();\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset(v);\n\t\t\t}\n\t\t};\n\t});\n\tfunction get(tracking = true) {\n\t\tif (tracking) track();\n\t\treturn source;\n\t}\n\tfunction set(value, triggering = true) {\n\t\tvar _options$onBeforeChan, _options$onChanged;\n\t\tif (value === source) return;\n\t\tconst old = source;\n\t\tif (((_options$onBeforeChan = options.onBeforeChange) === null || _options$onBeforeChan === void 0 ? void 0 : _options$onBeforeChan.call(options, value, old)) === false) return;\n\t\tsource = value;\n\t\t(_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, value, old);\n\t\tif (triggering) trigger();\n\t}\n\t/**\n\t* Get the value without tracked in the reactivity system\n\t*/\n\tconst untrackedGet = () => get(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*/\n\tconst silentSet = (v) => set(v, false);\n\t/**\n\t* Get the value without tracked in the reactivity system.\n\t*\n\t* Alias for `untrackedGet()`\n\t*/\n\tconst peek = () => get(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*\n\t* Alias for `silentSet(v)`\n\t*/\n\tconst lay = (v) => set(v, false);\n\treturn extendRef(ref, {\n\t\tget,\n\t\tset,\n\t\tuntrackedGet,\n\t\tsilentSet,\n\t\tpeek,\n\t\tlay\n\t}, { enumerable: true });\n}\n/** @deprecated use `refWithControl` instead */\nconst controlledRef = refWithControl;\n//#endregion\n//#region set/index.ts\n/**\n* Shorthand for `ref.value = x`\n*/\nfunction set(...args) {\n\tif (args.length === 2) {\n\t\tconst [ref, value] = args;\n\t\tref.value = value;\n\t}\n\tif (args.length === 3) {\n\t\tconst [target, key, value] = args;\n\t\ttarget[key] = value;\n\t}\n}\n//#endregion\n//#region watchWithFilter/index.ts\nfunction watchWithFilter(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter, ...watchOptions } = options;\n\treturn watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n//#endregion\n//#region watchPausable/index.ts\n/** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */\nfunction watchPausable(source, cb, options = {}) {\n\tconst { eventFilter: filter, initialState = \"active\", ...watchOptions } = options;\n\tconst { eventFilter, pause, resume, isActive } = pausableFilter(filter, { initialState });\n\treturn {\n\t\tstop: watchWithFilter(source, cb, {\n\t\t\t...watchOptions,\n\t\t\teventFilter\n\t\t}),\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n/** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */\nconst pausableWatch = watchPausable;\n//#endregion\n//#region syncRef/index.ts\n/**\n* Two-way refs synchronization.\n* From the set theory perspective to restrict the option's type\n* Check in the following order:\n* 1. L = R\n* 2. L ∩ R ≠ ∅\n* 3. L ⊆ R\n* 4. L ∩ R = ∅\n*/\nfunction syncRef(left, right, ...[options]) {\n\tconst { flush = \"sync\", deep = false, immediate = true, direction = \"both\", transform = {} } = options || {};\n\tconst watchers = [];\n\tconst transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n\tconst transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n\tif (direction === \"both\" || direction === \"ltr\") watchers.push(watchPausable(left, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tright.value = transformLTR(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tif (direction === \"both\" || direction === \"rtl\") watchers.push(watchPausable(right, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tleft.value = transformRTL(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tconst stop = () => {\n\t\twatchers.forEach((w) => w.stop());\n\t};\n\treturn stop;\n}\n//#endregion\n//#region syncRefs/index.ts\n/**\n* Keep target ref(s) in sync with the source ref\n*\n* @param source source ref\n* @param targets\n*/\nfunction syncRefs(source, targets, options = {}) {\n\tconst { flush = \"sync\", deep = false, immediate = true } = options;\n\tconst targetsArray = toArray(targets);\n\treturn watch(source, (newValue) => targetsArray.forEach((target) => target.value = newValue), {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t});\n}\n//#endregion\n//#region toRefs/index.ts\n/**\n* Extended `toRefs` that also accepts refs of an object.\n*\n* @see https://vueuse.org/toRefs\n* @param objectRef A ref or normal object or array.\n* @param options Options\n*/\nfunction toRefs(objectRef, options = {}) {\n\tif (!isRef(objectRef)) return toRefs$1(objectRef);\n\tconst result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n\tfor (const key in objectRef.value) result[key] = customRef(() => ({\n\t\tget() {\n\t\t\treturn objectRef.value[key];\n\t\t},\n\t\tset(v) {\n\t\t\tvar _toValue;\n\t\t\tif ((_toValue = toValue(options.replaceRef)) !== null && _toValue !== void 0 ? _toValue : true) if (Array.isArray(objectRef.value)) {\n\t\t\t\tconst copy = [...objectRef.value];\n\t\t\t\tcopy[key] = v;\n\t\t\t\tobjectRef.value = copy;\n\t\t\t} else {\n\t\t\t\tconst newObject = {\n\t\t\t\t\t...objectRef.value,\n\t\t\t\t\t[key]: v\n\t\t\t\t};\n\t\t\t\tObject.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n\t\t\t\tobjectRef.value = newObject;\n\t\t\t}\n\t\t\telse objectRef.value[key] = v;\n\t\t}\n\t}));\n\treturn result;\n}\n//#endregion\n//#region tryOnBeforeMount/index.ts\n/**\n* Call onBeforeMount() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnBeforeMount(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onBeforeMount(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n//#endregion\n//#region tryOnBeforeUnmount/index.ts\n/**\n* Call onBeforeUnmount() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnBeforeUnmount(fn, target) {\n\tif (getLifeCycleTarget(target)) onBeforeUnmount(fn, target);\n}\n//#endregion\n//#region tryOnMounted/index.ts\n/**\n* Call onMounted() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnMounted(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onMounted(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n//#endregion\n//#region tryOnUnmounted/index.ts\n/**\n* Call onUnmounted() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnUnmounted(fn, target) {\n\tif (getLifeCycleTarget(target)) onUnmounted(fn, target);\n}\n//#endregion\n//#region until/index.ts\nfunction createUntil(r, isNot = false) {\n\tfunction toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch(r, (v) => {\n\t\t\t\tif (condition(v) !== isNot) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop === null || stop === void 0 ? void 0 : stop()));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBe(value, options) {\n\t\tif (!isRef(value)) return toMatch((v) => v === value, options);\n\t\tconst { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options !== null && options !== void 0 ? options : {};\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch([r, value], ([v1, v2]) => {\n\t\t\t\tif (isNot !== (v1 === v2)) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v1);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n\t\t\tstop === null || stop === void 0 || stop();\n\t\t\treturn toValue(r);\n\t\t}));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBeTruthy(options) {\n\t\treturn toMatch((v) => Boolean(v), options);\n\t}\n\tfunction toBeNull(options) {\n\t\treturn toBe(null, options);\n\t}\n\tfunction toBeUndefined(options) {\n\t\treturn toBe(void 0, options);\n\t}\n\tfunction toBeNaN(options) {\n\t\treturn toMatch(Number.isNaN, options);\n\t}\n\tfunction toContains(value, options) {\n\t\treturn toMatch((v) => {\n\t\t\tconst array = Array.from(v);\n\t\t\treturn array.includes(value) || array.includes(toValue(value));\n\t\t}, options);\n\t}\n\tfunction changed(options) {\n\t\treturn changedTimes(1, options);\n\t}\n\tfunction changedTimes(n = 1, options) {\n\t\tlet count = -1;\n\t\treturn toMatch(() => {\n\t\t\tcount += 1;\n\t\t\treturn count >= n;\n\t\t}, options);\n\t}\n\tif (Array.isArray(toValue(r))) return {\n\t\ttoMatch,\n\t\ttoContains,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n\telse return {\n\t\ttoMatch,\n\t\ttoBe,\n\t\ttoBeTruthy,\n\t\ttoBeNull,\n\t\ttoBeNaN,\n\t\ttoBeUndefined,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n}\nfunction until(r) {\n\treturn createUntil(r);\n}\n//#endregion\n//#region useArrayDifference/index.ts\nfunction defaultComparator(value, othVal) {\n\treturn value === othVal;\n}\n/**\n* Reactive get array difference of two array\n* @see https://vueuse.org/useArrayDifference\n* @returns - the difference of two array\n* @param args\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayDifference(...args) {\n\tvar _args$, _args$2;\n\tconst list = args[0];\n\tconst values = args[1];\n\tlet compareFn = (_args$ = args[2]) !== null && _args$ !== void 0 ? _args$ : defaultComparator;\n\tconst { symmetric = false } = (_args$2 = args[3]) !== null && _args$2 !== void 0 ? _args$2 : {};\n\tif (typeof compareFn === \"string\") {\n\t\tconst key = compareFn;\n\t\tcompareFn = (value, othVal) => value[key] === othVal[key];\n\t}\n\tconst diff1 = computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n\tif (symmetric) {\n\t\tconst diff2 = computed(() => toValue(values).filter((x) => toValue(list).findIndex((y) => compareFn(x, y)) === -1));\n\t\treturn computed(() => symmetric ? [...toValue(diff1), ...toValue(diff2)] : toValue(diff1));\n\t} else return diff1;\n}\n//#endregion\n//#region useArrayEvery/index.ts\n/**\n* Reactive `Array.every`\n*\n* @see https://vueuse.org/useArrayEvery\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for every element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayEvery(list, fn) {\n\treturn computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayFilter/index.ts\n/**\n* Reactive `Array.filter`\n*\n* @see https://vueuse.org/useArrayFilter\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a shallow copy of a portion of the given array, filtered down to just the elements from the given array that pass the test implemented by the provided function. If no elements pass the test, an empty array will be returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFilter(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n//#endregion\n//#region useArrayFind/index.ts\n/**\n* Reactive `Array.find`\n*\n* @see https://vueuse.org/useArrayFind\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the first element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFind(list, fn) {\n\treturn computed(() => toValue(toValue(list).find((element, index, array) => fn(toValue(element), index, array))));\n}\n//#endregion\n//#region useArrayFindIndex/index.ts\n/**\n* Reactive `Array.findIndex`\n*\n* @see https://vueuse.org/useArrayFindIndex\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the index of the first element in the array that passes the test. Otherwise, \"-1\".\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindIndex(list, fn) {\n\treturn computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayFindLast/index.ts\nfunction findLast(arr, cb) {\n\tlet index = arr.length;\n\twhile (index-- > 0) if (cb(arr[index], index, arr)) return arr[index];\n}\n/**\n* Reactive `Array.findLast`\n*\n* @see https://vueuse.org/useArrayFindLast\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the last element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindLast(list, fn) {\n\treturn computed(() => toValue(!Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))));\n}\n//#endregion\n//#region useArrayIncludes/index.ts\nfunction isArrayIncludesOptions(obj) {\n\treturn isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\n/**\n* Reactive `Array.includes`\n*\n* @see https://vueuse.org/useArrayIncludes\n*\n* @returns true if the `value` is found in the array. Otherwise, false.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayIncludes(...args) {\n\tvar _comparator;\n\tconst list = args[0];\n\tconst value = args[1];\n\tlet comparator = args[2];\n\tlet formIndex = 0;\n\tif (isArrayIncludesOptions(comparator)) {\n\t\tvar _comparator$fromIndex;\n\t\tformIndex = (_comparator$fromIndex = comparator.fromIndex) !== null && _comparator$fromIndex !== void 0 ? _comparator$fromIndex : 0;\n\t\tcomparator = comparator.comparator;\n\t}\n\tif (typeof comparator === \"string\") {\n\t\tconst key = comparator;\n\t\tcomparator = (element, value) => element[key] === toValue(value);\n\t}\n\tcomparator = (_comparator = comparator) !== null && _comparator !== void 0 ? _comparator : ((element, value) => element === toValue(value));\n\treturn computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))));\n}\n//#endregion\n//#region useArrayJoin/index.ts\n/**\n* Reactive `Array.join`\n*\n* @see https://vueuse.org/useArrayJoin\n* @param list - the array was called upon.\n* @param separator - a string to separate each pair of adjacent elements of the array. If omitted, the array elements are separated with a comma (\",\").\n*\n* @returns a string with all array elements joined. If arr.length is 0, the empty string is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayJoin(list, separator) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n//#endregion\n//#region useArrayMap/index.ts\n/**\n* Reactive `Array.map`\n*\n* @see https://vueuse.org/useArrayMap\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a new array with each element being the result of the callback function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayMap(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n//#endregion\n//#region useArrayReduce/index.ts\n/**\n* Reactive `Array.reduce`\n*\n* @see https://vueuse.org/useArrayReduce\n* @param list - the array was called upon.\n* @param reducer - a \"reducer\" function.\n* @param args\n*\n* @returns the value that results from running the \"reducer\" callback function to completion over the entire array.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayReduce(list, reducer, ...args) {\n\tconst reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n\treturn computed(() => {\n\t\tconst resolved = toValue(list);\n\t\treturn args.length ? resolved.reduce(reduceCallback, typeof args[0] === \"function\" ? toValue(args[0]()) : toValue(args[0])) : resolved.reduce(reduceCallback);\n\t});\n}\n//#endregion\n//#region useArraySome/index.ts\n/**\n* Reactive `Array.some`\n*\n* @see https://vueuse.org/useArraySome\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for any element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArraySome(list, fn) {\n\treturn computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayUnique/index.ts\nfunction uniq(array) {\n\treturn Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n\treturn array.reduce((acc, v) => {\n\t\tif (!acc.some((x) => fn(v, x, array))) acc.push(v);\n\t\treturn acc;\n\t}, []);\n}\n/**\n* reactive unique array\n* @see https://vueuse.org/useArrayUnique\n* @param list - the array was called upon.\n* @param compareFn\n* @returns A computed ref that returns a unique array of items.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayUnique(list, compareFn) {\n\treturn computed(() => {\n\t\tconst resolvedList = toValue(list).map((element) => toValue(element));\n\t\treturn compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n\t});\n}\n//#endregion\n//#region useCounter/index.ts\n/**\n* Basic counter with utility functions.\n*\n* @see https://vueuse.org/useCounter\n* @param [initialValue]\n* @param options\n*/\nfunction useCounter(initialValue = 0, options = {}) {\n\tlet _initialValue = unref(initialValue);\n\tconst count = shallowRef(initialValue);\n\tconst { max = Number.POSITIVE_INFINITY, min = Number.NEGATIVE_INFINITY } = options;\n\tconst inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n\tconst dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n\tconst get = () => count.value;\n\tconst set = (val) => count.value = Math.max(min, Math.min(max, val));\n\tconst reset = (val = _initialValue) => {\n\t\t_initialValue = val;\n\t\treturn set(val);\n\t};\n\treturn {\n\t\tcount: shallowReadonly(count),\n\t\tinc,\n\t\tdec,\n\t\tget,\n\t\tset,\n\t\treset\n\t};\n}\n//#endregion\n//#region useDateFormat/index.ts\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|z{1,4}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n\tlet m = hours < 12 ? \"AM\" : \"PM\";\n\tif (hasPeriod) m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n\treturn isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n\tconst suffixes = [\n\t\t\"th\",\n\t\t\"st\",\n\t\t\"nd\",\n\t\t\"rd\"\n\t];\n\tconst v = num % 100;\n\treturn num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n\tvar _options$customMeridi;\n\tconst years = date.getFullYear();\n\tconst month = date.getMonth();\n\tconst days = date.getDate();\n\tconst hours = date.getHours();\n\tconst minutes = date.getMinutes();\n\tconst seconds = date.getSeconds();\n\tconst milliseconds = date.getMilliseconds();\n\tconst day = date.getDay();\n\tconst meridiem = (_options$customMeridi = options.customMeridiem) !== null && _options$customMeridi !== void 0 ? _options$customMeridi : defaultMeridiem;\n\tconst stripTimeZone = (dateString) => {\n\t\tvar _dateString$split$;\n\t\treturn (_dateString$split$ = dateString.split(\" \")[1]) !== null && _dateString$split$ !== void 0 ? _dateString$split$ : \"\";\n\t};\n\tconst matches = {\n\t\tYo: () => formatOrdinal(years),\n\t\tYY: () => String(years).slice(-2),\n\t\tYYYY: () => years,\n\t\tM: () => month + 1,\n\t\tMo: () => formatOrdinal(month + 1),\n\t\tMM: () => `${month + 1}`.padStart(2, \"0\"),\n\t\tMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n\t\tMMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n\t\tD: () => String(days),\n\t\tDo: () => formatOrdinal(days),\n\t\tDD: () => `${days}`.padStart(2, \"0\"),\n\t\tH: () => String(hours),\n\t\tHo: () => formatOrdinal(hours),\n\t\tHH: () => `${hours}`.padStart(2, \"0\"),\n\t\th: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n\t\tho: () => formatOrdinal(hours % 12 || 12),\n\t\thh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n\t\tm: () => String(minutes),\n\t\tmo: () => formatOrdinal(minutes),\n\t\tmm: () => `${minutes}`.padStart(2, \"0\"),\n\t\ts: () => String(seconds),\n\t\tso: () => formatOrdinal(seconds),\n\t\tss: () => `${seconds}`.padStart(2, \"0\"),\n\t\tSSS: () => `${milliseconds}`.padStart(3, \"0\"),\n\t\td: () => day,\n\t\tdd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n\t\tddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n\t\tdddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n\t\tA: () => meridiem(hours, minutes),\n\t\tAA: () => meridiem(hours, minutes, false, true),\n\t\ta: () => meridiem(hours, minutes, true),\n\t\taa: () => meridiem(hours, minutes, true, true),\n\t\tz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"longOffset\" }))\n\t};\n\treturn formatStr.replace(REGEX_FORMAT, (match, $1) => {\n\t\tvar _ref, _matches$match;\n\t\treturn (_ref = $1 !== null && $1 !== void 0 ? $1 : (_matches$match = matches[match]) === null || _matches$match === void 0 ? void 0 : _matches$match.call(matches)) !== null && _ref !== void 0 ? _ref : match;\n\t});\n}\nfunction normalizeDate(date) {\n\tif (date === null) return /* @__PURE__ */ new Date(NaN);\n\tif (date === void 0) return /* @__PURE__ */ new Date();\n\tif (date instanceof Date) return new Date(date);\n\tif (typeof date === \"string\" && !/Z$/i.test(date)) {\n\t\tconst d = date.match(REGEX_PARSE);\n\t\tif (d) {\n\t\t\tconst m = d[2] - 1 || 0;\n\t\t\tconst ms = (d[7] || \"0\").substring(0, 3);\n\t\t\treturn new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n\t\t}\n\t}\n\treturn new Date(date);\n}\n/**\n* Get the formatted date according to the string of tokens passed in.\n*\n* @see https://vueuse.org/useDateFormat\n* @param date - The date to format, can either be a `Date` object, a timestamp, or a string\n* @param formatStr - The combination of tokens to format the date\n* @param options - UseDateFormatOptions\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n\treturn computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n//#endregion\n//#region useIntervalFn/index.ts\n/**\n* Wrapper for `setInterval` with controls\n*\n* @see https://vueuse.org/useIntervalFn\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tlet timer = null;\n\tconst isActive = shallowRef(false);\n\tfunction clean() {\n\t\tif (timer) {\n\t\t\tclearInterval(timer);\n\t\t\ttimer = null;\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tclean();\n\t}\n\tfunction resume() {\n\t\tconst intervalValue = toValue(interval);\n\t\tif (intervalValue <= 0) return;\n\t\tisActive.value = true;\n\t\tif (immediateCallback) cb();\n\t\tclean();\n\t\tif (isActive.value) timer = setInterval(cb, intervalValue);\n\t}\n\tif (immediate && isClient) resume();\n\tif (isRef(interval) || typeof interval === \"function\") tryOnScopeDispose(watch(interval, () => {\n\t\tif (isActive.value && isClient) resume();\n\t}));\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n//#endregion\n//#region useInterval/index.ts\nfunction useInterval(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, immediate = true, callback } = options;\n\tconst counter = shallowRef(0);\n\tconst update = () => counter.value += 1;\n\tconst reset = () => {\n\t\tcounter.value = 0;\n\t};\n\tconst controls = useIntervalFn(callback ? () => {\n\t\tupdate();\n\t\tcallback(counter.value);\n\t} : update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tcounter: shallowReadonly(counter),\n\t\treset,\n\t\t...controls\n\t};\n\telse return shallowReadonly(counter);\n}\n//#endregion\n//#region useLastChanged/index.ts\nfunction useLastChanged(source, options = {}) {\n\tvar _options$initialValue;\n\tconst ms = shallowRef((_options$initialValue = options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : null);\n\twatch(source, () => ms.value = timestamp(), options);\n\treturn shallowReadonly(ms);\n}\n//#endregion\n//#region useTimeoutFn/index.ts\n/**\n* Wrapper for `setTimeout` with controls.\n*\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useTimeoutFn(cb, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tfunction clear() {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t}\n\tfunction stop() {\n\t\tisPending.value = false;\n\t\tclear();\n\t}\n\tfunction start(...args) {\n\t\tif (immediateCallback) cb();\n\t\tclear();\n\t\tisPending.value = true;\n\t\ttimer = setTimeout(() => {\n\t\t\tisPending.value = false;\n\t\t\ttimer = void 0;\n\t\t\tcb(...args);\n\t\t}, toValue(interval));\n\t}\n\tif (immediate) {\n\t\tisPending.value = true;\n\t\tif (isClient) start();\n\t}\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisPending: shallowReadonly(isPending),\n\t\tstart,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useTimeout/index.ts\nfunction useTimeout(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, callback } = options;\n\tconst controls = useTimeoutFn(callback !== null && callback !== void 0 ? callback : noop, interval, options);\n\tconst ready = computed(() => !controls.isPending.value);\n\tif (exposeControls) return {\n\t\tready,\n\t\t...controls\n\t};\n\telse return ready;\n}\n//#endregion\n//#region useToNumber/index.ts\n/**\n* Reactively convert a string ref to number.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToNumber(value, options = {}) {\n\tconst { method = \"parseFloat\", radix, nanToZero } = options;\n\treturn computed(() => {\n\t\tlet resolved = toValue(value);\n\t\tif (typeof method === \"function\") resolved = method(resolved);\n\t\telse if (typeof resolved === \"string\") resolved = Number[method](resolved, radix);\n\t\tif (nanToZero && Number.isNaN(resolved)) resolved = 0;\n\t\treturn resolved;\n\t});\n}\n//#endregion\n//#region useToString/index.ts\n/**\n* Reactively convert a ref to string.\n*\n* @see https://vueuse.org/useToString\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToString(value) {\n\treturn computed(() => `${toValue(value)}`);\n}\n//#endregion\n//#region useToggle/index.ts\n/**\n* A boolean ref with a toggler\n*\n* @see https://vueuse.org/useToggle\n* @param [initialValue]\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToggle(initialValue = false, options = {}) {\n\tconst { truthyValue = true, falsyValue = false } = options;\n\tconst valueIsRef = isRef(initialValue);\n\tconst _value = shallowRef(initialValue);\n\tfunction toggle(value) {\n\t\tif (arguments.length) {\n\t\t\t_value.value = value;\n\t\t\treturn _value.value;\n\t\t} else {\n\t\t\tconst truthy = toValue(truthyValue);\n\t\t\t_value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n\t\t\treturn _value.value;\n\t\t}\n\t}\n\tif (valueIsRef) return toggle;\n\telse return [_value, toggle];\n}\n//#endregion\n//#region watchArray/index.ts\n/**\n* Watch for an array with additions and removals.\n*\n* @see https://vueuse.org/watchArray\n*/\nfunction watchArray(source, cb, options) {\n\tlet oldList = (options === null || options === void 0 ? void 0 : options.immediate) ? [] : [...typeof source === \"function\" ? source() : Array.isArray(source) ? source : toValue(source)];\n\treturn watch(source, (newList, _, onCleanup) => {\n\t\tconst oldListRemains = Array.from({ length: oldList.length });\n\t\tconst added = [];\n\t\tfor (const obj of newList) {\n\t\t\tlet found = false;\n\t\t\tfor (let i = 0; i < oldList.length; i++) if (!oldListRemains[i] && obj === oldList[i]) {\n\t\t\t\toldListRemains[i] = true;\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!found) added.push(obj);\n\t\t}\n\t\tconst removed = oldList.filter((_, i) => !oldListRemains[i]);\n\t\tcb(newList, oldList, added, removed, onCleanup);\n\t\toldList = [...newList];\n\t}, options);\n}\n//#endregion\n//#region watchAtMost/index.ts\nfunction watchAtMost(source, cb, options) {\n\tconst { count, ...watchOptions } = options;\n\tconst current = shallowRef(0);\n\tconst { stop, resume, pause } = watchWithFilter(source, (...args) => {\n\t\tcurrent.value += 1;\n\t\tif (current.value >= toValue(count)) nextTick(() => stop());\n\t\tcb(...args);\n\t}, watchOptions);\n\treturn {\n\t\tcount: current,\n\t\tstop,\n\t\tresume,\n\t\tpause\n\t};\n}\n//#endregion\n//#region watchDebounced/index.ts\nfunction watchDebounced(source, cb, options = {}) {\n\tconst { debounce = 0, maxWait = void 0, ...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: debounceFilter(debounce, { maxWait })\n\t});\n}\n/** @deprecated use `watchDebounced` instead */\nconst debouncedWatch = watchDebounced;\n//#endregion\n//#region watchDeep/index.ts\n/**\n* Shorthand for watching value with {deep: true}\n*\n* @see https://vueuse.org/watchDeep\n*/\nfunction watchDeep(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tdeep: true\n\t});\n}\n//#endregion\n//#region watchIgnorable/index.ts\nfunction watchIgnorable(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter, ...watchOptions } = options;\n\tconst filteredCb = createFilterWrapper(eventFilter, cb);\n\tlet ignoreUpdates;\n\tlet ignorePrevAsyncUpdates;\n\tlet stop;\n\tif (watchOptions.flush === \"sync\") {\n\t\tlet ignore = false;\n\t\tignorePrevAsyncUpdates = () => {};\n\t\tignoreUpdates = (updater) => {\n\t\t\tignore = true;\n\t\t\tupdater();\n\t\t\tignore = false;\n\t\t};\n\t\tstop = watch(source, (...args) => {\n\t\t\tif (!ignore) filteredCb(...args);\n\t\t}, watchOptions);\n\t} else {\n\t\tconst disposables = [];\n\t\tlet ignoreCounter = 0;\n\t\tlet syncCounter = 0;\n\t\tignorePrevAsyncUpdates = () => {\n\t\t\tignoreCounter = syncCounter;\n\t\t};\n\t\tdisposables.push(watch(source, () => {\n\t\t\tsyncCounter++;\n\t\t}, {\n\t\t\t...watchOptions,\n\t\t\tflush: \"sync\"\n\t\t}));\n\t\tignoreUpdates = (updater) => {\n\t\t\tconst syncCounterPrev = syncCounter;\n\t\t\tupdater();\n\t\t\tignoreCounter += syncCounter - syncCounterPrev;\n\t\t};\n\t\tdisposables.push(watch(source, (...args) => {\n\t\t\tconst ignore = ignoreCounter > 0 && ignoreCounter === syncCounter;\n\t\t\tignoreCounter = 0;\n\t\t\tsyncCounter = 0;\n\t\t\tif (ignore) return;\n\t\t\tfilteredCb(...args);\n\t\t}, watchOptions));\n\t\tstop = () => {\n\t\t\tdisposables.forEach((fn) => fn());\n\t\t};\n\t}\n\treturn {\n\t\tstop,\n\t\tignoreUpdates,\n\t\tignorePrevAsyncUpdates\n\t};\n}\n/** @deprecated use `watchIgnorable` instead */\nconst ignorableWatch = watchIgnorable;\n//#endregion\n//#region watchImmediate/index.ts\n/**\n* Shorthand for watching value with {immediate: true}\n*\n* @see https://vueuse.org/watchImmediate\n*/\nfunction watchImmediate(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\timmediate: true\n\t});\n}\n//#endregion\n//#region watchOnce/index.ts\n/**\n* Shorthand for watching value with { once: true }\n*\n* @see https://vueuse.org/watchOnce\n*/\nfunction watchOnce(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tonce: true\n\t});\n}\n//#endregion\n//#region watchThrottled/index.ts\nfunction watchThrottled(source, cb, options = {}) {\n\tconst { throttle = 0, trailing = true, leading = true, ...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: throttleFilter(throttle, trailing, leading)\n\t});\n}\n/** @deprecated use `watchThrottled` instead */\nconst throttledWatch = watchThrottled;\n//#endregion\n//#region watchTriggerable/index.ts\nfunction watchTriggerable(source, cb, options = {}) {\n\tlet cleanupFn;\n\tfunction onEffect() {\n\t\tif (!cleanupFn) return;\n\t\tconst fn = cleanupFn;\n\t\tcleanupFn = void 0;\n\t\tfn();\n\t}\n\t/** Register the function `cleanupFn` */\n\tfunction onCleanup(callback) {\n\t\tcleanupFn = callback;\n\t}\n\tconst _cb = (value, oldValue) => {\n\t\tonEffect();\n\t\treturn cb(value, oldValue, onCleanup);\n\t};\n\tconst res = watchIgnorable(source, _cb, options);\n\tconst { ignoreUpdates } = res;\n\tconst trigger = () => {\n\t\tlet res;\n\t\tignoreUpdates(() => {\n\t\t\tres = _cb(getWatchSources(source), getOldValue(source));\n\t\t});\n\t\treturn res;\n\t};\n\treturn {\n\t\t...res,\n\t\ttrigger\n\t};\n}\nfunction getWatchSources(sources) {\n\tif (isReactive(sources)) return sources;\n\tif (Array.isArray(sources)) return sources.map((item) => toValue(item));\n\treturn toValue(sources);\n}\nfunction getOldValue(source) {\n\treturn Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n//#endregion\n//#region whenever/index.ts\nfunction whenever(source, cb, options) {\n\tconst stop = watch(source, (v, ov, onInvalidate) => {\n\t\tif (v) {\n\t\t\tif (options === null || options === void 0 ? void 0 : options.once) nextTick(() => stop());\n\t\t\tcb(v, ov, onInvalidate);\n\t\t}\n\t}, {\n\t\t...options,\n\t\tonce: false\n\t});\n\treturn stop;\n}\n//#endregion\nexport { assert, autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, controlledComputed, controlledRef, createDisposableDirective, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, createReactiveFn, createRef, createSharedComposable, createSingletonPromise, debounceFilter, debouncedRef, debouncedWatch, eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refManualReset, refThrottled, refWithControl, set, syncRef, syncRefs, throttleFilter, throttledRef, throttledWatch, timestamp, toArray, toReactive, toRef, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","var mdiAlert = \"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\";\nvar mdiAlertCircleOutline = \"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\";\nvar mdiAlertDecagram = \"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z\";\nvar mdiArrowLeft = \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\";\nvar mdiArrowRight = \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\";\nvar mdiArrowTopRight = \"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z\";\nvar mdiCalendarBlank = \"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\";\nvar mdiCheck = \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\";\nvar mdiCheckboxBlankOutline = \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\";\nvar mdiCheckboxMarked = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nvar mdiCheckboxMarkedCircle = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiChevronDown = \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\";\nvar mdiChevronLeft = \"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\";\nvar mdiChevronRight = \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\";\nvar mdiChevronUp = \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\";\nvar mdiClock = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\";\nvar mdiClose = \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\";\nvar mdiCloseCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z\";\nvar mdiCog = \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\";\nvar mdiCogOutline = \"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\";\nvar mdiContentCopy = \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\";\nvar mdiCreation = \"M19,1L17.74,3.75L15,5L17.74,6.26L19,9L20.25,6.26L23,5L20.25,3.75M9,4L6.5,9.5L1,12L6.5,14.5L9,20L11.5,14.5L17,12L11.5,9.5M19,15L17.74,17.74L15,19L17.74,20.25L19,23L20.25,20.25L23,19L20.25,17.74\";\nvar mdiDotsHorizontal = \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\";\nvar mdiEye = \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\";\nvar mdiEyeOff = \"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\";\nvar mdiInformation = \"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiMenu = \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\";\nvar mdiMenuOpen = \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\";\nvar mdiOpenInNew = \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\";\nvar mdiPause = \"M14,19H18V5H14M6,19H10V5H6V19Z\";\nvar mdiPlay = \"M8,5.14V19.14L19,12.14L8,5.14Z\";\nvar mdiRadioboxBlank = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiRadioboxMarked = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\";\nvar mdiUndo = \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\";\nexport {\n mdiClock as A,\n mdiCalendarBlank as B,\n mdiCog as C,\n mdiCogOutline as D,\n mdiPause as E,\n mdiPlay as F,\n mdiMenuOpen as G,\n mdiMenu as H,\n mdiUndo as a,\n mdiClose as b,\n mdiChevronRight as c,\n mdiCheck as d,\n mdiContentCopy as e,\n mdiRadioboxMarked as f,\n mdiRadioboxBlank as g,\n mdiCheckboxMarked as h,\n mdiCheckboxBlankOutline as i,\n mdiAlertCircleOutline as j,\n mdiAlert as k,\n mdiInformation as l,\n mdiArrowRight as m,\n mdiCheckboxMarkedCircle as n,\n mdiAlertDecagram as o,\n mdiCreation as p,\n mdiEyeOff as q,\n mdiEye as r,\n mdiOpenInNew as s,\n mdiArrowTopRight as t,\n mdiCloseCircleOutline as u,\n mdiArrowLeft as v,\n mdiDotsHorizontal as w,\n mdiChevronUp as x,\n mdiChevronDown as y,\n mdiChevronLeft as z\n};\n//# sourceMappingURL=mdi-CpchYUUV.mjs.map\n","window._nc_vue_element_id = window._nc_vue_element_id ?? 0;\nfunction createElementId() {\n return `nc-vue-${window._nc_vue_element_id++}`;\n}\nexport {\n createElementId as c\n};\n//# sourceMappingURL=createElementId-DhjFt1I9.mjs.map\n","const [majorVersion] = window.OC?.config?.version?.split(\".\") ?? [];\nconst major = Number.parseInt(majorVersion ?? \"34\");\nconst isLegacy = major < 32;\nconst isLegacy34 = major < 34;\nexport {\n isLegacy as a,\n isLegacy34 as i\n};\n//# sourceMappingURL=legacy-BoqDmOCa.mjs.map\n","import '../assets/NcFormBoxItem-CABDVZLe.css';\nimport { defineComponent, useSlots, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, createBlock, resolveDynamicComponent, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { u as useNcFormBox } from \"./useNcFormBox-Djlh582y.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcFormBoxItem\",\n props: {\n tag: {},\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n invertedAccent: { type: Boolean, default: false },\n class: { default: () => void 0 },\n itemClasses: { default: () => void 0 }\n },\n emits: [\"click\"],\n setup(__props) {\n const slots = useSlots();\n const { formBoxItemClass } = useNcFormBox();\n const descriptionId = createElementId();\n const hasDescription = () => !!__props.description || !!slots.description;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n __props.class,\n _ctx.$style.formBoxItem,\n unref(formBoxItemClass),\n {\n [_ctx.$style.formBoxItem_inverted]: __props.invertedAccent && hasDescription(),\n [_ctx.$style.formBoxItem_legacy]: unref(isLegacy)\n }\n ])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.formBoxItem__content)\n }, [\n (openBlock(), createBlock(resolveDynamicComponent(__props.tag), mergeProps({\n class: [_ctx.$style.formBoxItem__element, __props.itemClasses]\n }, _ctx.$attrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", { descriptionId: unref(descriptionId) }, () => [\n createTextVNode(toDisplayString(__props.label || \"⚠️ Label is missing\"), 1)\n ])\n ]),\n _: 3\n }, 16, [\"class\"])),\n hasDescription() ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: unref(descriptionId),\n class: normalizeClass(_ctx.$style.formBoxItem__description)\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ], 10, _hoisted_1)) : createCommentVNode(\"\", true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.formBoxItem__icon)\n }, [\n renderSlot(_ctx.$slots, \"icon\", { descriptionId: unref(descriptionId) }, () => [\n _cache[1] || (_cache[1] = createTextVNode(\" ⚠️ Icon is missing \", -1))\n ])\n ], 2)\n ], 2);\n };\n }\n});\nconst formBoxItem = \"_formBoxItem_Gp-TA\";\nconst formBoxItem__description = \"_formBoxItem__description_UqZJ1\";\nconst formBoxItem_legacy = \"_formBoxItem_legacy_dP9aJ\";\nconst formBoxItem_inverted = \"_formBoxItem_inverted_BU-i-\";\nconst formBoxItem__element = \"_formBoxItem__element_jHCux\";\nconst formBoxItem__content = \"_formBoxItem__content_UKovC\";\nconst formBoxItem__icon = \"_formBoxItem__icon_AvkP3\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_8BFGk\",\n formBoxItem,\n formBoxItem__description,\n formBoxItem_legacy,\n formBoxItem_inverted,\n formBoxItem__element,\n formBoxItem__content,\n formBoxItem__icon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxItem as N\n};\n//# sourceMappingURL=NcFormBoxItem-Cm8aZaVJ.mjs.map\n","import '../assets/NcIconSvgWrapper-N3OwSN9O.css';\nimport { defineComponent, useCssVars, computed, warn, openBlock, createElementBlock, normalizeClass, createElementVNode } from \"vue\";\nimport DOMPurify from \"dompurify\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = {\n key: 0,\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_3 = [\"d\"];\nconst _hoisted_4 = [\"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconSvgWrapper\",\n props: {\n directional: { type: Boolean },\n inline: { type: Boolean },\n svg: { default: \"\" },\n name: { default: void 0 },\n path: { default: \"\" },\n size: { default: 20 }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"fb515064\": iconSize.value\n }));\n const props = __props;\n const iconSize = computed(() => typeof props.size === \"number\" ? `${props.size}px` : props.size);\n const cleanSvg = computed(() => {\n if (!props.svg || props.path) {\n return;\n }\n const svg = DOMPurify.sanitize(props.svg);\n const svgDocument = new DOMParser().parseFromString(svg, \"image/svg+xml\");\n if (svgDocument.querySelector(\"parsererror\")) {\n warn(\"SVG is not valid\");\n return \"\";\n }\n if (svgDocument.documentElement.id) {\n svgDocument.documentElement.removeAttribute(\"id\");\n }\n return svgDocument.documentElement.outerHTML;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n \"aria-hidden\": __props.name ? void 0 : \"true\",\n \"aria-label\": __props.name || void 0,\n class: normalizeClass([\"icon-vue\", {\n \"icon-vue--directional\": __props.directional,\n \"icon-vue--inline\": __props.inline\n }]),\n role: \"img\"\n }, [\n !cleanSvg.value ? (openBlock(), createElementBlock(\"svg\", _hoisted_2, [\n createElementVNode(\"path\", { d: __props.path }, null, 8, _hoisted_3)\n ])) : (openBlock(), createElementBlock(\"span\", {\n key: 1,\n innerHTML: cleanSvg.value\n }, null, 8, _hoisted_4))\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcIconSvgWrapper = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-aaedb1c3\"]]);\nexport {\n NcIconSvgWrapper as N\n};\n//# sourceMappingURL=NcIconSvgWrapper-g8ubWhoz.mjs.map\n","/*!\n* vue-router v5.2.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { createConsoleReporter, defineDiagnostics } from \"nostics\";\nimport { inject } from \"vue\";\n//#region src/utils/index.ts\n/**\n* Identity function that returns the value as is.\n*\n* @param v - the value to return\n*\n* @internal\n*/\nconst identityFn = (v) => v;\n/**\n* Allows differentiating lazy components from functional components and vue-class-component\n* @internal\n*\n* @param component\n*/\nfunction isRouteComponent(component) {\n\treturn typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction isESModule(obj) {\n\treturn obj.__esModule || obj[Symbol.toStringTag] === \"Module\" || obj.default && isRouteComponent(obj.default);\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n\tconst newParams = {};\n\tfor (const key in params) {\n\t\tconst value = params[key];\n\t\tnewParams[key] = isArray(value) ? value.map(fn) : fn(value);\n\t}\n\treturn newParams;\n}\nconst noop = () => {};\n/**\n* Typesafe alternative to Array.isArray\n* https://github.com/microsoft/TypeScript/pull/48228\n*\n* @internal\n*/\nconst isArray = Array.isArray;\nfunction mergeOptions(defaults, partialOptions) {\n\tconst options = {};\n\tfor (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n\treturn options;\n}\n//#endregion\n//#region src/errors.ts\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\n/**\n* Enumeration with all possible types for navigation failures. Can be passed to\n* {@link isNavigationFailure} to check for specific failures.\n*/\nlet NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType) {\n\t/**\n\t* An aborted navigation is a navigation that failed because a navigation\n\t* guard returned `false` or called `next(false)`\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n\t/**\n\t* A cancelled navigation is a navigation that failed because a more recent\n\t* navigation finished started (not necessarily finished).\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n\t/**\n\t* A duplicated navigation is a navigation that failed because it was\n\t* initiated while already being at the exact same location.\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n\treturn NavigationFailureType;\n}({});\nconst ErrorTypeMessages = {\n\t[1]({ location, currentLocation }) {\n\t\treturn `No match for\\n ${JSON.stringify(location)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n\t},\n\t[2]({ from, to }) {\n\t\treturn `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n\t},\n\t[4]({ from, to }) {\n\t\treturn `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n\t},\n\t[8]({ from, to }) {\n\t\treturn `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n\t},\n\t[16]({ from, to: _to }) {\n\t\treturn `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n\t}\n};\n/**\n* Creates a typed NavigationFailure object.\n* @internal\n* @param type - NavigationFailureType\n* @param params - { from, to }\n*/\nfunction createRouterError(type, params) {\n\tif (process.env.NODE_ENV !== \"production\" || false) return assign(new Error(ErrorTypeMessages[type](params)), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n\telse return assign(/* @__PURE__ */ new Error(), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n}\nfunction isNavigationFailure(error, type) {\n\treturn error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));\n}\nconst propertiesToLog = [\n\t\"params\",\n\t\"query\",\n\t\"hash\"\n];\n/**\n* Stringifies a raw location for display in dev warnings.\n*\n* @internal\n*/\nfunction stringifyRoute(to) {\n\tif (!to || typeof to === \"string\") return to;\n\tif (to.path != null) return to.path;\n\tconst location = {};\n\tfor (const key of propertiesToLog) if (key in to) location[key] = to[key];\n\treturn JSON.stringify(location, null, 2);\n}\n//#endregion\n//#region src/diagnostics.ts\n/**\n* Runtime diagnostics catalog for Vue Router.\n*\n* Every entry has a stable `VUE_ROUTER_R####` code, a `why` that states the problem\n* (the diagnosis only, never the remedy) and a `fix` that states the remedy\n* (only, never the diagnosis). They are complementary: the reporter prints\n* both, so neither repeats the other. The diagnosis substrings asserted by the\n* warning tests stay in `why`. All call sites stay behind the existing `__DEV__` (or\n* `process.env.NODE_ENV !== 'production'`) guards and remain bare expression\n* statements so they tree-shake out of production builds.\n*\n* Codes are permanent: never rename or reuse one.\n* - `VUE_ROUTER_R0###` core runtime warnings\n* - `VUE_ROUTER_R1###` experimental data-loaders\n*/\nconst diagnostics = /*#__PURE__*/ defineDiagnostics({\n\treporters: [/*#__PURE__*/ createConsoleReporter()],\n\tcodes: {\n\t\tVUE_ROUTER_R0001: {\n\t\t\twhy: (p) => `Parent route \"${p.name}\" not found when adding child route`,\n\t\t\tfix: \"Add the parent route before its children, or check the parent name for typos.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/dynamic-routing.html#Adding-nested-routes\"\n\t\t},\n\t\tVUE_ROUTER_R0002: {\n\t\t\twhy: (p) => `Cannot remove non-existent route \"${p.name}\"`,\n\t\t\tfix: \"Check the route name; it may already have been removed or was never added.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/dynamic-routing.html#Removing-routes\"\n\t\t},\n\t\tVUE_ROUTER_R0003: {\n\t\t\twhy: (p) => `Location \"${stringifyRoute(p.location)}\" resolved to \"${p.href}\". A resolved location cannot start with multiple slashes.`,\n\t\t\tfix: \"Remove the leading slashes from the location or fix the route configuration.\"\n\t\t},\n\t\tVUE_ROUTER_R0004: {\n\t\t\twhy: (p) => `No match found for location with path \"${stringifyRoute(p.path)}\"`,\n\t\t\tfix: \"Add a route matching this path or check for typos in the location.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/essentials/dynamic-matching.html#Catch-all-404-Not-found-Route\"\n\t\t},\n\t\tVUE_ROUTER_R0005: {\n\t\t\twhy: (p) => `router.resolve() was passed an invalid location. This will fail in production.\\nLocation: ${stringifyRoute(p.rawLocation)}`,\n\t\t\tfix: \"Pass a valid route location: a string path or an object with `path` or `name`.\"\n\t\t},\n\t\tVUE_ROUTER_R0006: {\n\t\t\twhy: (p) => `Path \"${p.path}\" was passed with params but they will be ignored because a \"path\" was passed.`,\n\t\t\tfix: \"Use a named route `{ name, params }` instead of `{ path, params }`.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/essentials/navigation.html#Navigate-to-a-different-location\"\n\t\t},\n\t\tVUE_ROUTER_R0007: {\n\t\t\twhy: (p) => `A \\`hash\\` should always start with the character \"#\" but received \"${p.hash}\".`,\n\t\t\tfix: (p) => `Prepend \"#\" to the hash in your route location: use \"#${p.hash}\".`\n\t\t},\n\t\tVUE_ROUTER_R0008: {\n\t\t\twhy: (p) => `Invalid redirect found:\\n${p.target}\\n when navigating to \"${p.to}\".\\nThis will break in production.`,\n\t\t\tfix: \"A redirect must resolve to a location with a `name` or `path`; return one of those (or a string path) from `redirect`.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/essentials/redirect-and-alias.html#Redirect\"\n\t\t},\n\t\tVUE_ROUTER_R0009: {\n\t\t\twhy: (p) => `Detected a possibly infinite redirection in a navigation guard when going from \"${p.from}\" to \"${p.to}\". Aborting to avoid a Stack Overflow. This might break in production if not fixed.`,\n\t\t\tfix: \"A guard is returning a new location on every call; make that return conditional so it only redirects when actually needed.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/navigation-guards.html#Global-Before-Guards\"\n\t\t},\n\t\tVUE_ROUTER_R0010: {\n\t\t\twhy: \"Uncaught error during route navigation\",\n\t\t\tfix: \"Register an error handler with `router.onError()` to handle navigation errors.\"\n\t\t},\n\t\tVUE_ROUTER_R0011: {\n\t\t\twhy: \"Unexpected error when starting the router:\",\n\t\t\tfix: \"Inspect the actual cause; a navigation guard or async component likely threw during the initial navigation.\"\n\t\t},\n\t\tVUE_ROUTER_R0020: {\n\t\t\twhy: (p) => `No active route record was found when calling \\`${p.fn}()\\`. Maybe you called it inside of App.vue?`,\n\t\t\tfix: \"Call it from a component rendered inside (a page component or one of its children), not from App.vue.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/composition-api.html#Navigation-Guards\"\n\t\t},\n\t\tVUE_ROUTER_R0021: {\n\t\t\twhy: \"No active route record was found when reactivating component with navigation guard. This is likely a bug in vue-router.\",\n\t\t\tfix: \"Report with a minimal reproduction at https://github.com/vuejs/router/issues/new/choose.\"\n\t\t},\n\t\tVUE_ROUTER_R0022: {\n\t\t\twhy: (p) => `${p.fn}() was called outside of component setup but it must be called at the top of a setup function`,\n\t\t\tfix: \"Call it synchronously at the top of `setup()`, before any `await`.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/composition-api.html#Navigation-Guards\"\n\t\t},\n\t\tVUE_ROUTER_R0023: {\n\t\t\twhy: (p) => `The \"next\" callback was never called inside of ${p.name ? `\"${p.name}\"` : \"\"}:\\n${p.guard}`,\n\t\t\tfix: \"Make sure `next()` runs on every branch, including early returns and async paths, or drop the `next` parameter and return the value instead.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/navigation-guards.html#Optional-third-argument-next\"\n\t\t},\n\t\tVUE_ROUTER_R0024: {\n\t\t\twhy: (p) => `The \"next\" callback was called more than once in one navigation guard when going from \"${p.from}\" to \"${p.to}\". This will fail in production.`,\n\t\t\tfix: \"Call `next()` exactly once per guard: remove the extra call, or migrate to returning the value you passed to `next()`.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/navigation-guards.html#Optional-third-argument-next\"\n\t\t},\n\t\tVUE_ROUTER_R0025: {\n\t\t\twhy: \"The `next()` callback in navigation guards is deprecated.\",\n\t\t\tfix: \"Return the value instead: `next()` becomes `return`, `next(false)` becomes `return false`, `next(\\\"/path\\\")` becomes `return \\\"/path\\\"`.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/navigation-guards.html#Optional-third-argument-next\"\n\t\t},\n\t\tVUE_ROUTER_R0026: {\n\t\t\twhy: (p) => `Record with path \"${p.path}\" is either missing a \"component(s)\" or \"children\" property.`,\n\t\t\tfix: \"Add a `component`, `components`, or `children` to the route record.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/essentials/nested-routes.html\"\n\t\t},\n\t\tVUE_ROUTER_R0027: {\n\t\t\twhy: (p) => `Component \"${p.name}\" in record with path \"${p.path}\" is not a valid component. Received \"${p.received}\".`,\n\t\t\tfix: \"Pass a component or a function returning a Promise that resolves to one.\"\n\t\t},\n\t\tVUE_ROUTER_R0028: {\n\t\t\twhy: (p) => `Component \"${p.name}\" in record with path \"${p.path}\" is a Promise instead of a function that returns a Promise. This will break in production if not fixed.`,\n\t\t\tfix: `Defer the import in an arrow function so it loads lazily: write \"() => import('./MyPage.vue')\", not \"import('./MyPage.vue')\".`,\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/lazy-loading.html\"\n\t\t},\n\t\tVUE_ROUTER_R0029: {\n\t\t\twhy: (p) => `Component \"${p.name}\" in record with path \"${p.path}\" is defined using \"defineAsyncComponent()\".`,\n\t\t\tfix: `Drop the wrapper and pass \"() => import('./MyPage.vue')\" directly; the router handles lazy components itself.`,\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/lazy-loading.html#Relationship-to-async-components\"\n\t\t},\n\t\tVUE_ROUTER_R0030: {\n\t\t\twhy: (p) => `Component \"${p.name}\" in record with path \"${p.path}\" is a function that does not return a Promise. This will break in production if not fixed.`,\n\t\t\tfix: \"Return a dynamic import (`() => import(\\\"./MyPage.vue\\\")`) from the function, or add a `displayName` if it is a functional component.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/lazy-loading.html\"\n\t\t},\n\t\tVUE_ROUTER_R0040: {\n\t\t\twhy: (p) => `Because \"${p.el}\" starts with \"#\", scrollBehavior resolves it as an element id via document.getElementById(\"${p.el.slice(1)}\"), not as a CSS selector. No element has that id, but \"${p.el}\" does match an element with document.querySelector().`,\n\t\t\tfix: (p) => `Resolve the element yourself and return the node: el: document.querySelector('${p.el}').`,\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/scroll-behavior.html\"\n\t\t},\n\t\tVUE_ROUTER_R0041: {\n\t\t\twhy: (p) => `The selector \"${p.el}\" is invalid. See https://mathiasbynens.be/notes/css-escapes or CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape) for the escaping rules.`,\n\t\t\tfix: \"Build an id selector as `#${CSS.escape(id)}` so special characters in the id are escaped.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/scroll-behavior.html\"\n\t\t},\n\t\tVUE_ROUTER_R0042: {\n\t\t\twhy: (p) => `Couldn't find element using selector \"${p.el}\" returned by scrollBehavior.`,\n\t\t\tfix: \"Return a selector that matches an existing element, or guard against missing elements.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/scroll-behavior.html\"\n\t\t},\n\t\tVUE_ROUTER_R0050: {\n\t\t\twhy: (p) => {\n\t\t\t\tlet to;\n\t\t\t\ttry {\n\t\t\t\t\tto = p.to === void 0 ? \"undefined\" : JSON.stringify(p.to);\n\t\t\t\t} catch {\n\t\t\t\t\tto = String(p.to);\n\t\t\t\t}\n\t\t\t\treturn `Invalid value for prop \"to\" in useLink()\\n- to: ${to}`;\n\t\t\t},\n\t\t\tfix: \"Pass a valid route location (a string path or an object) to the \\\"to\\\" prop.\"\n\t\t},\n\t\tVUE_ROUTER_R0060: {\n\t\t\twhy: (p) => ` can no longer be used directly inside <${p.comp}>.`,\n\t\t\tfix: (p) => `Wrap the slot's resolved component with <${p.comp}> instead of nesting in it:\\n\\n\\n <${p.comp}>\\n \\n \\n`,\n\t\t\tdocs: \"https://router.vuejs.org/guide/advanced/router-view-slot.html#KeepAlive-Transition\"\n\t\t},\n\t\tVUE_ROUTER_R0070: {\n\t\t\twhy: (p) => `Cannot resolve a relative location without an absolute path. Trying to resolve \"${p.to}\" from \"${p.from}\".`,\n\t\t\tfix: (p) => `Resolve from an absolute \\`from\\` path that starts with \"/\", e.g. \"/${p.from}\".`\n\t\t},\n\t\tVUE_ROUTER_R0080: {\n\t\t\twhy: (p) => `Error decoding \"${p.text}\". Using original value`,\n\t\t\tfix: \"Ensure the value is correctly percent-encoded.\"\n\t\t},\n\t\tVUE_ROUTER_R0090: {\n\t\t\twhy: (p) => `Found duplicated params with name \"${p.name}\" for path \"${p.path}\". Only the last one will be available on \"$route.params\".`,\n\t\t\tfix: \"Give each param a unique name within the path.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/essentials/route-matching-syntax.html\"\n\t\t},\n\t\tVUE_ROUTER_R0100: {\n\t\t\twhy: (p) => `Discarded invalid param(s) \"${p.params}\" when navigating.` + p.inherited + ` See https://github.com/vuejs/router/commit/e887570 for more details.`,\n\t\t\tfix: \"Only pass params that exist on the target route.\"\n\t\t},\n\t\tVUE_ROUTER_R0101: {\n\t\t\twhy: (p) => `The Matcher cannot resolve relative paths but received \"${p.path}\". Unless you directly called \\`matcher.resolve(\"${p.path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`,\n\t\t\tfix: \"Pass an absolute path (starting with \\\"/\\\") to the matcher.\"\n\t\t},\n\t\tVUE_ROUTER_R0102: {\n\t\t\twhy: (p) => `Alias \"${p.alias}\" and the original record: \"${p.original}\" must have the exact same param named \"${p.name}\"`,\n\t\t\tfix: \"Use the same param names in the alias as in the original route.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/essentials/redirect-and-alias.html#Alias\"\n\t\t},\n\t\tVUE_ROUTER_R0103: {\n\t\t\twhy: (p) => `The route named \"${p.name}\" has a child without a name, an empty path, and no children. Using that name won't render the empty path child, so this is probably a mistake.`,\n\t\t\tfix: \"Move the `name` onto the empty-path child; or, if intentional, give the child its own name to silence this.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/essentials/nested-routes.html#Nested-Named-Routes\"\n\t\t},\n\t\tVUE_ROUTER_R0104: {\n\t\t\twhy: (p) => `Absolute path \"${p.path}\" must have the exact same param named \"${p.name}\" as its parent \"${p.parent}\".`,\n\t\t\tfix: \"Include the parent route params in the absolute child path.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/essentials/nested-routes.html\"\n\t\t},\n\t\tVUE_ROUTER_R0105: {\n\t\t\twhy: (p) => `Finding ancestor route \"${p.ancestor}\" failed for \"${p.record}\"`,\n\t\t\tfix: \"Report a reproduction at https://github.com/vuejs/router/issues/new/choose.\"\n\t\t},\n\t\tVUE_ROUTER_R0110: {\n\t\t\twhy: `A hash base must end with a \"#\"`,\n\t\t\tfix: (p) => `Append \"#\" to the \"base\" argument passed to \"createWebHashHistory()\": \"${p.base}\" should be \"${p.suggestion}\".`\n\t\t},\n\t\tVUE_ROUTER_R0120: {\n\t\t\twhy: \"Error with push/replace State\",\n\t\t\tfix: \"The browser rejected the history API call; check for cross-origin or rate-limit issues.\"\n\t\t},\n\t\tVUE_ROUTER_R0121: {\n\t\t\twhy: \"history.state seems to have been manually replaced without preserving the necessary values.\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\",\n\t\t\tfix: \"Merge the router's state into your own when calling it manually: `history.replaceState({ ...history.state, ...yourState }, '', url)`.\",\n\t\t\tdocs: \"https://router.vuejs.org/guide/migration.html#Usage-of-history-state\"\n\t\t},\n\t\tVUE_ROUTER_R1001: {\n\t\t\twhy: (p) => `Data loader \"${String(p.key)}\" has a different parent than the current context. This shouldn't be happening.`,\n\t\t\tfix: \"Report a bug with a minimal reproduction at https://github.com/vuejs/router/.\"\n\t\t},\n\t\tVUE_ROUTER_R1002: {\n\t\t\twhy: \"Returning a NavigationResult is deprecated.\",\n\t\t\tfix: \"Replace `return new NavigationResult(to)` with `reroute(to)`, which throws internally to reroute.\",\n\t\t\tdocs: \"https://router.vuejs.org/data-loaders/navigation-aware.html#Controlling-the-navigation-with-reroute-\"\n\t\t},\n\t\tVUE_ROUTER_R1003: {\n\t\t\twhy: (p) => `Loader \"${p.key}\"'s \"commit()\" was called but there is no staged data.`,\n\t\t\tfix: \"Ensure the loader resolved before calling `commit()`.\",\n\t\t\tdocs: \"https://router.vuejs.org/data-loaders/defining-loaders.html#Delaying-data-updates-with-commit\"\n\t\t},\n\t\tVUE_ROUTER_R1004: {\n\t\t\twhy: (p) => \"A loader returned a NavigationResult but is not registered on the route.\" + p.key,\n\t\t\tfix: \"Export the loader from the page component so it gets registered, e.g. `export const useUserData = defineLoader(...)`.\",\n\t\t\tdocs: \"https://router.vuejs.org/data-loaders/organization.html\"\n\t\t},\n\t\tVUE_ROUTER_R1005: {\n\t\t\twhy: (p) => `Data loader \"${p.key}\" has itself as parent. This shouldn't be happening.`,\n\t\t\tfix: \"Report a bug with a minimal reproduction at https://github.com/vuejs/router/.\"\n\t\t},\n\t\tVUE_ROUTER_R1006: {\n\t\t\twhy: (p) => `A query was defined with the same key as the loader \"[${p.key}]\".\\nSee https://pinia-colada.esm.dev/#TODO`,\n\t\t\tfix: \"If the key is meant to match, use the data loader directly; otherwise rename the `useQuery()` key so it no longer collides.\",\n\t\t\tdocs: \"https://router.vuejs.org/data-loaders/colada.html\"\n\t\t},\n\t\tVUE_ROUTER_R1007: {\n\t\t\twhy: \"Data Loader was setup twice.\",\n\t\t\tfix: \"Register `DataLoaderPlugin` a single time via `app.use()`.\",\n\t\t\tdocs: \"https://router.vuejs.org/data-loaders.html#Installation\"\n\t\t},\n\t\tVUE_ROUTER_R1008: {\n\t\t\twhy: \"Data Loader is experimental and subject to breaking changes in the future.\",\n\t\t\tdocs: \"https://router.vuejs.org/data-loaders.html\"\n\t\t},\n\t\tVUE_ROUTER_R1009: {\n\t\t\twhy: \"Returning a NavigationResult from a loader is deprecated.\",\n\t\t\tfix: \"Call `reroute(to)` inside the loader instead of returning `new NavigationResult(to)`; it throws internally to reroute.\",\n\t\t\tdocs: \"https://router.vuejs.org/data-loaders/navigation-aware.html#Controlling-the-navigation-with-reroute-\"\n\t\t}\n\t}\n});\n//#endregion\n//#region src/injectionSymbols.ts\n/**\n* RouteRecord being rendered by the closest ancestor Router View. Used for\n* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n* Location Matched\n*\n* @internal\n*/\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\n/**\n* Allows overriding the router view depth to control which component in\n* `matched` is rendered. rvd stands for Router View Depth\n*\n* @internal\n*/\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\n/**\n* Allows overriding the router instance returned by `useRouter` in tests. r\n* stands for router\n*\n* @internal\n*/\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\n/**\n* Allows overriding the current route returned by `useRoute` in tests. rl\n* stands for route location\n*\n* @internal\n*/\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\n/**\n* Allows overriding the current route used by router-view. Internally this is\n* used when the `route` prop is passed.\n*\n* @internal\n*/\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\n//#endregion\n//#region src/useApi.ts\n/**\n* Returns the router instance. Equivalent to using `$router` inside\n* templates.\n*/\nfunction useRouter() {\n\treturn inject(routerKey);\n}\n/**\n* Returns the current route location. Equivalent to using `$route` inside\n* templates.\n*/\nfunction useRoute(_name) {\n\treturn inject(routeLocationKey);\n}\n//#endregion\nexport { isRouteComponent as _, routerKey as a, diagnostics as c, isNavigationFailure as d, applyToParams as f, isESModule as g, isArray as h, routeLocationKey as i, NavigationFailureType as l, identityFn as m, useRouter as n, routerViewLocationKey as o, assign as p, matchedRouteKey as r, viewDepthKey as s, useRoute as t, createRouterError as u, mergeOptions as v, noop as y };\n","var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","import '../assets/NcFormBoxButton-ClkxmO-H.css';\nimport { reactive, inject, computed, defineComponent, toRef, openBlock, createBlock, mergeProps, unref, createSlots, withCtx, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { s as mdiOpenInNew, t as mdiArrowTopRight } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcFormBoxItem } from \"./NcFormBoxItem-Cm8aZaVJ.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { routerKey } from \"vue-router\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useButtonLink(options) {\n const props = reactive(options);\n const hasVueRouterContext = inject(routerKey, null) !== null;\n const tag = computed(() => {\n if (hasVueRouterContext && props.to) {\n return \"RouterLink\";\n } else if (props.href) {\n return \"a\";\n } else {\n return \"button\";\n }\n });\n const isLink = computed(() => tag.value === \"RouterLink\" || tag.value === \"a\");\n const isHyperLink = computed(() => tag.value === \"a\");\n const isRouterLink = computed(() => tag.value === \"RouterLink\");\n const isButton = computed(() => tag.value === \"button\");\n const attrs = computed(() => {\n if (tag.value === \"RouterLink\") {\n return {\n to: props.to,\n activeClass: \"active\",\n ...props.additionalAttrs?.(\"RouterLink\") ?? {}\n };\n } else if (tag.value === \"a\") {\n return {\n href: props.href,\n target: props.target,\n download: props.download || void 0,\n rel: \"nofollow noreferrer noopener\",\n ...props.additionalAttrs?.(\"a\") ?? {}\n };\n } else if (tag.value === \"button\") {\n return {\n type: props.type || \"button\",\n disabled: props.disabled,\n ...props.additionalAttrs?.(\"button\") ?? {}\n };\n }\n });\n return {\n tag,\n isLink,\n isHyperLink,\n isRouterLink,\n isButton,\n attrs\n };\n}\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxButton\",\n props: {\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n invertedAccent: { type: Boolean, default: false },\n to: { default: () => void 0 },\n href: { default: () => void 0 },\n target: { default: () => void 0 },\n disabled: { type: Boolean, default: false }\n },\n emits: [\"click\"],\n setup(__props) {\n const { tag, attrs, isLink } = useButtonLink({\n to: toRef(() => __props.to),\n href: toRef(() => __props.href),\n target: toRef(() => __props.target),\n disabled: toRef(() => __props.disabled)\n });\n const icon = computed(() => {\n if (isLink.value) {\n return __props.target === \"_blank\" ? mdiOpenInNew : mdiArrowTopRight;\n }\n return void 0;\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxItem, mergeProps({\n tag: unref(tag),\n itemClasses: [\n \"button-vue\",\n /* Reset server's global HTML button styles */\n _ctx.$style.formBoxButton\n ],\n invertedAccent: __props.invertedAccent\n }, unref(attrs), {\n tabindex: \"0\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), createSlots({ _: 2 }, [\n _ctx.$slots.default || __props.label ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots.description || __props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ]),\n key: \"1\"\n } : void 0,\n _ctx.$slots.icon || icon.value ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n icon.value ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: icon.value,\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true)\n ])\n ]),\n key: \"2\"\n } : void 0\n ]), 1040, [\"tag\", \"itemClasses\", \"invertedAccent\"]);\n };\n }\n});\nconst formBoxButton = \"_formBoxButton_E8Xfr\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_MaIxG\",\n formBoxButton\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxButton as N\n};\n//# sourceMappingURL=NcFormBoxButton-G_PkUiQy.mjs.map\n","import { a as getLanguage, e as getPlural, t as translate, d as translatePlural } from \"./chunks/translation-DoG5ZELJ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass GettextWrapper {\n bundle;\n constructor(pluralFunction) {\n this.bundle = {\n pluralFunction,\n translations: {}\n };\n }\n /**\n * Append new translations to the wrapper.\n *\n * This is useful if translations should be added on demand,\n * e.g. depending on component usage.\n *\n * @param bundle - The new translation bundle to append\n */\n addTranslations(bundle) {\n const dict = Object.values(bundle.translations[\"\"] ?? {}).map(({ msgid, msgid_plural: msgidPlural, msgstr }) => {\n if (msgidPlural !== void 0) {\n return [`_${msgid}_::_${msgidPlural}_`, msgstr];\n }\n return [msgid, msgstr[0]];\n });\n this.bundle.translations = {\n ...this.bundle.translations,\n ...Object.fromEntries(dict)\n };\n }\n /**\n * Get translated string (singular form), optionally with placeholders\n *\n * @param original original string to translate\n * @param placeholders map of placeholder key to value\n */\n gettext(original, placeholders = {}) {\n return translate(\"\", original, placeholders, void 0, { bundle: this.bundle });\n }\n /**\n * Get translated string with plural forms\n *\n * @param singular Singular text form\n * @param plural Plural text form to be used if `count` requires it\n * @param count The number to insert into the text\n * @param placeholders optional map of placeholder key to value\n */\n ngettext(singular, plural, count, placeholders = {}) {\n return translatePlural(\"\", singular, plural, count, placeholders, { bundle: this.bundle });\n }\n}\nclass GettextBuilder {\n debug = false;\n language = \"en\";\n translations = {};\n setLanguage(language) {\n this.language = language;\n return this;\n }\n /**\n * Try to detect locale from context with `en` as fallback value\n * This only works within a Nextcloud page context.\n *\n * @deprecated use `detectLanguage` instead.\n */\n detectLocale() {\n return this.detectLanguage();\n }\n /**\n * Try to detect locale from context with `en` as fallback value.\n * This only works within a Nextcloud page context.\n */\n detectLanguage() {\n return this.setLanguage(getLanguage().replace(\"-\", \"_\"));\n }\n /**\n * Register a new translation bundle for a specified language.\n *\n * Please note that existing translations for that language will be overwritten.\n *\n * @param language - Language this is the translation for\n * @param data - The translation bundle\n */\n addTranslation(language, data) {\n this.translations[language] = data;\n return this;\n }\n enableDebugMode() {\n this.debug = true;\n return this;\n }\n build() {\n if (this.debug) {\n console.debug(`Creating gettext instance for language ${this.language}`);\n }\n const wrapper = new GettextWrapper((n) => getPlural(n, this.language));\n if (this.language in this.translations) {\n wrapper.addTranslations(this.translations[this.language]);\n }\n return wrapper;\n }\n}\nfunction getGettextBuilder() {\n return new GettextBuilder();\n}\nexport {\n getGettextBuilder\n};\n//# sourceMappingURL=gettext.mjs.map\n","import { getLanguage } from \"@nextcloud/l10n\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\n/*!\n * SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst gettext = getGettextBuilder().detectLanguage().build();\nconst n = (...args) => gettext.ngettext(...args);\nconst t = (...args) => gettext.gettext(...args);\nfunction register(...chunks) {\n for (const chunk of chunks) {\n if (chunk.registered) {\n continue;\n }\n for (const { l: language, t: translations } of chunk) {\n if (language !== getLanguage() || !translations) {\n continue;\n }\n const decompressed = Object.fromEntries(Object.entries(translations).map(([id, value]) => [\n id,\n {\n msgid: id,\n msgid_plural: value.p,\n msgstr: value.v\n }\n ]));\n gettext.addTranslations({\n translations: {\n \"\": decompressed\n }\n });\n }\n chunk.registered = true;\n }\n}\nconst t0 = [{ \"l\": \"ar\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (غير مرئي)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (مقيد)\"] }, \"Select a tag\": { \"v\": [\"اختر وسم\"] } } }, { \"l\": \"ast\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxóse)\"] }, \"Select a tag\": { \"v\": [\"Seleicionar una etiqueta\"] } } }, { \"l\": \"br\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (diwelus)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (bevennet)\"] }, \"Select a tag\": { \"v\": [\"Choaz ur c'hlav\"] } } }, { \"l\": \"ca\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringit)\"] }, \"Select a tag\": { \"v\": [\"Seleccioneu una etiqueta\"] } } }, { \"l\": \"cs\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditelné)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditelné)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"da\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (usynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (begrænset)\"] }, \"Select a tag\": { \"v\": [\"Vælg et mærke\"] } } }, { \"l\": \"de\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (unsichtbar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (unsichtbar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (αόρατο)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (περιορισμένο)\"] }, \"Select a tag\": { \"v\": [\"Επιλογή ετικέτας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Select a tag\"] } } }, { \"l\": \"eo\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (kaŝita)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limigita)\"] }, \"Select a tag\": { \"v\": [\"Elektu etikedon\"] } } }, { \"l\": \"es\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione una etiqueta\"] } } }, { \"l\": \"es-AR\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Elija una etiqueta\"] } } }, { \"l\": \"es-EC\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"es-MX\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"et-EE\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nähtamatu)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (piiratud)\"] }, \"Select a tag\": { \"v\": [\"Vali silt\"] } } }, { \"l\": \"eu\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ikusezina)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (mugatua)\"] }, \"Select a tag\": { \"v\": [\"Hautatu etiketa bat\"] } } }, { \"l\": \"fa\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} مخفی\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} محدود شده\"] }, \"Select a tag\": { \"v\": [\"انتخاب یک برچسب\"] } } }, { \"l\": \"fi\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (näkymätön)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (rajoitettu)\"] }, \"Select a tag\": { \"v\": [\"Valitse tunniste\"] } } }, { \"l\": \"fr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restreint)\"] }, \"Select a tag\": { \"v\": [\"Sélectionnez une balise\"] } } }, { \"l\": \"ga\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (dofheicthe)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (srianta)\"] }, \"Select a tag\": { \"v\": [\"Roghnaigh clib\"] } } }, { \"l\": \"gl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisíbel)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione unha etiqueta\"] } } }, { \"l\": \"he\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (נסתר)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (מוגבל)\"] }, \"Select a tag\": { \"v\": [\"בחירת תגית\"] } } }, { \"l\": \"hr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nevidljivo)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ograničeno)\"] }, \"Select a tag\": { \"v\": [\"Odaberi oznaku\"] } } }, { \"l\": \"hu\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (láthatatlan)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (korlátozott)\"] }, \"Select a tag\": { \"v\": [\"Válasszon címkét\"] } } }, { \"l\": \"id\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (tidak terlihat)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (dibatasi)\"] }, \"Select a tag\": { \"v\": [\"Pilih tag\"] } } }, { \"l\": \"is\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ósýnilegt)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (takmarkað)\"] }, \"Select a tag\": { \"v\": [\"Veldu merki\"] } } }, { \"l\": \"it\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisibile)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limitato)\"] }, \"Select a tag\": { \"v\": [\"Seleziona un'etichetta\"] } } }, { \"l\": \"ja\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (不可視)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (不可視)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag}(숨김)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag}(제한)\"] }, \"Select a tag\": { \"v\": [\"태그 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ບໍ່ສະແດງ)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ຈຳກັດ)\"] }, \"Select a tag\": { \"v\": [\"ເລືອກແທັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nematoma)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (apribota)\"] }, \"Select a tag\": { \"v\": [\"Pasirinkti žymą\"] } } }, { \"l\": \"lv\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neredzams)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ierobežots)\"] }, \"Select a tag\": { \"v\": [\"Izvēlēties birku\"] } } }, { \"l\": \"mk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидливо)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Избери ознака\"] } } }, { \"l\": \"mn\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (үл харагдах)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (хязгаарлагдмал)\"] }, \"Select a tag\": { \"v\": [\"Шошго сонгох\"] } } }, { \"l\": \"my\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ကွယ်ဝှက်ထား)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ကန့်သတ်)\"] }, \"Select a tag\": { \"v\": [\"tag ရွေးချယ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (usynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (beskyttet)\"] }, \"Select a tag\": { \"v\": [\"Velg en merkelapp\"] } } }, { \"l\": \"nl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (onzichtbaar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (beperkt)\"] }, \"Select a tag\": { \"v\": [\"Selecteer een label\"] } } }, { \"l\": \"oc\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limit)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"pl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (niewidoczna)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ograniczona)\"] }, \"Select a tag\": { \"v\": [\"Wybierz etykietę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisível)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecione uma etiqueta\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisível)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecionar uma etiqueta\"] } } }, { \"l\": \"ro\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invizibil)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricționat)\"] }, \"Select a tag\": { \"v\": [\"Selectați o etichetă\"] } } }, { \"l\": \"ru\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидимое)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограниченное)\"] }, \"Select a tag\": { \"v\": [\"Выберите метку\"] } } }, { \"l\": \"sk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditeľný)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (obmedzený)\"] }, \"Select a tag\": { \"v\": [\"Vybrať štítok\"] } } }, { \"l\": \"sl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nevidno)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omejeno)\"] }, \"Select a tag\": { \"v\": [\"Izbor oznake\"] } } }, { \"l\": \"sr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидљиво)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Изаберите ознаку\"] } } }, { \"l\": \"sv\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (osynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (begränsad)\"] }, \"Select a tag\": { \"v\": [\"Välj en tag\"] } } }, { \"l\": \"tr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (görünmez)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (kısıtlanmış)\"] }, \"Select a tag\": { \"v\": [\"Bir etiket seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидимий)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (обмежений)\"] }, \"Select a tag\": { \"v\": [\"Виберіть позначку\"] } } }, { \"l\": \"uz\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ko'rinmas)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (cheklangan)\"] }, \"Select a tag\": { \"v\": [\"Teg tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (隐藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"选择一个标签\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (隱藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag}(隱藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag}(受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }];\nconst t1 = [{ \"l\": \"ar\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"لون بالقيمة الست عشرية {hex}\"] }, \"Back\": { \"v\": [\"عودة\"] }, \"Choose\": { \"v\": [\"إختَر\"] }, \"Color picker\": { \"v\": [\"لاقط الألوان\"] }, \"More options\": { \"v\": [\"خيارات أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con un valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoyer\"] }, \"Color picker\": { \"v\": [\"Selector de colores\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"br\", \"t\": { \"Choose\": { \"v\": [\"Dibab\"] } } }, { \"l\": \"ca\", \"t\": { \"Choose\": { \"v\": [\"Tria\"] } } }, { \"l\": \"cs\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Barva vyjádřená HEX hodnotou {hex}\"] }, \"Back\": { \"v\": [\"Zpět\"] }, \"Choose\": { \"v\": [\"Zvolit\"] }, \"Color picker\": { \"v\": [\"Výběr barev\"] }, \"More options\": { \"v\": [\"Další volby\"] }, \"No color\": { \"v\": [\"Žádná barva\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Barva vyjádřená HEX hodnotou {hex}\"] }, \"Back\": { \"v\": [\"Zpět\"] }, \"Choose\": { \"v\": [\"Zvolit\"] }, \"Color picker\": { \"v\": [\"Výběr barev\"] }, \"More options\": { \"v\": [\"Další volby\"] } } }, { \"l\": \"da\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En farve med en HEX-værdi {hex}\"] }, \"Back\": { \"v\": [\"Tilbage\"] }, \"Choose\": { \"v\": [\"Vælg\"] }, \"Color picker\": { \"v\": [\"Farvevælger\"] }, \"More options\": { \"v\": [\"Flere muligheder\"] }, \"No color\": { \"v\": [\"Ingen farve\"] } } }, { \"l\": \"de\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Eine Farbe mit einem HEX-Wert {hex}\"] }, \"Back\": { \"v\": [\"Zurück\"] }, \"Choose\": { \"v\": [\"Auswählen\"] }, \"Color picker\": { \"v\": [\"Farbauswahl\"] }, \"More options\": { \"v\": [\"Weitere Optionen\"] }, \"No color\": { \"v\": [\"Keine Farbe\"] } } }, { \"l\": \"de-DE\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Eine Farbe mit einem HEX-Wert {hex}\"] }, \"Back\": { \"v\": [\"Zurück\"] }, \"Choose\": { \"v\": [\"Auswählen\"] }, \"Color picker\": { \"v\": [\"Farbauswahl\"] }, \"More options\": { \"v\": [\"Mehr Optionen\"] }, \"No color\": { \"v\": [\"Keine Farbe\"] } } }, { \"l\": \"el\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Ένα χρώμα με τιμή HEX {hex}\"] }, \"Back\": { \"v\": [\"Επιστροφή\"] }, \"Choose\": { \"v\": [\"Επιλογή\"] }, \"Color picker\": { \"v\": [\"Επιλογέας χρώματος\"] }, \"More options\": { \"v\": [\"Περισσότερες επιλογές\"] }, \"No color\": { \"v\": [\"Χωρίς χρώμα\"] } } }, { \"l\": \"en-GB\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"A colour with a HEX value {hex}\"] }, \"Back\": { \"v\": [\"Back\"] }, \"Choose\": { \"v\": [\"Choose\"] }, \"Color picker\": { \"v\": [\"Colour picker\"] }, \"More options\": { \"v\": [\"More options\"] }, \"No color\": { \"v\": [\"No colour\"] } } }, { \"l\": \"eo\", \"t\": { \"Choose\": { \"v\": [\"Elektu\"] } } }, { \"l\": \"es\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con un valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoger\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Värv kuueteistkümnendarvuna {hex}\"] }, \"Back\": { \"v\": [\"Tagasi\"] }, \"Choose\": { \"v\": [\"Tee valik\"] }, \"Color picker\": { \"v\": [\"Värvivalija\"] }, \"More options\": { \"v\": [\"Rohkem valikuid\"] }, \"No color\": { \"v\": [\"Värv puudub\"] } } }, { \"l\": \"eu\", \"t\": { \"Back\": { \"v\": [\"Atzera\"] }, \"Choose\": { \"v\": [\"Aukeratu\"] }, \"More options\": { \"v\": [\"Aukera gehiago\"] } } }, { \"l\": \"fa\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"رنگی با مقدار مبنای هشت {hex}\"] }, \"Back\": { \"v\": [\"بازگشت\"] }, \"Choose\": { \"v\": [\"انتخاب کنید\"] }, \"Color picker\": { \"v\": [\"انتخاب‌گر رنگ\"] }, \"More options\": { \"v\": [\"گزینه‌های بیشتر\"] } } }, { \"l\": \"fi\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Väri heksa-arvolla {hex}\"] }, \"Back\": { \"v\": [\"Takaisin\"] }, \"Choose\": { \"v\": [\"Valitse\"] }, \"Color picker\": { \"v\": [\"Värivalitsin\"] }, \"More options\": { \"v\": [\"Lisää vaihtoehtoja\"] } } }, { \"l\": \"fr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Une couleur de valeur HEX {hex}\"] }, \"Back\": { \"v\": [\"Retour\"] }, \"Choose\": { \"v\": [\"Choisir\"] }, \"Color picker\": { \"v\": [\"Sélecteur de couleurs\"] }, \"More options\": { \"v\": [\"Plus d'options\"] }, \"No color\": { \"v\": [\"Sans couleur\"] } } }, { \"l\": \"ga\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Dath le luach HEX {hex}\"] }, \"Back\": { \"v\": [\"Ar ais\"] }, \"Choose\": { \"v\": [\"Roghnaigh\"] }, \"Color picker\": { \"v\": [\"Roghnóir dathanna\"] }, \"More options\": { \"v\": [\"Tuilleadh roghanna\"] }, \"No color\": { \"v\": [\"Gan dath\"] } } }, { \"l\": \"gl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Unha cor cun valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoller\"] }, \"Color picker\": { \"v\": [\"Selector de cores\"] }, \"More options\": { \"v\": [\"Máis opcións\"] }, \"No color\": { \"v\": [\"Sen cor\"] } } }, { \"l\": \"he\", \"t\": { \"Back\": { \"v\": [\"חזרה\"] }, \"Choose\": { \"v\": [\"בחירה\"] }, \"More options\": { \"v\": [\"אפשרויות נוספות\"] } } }, { \"l\": \"hr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Boja s HEX vrijednošću {hex}\"] }, \"Back\": { \"v\": [\"Natrag\"] }, \"Choose\": { \"v\": [\"Odaberi\"] }, \"Color picker\": { \"v\": [\"Odabir boje\"] }, \"More options\": { \"v\": [\"Više mogućnosti\"] }, \"No color\": { \"v\": [\"Bez boje\"] } } }, { \"l\": \"hu\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Szín ezzel a HEX értékkel: {hex}\"] }, \"Back\": { \"v\": [\"Vissza\"] }, \"Choose\": { \"v\": [\"Válassszon\"] }, \"Color picker\": { \"v\": [\"Színválasztó\"] }, \"More options\": { \"v\": [\"További lehetőségek\"] }, \"No color\": { \"v\": [\"Nincs szín\"] } } }, { \"l\": \"id\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Warna dengan nilai HEX {hex}\"] }, \"Back\": { \"v\": [\"Kembali\"] }, \"Choose\": { \"v\": [\"Pilih\"] }, \"Color picker\": { \"v\": [\"Pemilih warna\"] }, \"More options\": { \"v\": [\"Opsi lainnya\"] }, \"No color\": { \"v\": [\"Tanpa warna\"] } } }, { \"l\": \"is\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Litur með HEX-gildi {hex}\"] }, \"Back\": { \"v\": [\"Til baka\"] }, \"Choose\": { \"v\": [\"Velja\"] }, \"Color picker\": { \"v\": [\"Litaplokkari\"] }, \"More options\": { \"v\": [\"Fleiri valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un colore con un valore HEX {hex}\"] }, \"Back\": { \"v\": [\"Indietro\"] }, \"Choose\": { \"v\": [\"Scegli\"] }, \"More options\": { \"v\": [\"Altre opzioni\"] } } }, { \"l\": \"ja\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\" HEX値 {hex} を持つ色\"] }, \"Back\": { \"v\": [\"戻る\"] }, \"Choose\": { \"v\": [\"選択\"] }, \"Color picker\": { \"v\": [\"カラーピッカー\"] }, \"More options\": { \"v\": [\"他のオプション\"] }, \"No color\": { \"v\": [\"色なし\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\" HEX値 {hex} を持つ色\"] }, \"Back\": { \"v\": [\"戻る\"] }, \"Choose\": { \"v\": [\"選択\"] }, \"Color picker\": { \"v\": [\"カラーピッカー\"] }, \"More options\": { \"v\": [\"他のオプション\"] } } }, { \"l\": \"ko\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX 값이 {hex}인 색상\"] }, \"Back\": { \"v\": [\"뒤로\"] }, \"Choose\": { \"v\": [\"선택\"] }, \"Color picker\": { \"v\": [\"색상 선택기\"] }, \"More options\": { \"v\": [\"옵션 더 보기\"] }, \"No color\": { \"v\": [\"색 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"ສີທີ່ມີຄ່າ HEX {hex}\"] }, \"Back\": { \"v\": [\"ກັບຄືນ\"] }, \"Choose\": { \"v\": [\"ເລືອກ\"] }, \"Color picker\": { \"v\": [\"ໂຕເລືອກສີ\"] }, \"More options\": { \"v\": [\"ຕົວເລືອກເພີ່ມເຕີມ\"] }, \"No color\": { \"v\": [\"ບໍ່ມີສີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Spalva, kurios HEX reikšmė yra {hex}\"] }, \"Back\": { \"v\": [\"Atgal\"] }, \"Choose\": { \"v\": [\"Pasirinkti\"] }, \"Color picker\": { \"v\": [\"Spalvos parinkiklis\"] }, \"More options\": { \"v\": [\"Daugiau parinkčių\"] }, \"No color\": { \"v\": [\"Be spalvos\"] } } }, { \"l\": \"lv\", \"t\": { \"Choose\": { \"v\": [\"Izvēlēties\"] } } }, { \"l\": \"mk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Боја со HEX вредност {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Избери\"] }, \"Color picker\": { \"v\": [\"Избор на боја\"] }, \"More options\": { \"v\": [\"Повеќе опции\"] }, \"No color\": { \"v\": [\"Без боја\"] } } }, { \"l\": \"mn\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"{hex} HEX утгатай өнгө\"] }, \"Back\": { \"v\": [\"Буцах\"] }, \"Choose\": { \"v\": [\"Сонгох\"] }, \"Color picker\": { \"v\": [\"Өнгө сонгогч\"] }, \"More options\": { \"v\": [\"Нэмэлт сонголтууд\"] }, \"No color\": { \"v\": [\"Өнгөгүй\"] } } }, { \"l\": \"my\", \"t\": { \"Choose\": { \"v\": [\"ရွေးချယ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En farge med en HEX-verdi {hex}\"] }, \"Back\": { \"v\": [\"Tilbake\"] }, \"Choose\": { \"v\": [\"Velg\"] }, \"Color picker\": { \"v\": [\"Fargevelger\"] }, \"More options\": { \"v\": [\"Flere alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Een kleur met een HEX-waarde {hex}\"] }, \"Back\": { \"v\": [\"Terug\"] }, \"Choose\": { \"v\": [\"Kiezen\"] }, \"Color picker\": { \"v\": [\"Kleurkiezer\"] }, \"More options\": { \"v\": [\"Meer opties\"] }, \"No color\": { \"v\": [\"Geen kleur\"] } } }, { \"l\": \"oc\", \"t\": { \"Choose\": { \"v\": [\"Causir\"] } } }, { \"l\": \"pl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Kolor o wartości HEX {hex}\"] }, \"Back\": { \"v\": [\"Wstecz\"] }, \"Choose\": { \"v\": [\"Wybierz\"] }, \"Color picker\": { \"v\": [\"Wybierz kolor\"] }, \"More options\": { \"v\": [\"Więcej opcji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Uma cor com valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Voltar\"] }, \"Choose\": { \"v\": [\"Escolher\"] }, \"Color picker\": { \"v\": [\"Seletor de cores\"] }, \"More options\": { \"v\": [\"Mais opções\"] }, \"No color\": { \"v\": [\"Sem cor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Uma cor com o valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Anterior\"] }, \"Choose\": { \"v\": [\"Escolher\"] }, \"Color picker\": { \"v\": [\"seletor de cores\"] }, \"More options\": { \"v\": [\"Mais opções\"] } } }, { \"l\": \"ro\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"O culoare în HEX value {hex}\"] }, \"Back\": { \"v\": [\"Înapoi\"] }, \"Choose\": { \"v\": [\"Alegeți\"] }, \"More options\": { \"v\": [\"Mai multe opțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Цвет в HEX {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Выберите\"] }, \"Color picker\": { \"v\": [\"Выбор цвета\"] }, \"More options\": { \"v\": [\"Больше опций\"] }, \"No color\": { \"v\": [\"Без цвета\"] } } }, { \"l\": \"sk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Farba s hodnotou HEX {hex}\"] }, \"Back\": { \"v\": [\"Späť\"] }, \"Choose\": { \"v\": [\"Vybrať\"] }, \"Color picker\": { \"v\": [\"Výber farby\"] }, \"More options\": { \"v\": [\"Viac možností\"] } } }, { \"l\": \"sl\", \"t\": { \"Choose\": { \"v\": [\"Izbor\"] } } }, { \"l\": \"sr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Боја са HEX вредности {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Изаберите\"] }, \"Color picker\": { \"v\": [\"Бирач боје\"] }, \"More options\": { \"v\": [\"Још опција\"] }, \"No color\": { \"v\": [\"Без боје\"] } } }, { \"l\": \"sv\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En färg med ett HEX-värde {hex}\"] }, \"Back\": { \"v\": [\"Tillbaka\"] }, \"Choose\": { \"v\": [\"Välj\"] }, \"Color picker\": { \"v\": [\"Färgväljare\"] }, \"More options\": { \"v\": [\"Fler alternativ\"] }, \"No color\": { \"v\": [\"Ingen färg\"] } } }, { \"l\": \"tr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"{hex} onaltılık değeri ile bir renk \"] }, \"Back\": { \"v\": [\"Geri\"] }, \"Choose\": { \"v\": [\"Seçin\"] }, \"Color picker\": { \"v\": [\"Renk seçici\"] }, \"More options\": { \"v\": [\"Diğer seçenekler\"] }, \"No color\": { \"v\": [\"Renk yok\"] } } }, { \"l\": \"uk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Колір у форматі HEX {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Виберіть\"] }, \"Color picker\": { \"v\": [\"Вибір кольору\"] }, \"More options\": { \"v\": [\"Більше об'єктів\"] } } }, { \"l\": \"uz\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX qiymatiga ega rang {hex}\"] }, \"Back\": { \"v\": [\"Orqaga\"] }, \"Choose\": { \"v\": [\"Tanlang\"] }, \"Color picker\": { \"v\": [\"Rang tanlagich\"] }, \"More options\": { \"v\": [\"Boshqa variantlar\"] }, \"No color\": { \"v\": [\"Rangsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"以16进制 {hex} 表示的颜色为\"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"选择\"] }, \"Color picker\": { \"v\": [\"颜色拾取器\"] }, \"More options\": { \"v\": [\"更多选项\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"具有 HEX 值 {hex}的顏色 \"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"選擇\"] }, \"Color picker\": { \"v\": [\"顏色選擇器\"] }, \"More options\": { \"v\": [\"更多選項\"] }, \"No color\": { \"v\": [\"無顏色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX 值為 {hex} 的顏色\"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"選擇\"] }, \"Color picker\": { \"v\": [\"色彩挑選器\"] }, \"More options\": { \"v\": [\"更多選項\"] }, \"No color\": { \"v\": [\"沒有顏色\"] } } }];\nconst t2 = [{ \"l\": \"ar\", \"t\": { \"a few seconds ago\": { \"v\": [\"منذ عدة ثوانٍ\"] }, \"sec. ago\": { \"v\": [\"ثانية مضت\"] }, \"seconds ago\": { \"v\": [\"ثوانٍ مضت\"] } } }, { \"l\": \"ast\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai unos segundos\"] }, \"sec. ago\": { \"v\": [\"hai segs\"] }, \"seconds ago\": { \"v\": [\"hai segundos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"da\", \"t\": { \"a few seconds ago\": { \"v\": [\"et par sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"de\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"de-DE\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"el\", \"t\": { \"a few seconds ago\": { \"v\": [\"πριν λίγα δευτερόλεπτα\"] }, \"sec. ago\": { \"v\": [\"δευτ. πριν\"] }, \"seconds ago\": { \"v\": [\"δευτερόλεπτα πριν\"] } } }, { \"l\": \"en-GB\", \"t\": { \"a few seconds ago\": { \"v\": [\"a few seconds ago\"] }, \"sec. ago\": { \"v\": [\"sec. ago\"] }, \"seconds ago\": { \"v\": [\"seconds ago\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos pocos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-AR\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-EC\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"Segundos atrás\"] } } }, { \"l\": \"es-MX\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"et-EE\", \"t\": { \"a few seconds ago\": { \"v\": [\"mõni sekund tagasi\"] }, \"sec. ago\": { \"v\": [\"sek. tagasi\"] }, \"seconds ago\": { \"v\": [\"sekundit tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"a few seconds ago\": { \"v\": [\"duela segundo batzuk\"] }, \"sec. ago\": { \"v\": [\"duela seg.\"] }, \"seconds ago\": { \"v\": [\"duela segundo\"] } } }, { \"l\": \"fa\", \"t\": { \"a few seconds ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"sec. ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"seconds ago\": { \"v\": [\"چند ثانیه پیش\"] } } }, { \"l\": \"fi\", \"t\": { \"a few seconds ago\": { \"v\": [\"muutamia sekunteja sitten\"] }, \"sec. ago\": { \"v\": [\"sek. sitten\"] }, \"seconds ago\": { \"v\": [\"sekunteja sitten\"] } } }, { \"l\": \"fr\", \"t\": { \"a few seconds ago\": { \"v\": [\"il y a quelques instants\"] }, \"sec. ago\": { \"v\": [\"il y a qq. sec.\"] }, \"seconds ago\": { \"v\": [\"il y a quelques secondes\"] } } }, { \"l\": \"ga\", \"t\": { \"a few seconds ago\": { \"v\": [\"cúpla soicind ó shin\"] }, \"sec. ago\": { \"v\": [\"soic. ó shin\"] }, \"seconds ago\": { \"v\": [\"soicind ó shin\"] } } }, { \"l\": \"gl\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai uns segundos\"] }, \"sec. ago\": { \"v\": [\"segs. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"he\", \"t\": { \"a few seconds ago\": { \"v\": [\"לפני מספר שניות\"] }, \"sec. ago\": { \"v\": [\"לפני מספר שניות\"] }, \"seconds ago\": { \"v\": [\"לפני מס׳ שניות\"] } } }, { \"l\": \"hr\", \"t\": { \"a few seconds ago\": { \"v\": [\"prije nekoliko sekundi\"] }, \"sec. ago\": { \"v\": [\"prije nek. sek.\"] }, \"seconds ago\": { \"v\": [\"prije nek. sek.\"] } } }, { \"l\": \"hu\", \"t\": { \"a few seconds ago\": { \"v\": [\"néhány másodperce\"] }, \"sec. ago\": { \"v\": [\"másodperce\"] }, \"seconds ago\": { \"v\": [\"másodperce\"] } } }, { \"l\": \"id\", \"t\": { \"a few seconds ago\": { \"v\": [\"beberapa detik yang lalu\"] }, \"sec. ago\": { \"v\": [\"dtk. yang lalu\"] }, \"seconds ago\": { \"v\": [\"beberapa detik lalu\"] } } }, { \"l\": \"is\", \"t\": { \"a few seconds ago\": { \"v\": [\"fyrir örfáum sekúndum síðan\"] }, \"sec. ago\": { \"v\": [\"sek. síðan\"] }, \"seconds ago\": { \"v\": [\"sekúndum síðan\"] } } }, { \"l\": \"it\", \"t\": { \"a few seconds ago\": { \"v\": [\"pochi secondi fa\"] }, \"sec. ago\": { \"v\": [\"sec. fa\"] }, \"seconds ago\": { \"v\": [\"secondi fa\"] } } }, { \"l\": \"ja\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ko\", \"t\": { \"a few seconds ago\": { \"v\": [\"방금 전\"] }, \"sec. ago\": { \"v\": [\"몇 초 전\"] }, \"seconds ago\": { \"v\": [\"초 전\"] } } }, { \"l\": \"lo\", \"t\": { \"a few seconds ago\": { \"v\": [\"ສອງສາມວິນາທີກ່ອນ\"] }, \"sec. ago\": { \"v\": [\"ວິ. ກ່ອນ\"] }, \"seconds ago\": { \"v\": [\"ວິນາທີກ່ອນ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"a few seconds ago\": { \"v\": [\"prieš keletą sekundžių\"] }, \"sec. ago\": { \"v\": [\"prieš sek.\"] }, \"seconds ago\": { \"v\": [\"prieš sekundes\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"a few seconds ago\": { \"v\": [\"пред неколку секунди\"] }, \"sec. ago\": { \"v\": [\"секунда\"] }, \"seconds ago\": { \"v\": [\"секунди\"] } } }, { \"l\": \"mn\", \"t\": { \"a few seconds ago\": { \"v\": [\"хэдхэн секундын өмнө\"] }, \"sec. ago\": { \"v\": [\"сек. өмнө\"] }, \"seconds ago\": { \"v\": [\"секундын өмнө\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"a few seconds ago\": { \"v\": [\"noen få sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"nl\", \"t\": { \"a few seconds ago\": { \"v\": [\"enkele seconden geleden\"] }, \"sec. ago\": { \"v\": [\"sec. geleden\"] }, \"seconds ago\": { \"v\": [\"seconden geleden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"a few seconds ago\": { \"v\": [\"kilka sekund temu\"] }, \"sec. ago\": { \"v\": [\"sek. temu\"] }, \"seconds ago\": { \"v\": [\"sekund temu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"ro\", \"t\": { \"a few seconds ago\": { \"v\": [\"acum câteva secunde\"] }, \"sec. ago\": { \"v\": [\"sec. în urmă\"] }, \"seconds ago\": { \"v\": [\"secunde în urmă\"] } } }, { \"l\": \"ru\", \"t\": { \"a few seconds ago\": { \"v\": [\"несколько секунд назад\"] }, \"sec. ago\": { \"v\": [\"сек. назад\"] }, \"seconds ago\": { \"v\": [\"секунд назад\"] } } }, { \"l\": \"sk\", \"t\": { \"a few seconds ago\": { \"v\": [\"pred chvíľou\"] }, \"sec. ago\": { \"v\": [\"pred pár sekundami\"] }, \"seconds ago\": { \"v\": [\"pred sekundami\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"a few seconds ago\": { \"v\": [\"пре неколико секунди\"] }, \"sec. ago\": { \"v\": [\"сек. раније\"] }, \"seconds ago\": { \"v\": [\"секунди раније\"] } } }, { \"l\": \"sv\", \"t\": { \"a few seconds ago\": { \"v\": [\"några sekunder sedan\"] }, \"sec. ago\": { \"v\": [\"sek. sedan\"] }, \"seconds ago\": { \"v\": [\"sekunder sedan\"] } } }, { \"l\": \"tr\", \"t\": { \"a few seconds ago\": { \"v\": [\"birkaç saniye önce\"] }, \"sec. ago\": { \"v\": [\"sn. önce\"] }, \"seconds ago\": { \"v\": [\"saniye önce\"] } } }, { \"l\": \"uk\", \"t\": { \"a few seconds ago\": { \"v\": [\"декілька секунд тому\"] }, \"sec. ago\": { \"v\": [\"с тому\"] }, \"seconds ago\": { \"v\": [\"с тому\"] } } }, { \"l\": \"uz\", \"t\": { \"a few seconds ago\": { \"v\": [\"bir necha soniya oldin\"] }, \"sec. ago\": { \"v\": [\"sek. oldin\"] }, \"seconds ago\": { \"v\": [\"soniyalar oldin\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"a few seconds ago\": { \"v\": [\"几秒前\"] }, \"sec. ago\": { \"v\": [\"几秒前\"] }, \"seconds ago\": { \"v\": [\"几秒前\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }];\nconst t3 = [{ \"l\": \"ar\", \"t\": { \"Acapulco\": { \"v\": [\"بازلائي مطفي\"] }, \"Blue Violet\": { \"v\": [\"بنفسجي مشعشع\"] }, \"Boston Blue\": { \"v\": [\"سماوي مطفي\"] }, \"Deluge\": { \"v\": [\"بنفسجي مطفي\"] }, \"Feldspar\": { \"v\": [\"وردي صخري\"] }, \"Gold\": { \"v\": [\"ذهبي\"] }, \"Mariner\": { \"v\": [\"أزرق بحري\"] }, \"Nextcloud blue\": { \"v\": [\"أزرق نكست كلاود\"] }, \"Olivine\": { \"v\": [\"زيتي\"] }, \"Purple\": { \"v\": [\"بنفسجي\"] }, \"Rosy brown\": { \"v\": [\"بُنِّي زهري\"] }, \"Whiskey\": { \"v\": [\"نبيذي\"] } } }, { \"l\": \"ast\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulcu\"] }, \"Blue Violet\": { \"v\": [\"Viola azulao\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oru\"] }, \"Mariner\": { \"v\": [\"Marineru\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Moráu\"] }, \"Rosy brown\": { \"v\": [\"Marrón arrosao\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Černá\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Bílá\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"da\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Sort\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Hvid\"] } } }, { \"l\": \"de\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"el\", \"t\": { \"Acapulco\": { \"v\": [\"Ακαπούλκο\"] }, \"Black\": { \"v\": [\"Μαύρο\"] }, \"Blue Violet\": { \"v\": [\"Μπλε Βιολέτ\"] }, \"Boston Blue\": { \"v\": [\"Μπλε Βοστώνης\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Χρυσό\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Μπλε Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Μωβ\"] }, \"Rosy brown\": { \"v\": [\"Ροζ καφέ\"] }, \"Whiskey\": { \"v\": [\"Ουίσκι\"] }, \"White\": { \"v\": [\"Λευκό\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Black\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Purple\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"White\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco meresinine\"] }, \"Black\": { \"v\": [\"Must\"] }, \"Blue Violet\": { \"v\": [\"Sinakasvioletne\"] }, \"Boston Blue\": { \"v\": [\"Bostoni rohekassinine\"] }, \"Deluge\": { \"v\": [\"Tulvavee lilla\"] }, \"Feldspar\": { \"v\": [\"Põlevkivipruun\"] }, \"Gold\": { \"v\": [\"Kuldne\"] }, \"Mariner\": { \"v\": [\"Meresinine\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudi sinine\"] }, \"Olivine\": { \"v\": [\"Oliiviroheline\"] }, \"Purple\": { \"v\": [\"Purpurpunane\"] }, \"Rosy brown\": { \"v\": [\"Roosikarva pruun\"] }, \"Whiskey\": { \"v\": [\"Viskikarva kollakaspruun\"] }, \"White\": { \"v\": [\"Valge\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Acapulco\": { \"v\": [\"آکاپولکو\"] }, \"Blue Violet\": { \"v\": [\"بنفش آبی\"] }, \"Boston Blue\": { \"v\": [\"آبی بوستونی\"] }, \"Deluge\": { \"v\": [\"سیل\"] }, \"Feldspar\": { \"v\": [\"فلدسپات\"] }, \"Gold\": { \"v\": [\"طلا\"] }, \"Mariner\": { \"v\": [\"مارینر\"] }, \"Nextcloud blue\": { \"v\": [\"نکس کلود آبی\"] }, \"Olivine\": { \"v\": [\"الیوین\"] }, \"Purple\": { \"v\": [\"بنفش\"] }, \"Rosy brown\": { \"v\": [\"قهوه‌ای رز\"] }, \"Whiskey\": { \"v\": [\"ویسکی\"] } } }, { \"l\": \"fi\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Sinivioletti\"] }, \"Boston Blue\": { \"v\": [\"Bostoninsininen\"] }, \"Deluge\": { \"v\": [\"Tulva\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Kulta\"] }, \"Mariner\": { \"v\": [\"Merenkulkija\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudin sininen\"] }, \"Olivine\": { \"v\": [\"Oliviini\"] }, \"Purple\": { \"v\": [\"Purppura\"] }, \"Rosy brown\": { \"v\": [\"Ruusunruskea\"] }, \"Whiskey\": { \"v\": [\"Viski\"] } } }, { \"l\": \"fr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Noir\"] }, \"Blue Violet\": { \"v\": [\"Bleu violet\"] }, \"Boston Blue\": { \"v\": [\"Bleu de Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Doré\"] }, \"Mariner\": { \"v\": [\"Marin\"] }, \"Nextcloud blue\": { \"v\": [\"Bleu Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Violet\"] }, \"Rosy brown\": { \"v\": [\"Brun rosé\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Blanc\"] } } }, { \"l\": \"ga\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Dubh\"] }, \"Blue Violet\": { \"v\": [\"Gorm Violet\"] }, \"Boston Blue\": { \"v\": [\"Bostún Gorm\"] }, \"Deluge\": { \"v\": [\"Díle\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Óir\"] }, \"Mariner\": { \"v\": [\"Mairnéalach\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud gorm\"] }, \"Olivine\": { \"v\": [\"Olaivín\"] }, \"Purple\": { \"v\": [\"Corcra\"] }, \"Rosy brown\": { \"v\": [\"Rosach donn\"] }, \"Whiskey\": { \"v\": [\"Fuisce\"] }, \"White\": { \"v\": [\"Bán\"] } } }, { \"l\": \"gl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Negro\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Dioivo\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marino\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Pardo rosado\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Crna\"] }, \"Blue Violet\": { \"v\": [\"Plavoljubičasta\"] }, \"Boston Blue\": { \"v\": [\"Bostonsko plava\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Zlatna\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud plava\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Ljubičasta\"] }, \"Rosy brown\": { \"v\": [\"Ružičastosmeđa\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Bijela\"] } } }, { \"l\": \"hu\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Fekete\"] }, \"Blue Violet\": { \"v\": [\"Kék ibolya\"] }, \"Boston Blue\": { \"v\": [\"Boston kék\"] }, \"Deluge\": { \"v\": [\"Özönvíz\"] }, \"Feldspar\": { \"v\": [\"Földpát\"] }, \"Gold\": { \"v\": [\"Arany\"] }, \"Mariner\": { \"v\": [\"Tengerész\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud kék\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rózsás barna\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Fehér\"] } } }, { \"l\": \"id\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Hitam\"] }, \"Blue Violet\": { \"v\": [\"Ungu kebiruan\"] }, \"Boston Blue\": { \"v\": [\"Biru Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Emas\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Biru Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Ungu\"] }, \"Rosy brown\": { \"v\": [\"Cokelat kemerahan\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Putih\"] } } }, { \"l\": \"is\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Bláklukka\"] }, \"Boston Blue\": { \"v\": [\"Bostonblátt\"] }, \"Deluge\": { \"v\": [\"Fjólublátt\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Sjóarablátt\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blátt\"] }, \"Olivine\": { \"v\": [\"Ólivín\"] }, \"Purple\": { \"v\": [\"Purpurablátt\"] }, \"Rosy brown\": { \"v\": [\"Rósabrúnt\"] }, \"Whiskey\": { \"v\": [\"Viský\"] } } }, { \"l\": \"it\", \"t\": { \"Gold\": { \"v\": [\"Oro\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Purple\": { \"v\": [\"Viola\"] } } }, { \"l\": \"ja\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Black\": { \"v\": [\"黒\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] }, \"White\": { \"v\": [\"白\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] } } }, { \"l\": \"ko\", \"t\": { \"Acapulco\": { \"v\": [\"아카풀코\"] }, \"Black\": { \"v\": [\"검정\"] }, \"Blue Violet\": { \"v\": [\"푸른 보라\"] }, \"Boston Blue\": { \"v\": [\"보스턴 블루\"] }, \"Deluge\": { \"v\": [\"폭우\"] }, \"Feldspar\": { \"v\": [\"장석\"] }, \"Gold\": { \"v\": [\"금\"] }, \"Mariner\": { \"v\": [\"뱃사람\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 파랑\"] }, \"Olivine\": { \"v\": [\"감람석\"] }, \"Purple\": { \"v\": [\"보라\"] }, \"Rosy brown\": { \"v\": [\"로지 브라운\"] }, \"Whiskey\": { \"v\": [\"위스키\"] }, \"White\": { \"v\": [\"하양\"] } } }, { \"l\": \"lo\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"ສີດຳ\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"ສີຄຳ\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"ສີຟ້າ Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"ສີມ່ວງ\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"ສີຂາວ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Acapulco\": { \"v\": ['\"Acapulco\"'] }, \"Black\": { \"v\": [\"Juoda\"] }, \"Blue Violet\": { \"v\": [\"Mėlyna-violetinė\"] }, \"Boston Blue\": { \"v\": ['\"Boston Blue\"'] }, \"Deluge\": { \"v\": ['\"Deluge\"'] }, \"Feldspar\": { \"v\": ['\"Feldspar\"'] }, \"Gold\": { \"v\": [\"Auksas\"] }, \"Mariner\": { \"v\": ['\"Mariner\"'] }, \"Nextcloud blue\": { \"v\": ['\"Nextcloud\" mėlyna'] }, \"Olivine\": { \"v\": ['\"Olivine\"'] }, \"Purple\": { \"v\": [\"Violetinė\"] }, \"Rosy brown\": { \"v\": [\"Rožiniai rudas\"] }, \"Whiskey\": { \"v\": ['\"Whiskey\"'] }, \"White\": { \"v\": [\"Balta\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Сино Виолетова\"] }, \"Boston Blue\": { \"v\": [\"Бостон Сина\"] }, \"Deluge\": { \"v\": [\"Делуџ\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Златна\"] }, \"Mariner\": { \"v\": [\"Маринер\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud сина\"] }, \"Olivine\": { \"v\": [\"Оливин\"] }, \"Purple\": { \"v\": [\"Виолетова\"] }, \"Rosy brown\": { \"v\": [\"Розево-кафеава\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бела\"] } } }, { \"l\": \"mn\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Black\": { \"v\": [\"Хар\"] }, \"Blue Violet\": { \"v\": [\"Цэнхэр ягаан\"] }, \"Boston Blue\": { \"v\": [\"Бостон цэнхэр\"] }, \"Deluge\": { \"v\": [\"Делюж\"] }, \"Feldspar\": { \"v\": [\"Фельдспар\"] }, \"Gold\": { \"v\": [\"Алтан\"] }, \"Mariner\": { \"v\": [\"Маринер\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud цэнхэр\"] }, \"Olivine\": { \"v\": [\"Оливин\"] }, \"Purple\": { \"v\": [\"Нил ягаан\"] }, \"Rosy brown\": { \"v\": [\"Ягаан бор\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Цагаан\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Blå fiolett\"] }, \"Boston Blue\": { \"v\": [\"Boston blå\"] }, \"Deluge\": { \"v\": [\"Syndflod\"] }, \"Feldspar\": { \"v\": [\"Feltspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosenrød brun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"nl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Zwart\"] }, \"Blue Violet\": { \"v\": [\"Blauw Paars\"] }, \"Boston Blue\": { \"v\": [\"Boston Blauw\"] }, \"Deluge\": { \"v\": [\"Overlopen\"] }, \"Feldspar\": { \"v\": [\"Veldspaat\"] }, \"Gold\": { \"v\": [\"Goud\"] }, \"Mariner\": { \"v\": [\"Marineblauw\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blauw\"] }, \"Olivine\": { \"v\": [\"Olivijn\"] }, \"Purple\": { \"v\": [\"Paars\"] }, \"Rosy brown\": { \"v\": [\"Rozig bruin\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Wit\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Niebieski fiolet\"] }, \"Boston Blue\": { \"v\": [\"Błękit Bostonu\"] }, \"Deluge\": { \"v\": [\"Potop\"] }, \"Feldspar\": { \"v\": [\"Skaleń\"] }, \"Gold\": { \"v\": [\"Złote\"] }, \"Mariner\": { \"v\": [\"Marynarz\"] }, \"Nextcloud blue\": { \"v\": [\"Niebieskie Nextcloud\"] }, \"Olivine\": { \"v\": [\"Oliwin\"] }, \"Purple\": { \"v\": [\"Fioletowy\"] }, \"Rosy brown\": { \"v\": [\"Różowy brąz\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Preto\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marinheiro\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Roxo\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Uísque\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"ro\", \"t\": { \"Gold\": { \"v\": [\"Aur\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud albastru\"] }, \"Purple\": { \"v\": [\"Purpuriu\"] } } }, { \"l\": \"ru\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Black\": { \"v\": [\"Черный\"] }, \"Blue Violet\": { \"v\": [\"Синий фиолет\"] }, \"Boston Blue\": { \"v\": [\"Синий Бостон\"] }, \"Deluge\": { \"v\": [\"Перламутрово-фиолетовый\"] }, \"Feldspar\": { \"v\": [\"Античная латунь\"] }, \"Gold\": { \"v\": [\"Золотой\"] }, \"Mariner\": { \"v\": [\"Морской\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud голубой\"] }, \"Olivine\": { \"v\": [\" Оливковый\"] }, \"Purple\": { \"v\": [\"Фиолетовый\"] }, \"Rosy brown\": { \"v\": [\"Розово-коричневый\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Белый\"] } } }, { \"l\": \"sk\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Modro fialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živec\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námorník\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Ružovo hnedá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Плаво љубичаста\"] }, \"Boston Blue\": { \"v\": [\"Бостон плава\"] }, \"Deluge\": { \"v\": [\"Поплава\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Злато\"] }, \"Mariner\": { \"v\": [\"Морнар\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud плава\"] }, \"Olivine\": { \"v\": [\"Маслинаста\"] }, \"Purple\": { \"v\": [\"Пурпурна\"] }, \"Rosy brown\": { \"v\": [\"Роси браон\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бело\"] } } }, { \"l\": \"sv\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Svart\"] }, \"Blue Violet\": { \"v\": [\"Blåviolett\"] }, \"Boston Blue\": { \"v\": [\"Bostonblå\"] }, \"Deluge\": { \"v\": [\"Skyfallsblå\"] }, \"Feldspar\": { \"v\": [\"Fältspat\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Marinblå\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosabrun\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Vit\"] } } }, { \"l\": \"tr\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Siyah\"] }, \"Blue Violet\": { \"v\": [\"Mavi mor\"] }, \"Boston Blue\": { \"v\": [\"Boston mavisi\"] }, \"Deluge\": { \"v\": [\"Sel\"] }, \"Feldspar\": { \"v\": [\"Feldispat\"] }, \"Gold\": { \"v\": [\"Altın\"] }, \"Mariner\": { \"v\": [\"Denizci\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud mavi\"] }, \"Olivine\": { \"v\": [\"Zeytinlik\"] }, \"Purple\": { \"v\": [\"Mor\"] }, \"Rosy brown\": { \"v\": [\"Kırmızımsı kahverengi\"] }, \"Whiskey\": { \"v\": [\"Viski\"] }, \"White\": { \"v\": [\"Beyaz\"] } } }, { \"l\": \"uk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Blue Violet\": { \"v\": [\"Блакитна фіалка\"] }, \"Boston Blue\": { \"v\": [\"Бостонський синій\"] }, \"Deluge\": { \"v\": [\"Злива\"] }, \"Feldspar\": { \"v\": [\"Польові шпати\"] }, \"Gold\": { \"v\": [\"Золотий\"] }, \"Mariner\": { \"v\": [\"Морський\"] }, \"Nextcloud blue\": { \"v\": [\"Блакитний Nextcloud\"] }, \"Olivine\": { \"v\": [\"Олива\"] }, \"Purple\": { \"v\": [\"Фіолетовий\"] }, \"Rosy brown\": { \"v\": [\"Темно-рожевий\"] }, \"Whiskey\": { \"v\": [\"Кола\"] } } }, { \"l\": \"uz\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Qora\"] }, \"Blue Violet\": { \"v\": [\"Moviy binafsha\"] }, \"Boston Blue\": { \"v\": [\"Boston ko'k\"] }, \"Deluge\": { \"v\": [\"To'fon\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oltin\"] }, \"Mariner\": { \"v\": [\"Dengizchi\"] }, \"Nextcloud blue\": { \"v\": [\"Ko'k Nextcloud \"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Binafsha\"] }, \"Rosy brown\": { \"v\": [\"Qizil jigarrang\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Oq\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"瓦罗兰特蓝\"] }, \"Boston Blue\": { \"v\": [\"波士顿蓝\"] }, \"Deluge\": { \"v\": [\"洪水色\"] }, \"Feldspar\": { \"v\": [\"长石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"水手\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 蓝\"] }, \"Olivine\": { \"v\": [\"橄榄石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Acapulco\": { \"v\": [\"阿卡普爾科\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"大洪水\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }];\nconst t4 = [{ \"l\": \"ar\", \"t\": { \"Actions\": { \"v\": [\"إجراءات\"] } } }, { \"l\": \"ast\", \"t\": { \"Actions\": { \"v\": [\"Aiciones\"] } } }, { \"l\": \"br\", \"t\": { \"Actions\": { \"v\": [\"Oberioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"cs\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"da\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"de\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"el\", \"t\": { \"Actions\": { \"v\": [\"Ενέργειες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"eo\", \"t\": { \"Actions\": { \"v\": [\"Agoj\"] } } }, { \"l\": \"es\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Actions\": { \"v\": [\"Tegevus\"] } } }, { \"l\": \"eu\", \"t\": { \"Actions\": { \"v\": [\"Ekintzak\"] } } }, { \"l\": \"fa\", \"t\": { \"Actions\": { \"v\": [\"کنش‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Actions\": { \"v\": [\"Toiminnot\"] } } }, { \"l\": \"fr\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"ga\", \"t\": { \"Actions\": { \"v\": [\"Gníomhartha\"] } } }, { \"l\": \"gl\", \"t\": { \"Actions\": { \"v\": [\"Accións\"] } } }, { \"l\": \"he\", \"t\": { \"Actions\": { \"v\": [\"פעולות\"] } } }, { \"l\": \"hr\", \"t\": { \"Actions\": { \"v\": [\"Radnje\"] } } }, { \"l\": \"hu\", \"t\": { \"Actions\": { \"v\": [\"Műveletek\"] } } }, { \"l\": \"id\", \"t\": { \"Actions\": { \"v\": [\"Tindakan\"] } } }, { \"l\": \"is\", \"t\": { \"Actions\": { \"v\": [\"Aðgerðir\"] } } }, { \"l\": \"it\", \"t\": { \"Actions\": { \"v\": [\"Azioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ko\", \"t\": { \"Actions\": { \"v\": [\"동작\"] } } }, { \"l\": \"lo\", \"t\": { \"Actions\": { \"v\": [\"ການກະທຳ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Actions\": { \"v\": [\"Veiksmai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Actions\": { \"v\": [\"Акции\"] } } }, { \"l\": \"mn\", \"t\": { \"Actions\": { \"v\": [\"Үйлдлүүд\"] } } }, { \"l\": \"my\", \"t\": { \"Actions\": { \"v\": [\"လုပ်ဆောင်ချက်များ\"] } } }, { \"l\": \"nb\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Actions\": { \"v\": [\"Acties\"] } } }, { \"l\": \"oc\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"pl\", \"t\": { \"Actions\": { \"v\": [\"Działania\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"ro\", \"t\": { \"Actions\": { \"v\": [\"Acțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"Actions\": { \"v\": [\"Действия \"] } } }, { \"l\": \"sk\", \"t\": { \"Actions\": { \"v\": [\"Akcie\"] } } }, { \"l\": \"sl\", \"t\": { \"Actions\": { \"v\": [\"Dejanja\"] } } }, { \"l\": \"sr\", \"t\": { \"Actions\": { \"v\": [\"Радње\"] } } }, { \"l\": \"sv\", \"t\": { \"Actions\": { \"v\": [\"Åtgärder\"] } } }, { \"l\": \"tr\", \"t\": { \"Actions\": { \"v\": [\"İşlemler\"] } } }, { \"l\": \"uk\", \"t\": { \"Actions\": { \"v\": [\"Дії\"] } } }, { \"l\": \"uz\", \"t\": { \"Actions\": { \"v\": [\"Harakatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Actions\": { \"v\": [\"行为\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }];\nconst t5 = [{ \"l\": \"ar\", \"t\": { \"Activities\": { \"v\": [\"سجل الأنشطة\"] }, \"Animals & Nature\": { \"v\": [\"الحيوانات والطبيعة\"] }, \"Custom\": { \"v\": [\"مُخصَّص\"] }, \"Dark skin tone\": { \"v\": [\"أسمر البُشرة\"] }, \"Emoji picker\": { \"v\": [\"لاقط الإيموجي\"] }, \"Flags\": { \"v\": [\"الأعلام\"] }, \"Food & Drink\": { \"v\": [\"الطعام والشراب\"] }, \"Frequently used\": { \"v\": [\"شائعة الاستعمال\"] }, \"Light skin tone\": { \"v\": [\"فاتح البُشرة\"] }, \"Medium dark skin tone\": { \"v\": [\"بشرة متوسطة الاسمرار\"] }, \"Medium light skin tone\": { \"v\": [\"بشرة متوسطة البياض\"] }, \"Medium skin tone\": { \"v\": [\"بشرة وسطية اللون\"] }, \"Neutral skin color\": { \"v\": [\"لون بُشرة طبيعي\"] }, \"Objects\": { \"v\": [\"أشياء\"] }, \"People & Body\": { \"v\": [\"أشخاص و أجسام\"] }, \"Pick an emoji\": { \"v\": [\"إختَر رمز إيموجي emoji\"] }, \"Search emoji\": { \"v\": [\"البحث عن إيموجي emoji\"] }, \"Search results\": { \"v\": [\"نتائج البحث\"] }, \"Selected\": { \"v\": [\"محدّدة\"] }, \"Skin tone\": { \"v\": [\"لون البُشرة\"] }, \"Smileys & Emotion\": { \"v\": [\"وجوهٌ ضاحكة و مشاعر\"] }, \"Symbols\": { \"v\": [\"رموز\"] }, \"Travel & Places\": { \"v\": [\"سفر و أماكن\"] } } }, { \"l\": \"ast\", \"t\": { \"Activities\": { \"v\": [\"Actividaes\"] }, \"Animals & Nature\": { \"v\": [\"Animales y natura\"] }, \"Custom\": { \"v\": [\"Personalizar\"] }, \"Dark skin tone\": { \"v\": [\"Tonu d'aspeutu escuru\"] }, \"Emoji picker\": { \"v\": [\"Selector de fustaxes\"] }, \"Flags\": { \"v\": [\"Banderes\"] }, \"Food & Drink\": { \"v\": [\"Cómida y bébora\"] }, \"Frequently used\": { \"v\": [\"D'usu frecuente\"] }, \"Light skin tone\": { \"v\": [\"Tonu d'aspeutu claru\"] }, \"Medium dark skin tone\": { \"v\": [\"Tonu d'aspeutu medio escuru\"] }, \"Medium light skin tone\": { \"v\": [\"Tonu d'aspeutu medio claru\"] }, \"Medium skin tone\": { \"v\": [\"Tonu d'aspeutu mediu\"] }, \"Neutral skin color\": { \"v\": [\"Color d'aspeutu neutral\"] }, \"Objects\": { \"v\": [\"Oxetos\"] }, \"People & Body\": { \"v\": [\"Persones y cuerpu\"] }, \"Pick an emoji\": { \"v\": [\"Escueyi un fustaxe\"] }, \"Search emoji\": { \"v\": [\"Buscar nos fustaxes\"] }, \"Search results\": { \"v\": [\"Resultaos de la busca\"] }, \"Selected\": { \"v\": [\"Na seleición\"] }, \"Skin tone\": { \"v\": [\"Tonu d'aspeutu\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrises y emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes y llugares\"] } } }, { \"l\": \"br\", \"t\": { \"Activities\": { \"v\": [\"Oberiantizoù\"] }, \"Animals & Nature\": { \"v\": [\"Loened & Natur\"] }, \"Custom\": { \"v\": [\"Personelañ\"] }, \"Flags\": { \"v\": [\"Bannieloù\"] }, \"Food & Drink\": { \"v\": [\"Boued & Evajoù\"] }, \"Frequently used\": { \"v\": [\"Implijet alies\"] }, \"Objects\": { \"v\": [\"Traoù\"] }, \"People & Body\": { \"v\": [\"Tud & Korf\"] }, \"Pick an emoji\": { \"v\": [\"Choaz un emoji\"] }, \"Search results\": { \"v\": [\"Disoc'hoù an enklask\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyioù & Fromoù\"] }, \"Symbols\": { \"v\": [\"Arouezioù\"] }, \"Travel & Places\": { \"v\": [\"Beaj & Lec'hioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Activities\": { \"v\": [\"Activitats\"] }, \"Animals & Nature\": { \"v\": [\"Animals i natura\"] }, \"Custom\": { \"v\": [\"Personalitzat\"] }, \"Flags\": { \"v\": [\"Marques\"] }, \"Food & Drink\": { \"v\": [\"Menjar i begudes\"] }, \"Frequently used\": { \"v\": [\"Utilitzats recentment\"] }, \"Objects\": { \"v\": [\"Objectes\"] }, \"People & Body\": { \"v\": [\"Persones i cos\"] }, \"Pick an emoji\": { \"v\": [\"Trieu un emoji\"] }, \"Search results\": { \"v\": [\"Resultats de cerca\"] }, \"Smileys & Emotion\": { \"v\": [\"Cares i emocions\"] }, \"Symbols\": { \"v\": [\"Símbols\"] }, \"Travel & Places\": { \"v\": [\"Viatges i llocs\"] } } }, { \"l\": \"cs\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutrální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutřální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"da\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr & Natur\"] }, \"Custom\": { \"v\": [\"Brugerdefineret\"] }, \"Dark skin tone\": { \"v\": [\"Mørk skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji vælger\"] }, \"Flags\": { \"v\": [\"Flag\"] }, \"Food & Drink\": { \"v\": [\"Mad & Drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brugt\"] }, \"Light skin tone\": { \"v\": [\"Lys skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mørk skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium lys skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin color\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker & Menneskekroppen\"] }, \"Pick an emoji\": { \"v\": [\"Vælg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søg emoji\"] }, \"Search results\": { \"v\": [\"Søgeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Rejser & Rejsemål\"] } } }, { \"l\": \"de\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"el\", \"t\": { \"Activities\": { \"v\": [\"Δραστηριότητες\"] }, \"Animals & Nature\": { \"v\": [\"Ζώα & Φύση\"] }, \"Custom\": { \"v\": [\"Προσαρμογή\"] }, \"Dark skin tone\": { \"v\": [\"Σκούρο θέμα\"] }, \"Emoji picker\": { \"v\": [\"Επιλογέας emoji\"] }, \"Flags\": { \"v\": [\"Σημαίες\"] }, \"Food & Drink\": { \"v\": [\"Φαγητό & Ποτό\"] }, \"Frequently used\": { \"v\": [\"Συχνά χρησιμοποιούμενο\"] }, \"Light skin tone\": { \"v\": [\"Ανοιχτό θέμα\"] }, \"Medium dark skin tone\": { \"v\": [\"Μέτριο σκούρο θέμα\"] }, \"Medium light skin tone\": { \"v\": [\"Μέτριο ανοιχτό θέμα\"] }, \"Medium skin tone\": { \"v\": [\"Μέτριος τόνος θέματος\"] }, \"Neutral skin color\": { \"v\": [\"Ουδέτερο χρώμα θέματος\"] }, \"Objects\": { \"v\": [\"Αντικείμενα\"] }, \"People & Body\": { \"v\": [\"Άνθρωποι & Σώμα\"] }, \"Pick an emoji\": { \"v\": [\"Επιλέξτε ένα emoji\"] }, \"Search emoji\": { \"v\": [\"Αναζήτηση emoji\"] }, \"Search results\": { \"v\": [\"Αποτελέσματα αναζήτησης\"] }, \"Selected\": { \"v\": [\"Επιλεγμένο\"] }, \"Skin tone\": { \"v\": [\"Τόνος δέρματος\"] }, \"Smileys & Emotion\": { \"v\": [\"Φατσούλες & Συναίσθημα\"] }, \"Symbols\": { \"v\": [\"Σύμβολα\"] }, \"Travel & Places\": { \"v\": [\"Ταξίδια & Τοποθεσίες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Activities\": { \"v\": [\"Activities\"] }, \"Animals & Nature\": { \"v\": [\"Animals & Nature\"] }, \"Custom\": { \"v\": [\"Custom\"] }, \"Dark skin tone\": { \"v\": [\"Dark skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji picker\"] }, \"Flags\": { \"v\": [\"Flags\"] }, \"Food & Drink\": { \"v\": [\"Food & Drink\"] }, \"Frequently used\": { \"v\": [\"Frequently used\"] }, \"Light skin tone\": { \"v\": [\"Light skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium dark skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium light skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin colour\"] }, \"Objects\": { \"v\": [\"Objects\"] }, \"People & Body\": { \"v\": [\"People & Body\"] }, \"Pick an emoji\": { \"v\": [\"Pick an emoji\"] }, \"Search emoji\": { \"v\": [\"Search emoji\"] }, \"Search results\": { \"v\": [\"Search results\"] }, \"Selected\": { \"v\": [\"Selected\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symbols\"] }, \"Travel & Places\": { \"v\": [\"Travel & Places\"] } } }, { \"l\": \"eo\", \"t\": { \"Activities\": { \"v\": [\"Aktiveco\"] }, \"Animals & Nature\": { \"v\": [\"Bestoj & Naturo\"] }, \"Custom\": { \"v\": [\"Propra\"] }, \"Flags\": { \"v\": [\"Flagoj\"] }, \"Food & Drink\": { \"v\": [\"Manĝaĵo & Trinkaĵo\"] }, \"Frequently used\": { \"v\": [\"Ofte uzataj\"] }, \"Objects\": { \"v\": [\"Objektoj\"] }, \"People & Body\": { \"v\": [\"Homoj & Korpo\"] }, \"Pick an emoji\": { \"v\": [\"Elekti emoĝion \"] }, \"Search results\": { \"v\": [\"Serĉrezultoj\"] }, \"Smileys & Emotion\": { \"v\": [\"Ridoj kaj Emocioj\"] }, \"Symbols\": { \"v\": [\"Signoj\"] }, \"Travel & Places\": { \"v\": [\"Vojaĵoj & Lokoj\"] } } }, { \"l\": \"es\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel obscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elegir un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys y emoticonos\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usados frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elija un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Frecuentemente utilizado\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de búsqueda\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usado frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y cuerpos\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Activities\": { \"v\": [\"Tegevused\"] }, \"Animals & Nature\": { \"v\": [\"Loomad ja loodus\"] }, \"Custom\": { \"v\": [\"Kohanda\"] }, \"Dark skin tone\": { \"v\": [\"Kesta tume toon\"] }, \"Emoji picker\": { \"v\": [\"Emojide valija\"] }, \"Flags\": { \"v\": [\"Lipud\"] }, \"Food & Drink\": { \"v\": [\"Söök ja jook\"] }, \"Frequently used\": { \"v\": [\"Sageli kasutatud\"] }, \"Light skin tone\": { \"v\": [\"Kesta hele toon\"] }, \"Medium dark skin tone\": { \"v\": [\"Kesta keskmiselt tume toon\"] }, \"Medium light skin tone\": { \"v\": [\"Kesta keskmiselt hele toon\"] }, \"Medium skin tone\": { \"v\": [\"Kesta keskmine toon\"] }, \"Neutral skin color\": { \"v\": [\"Kesta neutraalne toon\"] }, \"Objects\": { \"v\": [\"Objektid\"] }, \"People & Body\": { \"v\": [\"Inimesed ja keha\"] }, \"Pick an emoji\": { \"v\": [\"Vali emoji\"] }, \"Search emoji\": { \"v\": [\"Otsi emojit\"] }, \"Search results\": { \"v\": [\"Otsi tulemustest\"] }, \"Selected\": { \"v\": [\"Valitud\"] }, \"Skin tone\": { \"v\": [\"Kesta toon\"] }, \"Smileys & Emotion\": { \"v\": [\"Smailid ja emotsioonid\"] }, \"Symbols\": { \"v\": [\"Sümbolid\"] }, \"Travel & Places\": { \"v\": [\"Reisimine ja kohad\"] } } }, { \"l\": \"eu\", \"t\": { \"Activities\": { \"v\": [\"Jarduerak\"] }, \"Animals & Nature\": { \"v\": [\"Animaliak eta Natura\"] }, \"Custom\": { \"v\": [\"Pertsonalizatua\"] }, \"Flags\": { \"v\": [\"Banderak\"] }, \"Food & Drink\": { \"v\": [\"Janaria eta edariak\"] }, \"Frequently used\": { \"v\": [\"Askotan erabilia\"] }, \"Objects\": { \"v\": [\"Objektuak\"] }, \"People & Body\": { \"v\": [\"Jendea eta gorputza\"] }, \"Pick an emoji\": { \"v\": [\"Hautatu emoji bat\"] }, \"Search emoji\": { \"v\": [\"Bilatu emojiak\"] }, \"Search results\": { \"v\": [\"Bilaketa emaitzak\"] }, \"Selected\": { \"v\": [\"Hautatuta\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyak eta emozioa\"] }, \"Symbols\": { \"v\": [\"Sinboloak\"] }, \"Travel & Places\": { \"v\": [\"Bidaiak eta lekuak\"] } } }, { \"l\": \"fa\", \"t\": { \"Activities\": { \"v\": [\"فعالیت‌ها\"] }, \"Animals & Nature\": { \"v\": [\"حیوانات و طبیعت\"] }, \"Custom\": { \"v\": [\"سفارشی\"] }, \"Dark skin tone\": { \"v\": [\"رنگ پوسته تیره\"] }, \"Emoji picker\": { \"v\": [\"انتخاب‌گر شکلک\"] }, \"Flags\": { \"v\": [\"پرچم‌ها\"] }, \"Food & Drink\": { \"v\": [\"غذا و نوشیدنی\"] }, \"Frequently used\": { \"v\": [\"پرکاربرد\"] }, \"Light skin tone\": { \"v\": [\"رنگ پوسته روشن\"] }, \"Medium dark skin tone\": { \"v\": [\"رنگ پوسته تیره متوسط\"] }, \"Medium light skin tone\": { \"v\": [\"رنگ پوسته روشن متوسط\"] }, \"Medium skin tone\": { \"v\": [\"رنگ پوسته متوسط\"] }, \"Neutral skin color\": { \"v\": [\"رنگ پوسته خنثی\"] }, \"Objects\": { \"v\": [\"اشیاء\"] }, \"People & Body\": { \"v\": [\"مردم و بدن\"] }, \"Pick an emoji\": { \"v\": [\"انتخاب شکلک\"] }, \"Search emoji\": { \"v\": [\"جستجوی شکلک\"] }, \"Search results\": { \"v\": [\"نتایج جستجو\"] }, \"Selected\": { \"v\": [\"انتخاب شده\"] }, \"Skin tone\": { \"v\": [\"رنگ پوسته\"] }, \"Smileys & Emotion\": { \"v\": [\"شکلک‌ها و احساسات\"] }, \"Symbols\": { \"v\": [\"نمادها\"] }, \"Travel & Places\": { \"v\": [\"سفر و مکان‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteetit\"] }, \"Animals & Nature\": { \"v\": [\"Eläimet & luonto\"] }, \"Custom\": { \"v\": [\"Mukautettu\"] }, \"Dark skin tone\": { \"v\": [\"Tumma ihonväri\"] }, \"Emoji picker\": { \"v\": [\"Emojivalitsin\"] }, \"Flags\": { \"v\": [\"Liput\"] }, \"Food & Drink\": { \"v\": [\"Ruoka & juoma\"] }, \"Frequently used\": { \"v\": [\"Usein käytetyt\"] }, \"Light skin tone\": { \"v\": [\"Vaalea ihonväri\"] }, \"Medium dark skin tone\": { \"v\": [\"Keskitumma ihonväri\"] }, \"Medium light skin tone\": { \"v\": [\"Keskivaalea ihonväri\"] }, \"Medium skin tone\": { \"v\": [\"Keskimääräinen ihonväri\"] }, \"Neutral skin color\": { \"v\": [\"Neutraali ihonväri\"] }, \"Objects\": { \"v\": [\"Esineet & asiat\"] }, \"People & Body\": { \"v\": [\"Ihmiset & keho\"] }, \"Pick an emoji\": { \"v\": [\"Valitse emoji\"] }, \"Search emoji\": { \"v\": [\"Etsi emojia\"] }, \"Search results\": { \"v\": [\"Hakutulokset\"] }, \"Selected\": { \"v\": [\"Valittu\"] }, \"Skin tone\": { \"v\": [\"Ihonväri\"] }, \"Smileys & Emotion\": { \"v\": [\"Hymiöt & tunteet\"] }, \"Symbols\": { \"v\": [\"Symbolit\"] }, \"Travel & Places\": { \"v\": [\"Matkustus & kohteet\"] } } }, { \"l\": \"fr\", \"t\": { \"Activities\": { \"v\": [\"Activités\"] }, \"Animals & Nature\": { \"v\": [\"Animaux & Nature\"] }, \"Custom\": { \"v\": [\"Personnalisé\"] }, \"Dark skin tone\": { \"v\": [\"Teint de peau foncé\"] }, \"Emoji picker\": { \"v\": [\"Sélecteur d'émojis\"] }, \"Flags\": { \"v\": [\"Drapeaux\"] }, \"Food & Drink\": { \"v\": [\"Nourriture & Boissons\"] }, \"Frequently used\": { \"v\": [\"Utilisés fréquemment\"] }, \"Light skin tone\": { \"v\": [\"Teint de peau clair\"] }, \"Medium dark skin tone\": { \"v\": [\"Teint de peau moyennement foncé\"] }, \"Medium light skin tone\": { \"v\": [\"Teint de peau moyennement clair\"] }, \"Medium skin tone\": { \"v\": [\"Teint de peau moyen\"] }, \"Neutral skin color\": { \"v\": [\"Teint de peau neutre\"] }, \"Objects\": { \"v\": [\"Objets\"] }, \"People & Body\": { \"v\": [\"Personnes & Corps\"] }, \"Pick an emoji\": { \"v\": [\"Choisissez un émoji\"] }, \"Search emoji\": { \"v\": [\"Rechercher un emoji\"] }, \"Search results\": { \"v\": [\"Résultats de recherche\"] }, \"Selected\": { \"v\": [\"sélectionné\"] }, \"Skin tone\": { \"v\": [\"Teint de peau\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Émotions\"] }, \"Symbols\": { \"v\": [\"Symboles\"] }, \"Travel & Places\": { \"v\": [\"Voyage & Lieux\"] } } }, { \"l\": \"ga\", \"t\": { \"Activities\": { \"v\": [\"Gníomhaíochtaí\"] }, \"Animals & Nature\": { \"v\": [\"Ainmhithe & Dúlra\"] }, \"Custom\": { \"v\": [\"Saincheaptha\"] }, \"Dark skin tone\": { \"v\": [\"Ton craiceann dorcha\"] }, \"Emoji picker\": { \"v\": [\"Roghnóir Emoji\"] }, \"Flags\": { \"v\": [\"Bratacha\"] }, \"Food & Drink\": { \"v\": [\"Bia & Deoch\"] }, \"Frequently used\": { \"v\": [\"Úsáidtear go minic\"] }, \"Light skin tone\": { \"v\": [\"Ton craiceann éadrom\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton craiceann meánach dorcha\"] }, \"Medium light skin tone\": { \"v\": [\"Ton craiceann meánach éadrom\"] }, \"Medium skin tone\": { \"v\": [\"Ton craiceann meánach\"] }, \"Neutral skin color\": { \"v\": [\"Dath craiceann neodrach\"] }, \"Objects\": { \"v\": [\"Réada\"] }, \"People & Body\": { \"v\": [\"Daoine & Corp\"] }, \"Pick an emoji\": { \"v\": [\"Roghnaigh emoji\"] }, \"Search emoji\": { \"v\": [\"Cuardaigh emoji\"] }, \"Search results\": { \"v\": [\"Torthaí cuardaigh\"] }, \"Selected\": { \"v\": [\"Roghnaithe\"] }, \"Skin tone\": { \"v\": [\"Ton craicinn\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Mothúchán\"] }, \"Symbols\": { \"v\": [\"Siombailí\"] }, \"Travel & Places\": { \"v\": [\"Taisteal & Áiteanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Ton de pel escuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de «emojis»\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Ton de pel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton de pel medio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Ton de pel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Ton de pel medio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pel neutra\"] }, \"Objects\": { \"v\": [\"Obxectos\"] }, \"People & Body\": { \"v\": [\"Persoas e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolla un «emoji»\"] }, \"Search emoji\": { \"v\": [\"Buscar «emoji»\"] }, \"Search results\": { \"v\": [\"Resultados da busca\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Ton de pel\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e emocións\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes e lugares\"] } } }, { \"l\": \"he\", \"t\": { \"Activities\": { \"v\": [\"פעילויות\"] }, \"Animals & Nature\": { \"v\": [\"חיות וטבע\"] }, \"Custom\": { \"v\": [\"בהתאמה אישית\"] }, \"Flags\": { \"v\": [\"דגלים\"] }, \"Food & Drink\": { \"v\": [\"מזון ומשקאות\"] }, \"Frequently used\": { \"v\": [\"בשימוש תדיר\"] }, \"Objects\": { \"v\": [\"חפצים\"] }, \"People & Body\": { \"v\": [\"אנשים וגוף\"] }, \"Pick an emoji\": { \"v\": [\"נא לבחור אמוג׳י\"] }, \"Search emoji\": { \"v\": [\"חיפוש אמוג׳י\"] }, \"Search results\": { \"v\": [\"תוצאות חיפוש\"] }, \"Smileys & Emotion\": { \"v\": [\"חייכנים ורגשונים\"] }, \"Symbols\": { \"v\": [\"סמלים\"] }, \"Travel & Places\": { \"v\": [\"טיולים ומקומות\"] } } }, { \"l\": \"hr\", \"t\": { \"Activities\": { \"v\": [\"Aktivnosti\"] }, \"Animals & Nature\": { \"v\": [\"Životinje i priroda\"] }, \"Custom\": { \"v\": [\"Prlagođeno\"] }, \"Dark skin tone\": { \"v\": [\"Tamna nijansa\"] }, \"Emoji picker\": { \"v\": [\"Odabir emojija\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana i piće\"] }, \"Frequently used\": { \"v\": [\"Često korišteno\"] }, \"Light skin tone\": { \"v\": [\"Svjetla nijansa\"] }, \"Medium dark skin tone\": { \"v\": [\"Srednje tamna nijansa\"] }, \"Medium light skin tone\": { \"v\": [\"Srednje svjetla nijansa\"] }, \"Medium skin tone\": { \"v\": [\"Srednja nijansa\"] }, \"Neutral skin color\": { \"v\": [\"Neutralna nijansa\"] }, \"Objects\": { \"v\": [\"Objekti\"] }, \"People & Body\": { \"v\": [\"Ljudi i tijelo\"] }, \"Pick an emoji\": { \"v\": [\"Odaberi emoji\"] }, \"Search emoji\": { \"v\": [\"Traži emoji\"] }, \"Search results\": { \"v\": [\"Rezultati pretraživanja\"] }, \"Selected\": { \"v\": [\"Odabrano\"] }, \"Skin tone\": { \"v\": [\"Nijansa\"] }, \"Smileys & Emotion\": { \"v\": [\"Smajlići i emocije\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Putovanja i mjesta\"] } } }, { \"l\": \"hu\", \"t\": { \"Activities\": { \"v\": [\"Tevékenységek\"] }, \"Animals & Nature\": { \"v\": [\"Állatok és természet\"] }, \"Custom\": { \"v\": [\"Egyéni\"] }, \"Dark skin tone\": { \"v\": [\"Sötét bőrtónus\"] }, \"Emoji picker\": { \"v\": [\"Emodzsiválasztó\"] }, \"Flags\": { \"v\": [\"Zászlók\"] }, \"Food & Drink\": { \"v\": [\"Étel és ital\"] }, \"Frequently used\": { \"v\": [\"Gyakran használt\"] }, \"Light skin tone\": { \"v\": [\"Világos bőrtónus\"] }, \"Medium dark skin tone\": { \"v\": [\"Közepesen sötét bőrtónus\"] }, \"Medium light skin tone\": { \"v\": [\"Közepesen világos bőrtónus\"] }, \"Medium skin tone\": { \"v\": [\"Közepes bőrtónus\"] }, \"Neutral skin color\": { \"v\": [\"Semleges bőrszín\"] }, \"Objects\": { \"v\": [\"Tárgyak\"] }, \"People & Body\": { \"v\": [\"Emberek és test\"] }, \"Pick an emoji\": { \"v\": [\"Válasszon egy emodzsit\"] }, \"Search emoji\": { \"v\": [\"Emodzsi keresése\"] }, \"Search results\": { \"v\": [\"Találatok\"] }, \"Selected\": { \"v\": [\"Kijelölve\"] }, \"Skin tone\": { \"v\": [\"Bőrtónus\"] }, \"Smileys & Emotion\": { \"v\": [\"Mosolyok és érzelmek\"] }, \"Symbols\": { \"v\": [\"Szimbólumok\"] }, \"Travel & Places\": { \"v\": [\"Utazás és helyek\"] } } }, { \"l\": \"id\", \"t\": { \"Activities\": { \"v\": [\"Aktivitas\"] }, \"Animals & Nature\": { \"v\": [\"Satwa dan Alam\"] }, \"Custom\": { \"v\": [\"Khusus\"] }, \"Dark skin tone\": { \"v\": [\"Warna kulit gelap\"] }, \"Emoji picker\": { \"v\": [\"Pemilih emoji\"] }, \"Flags\": { \"v\": [\"Tanda\"] }, \"Food & Drink\": { \"v\": [\"Makanan dan Minuman\"] }, \"Frequently used\": { \"v\": [\"Sering digunakan\"] }, \"Light skin tone\": { \"v\": [\"Warna kulit terang\"] }, \"Medium dark skin tone\": { \"v\": [\"Warna kulit sedang gelap\"] }, \"Medium light skin tone\": { \"v\": [\"Warna kulit sedang terang\"] }, \"Medium skin tone\": { \"v\": [\"Warna kulit sedang\"] }, \"Neutral skin color\": { \"v\": [\"Warna kulit netral\"] }, \"Objects\": { \"v\": [\"Objek\"] }, \"People & Body\": { \"v\": [\"Orang & Badan\"] }, \"Pick an emoji\": { \"v\": [\"Pilih emoji\"] }, \"Search emoji\": { \"v\": [\"Cari emoji\"] }, \"Search results\": { \"v\": [\"Hasil pencarian\"] }, \"Selected\": { \"v\": [\"Dipilih\"] }, \"Skin tone\": { \"v\": [\"Warna kulit\"] }, \"Smileys & Emotion\": { \"v\": [\"Senyuman & Perasaan\"] }, \"Symbols\": { \"v\": [\"Simbol\"] }, \"Travel & Places\": { \"v\": [\"Perjalanan & Tempat\"] } } }, { \"l\": \"is\", \"t\": { \"Activities\": { \"v\": [\"Aðgerðir\"] }, \"Animals & Nature\": { \"v\": [\"Dýr og náttúra\"] }, \"Custom\": { \"v\": [\"Sérsniðið\"] }, \"Dark skin tone\": { \"v\": [\"Dökkur húðlitur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-táknmyndaval\"] }, \"Flags\": { \"v\": [\"Flögg\"] }, \"Food & Drink\": { \"v\": [\"Matur og drykkur\"] }, \"Frequently used\": { \"v\": [\"Oftast notað\"] }, \"Light skin tone\": { \"v\": [\"Ljós húðlitur\"] }, \"Medium dark skin tone\": { \"v\": [\"Meðaldökkur húðlitur\"] }, \"Medium light skin tone\": { \"v\": [\"Meðalljós húðlitur\"] }, \"Medium skin tone\": { \"v\": [\"Meðaltónn húðar\"] }, \"Neutral skin color\": { \"v\": [\"Hlutlaus húðlitur\"] }, \"Objects\": { \"v\": [\"Hlutir\"] }, \"People & Body\": { \"v\": [\"Fólk og líkami\"] }, \"Pick an emoji\": { \"v\": [\"Veldu tjáningartákn\"] }, \"Search emoji\": { \"v\": [\"Leita að tjáningartákni\"] }, \"Search results\": { \"v\": [\"Leitarniðurstöður\"] }, \"Selected\": { \"v\": [\"Valið\"] }, \"Skin tone\": { \"v\": [\"Húðlitur\"] }, \"Smileys & Emotion\": { \"v\": [\"Broskallar og tilfinningar\"] }, \"Symbols\": { \"v\": [\"Tákn\"] }, \"Travel & Places\": { \"v\": [\"Staðir og ferðalög\"] } } }, { \"l\": \"it\", \"t\": { \"Activities\": { \"v\": [\"Attività\"] }, \"Animals & Nature\": { \"v\": [\"Animali e natura\"] }, \"Custom\": { \"v\": [\"Personalizzato\"] }, \"Flags\": { \"v\": [\"Bandiere\"] }, \"Food & Drink\": { \"v\": [\"Cibo e bevande\"] }, \"Frequently used\": { \"v\": [\"Usati di frequente\"] }, \"Objects\": { \"v\": [\"Oggetti\"] }, \"People & Body\": { \"v\": [\"Persone e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Scegli un emoji\"] }, \"Search emoji\": { \"v\": [\"Ricerca emoji\"] }, \"Search results\": { \"v\": [\"Risultati di ricerca\"] }, \"Selected\": { \"v\": [\"Selezionato\"] }, \"Smileys & Emotion\": { \"v\": [\"Faccine ed emozioni\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Viaggi e luoghi\"] } } }, { \"l\": \"ja\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ko\", \"t\": { \"Activities\": { \"v\": [\"활동\"] }, \"Animals & Nature\": { \"v\": [\"동물 & 자연\"] }, \"Custom\": { \"v\": [\"맞춤 설정\"] }, \"Dark skin tone\": { \"v\": [\"어두운 피부 톤\"] }, \"Emoji picker\": { \"v\": [\"이모지 선택기\"] }, \"Flags\": { \"v\": [\"깃발\"] }, \"Food & Drink\": { \"v\": [\"음식 & 음료\"] }, \"Frequently used\": { \"v\": [\"자주 쓰임\"] }, \"Light skin tone\": { \"v\": [\"밝은 피부 톤\"] }, \"Medium dark skin tone\": { \"v\": [\"약간 어두운 피부 톤\"] }, \"Medium light skin tone\": { \"v\": [\"약간 밝은 피부 톤\"] }, \"Medium skin tone\": { \"v\": [\"중간 피부 톤\"] }, \"Neutral skin color\": { \"v\": [\"중성적 피부 톤\"] }, \"Objects\": { \"v\": [\"물체\"] }, \"People & Body\": { \"v\": [\"사람 & 신체\"] }, \"Pick an emoji\": { \"v\": [\"이모지 선택\"] }, \"Search emoji\": { \"v\": [\"이모지 검색\"] }, \"Search results\": { \"v\": [\"검색 결과\"] }, \"Selected\": { \"v\": [\"선택됨\"] }, \"Skin tone\": { \"v\": [\"피부 톤\"] }, \"Smileys & Emotion\": { \"v\": [\"스마일리 & 이모티콘\"] }, \"Symbols\": { \"v\": [\"기호\"] }, \"Travel & Places\": { \"v\": [\"여행 & 장소\"] } } }, { \"l\": \"lo\", \"t\": { \"Activities\": { \"v\": [\"ກິດຈະກຳ\"] }, \"Animals & Nature\": { \"v\": [\"ສັດ ແລະ ທຳມະຊາດ\"] }, \"Custom\": { \"v\": [\"ກຳນົດເອງ\"] }, \"Dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມ\"] }, \"Emoji picker\": { \"v\": [\"ໂຕເລືອກອີໂມຈິ\"] }, \"Flags\": { \"v\": [\"ທຸງ\"] }, \"Food & Drink\": { \"v\": [\"ອາຫານ ແລະ ເຄື່ອງດື່ມ\"] }, \"Frequently used\": { \"v\": [\"ໃຊ້ງານເລື້ອຍໆ\"] }, \"Light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນ\"] }, \"Medium dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມປານກາງ\"] }, \"Medium light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນປານກາງ\"] }, \"Medium skin tone\": { \"v\": [\"ໂຕນສີຜິວປານກາງ\"] }, \"Neutral skin color\": { \"v\": [\"ສີຜິວເປັນກາງ\"] }, \"Objects\": { \"v\": [\"ວັດຖຸ\"] }, \"People & Body\": { \"v\": [\"ຄົນ ແລະ ຮ່າງກາຍ\"] }, \"Pick an emoji\": { \"v\": [\"ເລືອກອີໂມຈິ\"] }, \"Search emoji\": { \"v\": [\"ຄົ້ນຫາອີໂມຈິ\"] }, \"Search results\": { \"v\": [\"ຜົນການຄົ້ນຫາ\"] }, \"Selected\": { \"v\": [\"ເລືອກແລ້ວ\"] }, \"Skin tone\": { \"v\": [\"ໂຕນສີຜິວ\"] }, \"Smileys & Emotion\": { \"v\": [\"ໜ້າຍິ້ມ ແລະ ອາລົມ\"] }, \"Symbols\": { \"v\": [\"ສັນຍາລັກ\"] }, \"Travel & Places\": { \"v\": [\"ການເດີນທາງ ແລະ ສະຖານທີ່\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Activities\": { \"v\": [\"Veiklos\"] }, \"Animals & Nature\": { \"v\": [\"Gyvūnai ir gamta\"] }, \"Custom\": { \"v\": [\"Tinkinti\"] }, \"Dark skin tone\": { \"v\": [\"Tamsios odos atspalvis\"] }, \"Emoji picker\": { \"v\": [\"Emociukų parinkiklis\"] }, \"Flags\": { \"v\": [\"Vėliavos\"] }, \"Food & Drink\": { \"v\": [\"Maistas ir gėrimai\"] }, \"Frequently used\": { \"v\": [\"Dažniausiai naudoti\"] }, \"Light skin tone\": { \"v\": [\"Šviesus odos tonas\"] }, \"Medium dark skin tone\": { \"v\": [\"Vidutinio tamsumo odos tonas\"] }, \"Medium light skin tone\": { \"v\": [\"Vidutinio šviesumo odos tonas\"] }, \"Medium skin tone\": { \"v\": [\"Vidutinis odos tonas\"] }, \"Neutral skin color\": { \"v\": [\"Neutrali odos spalva\"] }, \"Objects\": { \"v\": [\"Objektai\"] }, \"People & Body\": { \"v\": [\"Žmonės ir kūnas\"] }, \"Pick an emoji\": { \"v\": [\"Pasirinkti emociuką\"] }, \"Search emoji\": { \"v\": [\"Ieškoti emociukų\"] }, \"Search results\": { \"v\": [\"Paieškos rezultatai\"] }, \"Selected\": { \"v\": [\"Pasirinkta\"] }, \"Skin tone\": { \"v\": [\"Odos tonas\"] }, \"Smileys & Emotion\": { \"v\": [\"Šypsenos ir emocijos\"] }, \"Symbols\": { \"v\": [\"Simboliai\"] }, \"Travel & Places\": { \"v\": [\"Kelionės ir vietos\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животни & Природа\"] }, \"Custom\": { \"v\": [\"Прилагодени\"] }, \"Dark skin tone\": { \"v\": [\"Темна боја на кожа\"] }, \"Emoji picker\": { \"v\": [\"Избор на emoji\"] }, \"Flags\": { \"v\": [\"Знамиња\"] }, \"Food & Drink\": { \"v\": [\"Храна & Пијалоци\"] }, \"Frequently used\": { \"v\": [\"Најчесто користени\"] }, \"Light skin tone\": { \"v\": [\"Светла кожа\"] }, \"Medium dark skin tone\": { \"v\": [\"Средно темна кожа\"] }, \"Medium light skin tone\": { \"v\": [\"Средно светла кожа\"] }, \"Medium skin tone\": { \"v\": [\"Средна кожа\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја на кожа\"] }, \"Objects\": { \"v\": [\"Објекти\"] }, \"People & Body\": { \"v\": [\"Луѓе & Тело\"] }, \"Pick an emoji\": { \"v\": [\"Избери емотикон\"] }, \"Search emoji\": { \"v\": [\"Барај emoji\"] }, \"Search results\": { \"v\": [\"Резултати од барувањето\"] }, \"Selected\": { \"v\": [\"Избрано\"] }, \"Skin tone\": { \"v\": [\"Боја на кожа\"] }, \"Smileys & Emotion\": { \"v\": [\"Смешковци & Емотикони\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Патувања & Места\"] } } }, { \"l\": \"mn\", \"t\": { \"Activities\": { \"v\": [\"Үйл ажиллагаа\"] }, \"Animals & Nature\": { \"v\": [\"Амьтан & Байгаль\"] }, \"Custom\": { \"v\": [\"Тусгай\"] }, \"Dark skin tone\": { \"v\": [\"Бараан арьсны өнгө\"] }, \"Emoji picker\": { \"v\": [\"Эможи сонгогч\"] }, \"Flags\": { \"v\": [\"Тугнууд\"] }, \"Food & Drink\": { \"v\": [\"Хоол & Ундаа\"] }, \"Frequently used\": { \"v\": [\"Байнга хэрэглэдэг\"] }, \"Light skin tone\": { \"v\": [\"Цайвар арьсны өнгө\"] }, \"Medium dark skin tone\": { \"v\": [\"Дунд бараан арьсны өнгө\"] }, \"Medium light skin tone\": { \"v\": [\"Дунд цайвар арьсны өнгө\"] }, \"Medium skin tone\": { \"v\": [\"Дунд арьсны өнгө\"] }, \"Neutral skin color\": { \"v\": [\"Саарал арьсны өнгө\"] }, \"Objects\": { \"v\": [\"Объектууд\"] }, \"People & Body\": { \"v\": [\"Хүмүүс & Бие\"] }, \"Pick an emoji\": { \"v\": [\"Эможи сонгох\"] }, \"Search emoji\": { \"v\": [\"Эможи хайх\"] }, \"Search results\": { \"v\": [\"Хайлтын үр дүн\"] }, \"Selected\": { \"v\": [\"Сонгосон\"] }, \"Skin tone\": { \"v\": [\"Арьсны өнгө\"] }, \"Smileys & Emotion\": { \"v\": [\"Инээмсэглэл & Сэтгэл хөдлөл\"] }, \"Symbols\": { \"v\": [\"Тэмдэгтүүд\"] }, \"Travel & Places\": { \"v\": [\"Аялал & Газрууд\"] } } }, { \"l\": \"my\", \"t\": { \"Activities\": { \"v\": [\"ပြုလုပ်ဆောင်တာများ\"] }, \"Animals & Nature\": { \"v\": [\"တိရစ္ဆာန်များနှင့် သဘာဝ\"] }, \"Custom\": { \"v\": [\"အလိုကျချိန်ညှိမှု\"] }, \"Flags\": { \"v\": [\"အလံများ\"] }, \"Food & Drink\": { \"v\": [\"အစားအသောက်\"] }, \"Frequently used\": { \"v\": [\"မကြာခဏအသုံးပြုသော\"] }, \"Objects\": { \"v\": [\"အရာဝတ္ထုများ\"] }, \"People & Body\": { \"v\": [\"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်\"] }, \"Pick an emoji\": { \"v\": [\"အီမိုဂျီရွေးရန်\"] }, \"Search results\": { \"v\": [\"ရှာဖွေမှု ရလဒ်များ\"] }, \"Smileys & Emotion\": { \"v\": [\"စမိုင်လီများနှင့် အီမိုရှင်း\"] }, \"Symbols\": { \"v\": [\"သင်္ကေတများ\"] }, \"Travel & Places\": { \"v\": [\"ခရီးသွားလာခြင်းနှင့် နေရာများ\"] } } }, { \"l\": \"nb\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr og natur\"] }, \"Custom\": { \"v\": [\"Tilpasset\"] }, \"Dark skin tone\": { \"v\": [\"Mørk hudtone\"] }, \"Emoji picker\": { \"v\": [\"Emoji-velger\"] }, \"Flags\": { \"v\": [\"Flagg\"] }, \"Food & Drink\": { \"v\": [\"Mat og drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brukt\"] }, \"Light skin tone\": { \"v\": [\"Lys hudtone\"] }, \"Medium dark skin tone\": { \"v\": [\"Middels mørk hudtone\"] }, \"Medium light skin tone\": { \"v\": [\"Middels lys hudtone\"] }, \"Medium skin tone\": { \"v\": [\"Middels hudtone\"] }, \"Neutral skin color\": { \"v\": [\"Nøytral hudfarge\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker og kropp\"] }, \"Pick an emoji\": { \"v\": [\"Velg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søk emoji\"] }, \"Search results\": { \"v\": [\"Søkeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Hudtone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smilefjes og følelser\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Reise og steder\"] } } }, { \"l\": \"nl\", \"t\": { \"Activities\": { \"v\": [\"Activiteiten\"] }, \"Animals & Nature\": { \"v\": [\"Dieren & Natuur\"] }, \"Custom\": { \"v\": [\"Aangepast\"] }, \"Dark skin tone\": { \"v\": [\"Donkere huidskleur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-kiezer\"] }, \"Flags\": { \"v\": [\"Vlaggen\"] }, \"Food & Drink\": { \"v\": [\"Eten & Drinken\"] }, \"Frequently used\": { \"v\": [\"Vaak gebruikt\"] }, \"Light skin tone\": { \"v\": [\"Lichte huidskleur\"] }, \"Medium dark skin tone\": { \"v\": [\"Gemiddeld donkere huidskleur\"] }, \"Medium light skin tone\": { \"v\": [\"Gemiddeld lichte huidskleur\"] }, \"Medium skin tone\": { \"v\": [\"Gemiddelde huidskleur\"] }, \"Neutral skin color\": { \"v\": [\"Neutrale huidskleur\"] }, \"Objects\": { \"v\": [\"Objecten\"] }, \"People & Body\": { \"v\": [\"Mensen & Lichaam\"] }, \"Pick an emoji\": { \"v\": [\"Kies een emoji\"] }, \"Search emoji\": { \"v\": [\"Emoji zoeken\"] }, \"Search results\": { \"v\": [\"Zoekresultaten\"] }, \"Selected\": { \"v\": [\"Geselecteerd\"] }, \"Skin tone\": { \"v\": [\"Huidskleur\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotie\"] }, \"Symbols\": { \"v\": [\"Symbolen\"] }, \"Travel & Places\": { \"v\": [\"Reizen & Plaatsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Activities\": { \"v\": [\"Aktywność\"] }, \"Animals & Nature\": { \"v\": [\"Zwierzęta i natura\"] }, \"Custom\": { \"v\": [\"Zwyczajne\"] }, \"Dark skin tone\": { \"v\": [\"Ciemna tonacja\"] }, \"Emoji picker\": { \"v\": [\"Wybierz Emoji\"] }, \"Flags\": { \"v\": [\"Flagi\"] }, \"Food & Drink\": { \"v\": [\"Jedzenie i picie\"] }, \"Frequently used\": { \"v\": [\"Często używane\"] }, \"Light skin tone\": { \"v\": [\"Jasny odcień skóry\"] }, \"Medium dark skin tone\": { \"v\": [\"Średnio ciemny odcień skóry\"] }, \"Medium light skin tone\": { \"v\": [\"Średnio jasny odcień skóry\"] }, \"Medium skin tone\": { \"v\": [\"Średni odcień skóry\"] }, \"Neutral skin color\": { \"v\": [\"Neutralny kolor skróry\"] }, \"Objects\": { \"v\": [\"Obiekty\"] }, \"People & Body\": { \"v\": [\"Ludzie i ciało\"] }, \"Pick an emoji\": { \"v\": [\"Wybierz emoji\"] }, \"Search emoji\": { \"v\": [\"Szukaj emoji\"] }, \"Search results\": { \"v\": [\"Wyniki wyszukiwania\"] }, \"Selected\": { \"v\": [\"Wybrane\"] }, \"Skin tone\": { \"v\": [\"Kolor skóry\"] }, \"Smileys & Emotion\": { \"v\": [\"Buźki i emotikony\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Podróże i miejsca\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais & Natureza\"] }, \"Custom\": { \"v\": [\"Personalizados\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"Seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida & Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais usados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele meio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele meio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Tom de pele neutro\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas & Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagem & Lugares\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e Natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais utilizados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele escuro médio\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele claro médio\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pele neutra\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas e Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagens e Lugares\"] } } }, { \"l\": \"ro\", \"t\": { \"Activities\": { \"v\": [\"Activități\"] }, \"Animals & Nature\": { \"v\": [\"Animale și natură\"] }, \"Custom\": { \"v\": [\"Personalizat\"] }, \"Flags\": { \"v\": [\"Marcaje\"] }, \"Food & Drink\": { \"v\": [\"Alimente și băuturi\"] }, \"Frequently used\": { \"v\": [\"Utilizate frecvent\"] }, \"Objects\": { \"v\": [\"Obiecte\"] }, \"People & Body\": { \"v\": [\"Oameni și corp\"] }, \"Pick an emoji\": { \"v\": [\"Alege un emoji\"] }, \"Search emoji\": { \"v\": [\"Căutare emoji\"] }, \"Search results\": { \"v\": [\"Rezultatele căutării\"] }, \"Selected\": { \"v\": [\"Selectat\"] }, \"Smileys & Emotion\": { \"v\": [\"Zâmbete și emoții\"] }, \"Symbols\": { \"v\": [\"Simboluri\"] }, \"Travel & Places\": { \"v\": [\"Călătorii și locuri\"] } } }, { \"l\": \"ru\", \"t\": { \"Activities\": { \"v\": [\"События\"] }, \"Animals & Nature\": { \"v\": [\"Животные и природа \"] }, \"Custom\": { \"v\": [\"Пользовательское\"] }, \"Dark skin tone\": { \"v\": [\"Темный оттенок\"] }, \"Emoji picker\": { \"v\": [\"Подборщик эмодзи\"] }, \"Flags\": { \"v\": [\"Флаги\"] }, \"Food & Drink\": { \"v\": [\"Еда, напиток\"] }, \"Frequently used\": { \"v\": [\"Часто используемый\"] }, \"Light skin tone\": { \"v\": [\"Светлый оттенок\"] }, \"Medium dark skin tone\": { \"v\": [\"Средний темный оттенок\"] }, \"Medium light skin tone\": { \"v\": [\"Средний светлый оттенок\"] }, \"Medium skin tone\": { \"v\": [\"Средний оттенок\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральный оттенок\"] }, \"Objects\": { \"v\": [\"Объекты\"] }, \"People & Body\": { \"v\": [\"Люди и тело\"] }, \"Pick an emoji\": { \"v\": [\"Выберите эмодзи\"] }, \"Search emoji\": { \"v\": [\"Поиск эмодзи\"] }, \"Search results\": { \"v\": [\"Результаты поиска\"] }, \"Selected\": { \"v\": [\"Выбрано\"] }, \"Skin tone\": { \"v\": [\"Оттенок скина\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайлики и эмоции\"] }, \"Symbols\": { \"v\": [\"Символы\"] }, \"Travel & Places\": { \"v\": [\"Путешествия и места\"] } } }, { \"l\": \"sk\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvieratá a príroda\"] }, \"Custom\": { \"v\": [\"Vlastné\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý vzhľad\"] }, \"Emoji picker\": { \"v\": [\"Výber emodži\"] }, \"Flags\": { \"v\": [\"Vlajky\"] }, \"Food & Drink\": { \"v\": [\"Jedlo a nápoje\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Svetlý vzhľad\"] }, \"Medium dark skin tone\": { \"v\": [\"Stredne tmavý vzhľad\"] }, \"Medium light skin tone\": { \"v\": [\"Stredne svetlý vzhľad\"] }, \"Medium skin tone\": { \"v\": [\"Stredný vzhľad\"] }, \"Neutral skin color\": { \"v\": [\"Neutrálny vzhľad\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Ľudia a telo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrať emodži\"] }, \"Search emoji\": { \"v\": [\"Vyhľadať emoji\"] }, \"Search results\": { \"v\": [\"Výsledky vyhľadávania\"] }, \"Selected\": { \"v\": [\"Vybraný\"] }, \"Skin tone\": { \"v\": [\"Vzhľad\"] }, \"Smileys & Emotion\": { \"v\": [\"Smajlíky a emócie\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestovanie a miesta\"] } } }, { \"l\": \"sl\", \"t\": { \"Activities\": { \"v\": [\"Dejavnosti\"] }, \"Animals & Nature\": { \"v\": [\"Živali in Narava\"] }, \"Custom\": { \"v\": [\"Po meri\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana in Pijača\"] }, \"Frequently used\": { \"v\": [\"Pogostost uporabe\"] }, \"Objects\": { \"v\": [\"Predmeti\"] }, \"People & Body\": { \"v\": [\"Ljudje in Telo\"] }, \"Pick an emoji\": { \"v\": [\"Izbor izrazne ikone\"] }, \"Search results\": { \"v\": [\"Zadetki iskanja\"] }, \"Smileys & Emotion\": { \"v\": [\"Izrazne ikone\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Potovanja in Kraji\"] } } }, { \"l\": \"sr\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животиње и природа\"] }, \"Custom\": { \"v\": [\"Произвољно\"] }, \"Dark skin tone\": { \"v\": [\"Тамни тен коже\"] }, \"Emoji picker\": { \"v\": [\"Бирач емођија\"] }, \"Flags\": { \"v\": [\"Заставе\"] }, \"Food & Drink\": { \"v\": [\"Храна и пиће\"] }, \"Frequently used\": { \"v\": [\"Често коришћено\"] }, \"Light skin tone\": { \"v\": [\"Светли тен коже\"] }, \"Medium dark skin tone\": { \"v\": [\"Средње тамни тен коже\"] }, \"Medium light skin tone\": { \"v\": [\"Средње светли тен коже\"] }, \"Medium skin tone\": { \"v\": [\"Средњи тен коже\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја коже\"] }, \"Objects\": { \"v\": [\"Предмети\"] }, \"People & Body\": { \"v\": [\"Људи и тело\"] }, \"Pick an emoji\": { \"v\": [\"Изаберите емођи\"] }, \"Search emoji\": { \"v\": [\"Претражи емођи\"] }, \"Search results\": { \"v\": [\"Резултати претраге\"] }, \"Selected\": { \"v\": [\"Изабрано\"] }, \"Skin tone\": { \"v\": [\"Тен коже\"] }, \"Smileys & Emotion\": { \"v\": [\"Смајлији и емоције\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Путовање и места\"] } } }, { \"l\": \"sv\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Djur & Natur\"] }, \"Custom\": { \"v\": [\"Anpassad\"] }, \"Dark skin tone\": { \"v\": [\"Mörk hudton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-väljare\"] }, \"Flags\": { \"v\": [\"Flaggor\"] }, \"Food & Drink\": { \"v\": [\"Mat & Dryck\"] }, \"Frequently used\": { \"v\": [\"Används ofta\"] }, \"Light skin tone\": { \"v\": [\"Ljus hudton\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mörk hudton\"] }, \"Medium light skin tone\": { \"v\": [\"Medium ljus hudton\"] }, \"Medium skin tone\": { \"v\": [\"Medium hudton\"] }, \"Neutral skin color\": { \"v\": [\"Neutral hudfärg\"] }, \"Objects\": { \"v\": [\"Objekt\"] }, \"People & Body\": { \"v\": [\"Kropp & Själ\"] }, \"Pick an emoji\": { \"v\": [\"Välj en emoji\"] }, \"Search emoji\": { \"v\": [\"Sök emoji\"] }, \"Search results\": { \"v\": [\"Sökresultat\"] }, \"Selected\": { \"v\": [\"Vald\"] }, \"Skin tone\": { \"v\": [\"Hudton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Känslor\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Resor & Sevärdigheter\"] } } }, { \"l\": \"tr\", \"t\": { \"Activities\": { \"v\": [\"Etkinlikler\"] }, \"Animals & Nature\": { \"v\": [\"Hayvanlar ve doğa\"] }, \"Custom\": { \"v\": [\"Özel\"] }, \"Dark skin tone\": { \"v\": [\"Koyu deri rengi\"] }, \"Emoji picker\": { \"v\": [\"Emoji seçici\"] }, \"Flags\": { \"v\": [\"Bayraklar\"] }, \"Food & Drink\": { \"v\": [\"Yeme ve içme\"] }, \"Frequently used\": { \"v\": [\"Sık kullanılanlar\"] }, \"Light skin tone\": { \"v\": [\"Açık deri rengi\"] }, \"Medium dark skin tone\": { \"v\": [\"Orta koyu deri rengi\"] }, \"Medium light skin tone\": { \"v\": [\"Orta açık deri rengi\"] }, \"Medium skin tone\": { \"v\": [\"Orta deri rengi\"] }, \"Neutral skin color\": { \"v\": [\"Nötr deri rengi\"] }, \"Objects\": { \"v\": [\"Nesneler\"] }, \"People & Body\": { \"v\": [\"İnsanlar ve beden\"] }, \"Pick an emoji\": { \"v\": [\"Bir emoji seçin\"] }, \"Search emoji\": { \"v\": [\"Emoji ara\"] }, \"Search results\": { \"v\": [\"Arama sonuçları\"] }, \"Selected\": { \"v\": [\"Seçilmiş\"] }, \"Skin tone\": { \"v\": [\"Deri rengi\"] }, \"Smileys & Emotion\": { \"v\": [\"İfadeler ve duygular\"] }, \"Symbols\": { \"v\": [\"Simgeler\"] }, \"Travel & Places\": { \"v\": [\"Gezi ve yerler\"] } } }, { \"l\": \"uk\", \"t\": { \"Activities\": { \"v\": [\"Діяльність\"] }, \"Animals & Nature\": { \"v\": [\"Тварини та природа\"] }, \"Custom\": { \"v\": [\"Власне\"] }, \"Dark skin tone\": { \"v\": [\"Смаглявий\"] }, \"Emoji picker\": { \"v\": [\"Вибір емоційки\"] }, \"Flags\": { \"v\": [\"Прапори\"] }, \"Food & Drink\": { \"v\": [\"Їжа та напої\"] }, \"Frequently used\": { \"v\": [\"Найчастіші\"] }, \"Light skin tone\": { \"v\": [\"Світла шкіра\"] }, \"Medium dark skin tone\": { \"v\": [\"Какао\"] }, \"Medium light skin tone\": { \"v\": [\"Лате\"] }, \"Medium skin tone\": { \"v\": [\"Середній колір шкіри\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральний колір шкіри\"] }, \"Objects\": { \"v\": [\"Об'єкти\"] }, \"People & Body\": { \"v\": [\"Люди та жести\"] }, \"Pick an emoji\": { \"v\": [\"Виберіть емоційку\"] }, \"Search emoji\": { \"v\": [\"Шукати емоційки\"] }, \"Search results\": { \"v\": [\"Результати пошуку\"] }, \"Selected\": { \"v\": [\"Вибрано\"] }, \"Skin tone\": { \"v\": [\"Колір шкіри\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайли та емоції\"] }, \"Symbols\": { \"v\": [\"Символи\"] }, \"Travel & Places\": { \"v\": [\"Поїздки та місця\"] } } }, { \"l\": \"uz\", \"t\": { \"Activities\": { \"v\": [\"Faolliklar\"] }, \"Animals & Nature\": { \"v\": [\"Hayvonlar va Tabiat\"] }, \"Custom\": { \"v\": [\"Moslashtirilgan\"] }, \"Dark skin tone\": { \"v\": [\"Qora rangdagi qoplama\"] }, \"Emoji picker\": { \"v\": [\"Emoji tanlagich\"] }, \"Flags\": { \"v\": [\"Bayroqlar\"] }, \"Food & Drink\": { \"v\": [\"Oziq-ovqat va ichimliklar\"] }, \"Frequently used\": { \"v\": [\"Tez-tez ishlatiladi\"] }, \"Light skin tone\": { \"v\": [\"Yorug` rangdagi qoplama\"] }, \"Medium dark skin tone\": { \"v\": [\"O`rtacha qorong`u rangdagi qoplama\"] }, \"Medium light skin tone\": { \"v\": [\"O`rtacha yorug`lik rangdagi qoplama\"] }, \"Medium skin tone\": { \"v\": [\"O`rtacha rangdagi qoplama\"] }, \"Neutral skin color\": { \"v\": [\"Neytral rang\"] }, \"Objects\": { \"v\": [\"Obyekt\"] }, \"People & Body\": { \"v\": [\"Odamlar va Tana\"] }, \"Pick an emoji\": { \"v\": [\"Emojini tanlang\"] }, \"Search emoji\": { \"v\": [\"Emoji qidirish\"] }, \"Search results\": { \"v\": [\"Qidiruv natijalari\"] }, \"Selected\": { \"v\": [\"Tanlangan\"] }, \"Skin tone\": { \"v\": [\"Odatiy rangdagi qoplama\"] }, \"Smileys & Emotion\": { \"v\": [\"Smayllar va Hissiyotlar\"] }, \"Symbols\": { \"v\": [\"Belgilar\"] }, \"Travel & Places\": { \"v\": [\"Sayohat va Joylar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Activities\": { \"v\": [\"活动\"] }, \"Animals & Nature\": { \"v\": [\"动物 & 自然\"] }, \"Custom\": { \"v\": [\"自定义\"] }, \"Dark skin tone\": { \"v\": [\"深色皮肤\"] }, \"Emoji picker\": { \"v\": [\"表情拾取器\"] }, \"Flags\": { \"v\": [\"旗帜\"] }, \"Food & Drink\": { \"v\": [\"食物 & 饮品\"] }, \"Frequently used\": { \"v\": [\"经常使用\"] }, \"Light skin tone\": { \"v\": [\"浅色皮肤\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深色皮肤\"] }, \"Medium light skin tone\": { \"v\": [\"中等浅色皮肤\"] }, \"Medium skin tone\": { \"v\": [\"中等皮肤\"] }, \"Neutral skin color\": { \"v\": [\"中性皮肤颜色\"] }, \"Objects\": { \"v\": [\"物体\"] }, \"People & Body\": { \"v\": [\"人 & 身体\"] }, \"Pick an emoji\": { \"v\": [\"选择一个表情\"] }, \"Search emoji\": { \"v\": [\"搜索表情\"] }, \"Search results\": { \"v\": [\"搜索结果\"] }, \"Selected\": { \"v\": [\"选择\"] }, \"Skin tone\": { \"v\": [\"皮肤\"] }, \"Smileys & Emotion\": { \"v\": [\"笑脸 & 情感\"] }, \"Symbols\": { \"v\": [\"符号\"] }, \"Travel & Places\": { \"v\": [\"旅游 & 地点\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號選擇器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"經常使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性色膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號挑選器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"最近使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選取\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }];\nconst t6 = [{ \"l\": \"ar\", \"t\": { \"Add to a project\": { \"v\": [\"أضف إلى مشروع\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ربط عناصر بمشروع لتسهيل العثور عليها\"] }, \"Failed to add the item to the project\": { \"v\": [\"تعذر ربط عنصر بمشروع\"] }, \"Failed to create a project\": { \"v\": [\"تعذر إنشاء مشروع\"] }, \"Failed to rename the project\": { \"v\": [\"تعذّر تغيير اسم المشروع\"] }, \"Type to search for existing projects\": { \"v\": [\"أكتُب للبحث في المشاريع الموجودة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Add to a project\": { \"v\": [\"Přidat do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Připojte položky k projektu, čímž budou snáze dohledatelné\"] }, \"Failed to add the item to the project\": { \"v\": [\"Položku se nepodařilo přidat do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Projekt se nepodařilo vytvořit\"] }, \"Failed to rename the project\": { \"v\": [\"Projekt se nepodařilo přejmenovat\"] }, \"Type to search for existing projects\": { \"v\": [\"Psaním vyhledávejte existující projekty\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Add to a project\": { \"v\": [\"Tilføj til et projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Forbind elementer til et projekt for at gøre dem nemmere at finde\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kunne ikke føje elementet til projektet\"] }, \"Failed to create a project\": { \"v\": [\"Kunne ikke oprette et projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Projektet kunne ikke omdøbes\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for at søge efter eksisterende projekter\"] } } }, { \"l\": \"de\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinde Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinden Sie Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Add to a project\": { \"v\": [\"Προσθήκη σε ένα έργο\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Συνδέστε αντικείμενα σε ένα έργο για να τα βρίσκετε πιο εύκολα\"] }, \"Failed to add the item to the project\": { \"v\": [\"Αποτυχία προσθήκης του αντικειμένου στο έργο\"] }, \"Failed to create a project\": { \"v\": [\"Αποτυχία δημιουργίας έργου\"] }, \"Failed to rename the project\": { \"v\": [\"Αποτυχία μετονομασίας του έργου\"] }, \"Type to search for existing projects\": { \"v\": [\"Πληκτρολογήστε για αναζήτηση υπαρχόντων έργων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Add to a project\": { \"v\": [\"Add to a project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connect items to a project to make them easier to find\"] }, \"Failed to add the item to the project\": { \"v\": [\"Failed to add the item to the project\"] }, \"Failed to create a project\": { \"v\": [\"Failed to create a project\"] }, \"Failed to rename the project\": { \"v\": [\"Failed to rename the project\"] }, \"Type to search for existing projects\": { \"v\": [\"Type to search for existing projects\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte items a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear un proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte elementos a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear el proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Add to a project\": { \"v\": [\"Lisa projekti\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Selleks, et objekte oleks lihtsam leida, seo nad projektiga\"] }, \"Failed to add the item to the project\": { \"v\": [\"Objekti lisamine projekti ei õnnestunud\"] }, \"Failed to create a project\": { \"v\": [\"Projekti loomine ei õnnestunud\"] }, \"Failed to rename the project\": { \"v\": [\"Projekti nime muutmine ei õnnestunud\"] }, \"Type to search for existing projects\": { \"v\": [\"Olemasolevate projektide otsimiseks kirjuta\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Add to a project\": { \"v\": [\"افزودن به پروژه\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"برای پیدا کردن راحت‌تر، مواردی را به پروژه متصل کنید\"] }, \"Failed to add the item to the project\": { \"v\": [\"موارد به پروژه اضافه نشد\"] }, \"Failed to create a project\": { \"v\": [\"ایجاد پروژه نامؤفق بود\"] }, \"Failed to rename the project\": { \"v\": [\"تغییر نام پروژه انجام نشد\"] }, \"Type to search for existing projects\": { \"v\": [\"برای جستجوی پروژه‌های موجود تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Add to a project\": { \"v\": [\"Lisää projektiin\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Yhdistä kohteet projektiin, jotta ne olisivat helpompia löytää\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kohteiden lisääminen projektiin epäonnistui\"] }, \"Failed to create a project\": { \"v\": [\"Projektin luominen epäonnistui\"] }, \"Failed to rename the project\": { \"v\": [\"Projektin nimeäminen epäonnistui\"] }, \"Type to search for existing projects\": { \"v\": [\"Kirjoita etsiäksesi olemassaolevia projekteja\"] } } }, { \"l\": \"fr\", \"t\": { \"Add to a project\": { \"v\": [\"Ajouter à un projet\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connectez des éléments à un projet pour les retrouver plus facilement\"] }, \"Failed to add the item to the project\": { \"v\": [\"Impossible d'ajouter l'élément au projet\"] }, \"Failed to create a project\": { \"v\": [\"Impossible de créer un projet\"] }, \"Failed to rename the project\": { \"v\": [\"Impossible de renommer le projet\"] }, \"Type to search for existing projects\": { \"v\": [\"Tapez pour rechercher des projets existants\"] } } }, { \"l\": \"ga\", \"t\": { \"Add to a project\": { \"v\": [\"Cuir le tionscadal\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ceangail míreanna le tionscadal chun iad a dhéanamh níos éasca iad a aimsiú\"] }, \"Failed to add the item to the project\": { \"v\": [\"Theip ar an mír a chur leis an tionscadal\"] }, \"Failed to create a project\": { \"v\": [\"Theip ar thionscadal a chruthú\"] }, \"Failed to rename the project\": { \"v\": [\"Theip ar an tionscadal a athainmniú\"] }, \"Type to search for existing projects\": { \"v\": [\"Clóscríobh chun tionscadail atá ann cheana a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Add to a project\": { \"v\": [\"Engadir a un proxecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar elementos a un proxecto para facelos máis doados de atopar\"] }, \"Failed to add the item to the project\": { \"v\": [\"Produciuse un fallo ao engadir o elemento ao proxecto\"] }, \"Failed to create a project\": { \"v\": [\"Produciuse un fallo ao crear un proxecto\"] }, \"Failed to rename the project\": { \"v\": [\"Produciuse un fallo ao cambiarlle o nome ao proxecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proxectos existentes\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj u projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Povežite stavke s projektom kako biste ih lakše pronašli\"] }, \"Failed to add the item to the project\": { \"v\": [\"Neuspjelo dodavanje stavke u projekt\"] }, \"Failed to create a project\": { \"v\": [\"Neuspjelo stvaranje projekta\"] }, \"Failed to rename the project\": { \"v\": [\"Neuspjelo preimenovanje projekta\"] }, \"Type to search for existing projects\": { \"v\": [\"Upišite za pretraživanje postojećih projekata\"] } } }, { \"l\": \"hu\", \"t\": { \"Add to a project\": { \"v\": [\"Hozzáadás egy projekthez\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Kapcsoljon elemeket egy projekthez, hogy könnyebben megtalálhatók legyenek\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nem sikerült az elem projekthez adása\"] }, \"Failed to create a project\": { \"v\": [\"Nem sikerült a projekt létrehozása\"] }, \"Failed to rename the project\": { \"v\": [\"Nem sikerült a projekt átnevezése\"] }, \"Type to search for existing projects\": { \"v\": [\"Gépeljen a meglévő projektek kereséséhez\"] } } }, { \"l\": \"id\", \"t\": { \"Add to a project\": { \"v\": [\"Tambahkan ke proyek\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Hubungkan item ke proyek agar lebih mudah ditemukan\"] }, \"Failed to add the item to the project\": { \"v\": [\"Gagal menambahkan item ke proyek\"] }, \"Failed to create a project\": { \"v\": [\"Gagal membuat proyek\"] }, \"Failed to rename the project\": { \"v\": [\"Gagal mengganti nama proyek\"] }, \"Type to search for existing projects\": { \"v\": [\"Ketik untuk mencari proyek yang sudah ada\"] } } }, { \"l\": \"is\", \"t\": { \"Add to a project\": { \"v\": [\"Bæta við verkefni\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Tengdu atriði við verkefni til að gera einfaldara að finna þau\"] }, \"Failed to add the item to the project\": { \"v\": [\"Mistókst að bæta atriðinu í verkefnið\"] }, \"Failed to create a project\": { \"v\": [\"Mistókst að útbúa verkefni\"] }, \"Failed to rename the project\": { \"v\": [\"Mistókst að endurnefna verkefnið\"] }, \"Type to search for existing projects\": { \"v\": [\"Skrifaðu hér til að leita að fyrirliggjandi verkefnum\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Add to a project\": { \"v\": [\"プロジェクトに追加する\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"項目をプロジェクトに接続して検索しやすくする\"] }, \"Failed to add the item to the project\": { \"v\": [\"プロジェクトへのアイテムの追加に失敗しました\"] }, \"Failed to create a project\": { \"v\": [\"プロジェクトの作成に失敗しました\"] }, \"Failed to rename the project\": { \"v\": [\"プロジェクトの名前変更に失敗しました\"] }, \"Type to search for existing projects\": { \"v\": [\"既存のプロジェクトを検索するために入力します\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Add to a project\": { \"v\": [\"프로젝트에 추가\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"항목을 더 쉽게 찾을 수 있도록 프로젝트에 연결하세요.\"] }, \"Failed to add the item to the project\": { \"v\": [\"항목을 프로젝트에 추가하는 데 실패함\"] }, \"Failed to create a project\": { \"v\": [\"프로젝트를 만드는 데 실패함\"] }, \"Failed to rename the project\": { \"v\": [\"프로젝트의 이름을 바꾸는 데 실패함\"] }, \"Type to search for existing projects\": { \"v\": [\"입력하여 프로젝트를 검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Add to a project\": { \"v\": [\"ເພີ່ມໃສ່ໂຄງການ\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ເຊື່ອມຕໍ່ລາຍການຕ່າງໆໃສ່ໂຄງການ ເພື່ອເຮັດໃຫ້ຊອກຫາງ່າຍຂຶ້ນ\"] }, \"Failed to add the item to the project\": { \"v\": [\"ບໍ່ສາມາດເພີ່ມລາຍການໃສ່ໂຄງການໄດ້\"] }, \"Failed to create a project\": { \"v\": [\"ບໍ່ສາມາດສ້າງໂຄງການໄດ້\"] }, \"Failed to rename the project\": { \"v\": [\"ບໍ່ສາມາດປ່ຽນຊື່ໂຄງການໄດ້\"] }, \"Type to search for existing projects\": { \"v\": [\"ພິມເພື່ອຄົ້ນຫາໂຄງການທີ່ມີຢູ່\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Add to a project\": { \"v\": [\"Pridėti prie projekto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Priskirkite elementus prie projekto, kad juos būtų lengviau rasti\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepavyko pridėti elemento prie projekto\"] }, \"Failed to create a project\": { \"v\": [\"Nepavyko sukurti projekto\"] }, \"Failed to rename the project\": { \"v\": [\"Nepavyko pervadinti projekto\"] }, \"Type to search for existing projects\": { \"v\": [\"Įveskite tekstą, kad surastumėte esamus projektus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Add to a project\": { \"v\": [\"Додај во проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Поврзете ги елементите со проект за да биде полесно да се најдат\"] }, \"Failed to add the item to the project\": { \"v\": [\"Неуспешно додавање на елементот во проектот\"] }, \"Failed to create a project\": { \"v\": [\"Неуспешно креирање на проект\"] }, \"Failed to rename the project\": { \"v\": [\"Неуспешно преименување на проектот\"] }, \"Type to search for existing projects\": { \"v\": [\"Пишувај за пребарување постоечки проекти\"] } } }, { \"l\": \"mn\", \"t\": { \"Add to a project\": { \"v\": [\"Төсөлд нэмэх\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Хялбар олохын тулд зүйлсийг төсөлтэй холбоно уу\"] }, \"Failed to add the item to the project\": { \"v\": [\"Зүйлийг төсөлд нэмж чадсангүй\"] }, \"Failed to create a project\": { \"v\": [\"Төсөл үүсгэж чадсангүй\"] }, \"Failed to rename the project\": { \"v\": [\"Төслийн нэрийг солиж чадсангүй\"] }, \"Type to search for existing projects\": { \"v\": [\"Одоо байгаа төслүүдийг хайхын тулд бичнэ үү\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Add to a project\": { \"v\": [\"Legge til i et prosjekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Koble elementer til et prosjekt for å gjøre det enklere å finne dem\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kan ikke legge til elementet i prosjektet\"] }, \"Failed to create a project\": { \"v\": [\"Kan ikke opprette et prosjekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunne ikke gi prosjektet nytt navn\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for å søke for eksisterende prosjekter\"] } } }, { \"l\": \"nl\", \"t\": { \"Add to a project\": { \"v\": [\"Toevoegen aan een project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Items aan een project koppelen om ze eenvoudiger te vinden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Toevoegen van item aan project mislukt\"] }, \"Failed to create a project\": { \"v\": [\"Project aanmaken mislukt\"] }, \"Failed to rename the project\": { \"v\": [\"Project hernoemen mislukt\"] }, \"Type to search for existing projects\": { \"v\": [\"Typ om te zoeken naar bestaande projecten\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Połącz elementy z projektem, aby ułatwić ich znalezienie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nie udało się dodać elementu do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nie udało się utworzyć projektu\"] }, \"Failed to rename the project\": { \"v\": [\"Nie udało się zmienić nazwy projektu\"] }, \"Type to search for existing projects\": { \"v\": [\"Wpisz, aby wyszukać istniejące projekty\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar itens a um projeto para encontrá-los mais facilmente\"] }, \"Failed to add the item to the project\": { \"v\": [\"Falha ao adicionar itens ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Falha ao criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Falha ao renomear o projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para pesquisar projetos existentes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ligar itens a um projeto para serem mais facilmente encontrados\"] }, \"Failed to add the item to the project\": { \"v\": [\"Não foi possível adicionar item ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Não foi possível criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Não foi possível alterar o nome do projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para procurar projetos existentes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Add to a project\": { \"v\": [\"Добавить в проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Подключайте элементы к проекту, чтобы их было легче найти\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не удалось добавить элемент в проект\"] }, \"Failed to create a project\": { \"v\": [\"Не удалось создать проект\"] }, \"Failed to rename the project\": { \"v\": [\"Не удалось переименовать проект\"] }, \"Type to search for existing projects\": { \"v\": [\"Введите для поиска существующих проектов\"] } } }, { \"l\": \"sk\", \"t\": { \"Add to a project\": { \"v\": [\"Pridať do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Pridať položky do projektu pre jednoduchšie vyhľadávanie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepodarilo sa pridať položku do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nepodarilo sa vytvoriť projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Nepodarilo sa premenovať projekt\"] }, \"Type to search for existing projects\": { \"v\": [\"Začnite písať pre vyhľadávanie v existujúcich projektoch\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Add to a project\": { \"v\": [\"Додај у пројекат\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Повезује ставке у пројекат како би се лакше пронашле\"] }, \"Failed to add the item to the project\": { \"v\": [\"Није успело додавање ставке у пројекат\"] }, \"Failed to create a project\": { \"v\": [\"Није успело креирање пројекта\"] }, \"Failed to rename the project\": { \"v\": [\"Није успела промена имена пројекта\"] }, \"Type to search for existing projects\": { \"v\": [\"Куцајте да претражите постојеће пројекте\"] } } }, { \"l\": \"sv\", \"t\": { \"Add to a project\": { \"v\": [\"Lägg till i ett projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Anslut objekt till ett projekt för att göra dem lättare att hitta\"] }, \"Failed to add the item to the project\": { \"v\": [\"Det gick inte att lägga till objektet i projektet\"] }, \"Failed to create a project\": { \"v\": [\"Det gick inte att skapa ett projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunde inte byta namn på projektet\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv för att söka efter befintliga projekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Add to a project\": { \"v\": [\"Bir projeye ekle\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ögeleri daha kolay bulmak için bir proje ile ilişkilendirin\"] }, \"Failed to add the item to the project\": { \"v\": [\"Öge projeye eklenemedi\"] }, \"Failed to create a project\": { \"v\": [\"Bir proje oluşturulamadı\"] }, \"Failed to rename the project\": { \"v\": [\"Proje yeniden adlandırılamadı\"] }, \"Type to search for existing projects\": { \"v\": [\"Var olan projeleri aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Add to a project\": { \"v\": [\"Додати до проєкту\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Приєднайте ресурси до проєкту для швидшого пошуку\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не вдалося приєднати ресурс до проєкту\"] }, \"Failed to create a project\": { \"v\": [\"Не вдалося створити проєкт\"] }, \"Failed to rename the project\": { \"v\": [\"Не вдалося перейменувати проєкт\"] }, \"Type to search for existing projects\": { \"v\": [\"Почніть вводити, щоб знайти проєкт\"] } } }, { \"l\": \"uz\", \"t\": { \"Add to a project\": { \"v\": [\"Loyihaga qo'shish\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Elementlarni topishni osonlashtirish uchun ularni loyihaga ulang\"] }, \"Failed to add the item to the project\": { \"v\": [\"Ob'ektni loyihaga qo'shib bo'lmadi\"] }, \"Failed to create a project\": { \"v\": [\"Loyiha yaratib bo‘lmadi\"] }, \"Failed to rename the project\": { \"v\": [\"Loyiha nomini o‘zgartirib bo‘lmadi\"] }, \"Type to search for existing projects\": { \"v\": [\"Mavjud loyihalarni qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Add to a project\": { \"v\": [\"添加至一个项目\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"将条目连接至一个项目以易于查找\"] }, \"Failed to add the item to the project\": { \"v\": [\"添加条目至项目失败\"] }, \"Failed to create a project\": { \"v\": [\"创建项目失败\"] }, \"Failed to rename the project\": { \"v\": [\"重命名项目失败\"] }, \"Type to search for existing projects\": { \"v\": [\"输入以搜索现存项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Add to a project\": { \"v\": [\"添加到方案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連接到方案中,以便更容易找到。\"] }, \"Failed to add the item to the project\": { \"v\": [\"無法將項目添加到方案中\"] }, \"Failed to create a project\": { \"v\": [\"無法創建方案\"] }, \"Failed to rename the project\": { \"v\": [\"無法重命名方案\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜索現有方案\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Add to a project\": { \"v\": [\"新增至專案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連結至專案中以方便尋找\"] }, \"Failed to add the item to the project\": { \"v\": [\"新增項目至專案失敗\"] }, \"Failed to create a project\": { \"v\": [\"建立專案失敗\"] }, \"Failed to rename the project\": { \"v\": [\"重新命名專案失敗\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜尋既有專案\"] } } }];\nconst t7 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Mezerník\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Slet\"] }, \"Enter\": { \"v\": [\"Indtast\"] }, \"Escape\": { \"v\": [\"Afbrud\"] }, \"Shift\": { \"v\": [\"Skift\"] }, \"Space\": { \"v\": [\"Mellemrum\"] }, \"Tab\": { \"v\": [\"Faneblad\"] } } }, { \"l\": \"de\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Strg\"] }, \"Delete\": { \"v\": [\"Entf\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Umschalt\"] }, \"Space\": { \"v\": [\"Leertaste\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Strg\"] }, \"Delete\": { \"v\": [\"Entf\"] }, \"Enter\": { \"v\": [\"Eingabe\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Umschalt\"] }, \"Space\": { \"v\": [\"Leertaste\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"el\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Kustutusklahv\"] }, \"Enter\": { \"v\": [\"Sisestusklahv\"] }, \"Escape\": { \"v\": [\"Esc-klahv\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Tühikuklahv\"] }, \"Tab\": { \"v\": [\"Tabulaator\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Suppr\"] }, \"Enter\": { \"v\": [\"Entrée\"] }, \"Escape\": { \"v\": [\"Echap\"] }, \"Shift\": { \"v\": [\"Maj\"] }, \"Space\": { \"v\": [\"Espace\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"ga\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Scrios\"] }, \"Enter\": { \"v\": [\"Iontráil\"] }, \"Escape\": { \"v\": [\"Éalú\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Spás\"] }, \"Tab\": { \"v\": [\"Táb\"] } } }, { \"l\": \"gl\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Eliminar\"] }, \"Enter\": { \"v\": [\"Intro\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Maiús.\"] }, \"Space\": { \"v\": [\"Espazo\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Obriši\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"hu\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Törlés\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Szóköz\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"id\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Hapus\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Spasi\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"lo\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"ລຶບ\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Ištrinti\"] }, \"Enter\": { \"v\": [\"Įvesti\"] }, \"Escape\": { \"v\": [\"Išeiti\"] }, \"Shift\": { \"v\": ['\"Shift\"'] }, \"Space\": { \"v\": ['\"Space\"'] }, \"Tab\": { \"v\": ['\"Tab\"'] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Избриши\"] }, \"Enter\": { \"v\": [\"Ентер\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Празно место\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"mn\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Устгах\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Excluir\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Barra de espaço\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Пробел\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Обриши\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"sv\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"tr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"O'chirish\"] }, \"Enter\": { \"v\": [\"Kirish\"] }, \"Escape\": { \"v\": [\"Orqaga\"] }, \"Shift\": { \"v\": [\"Yuqorigi\"] }, \"Space\": { \"v\": [\"Bo'shliq\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"空白鍵\"] }, \"Tab\": { \"v\": [\"Tab鍵\"] } } }];\nconst t8 = [{ \"l\": \"ar\", \"t\": { \"Any link\": { \"v\": [\"أيَّ رابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Any link\": { \"v\": [\"Cualesquier enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Any link\": { \"v\": [\"Ethvert link\"] } } }, { \"l\": \"de\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"el\", \"t\": { \"Any link\": { \"v\": [\"Οποιοσδήποτε σύνδεσμος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Any link\": { \"v\": [\"Any link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Any link\": { \"v\": [\"Mistahes link\"] } } }, { \"l\": \"eu\", \"t\": { \"Any link\": { \"v\": [\"Edozein esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Any link\": { \"v\": [\"هر پیوندی\"] } } }, { \"l\": \"fi\", \"t\": { \"Any link\": { \"v\": [\"Mikä tahansa linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Any link\": { \"v\": [\"N'importe quel lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Any link\": { \"v\": [\"Aon nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Any link\": { \"v\": [\"Calquera ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Any link\": { \"v\": [\"קישור כלשהו\"] } } }, { \"l\": \"hr\", \"t\": { \"Any link\": { \"v\": [\"Bilo koja poveznica\"] } } }, { \"l\": \"hu\", \"t\": { \"Any link\": { \"v\": [\"Bármely hivatkozás\"] } } }, { \"l\": \"id\", \"t\": { \"Any link\": { \"v\": [\"Semua tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Any link\": { \"v\": [\"Einhver tengill\"] } } }, { \"l\": \"it\", \"t\": { \"Any link\": { \"v\": [\"Qualsiasi link\"] } } }, { \"l\": \"ja\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ko\", \"t\": { \"Any link\": { \"v\": [\"아무 링크\"] } } }, { \"l\": \"lo\", \"t\": { \"Any link\": { \"v\": [\"ລິງໃດກໍໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Any link\": { \"v\": [\"Bet kuri nuoroda\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Any link\": { \"v\": [\"Секој линк\"] } } }, { \"l\": \"mn\", \"t\": { \"Any link\": { \"v\": [\"Аливаа холбоос\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Any link\": { \"v\": [\"Enhver lenke\"] } } }, { \"l\": \"nl\", \"t\": { \"Any link\": { \"v\": [\"Elke link\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Any link\": { \"v\": [\"Dowolny link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Any link\": { \"v\": [\"Qualquer link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Any link\": { \"v\": [\"Qualquer hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Any link\": { \"v\": [\"Orice link\"] } } }, { \"l\": \"ru\", \"t\": { \"Any link\": { \"v\": [\"Любая ссылка\"] } } }, { \"l\": \"sk\", \"t\": { \"Any link\": { \"v\": [\"Akýkoľvek odkaz\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Any link\": { \"v\": [\"Било који линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Any link\": { \"v\": [\"Vilken länk som helst\"] } } }, { \"l\": \"tr\", \"t\": { \"Any link\": { \"v\": [\"Herhangi bir bağlantı\"] } } }, { \"l\": \"uk\", \"t\": { \"Any link\": { \"v\": [\"Будь-яке посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Any link\": { \"v\": [\"Har qanday havola\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Any link\": { \"v\": [\"任何链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }];\nconst t9 = [{ \"l\": \"ar\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"أيّ مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطأ في الحصول على الموارد ذات الصلة. يرجى الاتصال بمشرف النظام عندك إذا كان لديك أيّ أسئلة.\"] }, \"Related resources\": { \"v\": [\"مصادر ذات صلة\"] } } }, { \"l\": \"ast\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Equí va apaecer tolo que compartas col mesmu grupu de persones\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hebo un error al consiguir los recursos rellacionaos. Ponte en contautu col alministrador del sistema si tienes dalguna entruga.\"] }, \"Related resources\": { \"v\": [\"Recursos rellacionao\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualsevol cosa compartida amb el mateix grup de persones es mostrarà aquí\"] }, \"Related resources\": { \"v\": [\"Recursos relacionats\"] } } }, { \"l\": \"cs\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"da\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt der deles med samme gruppe af personer vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fejl ved hentning af relaterede ressourcer. Kontakt venligst din systemadministrator, hvis du har spørgsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterede emner\"] } } }, { \"l\": \"de\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wende dich bitte an deinen Systemadministrator.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wenden Sie sich bitte an Ihre Systemadministration.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"el\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Σφάλμα λήψης σχετικών πόρων. Παρακαλούμε επικοινωνήστε με τον διαχειριστή του συστήματός σας εάν έχετε οποιεσδήποτε ερωτήσεις.\"] }, \"Related resources\": { \"v\": [\"Σχετικοί πόροι\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Anything shared with the same group of people will show up here\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error getting related resources. Please contact your system administrator if you have any questions.\"] }, \"Related resources\": { \"v\": [\"Related resources\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa que esté compartida con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo lo que se comparta con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor contacte al administrador si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Siin kuvatakse kõik, mida jagatakse sama kasutajagrupiga\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Viga seotud ressursside saamisel. Küsimuste korral võtke ühendust oma süsteemi haldajaga.\"] }, \"Related resources\": { \"v\": [\"Seotud ressursid\"] } } }, { \"l\": \"eu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Pertsona-talde berarekin partekatutako edozer agertuko da hemen\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore bat gertatu da erlazionatutako baliabideak eskuratzean. Jarri harremanetan zure sistemaren administratzailearekin galderarik baduzu.\"] }, \"Related resources\": { \"v\": [\"Erlazionatutako baliabideak\"] } } }, { \"l\": \"fa\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"هر چیزی که با گروه مشابهی هم‌رسانی شود در این قسمت نمایش می‌یابد\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطا در دریافت منابع مرتبط. لطفاً در صورت داشتن هر گونه سؤال با مدیر سیستم خود تماس بگیرید.\"] }, \"Related resources\": { \"v\": [\"منابع مرتبط\"] } } }, { \"l\": \"fi\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Kaikki saman ryhmän kesken jaettu näkyy tässä\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Virhe resurssien haussa. Ota yhteyttä järjestelmän ylläpitäjään, mikäli sinulla on kysyttävää.\"] }, \"Related resources\": { \"v\": [\"Liittyvät resurssit\"] } } }, { \"l\": \"fr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tout ce qui est partagé avec le même groupe de personnes apparaîtra ici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erreur lors de la récupération des ressources liées. Contactez votre administrateur système pour répondre à vos éventuelles questions.\"] }, \"Related resources\": { \"v\": [\"Ressources liées\"] } } }, { \"l\": \"ga\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Taispeánfar aon rud a roinntear leis an ngrúpa céanna daoine anseo\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Earráid agus acmhainní gaolmhara á bhfáil. Déan teagmháil le riarthóir do chórais má tá aon cheist agat.\"] }, \"Related resources\": { \"v\": [\"Acmhainní gaolmhara\"] } } }, { \"l\": \"gl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo o que se comparta co mesmo grupo de persoas aparecerá aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Produciuse un erro ao obter os recursos relacionados. Póñase en contacto coa administración do seu sistema se ten algunha dúbida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"he\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"כל מה שמשותף עם אותה קבוצת האנשים יופיע כאן\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"שגיאה בקבלת המשאבים הקשורים. נא ליצור קשר עם הנהלת המערכת אם יש לך שאלות.\"] }, \"Related resources\": { \"v\": [\"משאבים קשורים\"] } } }, { \"l\": \"hr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Sve što je podijeljeno s istom grupom ljudi prikazat će se ovdje\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Pogreška pri dohvaćanju povezanih resursa. Ako imate pitanja, obratite se svom administratoru sustava.\"] }, \"Related resources\": { \"v\": [\"Povezani resursi\"] } } }, { \"l\": \"hu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hiba a kapcsolódó erőforrások lekérése során. Ha kérdése van, vegye fel a kapcsolatot a rendszergazdával.\"] }, \"Related resources\": { \"v\": [\"Kapcsolódó erőforrások\"] } } }, { \"l\": \"id\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Apa pun yang dibagikan dengan grup orang yang sama akan muncul di sini\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kesalahan saat mengambil sumber daya terkait. Hubungi administrator sistem Anda jika ada pertanyaan.\"] }, \"Related resources\": { \"v\": [\"Sumber daya terkait\"] } } }, { \"l\": \"is\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Allt sem deilt er með sama hópi fólks mun birtast hér\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Villa við að sækja tengd tilföng. Hafðu samband við kerfisstjórann þinn ef þú ert með einhverjar spurningar.\"] }, \"Related resources\": { \"v\": [\"Tengd tilföng\"] } } }, { \"l\": \"it\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutto ciò che è stato condiviso con lo stesso gruppo di persone viene visualizzato qui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore nell'ottenere le risorse correlate. Per qualsiasi domanda, contattare l'amministratore di sistema.\"] }, \"Related resources\": { \"v\": [\"Risorse correlate\"] } } }, { \"l\": \"ja\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ko\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"같은 그룹의 사용자와 공유된 모든 것들이 이곳에 나타납니다.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"관련 리소스를 가져오는 중 오류가 발생했습니다. 궁금한 것이 있는 경우 시스템 관리자에게 연락해 주세요.\"] }, \"Related resources\": { \"v\": [\"관련 리소스\"] } } }, { \"l\": \"lo\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"ທຸກຢ່າງທີ່ແບ່ງປັນກັບກຸ່ມຄົນດຽວກັນຈະສະແດງຢູ່ບ່ອນນີ້\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"ເກີດຂໍ້ຜິດພາດໃນການເອີ້ນຂໍ້ມູນຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ ຖ້າທ່ານມີຄຳຖາມ.\"] }, \"Related resources\": { \"v\": [\"ຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Čia bus rodomi visi įrašai, kuriais pasidalinta su ta pačia žmonių grupe\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kilo klaida gaunant susijusius išteklius. Jei turite klausimų, kreipkitės į sistemos administratorių.\"] }, \"Related resources\": { \"v\": [\"Susiję ištekliai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Сè што е споделено со истата група луѓе ќе се појави овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка при добивање поврзани ресурси. Ве молиме контактирајте го вашиот систем администратор ако имате прашања.\"] }, \"Related resources\": { \"v\": [\"Поврзани ресурси\"] } } }, { \"l\": \"mn\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Ижил бүлэг хүмүүстэй хуваалцсан бүх зүйл энд харагдана\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Холбогдох нөөцүүдийг авахад алдаа гарлаа. Асуулт байвал системийн администратортай холбогдоно уу.\"] }, \"Related resources\": { \"v\": [\"Холбогдох нөөцүүд\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt som er delt med den samme gruppen vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Feil ved henting av relaterte ressurser. Kontakt systemansvarlig hvis du har spørsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterte ressurser\"] } } }, { \"l\": \"nl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles dat gedeeld is met dezelfde groep mensen zal hier getoond worden\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fout bij het ophalen van gerelateerde bronnen. Neem contact op met uw systeembeheerder als u vragen heeft.\"] }, \"Related resources\": { \"v\": [\"Gerelateerde bronnen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Błąd podczas pobierania powiązanych zasobów. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem systemu.\"] }, \"Related resources\": { \"v\": [\"Powiązane zasoby\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter recursos relacionados. Por favor, entre em contato com o administrador do sistema se tiver alguma dúvida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa partilhada com o mesmo grupo de pessoas irá aparecer aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter os recursos relacionados. Por favor, contacte o administrador do sistema se tiver quaisquer perguntas.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"ro\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tot ceea ce este partajat cu același grup de persoane va fi afișat aici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Eroare la preluarea resurselor adiționale. Vă rugăm să contactați administratorul pentru întrebări.\"] }, \"Related resources\": { \"v\": [\"Resurse legate\"] } } }, { \"l\": \"ru\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Всё, чем поделились с той же группой людей, будет отображаться здесь\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Ошибка при получении связанных ресурсов. Если у вас есть какие-либо вопросы, обратитесь к системному администратору.\"] }, \"Related resources\": { \"v\": [\"Связанные ресурсы\"] } } }, { \"l\": \"sk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tu sa zobrazí čokoľvek zdieľané s rovnakou skupinou ľudí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba pri získavaní súvisiacich zdrojov. V prípade otázok kontaktujte prosím svojho systemového administrátora.\"] }, \"Related resources\": { \"v\": [\"Súvisiace zdroje\"] } } }, { \"l\": \"sl\", \"t\": { \"Related resources\": { \"v\": [\"Povezani viri\"] } } }, { \"l\": \"sr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Све што се дели са истом групом људи ће се појавити овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка код прибављања везаних ресурса. Молимо вас да се обратите администратору ако имате питања.\"] }, \"Related resources\": { \"v\": [\"Повезани ресурси\"] } } }, { \"l\": \"sv\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Något som delats med samma grupp av personer kommer att visas här\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Det gick inte att hämta relaterade resurser. Kontakta din systemadministratör om du har några frågor.\"] }, \"Related resources\": { \"v\": [\"Relaterade resurser\"] } } }, { \"l\": \"tr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Aynı kişi grubu ile paylaşılan herşey burada görüntülenir\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"İlgili kaynaklara ulaşılırken sorun çıktı. Herhangi bir sorunuz varsa lütfen sistem yöneticiniz ile görüşün \"] }, \"Related resources\": { \"v\": [\"İlgili kaynaklar\"] } } }, { \"l\": \"uk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Будь-що доступне для цієї же групи людей буде показано тут\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Помилка під час отримання пов'язаних ресурсів. Будь ласка, сконтактуйте з системним адміністратором, якщо у вас виникли запитання.\"] }, \"Related resources\": { \"v\": [\"Пов'язані ресурси\"] } } }, { \"l\": \"uz\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Xuddi shu guruhdagi odamlarga ulashilgan hamma narsa shu yerda chiqadi\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Tegishli manbalarni olishda xatolik yuz berdi. Savollaringiz bo'lsa, tizim administratoriga murojaat qiling.\"] }, \"Related resources\": { \"v\": [\"Tegishli manbalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"与同组用户分享的所有内容都会显示于此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"获取相关资源出现错误。如果你有任何问题,请联系系统管理员。\"] }, \"Related resources\": { \"v\": [\"相关资源\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與同一組人共享的任何內容都會顯示在此處\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與相同群組分享的所有內容都會顯示於此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }];\nconst t10 = [{ \"l\": \"ar\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName} \"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName}، {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de: {displayName}, {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"cs\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"da\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar af {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar af {displayName}, {status}\"] } } }, { \"l\": \"de\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"el\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Άβαταρ του {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Άβαταρ του {displayName}, {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar of {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar of {displayName}, {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Tunnuspilt: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Tunnuspilt: {displayName}, {status}\"] } } }, { \"l\": \"eu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-(e)n irudia\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} -(e)n irudia, {status}\"] } } }, { \"l\": \"fa\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"آواتار {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"آواتار {displayName} ، {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}n avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}n avatar, {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"he\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"תמונה ייצוגית של {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"תמונה ייצוגית של {displayName}, {status}\"] } } }, { \"l\": \"hr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar od {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar od {displayName}, {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} profilképe\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} profilképe, {status}\"] } } }, { \"l\": \"id\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"is\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Auðkennismynd fyrir {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Auðkennismynd fyrir {displayName}, {status}\"] } } }, { \"l\": \"it\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar di {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar di {displayName}, {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ko\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}님의 아바타\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status}님의 아바타\"] } } }, { \"l\": \"lo\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}, {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avataras\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} avataras, {status}\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар на {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар на {displayName}, {status}\"] } } }, { \"l\": \"mn\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-ийн аватар\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}-ийн аватар, {status}\"] } } }, { \"l\": \"my\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} ၏ ကိုယ်ပွား\"] } } }, { \"l\": \"nb\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avataren til {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}'s avatar, {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar van {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar van {displayName}, {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Awatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Awatar {displayName}, {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatarul lui {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatarul lui {displayName}, {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Фотография {displayName}, {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"sl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Podoba {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Prikazna slika {displayName}, {status}\"] } } }, { \"l\": \"sr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар за {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar za {displayName}, {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}s avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}s avatar, {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avatarı\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} avatarı\"] } } }, { \"l\": \"uk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар {displayName}, {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\" {displayName}Avatari\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} Avatari\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}的头像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}的头像,{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的頭像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} 的頭像,{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的大頭照\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} 的大頭照\"] } } }];\nconst t11 = [{ \"l\": \"ar\", \"t\": { \"away\": { \"v\": [\"غير موجود\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"يُرجى عدم الإزعاج\"] }, \"invisible\": { \"v\": [\"غير مرئي\"] }, \"offline\": { \"v\": [\"غير متصل\"] }, \"online\": { \"v\": [\"متصل\"] } } }, { \"l\": \"ast\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupáu\"] }, \"do not disturb\": { \"v\": [\"nun molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectáu\"] }, \"online\": { \"v\": [\"en llinia\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"da\", \"t\": { \"away\": { \"v\": [\"væk\"] }, \"busy\": { \"v\": [\"optaget\"] }, \"do not disturb\": { \"v\": [\"forstyr ikke\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"de\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"de-DE\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"el\", \"t\": { \"away\": { \"v\": [\"μακριά\"] }, \"busy\": { \"v\": [\"απασχολημένος\"] }, \"do not disturb\": { \"v\": [\"μην ενοχλείτε\"] }, \"invisible\": { \"v\": [\"αόρατο\"] }, \"offline\": { \"v\": [\"εκτός σύνδεσης\"] }, \"online\": { \"v\": [\"συνδεδεμένος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"away\": { \"v\": [\"away\"] }, \"busy\": { \"v\": [\"busy\"] }, \"do not disturb\": { \"v\": [\"do not disturb\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-AR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"et-EE\", \"t\": { \"away\": { \"v\": [\"eemal\"] }, \"busy\": { \"v\": [\"hõivatud\"] }, \"do not disturb\": { \"v\": [\"ära sega\"] }, \"invisible\": { \"v\": [\"nähtamatu\"] }, \"offline\": { \"v\": [\"pole võrgus\"] }, \"online\": { \"v\": [\"võrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"away\": { \"v\": [\"دور از دستگاه\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"مزاحم نشوید\"] }, \"invisible\": { \"v\": [\"مخفی\"] }, \"offline\": { \"v\": [\"برون‌خط\"] }, \"online\": { \"v\": [\"برخط\"] } } }, { \"l\": \"fi\", \"t\": { \"away\": { \"v\": [\"poissa\"] }, \"busy\": { \"v\": [\"varattu\"] }, \"do not disturb\": { \"v\": [\"älä häiritse\"] }, \"invisible\": { \"v\": [\"näkymätön\"] }, \"offline\": { \"v\": [\"ei linjalla\"] }, \"online\": { \"v\": [\"linjalla\"] } } }, { \"l\": \"fr\", \"t\": { \"away\": { \"v\": [\"absent\"] }, \"busy\": { \"v\": [\"occupé\"] }, \"do not disturb\": { \"v\": [\"ne pas déranger\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"hors ligne\"] }, \"online\": { \"v\": [\"en ligne\"] } } }, { \"l\": \"ga\", \"t\": { \"away\": { \"v\": [\"ar shiúl\"] }, \"busy\": { \"v\": [\"gnóthach\"] }, \"do not disturb\": { \"v\": [\"ná cur as\"] }, \"invisible\": { \"v\": [\"dofheicthe\"] }, \"offline\": { \"v\": [\"as líne\"] }, \"online\": { \"v\": [\"ar líne\"] } } }, { \"l\": \"gl\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"non molestar\"] }, \"invisible\": { \"v\": [\"invisíbel\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"conectado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"away\": { \"v\": [\"odsutan\"] }, \"busy\": { \"v\": [\"zauzet\"] }, \"do not disturb\": { \"v\": [\"ne smetaj\"] }, \"invisible\": { \"v\": [\"nevidljiv\"] }, \"offline\": { \"v\": [\"izvan mreže\"] }, \"online\": { \"v\": [\"na mreži\"] } } }, { \"l\": \"hu\", \"t\": { \"away\": { \"v\": [\"távol\"] }, \"busy\": { \"v\": [\"foglalt\"] }, \"do not disturb\": { \"v\": [\"ne zavarjanak\"] }, \"invisible\": { \"v\": [\"láthatatlan\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"id\", \"t\": { \"away\": { \"v\": [\"tidak tersedia\"] }, \"busy\": { \"v\": [\"sibuk\"] }, \"do not disturb\": { \"v\": [\"jangan ganggu\"] }, \"invisible\": { \"v\": [\"tidak terlihat\"] }, \"offline\": { \"v\": [\"luring\"] }, \"online\": { \"v\": [\"daring\"] } } }, { \"l\": \"is\", \"t\": { \"away\": { \"v\": [\"í burtu\"] }, \"busy\": { \"v\": [\"upptekin/n\"] }, \"do not disturb\": { \"v\": [\"ekki ónáða\"] }, \"invisible\": { \"v\": [\"ósýnilegt\"] }, \"offline\": { \"v\": [\"ónettengt\"] }, \"online\": { \"v\": [\"nettengt\"] } } }, { \"l\": \"it\", \"t\": { \"away\": { \"v\": [\"via\"] }, \"do not disturb\": { \"v\": [\"non disturbare\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ko\", \"t\": { \"away\": { \"v\": [\"자리 비움\"] }, \"busy\": { \"v\": [\"바쁨\"] }, \"do not disturb\": { \"v\": [\"방해 금지\"] }, \"invisible\": { \"v\": [\"보이지 않음\"] }, \"offline\": { \"v\": [\"오프라인\"] }, \"online\": { \"v\": [\"온라인\"] } } }, { \"l\": \"lo\", \"t\": { \"away\": { \"v\": [\"ບໍ່ຢູ່\"] }, \"busy\": { \"v\": [\"ບໍ່ວ່າງ\"] }, \"do not disturb\": { \"v\": [\"ຫ້າມລົບກວນ\"] }, \"invisible\": { \"v\": [\"ບໍ່ສະແດງ\"] }, \"offline\": { \"v\": [\"ອອບໄລນ໌\"] }, \"online\": { \"v\": [\"ອອນໄລນ໌\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"away\": { \"v\": [\"pasišalinęs\"] }, \"busy\": { \"v\": [\"užsiėmęs\"] }, \"do not disturb\": { \"v\": [\"netrukdyti\"] }, \"invisible\": { \"v\": [\"nematomas\"] }, \"offline\": { \"v\": [\"neprisijungęs\"] }, \"online\": { \"v\": [\"prisijungęs\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"away\": { \"v\": [\"оддалечен\"] }, \"busy\": { \"v\": [\"зафатен\"] }, \"do not disturb\": { \"v\": [\"не вознемирувај\"] }, \"invisible\": { \"v\": [\"невидливо\"] }, \"offline\": { \"v\": [\"офлајн\"] }, \"online\": { \"v\": [\"онлајн\"] } } }, { \"l\": \"mn\", \"t\": { \"away\": { \"v\": [\"хол байна\"] }, \"busy\": { \"v\": [\"завгүй\"] }, \"do not disturb\": { \"v\": [\"бүү саад бол\"] }, \"invisible\": { \"v\": [\"үл харагдах\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"away\": { \"v\": [\"borte\"] }, \"busy\": { \"v\": [\"opptatt\"] }, \"do not disturb\": { \"v\": [\"ikke forstyrr\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"frakoblet\"] }, \"online\": { \"v\": [\"tilkoblet\"] } } }, { \"l\": \"nl\", \"t\": { \"away\": { \"v\": [\"weg\"] }, \"busy\": { \"v\": [\"bezig\"] }, \"do not disturb\": { \"v\": [\"niet storen\"] }, \"invisible\": { \"v\": [\"Onzichtbaar\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"away\": { \"v\": [\"stąd\"] }, \"busy\": { \"v\": [\"zajęty\"] }, \"do not disturb\": { \"v\": [\"nie przeszkadzać\"] }, \"invisible\": { \"v\": [\"niewidzialny\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não perturbe\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"off-line\"] }, \"online\": { \"v\": [\"on-line\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"away\": { \"v\": [\"longe\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não incomodar\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ro\", \"t\": { \"away\": { \"v\": [\"plecat\"] }, \"do not disturb\": { \"v\": [\"nu deranjați\"] }, \"offline\": { \"v\": [\"deconectat\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ru\", \"t\": { \"away\": { \"v\": [\"отсутствие\"] }, \"busy\": { \"v\": [\"занятый\"] }, \"do not disturb\": { \"v\": [\"не беспокоить\"] }, \"invisible\": { \"v\": [\"невидимый\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"sk\", \"t\": { \"away\": { \"v\": [\"neprítomný\"] }, \"busy\": { \"v\": [\"zaneprázdnený\"] }, \"do not disturb\": { \"v\": [\"nerušiť\"] }, \"invisible\": { \"v\": [\"neviditeľný\"] }, \"offline\": { \"v\": [\"Odpojený - offline\"] }, \"online\": { \"v\": [\"Pripojený - online\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"away\": { \"v\": [\"одсутан\"] }, \"busy\": { \"v\": [\"заузет\"] }, \"do not disturb\": { \"v\": [\"не узнемиравај\"] }, \"invisible\": { \"v\": [\"невидљиво\"] }, \"offline\": { \"v\": [\"ван мреже\"] }, \"online\": { \"v\": [\"на мрежи\"] } } }, { \"l\": \"sv\", \"t\": { \"away\": { \"v\": [\"borta\"] }, \"busy\": { \"v\": [\"upptagen\"] }, \"do not disturb\": { \"v\": [\"stör ej\"] }, \"invisible\": { \"v\": [\"osynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"tr\", \"t\": { \"away\": { \"v\": [\"Uzakta\"] }, \"busy\": { \"v\": [\"Meşgul\"] }, \"do not disturb\": { \"v\": [\"Rahatsız etmeyin\"] }, \"invisible\": { \"v\": [\"görünmez\"] }, \"offline\": { \"v\": [\"Çevrim dışı\"] }, \"online\": { \"v\": [\"Çevrim içi\"] } } }, { \"l\": \"uk\", \"t\": { \"away\": { \"v\": [\"відсутній\"] }, \"busy\": { \"v\": [\"зайнято\"] }, \"do not disturb\": { \"v\": [\"не турбувати\"] }, \"invisible\": { \"v\": [\"Невидимий\"] }, \"offline\": { \"v\": [\"не в мережі\"] }, \"online\": { \"v\": [\"в мережі\"] } } }, { \"l\": \"uz\", \"t\": { \"away\": { \"v\": [\"uzoqda\"] }, \"busy\": { \"v\": [\"band\"] }, \"do not disturb\": { \"v\": [\"bezovta qilmang\"] }, \"invisible\": { \"v\": [\"ko'rinmas\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"away\": { \"v\": [\"离开\"] }, \"busy\": { \"v\": [\"繁忙\"] }, \"do not disturb\": { \"v\": [\"请勿打扰\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"离线\"] }, \"online\": { \"v\": [\"在线\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"在線\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"不可見\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"線上\"] } } }];\nconst t12 = [{ \"l\": \"ar\", \"t\": { \"Back to provider selection\": { \"v\": [\"عودة إلى اختيار المزوّد\"] }, \"Close Smart Picker\": { \"v\": [\"إغلاق المحدد الذكي\"] }, \"Smart Picker\": { \"v\": [\"اللاقط الذكي smart picker\"] } } }, { \"l\": \"ast\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la seleición de fornidores\"] }, \"Close Smart Picker\": { \"v\": [\"Zarrar la seleición intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"da\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbage til udbydervalg\"] }, \"Close Smart Picker\": { \"v\": [\"Luk Smart Vælger\"] }, \"Smart Picker\": { \"v\": [\"Smart Vælger\"] } } }, { \"l\": \"de\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"el\", \"t\": { \"Back to provider selection\": { \"v\": [\"Επιστροφή στην επιλογή παρόχου\"] }, \"Close Smart Picker\": { \"v\": [\"Κλείσιμο Έξυπνης Επιλογής\"] }, \"Smart Picker\": { \"v\": [\"Έξυπνη Επιλογή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Back to provider selection\": { \"v\": [\"Back to provider selection\"] }, \"Close Smart Picker\": { \"v\": [\"Close Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tagasi teenusepakkuja valiku juurde\"] }, \"Close Smart Picker\": { \"v\": [\"Sulge nutivalija\"] }, \"Smart Picker\": { \"v\": [\"Nutivalija\"] } } }, { \"l\": \"eu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Itzuli hornitzaileen hautapenera\"] }, \"Close Smart Picker\": { \"v\": [\"Itxi hautatzaile adimenduna\"] }, \"Smart Picker\": { \"v\": [\"Hautatzaile adimenduna\"] } } }, { \"l\": \"fa\", \"t\": { \"Back to provider selection\": { \"v\": [\"بازگشت به انتخاب ارائه دهنده\"] }, \"Close Smart Picker\": { \"v\": [\"بستن انتخاب‌گر هوشمند\"] }, \"Smart Picker\": { \"v\": [\"انتخابگر هوشمند\"] } } }, { \"l\": \"fi\", \"t\": { \"Back to provider selection\": { \"v\": [\"Takaisin toimittajavalintaan\"] }, \"Close Smart Picker\": { \"v\": [\"Sulje älykas valitsin\"] }, \"Smart Picker\": { \"v\": [\"Älykäs valitsin\"] } } }, { \"l\": \"fr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Revenir à la sélection du fournisseur\"] }, \"Close Smart Picker\": { \"v\": [\"Fermer le sélecteur intelligent\"] }, \"Smart Picker\": { \"v\": [\"Sélecteur intelligent\"] } } }, { \"l\": \"ga\", \"t\": { \"Back to provider selection\": { \"v\": [\"Ar ais go roghnú soláthróra\"] }, \"Close Smart Picker\": { \"v\": [\"Dún Piocálaí Cliste\"] }, \"Smart Picker\": { \"v\": [\"Roghnóir Cliste\"] } } }, { \"l\": \"gl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver á selección do provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Pechar o Selector intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"he\", \"t\": { \"Back to provider selection\": { \"v\": [\"חזרה לבחירת ספק\"] }, \"Close Smart Picker\": { \"v\": [\"סגירת הבורר החכם\"] }, \"Smart Picker\": { \"v\": [\"בורר חכם\"] } } }, { \"l\": \"hr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Natrag na odabir pružatelja\"] }, \"Close Smart Picker\": { \"v\": [\"Zatvori pametni odabir\"] }, \"Smart Picker\": { \"v\": [\"Pametni odabir\"] } } }, { \"l\": \"hu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Vissza a szolgáltatóválasztáshoz\"] }, \"Close Smart Picker\": { \"v\": [\"Okos választó bezárása\"] }, \"Smart Picker\": { \"v\": [\"Okos választó\"] } } }, { \"l\": \"id\", \"t\": { \"Back to provider selection\": { \"v\": [\"Kembali ke pemilihan penyedia\"] }, \"Close Smart Picker\": { \"v\": [\"Tutup Pemilih Cerdas\"] }, \"Smart Picker\": { \"v\": [\"Pemilih Cerdas\"] } } }, { \"l\": \"is\", \"t\": { \"Back to provider selection\": { \"v\": [\"Til baka í val á þjónustuveitu\"] }, \"Close Smart Picker\": { \"v\": [\"Loka snjall-veljara\"] }, \"Smart Picker\": { \"v\": [\"Snjall-veljari\"] } } }, { \"l\": \"it\", \"t\": { \"Back to provider selection\": { \"v\": [\"Torna alla selezione del provider\"] }, \"Close Smart Picker\": { \"v\": [\"Chiudere lo Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Picker intelligente\"] } } }, { \"l\": \"ja\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ko\", \"t\": { \"Back to provider selection\": { \"v\": [\"제공자 선택으로 돌아가기\"] }, \"Close Smart Picker\": { \"v\": [\"스마트 선택기 닫기\"] }, \"Smart Picker\": { \"v\": [\"스마트 선택기\"] } } }, { \"l\": \"lo\", \"t\": { \"Back to provider selection\": { \"v\": [\"ກັບໄປທີ່ການເລືອກຜູ້ໃຫ້ບໍລິການ\"] }, \"Close Smart Picker\": { \"v\": [\"ປິດໂຕເລືອກອັດສະລິຍະ\"] }, \"Smart Picker\": { \"v\": [\"ໂຕເລືອກອັດສະລິຍະ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Grįžti į teikėjo pasirinkimą\"] }, \"Close Smart Picker\": { \"v\": [\"Uždaryti „Smart Picker“\"] }, \"Smart Picker\": { \"v\": ['\"Smart Picker\"'] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до избор на провајдер\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметен избирач\"] }, \"Smart Picker\": { \"v\": [\"Паметен избирач\"] } } }, { \"l\": \"mn\", \"t\": { \"Back to provider selection\": { \"v\": [\"Үйлчилгээ үзүүлэгчийн сонголт руу буцах\"] }, \"Close Smart Picker\": { \"v\": [\"Ухаалаг сонгогчийг хаах\"] }, \"Smart Picker\": { \"v\": [\"Ухаалаг сонгогч\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbake til leverandørvalg\"] }, \"Close Smart Picker\": { \"v\": [\"Lukk Smart Velger\"] }, \"Smart Picker\": { \"v\": [\"Smart Velger\"] } } }, { \"l\": \"nl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Terug naar provider selectie\"] }, \"Close Smart Picker\": { \"v\": [\"Slimme Kiezer sluiten\"] }, \"Smart Picker\": { \"v\": [\"Slimme Kiezer\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Powrót do wyboru dostawcy\"] }, \"Close Smart Picker\": { \"v\": [\"Zamknij inteligentny selektor\"] }, \"Smart Picker\": { \"v\": [\"Inteligentne wybieranie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar para seleção de provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Fechar Seletor Inteligente\"] }, \"Smart Picker\": { \"v\": [\"Seletor Inteligente\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar à seleção de fornecedor\"] }, \"Close Smart Picker\": { \"v\": ['Fechar \"Smart Picker\"'] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ro\", \"t\": { \"Back to provider selection\": { \"v\": [\"Înapoi la selecția providerului\"] }, \"Close Smart Picker\": { \"v\": [\"Închide Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ru\", \"t\": { \"Back to provider selection\": { \"v\": [\"Вернуться к выбору провайдера\"] }, \"Close Smart Picker\": { \"v\": [\"Закрыть интеллектуальный выбор\"] }, \"Smart Picker\": { \"v\": [\"Умный выбор\"] } } }, { \"l\": \"sk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Späť na výber poskytovateľa\"] }, \"Close Smart Picker\": { \"v\": [\"Zavrieť inteligentný výber\"] }, \"Smart Picker\": { \"v\": [\"Inteligentný výber\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад на избор пружаоца\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметни бирач\"] }, \"Smart Picker\": { \"v\": [\"Паметни бирач\"] } } }, { \"l\": \"sv\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tillbaka till leverantörsval\"] }, \"Close Smart Picker\": { \"v\": [\"Stäng Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"tr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Hizmet sağlayıcı seçimine dön\"] }, \"Close Smart Picker\": { \"v\": [\"Akıllı seçimi kapat\"] }, \"Smart Picker\": { \"v\": [\"Akıllı seçim\"] } } }, { \"l\": \"uk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до вибору постачальника\"] }, \"Close Smart Picker\": { \"v\": [\"Закрити асистент вибору\"] }, \"Smart Picker\": { \"v\": [\"Асистент вибору\"] } } }, { \"l\": \"uz\", \"t\": { \"Back to provider selection\": { \"v\": [\"Provayder tanloviga qaytish\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker-ni yoping\"] }, \"Smart Picker\": { \"v\": [\"Aqlli tanlovchi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Back to provider selection\": { \"v\": [\"返回至提供者选择列表\"] }, \"Close Smart Picker\": { \"v\": [\"关闭智能拾取器\"] }, \"Smart Picker\": { \"v\": [\"智能拾取器\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉 Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉智慧型挑選器\"] }, \"Smart Picker\": { \"v\": [\"智慧型挑選器\"] } } }];\nconst t13 = [{ \"l\": \"ar\", \"t\": { \"Calendar icon\": { \"v\": [\"أيقونة التقويم\"] }, \"Cancel\": { \"v\": [\"إلغاء\"] }, \"Clear value\": { \"v\": [\"مَحو القيمة\"] }, \"Close time Picker\": { \"v\": [\"إغلاق لاقط الوقت\"] }, \"Datepicker input\": { \"v\": [\"مُدخَلات لاقط التاريخ\"] }, \"Datepicker menu\": { \"v\": [\"قائمة لاقط التاريخ\"] }, \"Decrement hours\": { \"v\": [\"إنقاص الساعات\"] }, \"Decrement minutes\": { \"v\": [\"إنقاص الدقائق\"] }, \"Decrement seconds\": { \"v\": [\"إنقاص الثواني\"] }, \"Increment hours\": { \"v\": [\"زيادة الساعات\"] }, \"Increment minutes\": { \"v\": [\"زيادة الدقائق\"] }, \"Increment seconds\": { \"v\": [\"زيادة الثواني\"] }, \"Month picker\": { \"v\": [\"لاقط الشهر\"] }, \"Month picker overlay\": { \"v\": [\"تراكب لاقط الشهر\"] }, \"Next month\": { \"v\": [\"الشهر القادم\"] }, \"Next year\": { \"v\": [\"السنة القادمة\"] }, \"Now\": { \"v\": [\"الآن\"] }, \"Open hours overlay\": { \"v\": [\"فتح تراكب الساعات \"] }, \"Open minutes overlay\": { \"v\": [\"فتح تراكب الدقائق\"] }, \"Open months overlay\": { \"v\": [\"فتح تراكب الشهور\"] }, \"Open seconds overlay\": { \"v\": [\"فتح تراكب الثواني\"] }, \"Open time picker\": { \"v\": [\"فتح لاقط الوقت\"] }, \"Open years overlay\": { \"v\": [\"فتح تراكب السنوات\"] }, \"Pick\": { \"v\": [\"إلتقاط\"] }, \"Previous month\": { \"v\": [\"الشهر الماضي\"] }, \"Previous year\": { \"v\": [\"السنة الماضية\"] }, \"Select date\": { \"v\": [\"إختيار التاريخ\"] }, \"Select date and time\": { \"v\": [\"إختيار التاريخ والوقت\"] }, \"Select month\": { \"v\": [\"إختيار الشهر\"] }, \"Select time\": { \"v\": [\"إختيار الوقت\"] }, \"Select time range\": { \"v\": [\"إختيار المدى الزمني\"] }, \"Select week\": { \"v\": [\"إختيار الأسبوع\"] }, \"Select year\": { \"v\": [\"إختيار السنة\"] }, \"Switch AM/PM mode\": { \"v\": [\"تبديل وضعية صباحاً/مساءً\"] }, \"Time picker\": { \"v\": [\"لاقط الوقت\"] }, \"Toggle overlay\": { \"v\": [\"تبديل التراكب\"] }, \"W\": { \"v\": [\"أ\"] }, \"Year picker\": { \"v\": [\"لاقط السنة\"] }, \"Year picker overlay\": { \"v\": [\"تراكب لاقط السنة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikona kalendáře\"] }, \"Cancel\": { \"v\": [\"Storno\"] }, \"Clear value\": { \"v\": [\"Vyčistit hodnotu\"] }, \"Close time Picker\": { \"v\": [\"Zavřít výběr času\"] }, \"Datepicker input\": { \"v\": [\"Vstup výběru data\"] }, \"Datepicker menu\": { \"v\": [\"Nabídka výběru data\"] }, \"Decrement hours\": { \"v\": [\"Snížit hodiny\"] }, \"Decrement minutes\": { \"v\": [\"Snížit minuty\"] }, \"Decrement seconds\": { \"v\": [\"Snížit sekundy\"] }, \"Increment hours\": { \"v\": [\"Zvýšit hodiny\"] }, \"Increment minutes\": { \"v\": [\"Zvýšit minuty\"] }, \"Increment seconds\": { \"v\": [\"Zvýšit sekundy\"] }, \"Month picker\": { \"v\": [\"Výběr měsíce\"] }, \"Month picker overlay\": { \"v\": [\"Překryvné okno výběru měsíce\"] }, \"Next month\": { \"v\": [\"Příští měsíc\"] }, \"Next year\": { \"v\": [\"Příští rok\"] }, \"Now\": { \"v\": [\"Nyní\"] }, \"Open hours overlay\": { \"v\": [\"Otevřít překryvné okno hodin\"] }, \"Open minutes overlay\": { \"v\": [\"Otevřít překryvné okno minut\"] }, \"Open months overlay\": { \"v\": [\"Otevřít překryvné okno měsíců\"] }, \"Open seconds overlay\": { \"v\": [\"Otevřít překryvné okno sekund\"] }, \"Open time picker\": { \"v\": [\"Otevřít výběr času\"] }, \"Open years overlay\": { \"v\": [\"Otevřít překryvné okno roku\"] }, \"Pick\": { \"v\": [\"Vybrat\"] }, \"Previous month\": { \"v\": [\"Předchozí měsíc\"] }, \"Previous year\": { \"v\": [\"Předchozí rok\"] }, \"Select date\": { \"v\": [\"Vybrat datum\"] }, \"Select date and time\": { \"v\": [\"Vybrat datum a čas\"] }, \"Select month\": { \"v\": [\"Vybrat měsíc\"] }, \"Select time\": { \"v\": [\"Vybrat čas\"] }, \"Select time range\": { \"v\": [\"Vybrat časový rozsah\"] }, \"Select week\": { \"v\": [\"Vybrat týden\"] }, \"Select year\": { \"v\": [\"Vybrat rok\"] }, \"Switch AM/PM mode\": { \"v\": [\"Přepnout režim dopo/odpoledne\"] }, \"Time picker\": { \"v\": [\"Výběr času\"] }, \"Time zone\": { \"v\": [\"Časové pásmo\"] }, \"Toggle overlay\": { \"v\": [\"Vyp/zap. překryvné okno\"] }, \"W\": { \"v\": [\"T\"] }, \"Year picker\": { \"v\": [\"Výběr roku\"] }, \"Year picker overlay\": { \"v\": [\"Překryvné okno výběru roku\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalenderikon\"] }, \"Cancel\": { \"v\": [\"Annullér\"] }, \"Clear value\": { \"v\": [\"Klar værdi\"] }, \"Close time Picker\": { \"v\": [\"Nærtid Picker\"] }, \"Datepicker input\": { \"v\": [\"Datapicker input\"] }, \"Datepicker menu\": { \"v\": [\"Datapicker menu\"] }, \"Decrement hours\": { \"v\": [\"Formindsk timer\"] }, \"Decrement minutes\": { \"v\": [\"Formindsk minutter\"] }, \"Decrement seconds\": { \"v\": [\"Formindsk sekunder\"] }, \"Increment hours\": { \"v\": [\"Forøg timer\"] }, \"Increment minutes\": { \"v\": [\"Forøg minutter\"] }, \"Increment seconds\": { \"v\": [\"Forøg sekunder\"] }, \"Month picker\": { \"v\": [\"Månedsvælger\"] }, \"Month picker overlay\": { \"v\": [\"Måneder vælger overlay\"] }, \"Next month\": { \"v\": [\"Næste måned\"] }, \"Next year\": { \"v\": [\"Næste år\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Åbne timer overlay\"] }, \"Open minutes overlay\": { \"v\": [\"Åbn minutter overlay\"] }, \"Open months overlay\": { \"v\": [\"Åbne måneder overlay\"] }, \"Open seconds overlay\": { \"v\": [\"Åbne sekunder overlay\"] }, \"Open time picker\": { \"v\": [\"Åbent tidsvælger\"] }, \"Open years overlay\": { \"v\": [\"Åbne år overlay\"] }, \"Pick\": { \"v\": [\"Vælg\"] }, \"Previous month\": { \"v\": [\"Forrige måned\"] }, \"Previous year\": { \"v\": [\"Foregående år\"] }, \"Select date\": { \"v\": [\"Vælg dato\"] }, \"Select date and time\": { \"v\": [\"Vælg dato og tidspunkt\"] }, \"Select month\": { \"v\": [\"Vælg måned\"] }, \"Select time\": { \"v\": [\"Vælg tid\"] }, \"Select time range\": { \"v\": [\"Vælg tidsinterval\"] }, \"Select week\": { \"v\": [\"Vælg uge\"] }, \"Select year\": { \"v\": [\"Vælg år\"] }, \"Switch AM/PM mode\": { \"v\": [\"Skift AM/PM-tilstand\"] }, \"Time picker\": { \"v\": [\"Tidsvælger\"] }, \"Time zone\": { \"v\": [\"Tidszone\"] }, \"Toggle overlay\": { \"v\": [\"Slå overlay til / fra\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"År vælger\"] }, \"Year picker overlay\": { \"v\": [\"År vælger overlay\"] } } }, { \"l\": \"de\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendersymbol\"] }, \"Cancel\": { \"v\": [\"Abbrechen\"] }, \"Clear value\": { \"v\": [\"Wert löschen\"] }, \"Close time Picker\": { \"v\": [\"Zeitauswahl schließen\"] }, \"Datepicker input\": { \"v\": [\"Eingabe Datumsauswahl\"] }, \"Datepicker menu\": { \"v\": [\"Menü Datumsauswahl\"] }, \"Decrement hours\": { \"v\": [\"Stunden verringern\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verringern\"] }, \"Decrement seconds\": { \"v\": [\"Sekunden verringern\"] }, \"Increment hours\": { \"v\": [\"Stunden hochzählen\"] }, \"Increment minutes\": { \"v\": [\"Minuten hochzählen\"] }, \"Increment seconds\": { \"v\": [\"Sekunden hochzählen\"] }, \"Month picker\": { \"v\": [\"Monatsauswahl\"] }, \"Month picker overlay\": { \"v\": [\"Monatsauswahl-Overlay\"] }, \"Next month\": { \"v\": [\"Nächster Monat\"] }, \"Next year\": { \"v\": [\"Nächstes Jahr\"] }, \"Now\": { \"v\": [\"Jetzt\"] }, \"Open hours overlay\": { \"v\": [\"Stunden-Overlay öffnen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-Overlay öffnen\"] }, \"Open months overlay\": { \"v\": [\"Monate-Overlay öffnen\"] }, \"Open seconds overlay\": { \"v\": [\"Sekunden-Overlay öffnen\"] }, \"Open time picker\": { \"v\": [\"Zeitauswahl öffnen\"] }, \"Open years overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] }, \"Pick\": { \"v\": [\"Auswählen\"] }, \"Previous month\": { \"v\": [\"Vorheriger Monat\"] }, \"Previous year\": { \"v\": [\"Vorheriges Jahr\"] }, \"Select date\": { \"v\": [\"Datum auswählen\"] }, \"Select date and time\": { \"v\": [\"Datum und Uhrzeit auswählen\"] }, \"Select month\": { \"v\": [\"Monat auswählen\"] }, \"Select time\": { \"v\": [\"Uhrzeit auswählen\"] }, \"Select time range\": { \"v\": [\"Zeitspanne auswählen\"] }, \"Select week\": { \"v\": [\"Woche auswählen\"] }, \"Select year\": { \"v\": [\"Jahr auswählen\"] }, \"Switch AM/PM mode\": { \"v\": [\"Zwischen AM/PM-Modus wechseln\"] }, \"Time picker\": { \"v\": [\"Zeitauswahl\"] }, \"Time zone\": { \"v\": [\"Zeitzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay umschalten\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jahresauswahl\"] }, \"Year picker overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendersymbol\"] }, \"Cancel\": { \"v\": [\"Abbrechen\"] }, \"Clear value\": { \"v\": [\"Wert löschen\"] }, \"Close time Picker\": { \"v\": [\"Zeitauswahl schließen\"] }, \"Datepicker input\": { \"v\": [\"Eingabe Datumsauswahl\"] }, \"Datepicker menu\": { \"v\": [\"Menü Datumsauswahl\"] }, \"Decrement hours\": { \"v\": [\"Stunden verringern\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verringern\"] }, \"Decrement seconds\": { \"v\": [\"Sekunden verringern\"] }, \"Increment hours\": { \"v\": [\"Stunden hochzählen\"] }, \"Increment minutes\": { \"v\": [\"Minuten hochzählen\"] }, \"Increment seconds\": { \"v\": [\"Sekunden hochzählen\"] }, \"Month picker\": { \"v\": [\"Monatsauswahl\"] }, \"Month picker overlay\": { \"v\": [\"Monatsauswahl-Overlay\"] }, \"Next month\": { \"v\": [\"Nächster Monat\"] }, \"Next year\": { \"v\": [\"Nächstes Jahr\"] }, \"Now\": { \"v\": [\"Jetzt\"] }, \"Open hours overlay\": { \"v\": [\"Stunden-Overlay öffnen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-Overlay öffnen\"] }, \"Open months overlay\": { \"v\": [\"Monate-Overlay öffnen\"] }, \"Open seconds overlay\": { \"v\": [\"Sekunden-Overlay öffnen\"] }, \"Open time picker\": { \"v\": [\"Zeitauswahl öffnen\"] }, \"Open years overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] }, \"Pick\": { \"v\": [\"Auswählen\"] }, \"Previous month\": { \"v\": [\"Vorheriger Monat\"] }, \"Previous year\": { \"v\": [\"Vorheriges Jahr\"] }, \"Select date\": { \"v\": [\"Datum auswählen\"] }, \"Select date and time\": { \"v\": [\"Datum und Uhrzeit auswählen\"] }, \"Select month\": { \"v\": [\"Monat auswählen\"] }, \"Select time\": { \"v\": [\"Uhrzeit auswählen\"] }, \"Select time range\": { \"v\": [\"Zeitspanne auswählen\"] }, \"Select week\": { \"v\": [\"Woche auswählen\"] }, \"Select year\": { \"v\": [\"Jahr auswählen\"] }, \"Switch AM/PM mode\": { \"v\": [\"Zwischen AM/PM-Modus wechseln\"] }, \"Time picker\": { \"v\": [\"Zeitauswahl\"] }, \"Time zone\": { \"v\": [\"Zeitzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay umschalten\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jahresauswahl\"] }, \"Year picker overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Calendar icon\": { \"v\": [\"Εικονίδιο ημερολογίου\"] }, \"Cancel\": { \"v\": [\"Ακύρωση\"] }, \"Clear value\": { \"v\": [\"Εκκαθάριση αξίας\"] }, \"Close time Picker\": { \"v\": [\"Κλείσιμο επιλογέα ώρας\"] }, \"Datepicker input\": { \"v\": [\"Εισαγωγή ημερομηνίας\"] }, \"Datepicker menu\": { \"v\": [\"Μενού επιλογής ημερομηνίας\"] }, \"Decrement hours\": { \"v\": [\"Μείωση ωρών\"] }, \"Decrement minutes\": { \"v\": [\"Μείωση λεπτών\"] }, \"Decrement seconds\": { \"v\": [\"Μείωση δευτερολέπτων\"] }, \"Increment hours\": { \"v\": [\"Αύξηση ωρών\"] }, \"Increment minutes\": { \"v\": [\"Αύξηση λεπτών\"] }, \"Increment seconds\": { \"v\": [\"Αύξηση δευτερολέπτων\"] }, \"Month picker\": { \"v\": [\"Επιλογή μήνα\"] }, \"Month picker overlay\": { \"v\": [\"Επικάλυψη επιλογής μήνα\"] }, \"Next month\": { \"v\": [\"Επόμενος μήνας\"] }, \"Next year\": { \"v\": [\"Επόμενο έτος\"] }, \"Now\": { \"v\": [\"Τώρα\"] }, \"Open hours overlay\": { \"v\": [\"Άνοιγμα επικάλυψης ωρών\"] }, \"Open minutes overlay\": { \"v\": [\"Άνοιγμα επικάλυψης λεπτών\"] }, \"Open months overlay\": { \"v\": [\"Άνοιγμα επικάλυψης μηνών\"] }, \"Open seconds overlay\": { \"v\": [\"Άνοιγμα επικάλυψης δευτερολέπτων\"] }, \"Open time picker\": { \"v\": [\"Άνοιγμα επιλογέα ώρας\"] }, \"Open years overlay\": { \"v\": [\"Άνοιγμα επικάλυψης ετών\"] }, \"Pick\": { \"v\": [\"Επιλογή\"] }, \"Previous month\": { \"v\": [\"Προηγούμενος μήνας\"] }, \"Previous year\": { \"v\": [\"Προηγούμενο έτος\"] }, \"Select date\": { \"v\": [\"Επιλογή ημερομηνίας\"] }, \"Select date and time\": { \"v\": [\"Επιλογή ημερομηνίας και ώρας\"] }, \"Select month\": { \"v\": [\"Επιλογή μήνα\"] }, \"Select time\": { \"v\": [\"Επιλογή ώρας\"] }, \"Select time range\": { \"v\": [\"Επιλογή χρονικού διαστήματος\"] }, \"Select week\": { \"v\": [\"Επιλογή εβδομάδας\"] }, \"Select year\": { \"v\": [\"Επιλογή έτους\"] }, \"Switch AM/PM mode\": { \"v\": [\"Εναλλαγή λειτουργίας AM/PM\"] }, \"Time picker\": { \"v\": [\"Επιλογή ώρας\"] }, \"Toggle overlay\": { \"v\": [\"Εναλλαγή επικάλυψης\"] }, \"W\": { \"v\": [\"Τε\"] }, \"Year picker\": { \"v\": [\"Επιλογέας έτους\"] }, \"Year picker overlay\": { \"v\": [\"Επικάλυψη επιλογέα έτους\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Calendar icon\": { \"v\": [\"Calendar icon\"] }, \"Cancel\": { \"v\": [\"Cancel\"] }, \"Clear value\": { \"v\": [\"Clear value\"] }, \"Close time Picker\": { \"v\": [\"Close time Picker\"] }, \"Datepicker input\": { \"v\": [\"Datepicker input\"] }, \"Datepicker menu\": { \"v\": [\"Datepicker menu\"] }, \"Decrement hours\": { \"v\": [\"Decrement hours\"] }, \"Decrement minutes\": { \"v\": [\"Decrement minutes\"] }, \"Decrement seconds\": { \"v\": [\"Decrement seconds\"] }, \"Increment hours\": { \"v\": [\"Increment hours\"] }, \"Increment minutes\": { \"v\": [\"Increment minutes\"] }, \"Increment seconds\": { \"v\": [\"Increment seconds\"] }, \"Month picker\": { \"v\": [\"Month picker\"] }, \"Month picker overlay\": { \"v\": [\"Month picker overlay\"] }, \"Next month\": { \"v\": [\"Next month\"] }, \"Next year\": { \"v\": [\"Next year\"] }, \"Now\": { \"v\": [\"Now\"] }, \"Open hours overlay\": { \"v\": [\"Open hours overlay\"] }, \"Open minutes overlay\": { \"v\": [\"Open minutes overlay\"] }, \"Open months overlay\": { \"v\": [\"Open months overlay\"] }, \"Open seconds overlay\": { \"v\": [\"Open seconds overlay\"] }, \"Open time picker\": { \"v\": [\"Open time picker\"] }, \"Open years overlay\": { \"v\": [\"Open years overlay\"] }, \"Pick\": { \"v\": [\"Pick\"] }, \"Previous month\": { \"v\": [\"Previous month\"] }, \"Previous year\": { \"v\": [\"Previous year\"] }, \"Select date\": { \"v\": [\"Select date\"] }, \"Select date and time\": { \"v\": [\"Select date and time\"] }, \"Select month\": { \"v\": [\"Select month\"] }, \"Select time\": { \"v\": [\"Select time\"] }, \"Select time range\": { \"v\": [\"Select time range\"] }, \"Select week\": { \"v\": [\"Select week\"] }, \"Select year\": { \"v\": [\"Select year\"] }, \"Switch AM/PM mode\": { \"v\": [\"Switch AM/PM mode\"] }, \"Time picker\": { \"v\": [\"Time picker\"] }, \"Time zone\": { \"v\": [\"Time zone\"] }, \"Toggle overlay\": { \"v\": [\"Toggle overlay\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Year picker\"] }, \"Year picker overlay\": { \"v\": [\"Year picker overlay\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendriikoon\"] }, \"Cancel\": { \"v\": [\"Katkesta\"] }, \"Clear value\": { \"v\": [\"Kustuta väärtus\"] }, \"Close time Picker\": { \"v\": [\"Sulge ajavalija\"] }, \"Datepicker input\": { \"v\": [\"Kuupäevavalija sisend\"] }, \"Datepicker menu\": { \"v\": [\"Kuupäevavalija menüü\"] }, \"Decrement hours\": { \"v\": [\"Vähenda tunde\"] }, \"Decrement minutes\": { \"v\": [\"Vähenda minuteid\"] }, \"Decrement seconds\": { \"v\": [\"Vähenda sekundeid\"] }, \"Increment hours\": { \"v\": [\"Suurenda tunde\"] }, \"Increment minutes\": { \"v\": [\"Suurenda minuteid\"] }, \"Increment seconds\": { \"v\": [\"Suurenda sekundeid\"] }, \"Month picker\": { \"v\": [\"Kuupäevavalija\"] }, \"Month picker overlay\": { \"v\": [\"Kuupäevavalija ülekatteaken\"] }, \"Next month\": { \"v\": [\"Järgmine kuu\"] }, \"Next year\": { \"v\": [\"Järgmine aasta\"] }, \"Now\": { \"v\": [\"Praegu\"] }, \"Open hours overlay\": { \"v\": [\"Ava tundide vaade\"] }, \"Open minutes overlay\": { \"v\": [\"Ava minutite vaade\"] }, \"Open months overlay\": { \"v\": [\"Ava kuude vaade\"] }, \"Open seconds overlay\": { \"v\": [\"Ava sekundite vaade\"] }, \"Open time picker\": { \"v\": [\"Ava ajavalija\"] }, \"Open years overlay\": { \"v\": [\"Ava aastate vaade\"] }, \"Pick\": { \"v\": [\"Vali\"] }, \"Previous month\": { \"v\": [\"Eelmine kuu\"] }, \"Previous year\": { \"v\": [\"Eelmine aasta\"] }, \"Select date\": { \"v\": [\"Vali kuupäev\"] }, \"Select date and time\": { \"v\": [\"Vali kuupäev ja kellaaeg\"] }, \"Select month\": { \"v\": [\"Vali kuu\"] }, \"Select time\": { \"v\": [\"Vali aeg\"] }, \"Select time range\": { \"v\": [\"Vali ajavahemik\"] }, \"Select week\": { \"v\": [\"Vali nädal\"] }, \"Select year\": { \"v\": [\"Vali aasta\"] }, \"Switch AM/PM mode\": { \"v\": [\"Vaheta AM/PM kuvamist\"] }, \"Time picker\": { \"v\": [\"Ajavalija\"] }, \"Time zone\": { \"v\": [\"Ajavöönd\"] }, \"Toggle overlay\": { \"v\": [\"Lülita ülekatteaken sisse/välja\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Aastavalija\"] }, \"Year picker overlay\": { \"v\": [\"Aastavavalija ülekatteaken\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Calendar icon\": { \"v\": [\"Icône de calendrier\"] }, \"Cancel\": { \"v\": [\"Annuler\"] }, \"Clear value\": { \"v\": [\"Effacer la valeur\"] }, \"Close time Picker\": { \"v\": [\"Fermer le sélecteur de temps\"] }, \"Datepicker input\": { \"v\": [\"Entrée du sélecteur de date\"] }, \"Datepicker menu\": { \"v\": [\"Menu du sélecteur de date\"] }, \"Decrement hours\": { \"v\": [\"Diminuer les heures\"] }, \"Decrement minutes\": { \"v\": [\"Diminuer les minutes\"] }, \"Decrement seconds\": { \"v\": [\"Diminuer les secondes\"] }, \"Increment hours\": { \"v\": [\"Augmenter les heures\"] }, \"Increment minutes\": { \"v\": [\"Augmenter les minutes\"] }, \"Increment seconds\": { \"v\": [\"Augmenter les secondes\"] }, \"Month picker\": { \"v\": [\"Sélecteur de mois\"] }, \"Month picker overlay\": { \"v\": [\"Superposition du sélecteur de mois\"] }, \"Next month\": { \"v\": [\"Mois prochain\"] }, \"Next year\": { \"v\": [\"Année prochaine\"] }, \"Now\": { \"v\": [\"Maintenant\"] }, \"Open hours overlay\": { \"v\": [\"Superposition des heures d'ouverture\"] }, \"Open minutes overlay\": { \"v\": [\"Superposition des minutes d'ouverture\"] }, \"Open months overlay\": { \"v\": [\"Superposition des mois ouverts\"] }, \"Open seconds overlay\": { \"v\": [\"Superposition des secondes ouvertes\"] }, \"Open time picker\": { \"v\": [\"Ouvrir le sélecteur de temps\"] }, \"Open years overlay\": { \"v\": [\"Superposition des années ouvertes\"] }, \"Pick\": { \"v\": [\"Choisir\"] }, \"Previous month\": { \"v\": [\"Mois précédent\"] }, \"Previous year\": { \"v\": [\"Année précédente\"] }, \"Select date\": { \"v\": [\"Sélectionnez la date\"] }, \"Select date and time\": { \"v\": [\"Sélectionnez la date et l'heure\"] }, \"Select month\": { \"v\": [\"Sélectionnez le mois\"] }, \"Select time\": { \"v\": [\"Sélectionnez l'heure\"] }, \"Select time range\": { \"v\": [\"Sélectionnez la plage horaire\"] }, \"Select week\": { \"v\": [\"Sélectionnez la semaine\"] }, \"Select year\": { \"v\": [\"Sélectionnez l'année\"] }, \"Switch AM/PM mode\": { \"v\": [\"Basculer le mode Matin/Après-midi\"] }, \"Time picker\": { \"v\": [\"Sélecteur de temps\"] }, \"Time zone\": { \"v\": [\"Fuseau horaire\"] }, \"Toggle overlay\": { \"v\": [\"Basculer la superposition\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Sélecteur d'année\"] }, \"Year picker overlay\": { \"v\": [\"Superposition du sélecteur d’année\"] } } }, { \"l\": \"ga\", \"t\": { \"Calendar icon\": { \"v\": [\"Deilbhín féilire\"] }, \"Cancel\": { \"v\": [\"Cealaigh\"] }, \"Clear value\": { \"v\": [\"Luach soiléir\"] }, \"Close time Picker\": { \"v\": [\"Roghnóir am dúnta\"] }, \"Datepicker input\": { \"v\": [\"Ionchur datepicker\"] }, \"Datepicker menu\": { \"v\": [\"Roghchlár datepicker\"] }, \"Decrement hours\": { \"v\": [\"Laghdaigh uaireanta\"] }, \"Decrement minutes\": { \"v\": [\"Laghdaigh nóiméid \"] }, \"Decrement seconds\": { \"v\": [\"Laghdaigh soicind\"] }, \"Increment hours\": { \"v\": [\"Méadaigh uaireanta\"] }, \"Increment minutes\": { \"v\": [\"Méadaigh nóiméid\"] }, \"Increment seconds\": { \"v\": [\"Méadaigh soicind\"] }, \"Month picker\": { \"v\": [\"Roghnóir míosa\"] }, \"Month picker overlay\": { \"v\": [\"Forleagan roghnóir míosa\"] }, \"Next month\": { \"v\": [\"An mhí seo chugainn\"] }, \"Next year\": { \"v\": [\"An bhliain seo chugainn\"] }, \"Now\": { \"v\": [\"Anois\"] }, \"Open hours overlay\": { \"v\": [\"Forleagan uaireanta oscailte\"] }, \"Open minutes overlay\": { \"v\": [\"Forleagan nóiméad oscailte\"] }, \"Open months overlay\": { \"v\": [\"Forleagan míonna oscailte\"] }, \"Open seconds overlay\": { \"v\": [\"Soicind oscailte forleagan\"] }, \"Open time picker\": { \"v\": [\"Roghnóir am oscailte\"] }, \"Open years overlay\": { \"v\": [\"Forleagan blianta oscailte\"] }, \"Pick\": { \"v\": [\"Pioc\"] }, \"Previous month\": { \"v\": [\"An mhí roimhe sin\"] }, \"Previous year\": { \"v\": [\"Bhliain roimhe sin\"] }, \"Select date\": { \"v\": [\"Roghnaigh dáta\"] }, \"Select date and time\": { \"v\": [\"Roghnaigh dáta agus am\"] }, \"Select month\": { \"v\": [\"Roghnaigh mí\"] }, \"Select time\": { \"v\": [\"Roghnaigh am\"] }, \"Select time range\": { \"v\": [\"Roghnaigh raon ama\"] }, \"Select week\": { \"v\": [\"Roghnaigh seachtain\"] }, \"Select year\": { \"v\": [\"Roghnaigh bliain\"] }, \"Switch AM/PM mode\": { \"v\": [\"Athraigh mód AM/PM\"] }, \"Time picker\": { \"v\": [\"Roghnóir ama\"] }, \"Time zone\": { \"v\": [\"Crios ama\"] }, \"Toggle overlay\": { \"v\": [\"Scoránaigh forleagan\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Roghnóir bliana\"] }, \"Year picker overlay\": { \"v\": [\"Forleagan roghnóir bliana\"] } } }, { \"l\": \"gl\", \"t\": { \"Calendar icon\": { \"v\": [\"Icona do calendario\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar o valor\"] }, \"Close time Picker\": { \"v\": [\"Pechar o Selector de hora\"] }, \"Datepicker input\": { \"v\": [\"Entrada do selector de datas\"] }, \"Datepicker menu\": { \"v\": [\"Menú do selector de datas\"] }, \"Decrement hours\": { \"v\": [\"Diminuír as horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuír os minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuír os segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar as horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar os minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar os segundos\"] }, \"Month picker\": { \"v\": [\"Selector de mes\"] }, \"Month picker overlay\": { \"v\": [\"Superposición do selector de mes\"] }, \"Next month\": { \"v\": [\"Próximo mes\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir a superposición de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir a superposición de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir a superposición de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir a superposición de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir o selector de hora\"] }, \"Open years overlay\": { \"v\": [\"Abrir a superposición de anos\"] }, \"Pick\": { \"v\": [\"Escoller\"] }, \"Previous month\": { \"v\": [\"Mes pasado\"] }, \"Previous year\": { \"v\": [\"Ano pasado\"] }, \"Select date\": { \"v\": [\"Seleccione a data\"] }, \"Select date and time\": { \"v\": [\"Seleccione a data e a hora\"] }, \"Select month\": { \"v\": [\"Seleccione o mes\"] }, \"Select time\": { \"v\": [\"Seleccione a hora\"] }, \"Select time range\": { \"v\": [\" Seleccione o intervalo de tempo\"] }, \"Select week\": { \"v\": [\"Seleccione a semana\"] }, \"Select year\": { \"v\": [\"Seleccione o ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar o modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Selector de hora\"] }, \"Time zone\": { \"v\": [\"Fuso horario\"] }, \"Toggle overlay\": { \"v\": [\"Alternar a sobreposición\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Selector de ano\"] }, \"Year picker overlay\": { \"v\": [\"Superposición do selector de ano\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikona kalendara\"] }, \"Cancel\": { \"v\": [\"Otkaži\"] }, \"Clear value\": { \"v\": [\"Očisti vrijednost\"] }, \"Close time Picker\": { \"v\": [\"Zatvori odabir vremena\"] }, \"Datepicker input\": { \"v\": [\"Unos birača datuma\"] }, \"Datepicker menu\": { \"v\": [\"Izbornik birača datuma\"] }, \"Decrement hours\": { \"v\": [\"Smanji sate\"] }, \"Decrement minutes\": { \"v\": [\"Smanji minute\"] }, \"Decrement seconds\": { \"v\": [\"Smanji sekunde\"] }, \"Increment hours\": { \"v\": [\"Povećaj sate\"] }, \"Increment minutes\": { \"v\": [\"Povećaj minute\"] }, \"Increment seconds\": { \"v\": [\"Povećaj sekunde\"] }, \"Month picker\": { \"v\": [\"Odabir mjeseca\"] }, \"Month picker overlay\": { \"v\": [\"Sloj za odabir mjeseca\"] }, \"Next month\": { \"v\": [\"Sljedeći mjesec\"] }, \"Next year\": { \"v\": [\"Sljedeća godina\"] }, \"Now\": { \"v\": [\"Sada\"] }, \"Open hours overlay\": { \"v\": [\"Otvori sloj za odabir sati\"] }, \"Open minutes overlay\": { \"v\": [\"Otvori sloj za odabir minuta\"] }, \"Open months overlay\": { \"v\": [\"Otvori sloj za odabir mjeseci\"] }, \"Open seconds overlay\": { \"v\": [\"Otvori sloj za odabir sekundi\"] }, \"Open time picker\": { \"v\": [\"Otvori birač vremena\"] }, \"Open years overlay\": { \"v\": [\"Otvori sloj za odabir godina\"] }, \"Pick\": { \"v\": [\"Odaberi\"] }, \"Previous month\": { \"v\": [\"Prethodni mjesec\"] }, \"Previous year\": { \"v\": [\"Prethodna godina\"] }, \"Select date\": { \"v\": [\"Odaberi datum\"] }, \"Select date and time\": { \"v\": [\"Odaberi datum i vrijeme\"] }, \"Select month\": { \"v\": [\"Odaberi mjesec\"] }, \"Select time\": { \"v\": [\"Odaberi vrijeme\"] }, \"Select time range\": { \"v\": [\"Odaberi vremenski raspon\"] }, \"Select week\": { \"v\": [\"Odaberi tjedan\"] }, \"Select year\": { \"v\": [\"Odaberi godinu\"] }, \"Switch AM/PM mode\": { \"v\": [\"Prebaci AM/PM način\"] }, \"Time picker\": { \"v\": [\"Odabir vremena\"] }, \"Time zone\": { \"v\": [\"Vremenska zona\"] }, \"Toggle overlay\": { \"v\": [\"Uključi/isključi sloj\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Odabir godine\"] }, \"Year picker overlay\": { \"v\": [\"Sloj za odabir godine\"] } } }, { \"l\": \"hu\", \"t\": { \"Calendar icon\": { \"v\": [\"Naptárikon\"] }, \"Cancel\": { \"v\": [\"Mégse\"] }, \"Clear value\": { \"v\": [\"Érték törlése\"] }, \"Close time Picker\": { \"v\": [\"Időválasztó bezárása\"] }, \"Datepicker input\": { \"v\": [\"Dátumválasztó bemenet\"] }, \"Datepicker menu\": { \"v\": [\"Dátumválasztó menü\"] }, \"Decrement hours\": { \"v\": [\"Órák csökkentése\"] }, \"Decrement minutes\": { \"v\": [\"Percek csökkentése\"] }, \"Decrement seconds\": { \"v\": [\"Másodpercek csökkentése\"] }, \"Increment hours\": { \"v\": [\"Órák növelése\"] }, \"Increment minutes\": { \"v\": [\"Percek növelése\"] }, \"Increment seconds\": { \"v\": [\"Másodpercek növelése\"] }, \"Month picker\": { \"v\": [\"Hónapválasztó\"] }, \"Month picker overlay\": { \"v\": [\"Hónapválasztó átfedés\"] }, \"Next month\": { \"v\": [\"Következő hónap\"] }, \"Next year\": { \"v\": [\"Következő év\"] }, \"Now\": { \"v\": [\"Most\"] }, \"Open hours overlay\": { \"v\": [\"Órák átfedésének megnyitása\"] }, \"Open minutes overlay\": { \"v\": [\"Percek átfedésének megnyitása\"] }, \"Open months overlay\": { \"v\": [\"Hónapok átfedésének megnyitása\"] }, \"Open seconds overlay\": { \"v\": [\"Másodpercek átfedésének megnyitása\"] }, \"Open time picker\": { \"v\": [\"Időválasztó megnyitása\"] }, \"Open years overlay\": { \"v\": [\"Évek átfedésének megnyitása\"] }, \"Pick\": { \"v\": [\"Válasszon\"] }, \"Previous month\": { \"v\": [\"Előző hónap\"] }, \"Previous year\": { \"v\": [\"Előző év\"] }, \"Select date\": { \"v\": [\"Válasszon dátumot\"] }, \"Select date and time\": { \"v\": [\"Válasszon dátumot és időt\"] }, \"Select month\": { \"v\": [\"Válasszon hónapot\"] }, \"Select time\": { \"v\": [\"Válasszon időt\"] }, \"Select time range\": { \"v\": [\"Válasszon időszakot\"] }, \"Select week\": { \"v\": [\"Válasszon hetet\"] }, \"Select year\": { \"v\": [\"Válasszon évet\"] }, \"Switch AM/PM mode\": { \"v\": [\"Váltás de./du. módra\"] }, \"Time picker\": { \"v\": [\"Időválasztó\"] }, \"Time zone\": { \"v\": [\"Időzóna\"] }, \"Toggle overlay\": { \"v\": [\"Átfedés be/ki\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Évválasztó\"] }, \"Year picker overlay\": { \"v\": [\"Évválasztó átfedés\"] } } }, { \"l\": \"id\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikon kalender\"] }, \"Cancel\": { \"v\": [\"Batal\"] }, \"Clear value\": { \"v\": [\"Hapus nilai\"] }, \"Close time Picker\": { \"v\": [\"Tutup pemilih waktu\"] }, \"Datepicker input\": { \"v\": [\"Input pemilih tanggal\"] }, \"Datepicker menu\": { \"v\": [\"Menu pemilih tanggal\"] }, \"Decrement hours\": { \"v\": [\"Kurangi jam\"] }, \"Decrement minutes\": { \"v\": [\"Kurangi menit\"] }, \"Decrement seconds\": { \"v\": [\"Kurangi detik\"] }, \"Increment hours\": { \"v\": [\"Tambah jam\"] }, \"Increment minutes\": { \"v\": [\"Tambah menit\"] }, \"Increment seconds\": { \"v\": [\"Tambah detik\"] }, \"Month picker\": { \"v\": [\"Pemilih bulan\"] }, \"Month picker overlay\": { \"v\": [\"Overlay pemilih bulan\"] }, \"Next month\": { \"v\": [\"Bulan berikutnya\"] }, \"Next year\": { \"v\": [\"Tahun berikutnya\"] }, \"Now\": { \"v\": [\"Sekarang\"] }, \"Open hours overlay\": { \"v\": [\"Buka overlay jam\"] }, \"Open minutes overlay\": { \"v\": [\"Buka overlay menit\"] }, \"Open months overlay\": { \"v\": [\"Buka overlay bulan\"] }, \"Open seconds overlay\": { \"v\": [\"Buka overlay detik\"] }, \"Open time picker\": { \"v\": [\"Buka pemilih waktu\"] }, \"Open years overlay\": { \"v\": [\"Buka overlay tahun\"] }, \"Pick\": { \"v\": [\"Pilih\"] }, \"Previous month\": { \"v\": [\"Bulan sebelumnya\"] }, \"Previous year\": { \"v\": [\"Tahun sebelumnya\"] }, \"Select date\": { \"v\": [\"Pilih tanggal\"] }, \"Select date and time\": { \"v\": [\"Pilih tanggal dan waktu\"] }, \"Select month\": { \"v\": [\"Pilih bulan\"] }, \"Select time\": { \"v\": [\"Pilih waktu\"] }, \"Select time range\": { \"v\": [\"Pilih rentang waktu\"] }, \"Select week\": { \"v\": [\"Pilih minggu\"] }, \"Select year\": { \"v\": [\"Pilih tahun\"] }, \"Switch AM/PM mode\": { \"v\": [\"Ganti mode AM/PM\"] }, \"Time picker\": { \"v\": [\"Pemilih waktu\"] }, \"Time zone\": { \"v\": [\"Zona waktu\"] }, \"Toggle overlay\": { \"v\": [\"Alihkan overlay\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Pemilih tahun\"] }, \"Year picker overlay\": { \"v\": [\"Overlay pemilih tahun\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Calendar icon\": { \"v\": [\"カレンダーのアイコン\"] }, \"Cancel\": { \"v\": [\"キャンセル\"] }, \"Clear value\": { \"v\": [\"値をクリア\"] }, \"Close time Picker\": { \"v\": [\"時間ピッカーを閉じる\"] }, \"Datepicker input\": { \"v\": [\"データピッカー入力\"] }, \"Datepicker menu\": { \"v\": [\"データピッカーメニュー\"] }, \"Decrement hours\": { \"v\": [\"時間を減らす\"] }, \"Decrement minutes\": { \"v\": [\"分を減らす\"] }, \"Decrement seconds\": { \"v\": [\"秒を減らす\"] }, \"Increment hours\": { \"v\": [\"時間を増やす\"] }, \"Increment minutes\": { \"v\": [\"分を増やす\"] }, \"Increment seconds\": { \"v\": [\"秒を増やす\"] }, \"Month picker\": { \"v\": [\"月ピッカー\"] }, \"Month picker overlay\": { \"v\": [\"月ピッカーオーバーレイ\"] }, \"Next month\": { \"v\": [\"次月\"] }, \"Next year\": { \"v\": [\"次年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"時間オーバーレイを開く\"] }, \"Open minutes overlay\": { \"v\": [\"分オーバーレイを開く\"] }, \"Open months overlay\": { \"v\": [\"月オーバーレイを開く\"] }, \"Open seconds overlay\": { \"v\": [\"秒オーバーレイを開く\"] }, \"Open time picker\": { \"v\": [\"時間ピッカーを開く\"] }, \"Open years overlay\": { \"v\": [\"年オーバーレイを開く\"] }, \"Pick\": { \"v\": [\"選択\"] }, \"Previous month\": { \"v\": [\"前月\"] }, \"Previous year\": { \"v\": [\"前年\"] }, \"Select date\": { \"v\": [\"日付を選択\"] }, \"Select date and time\": { \"v\": [\"日付と時刻を選択\"] }, \"Select month\": { \"v\": [\"月を選択\"] }, \"Select time\": { \"v\": [\"時刻を選択\"] }, \"Select time range\": { \"v\": [\"時間範囲を選択\"] }, \"Select week\": { \"v\": [\"週を選択\"] }, \"Select year\": { \"v\": [\"年を選択\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PMモードの切り替え\"] }, \"Time picker\": { \"v\": [\"時刻ピッカー\"] }, \"Time zone\": { \"v\": [\"タイムゾーン\"] }, \"Toggle overlay\": { \"v\": [\"オーバーレイの切り替え\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"年ピッカー\"] }, \"Year picker overlay\": { \"v\": [\"年ピッカーオーバーレイ\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Calendar icon\": { \"v\": [\"캘린더 아이콘\"] }, \"Cancel\": { \"v\": [\"취소\"] }, \"Clear value\": { \"v\": [\"값 지우기\"] }, \"Close time Picker\": { \"v\": [\"시간 선택기 닫기\"] }, \"Datepicker input\": { \"v\": [\"날짜 선택기 입력\"] }, \"Datepicker menu\": { \"v\": [\"날짜 입력기 메뉴\"] }, \"Decrement hours\": { \"v\": [\"시 감소\"] }, \"Decrement minutes\": { \"v\": [\"분 감소\"] }, \"Decrement seconds\": { \"v\": [\"초 감소\"] }, \"Increment hours\": { \"v\": [\"시 증가\"] }, \"Increment minutes\": { \"v\": [\"분 증가\"] }, \"Increment seconds\": { \"v\": [\"초 증가\"] }, \"Month picker\": { \"v\": [\"월 선택기\"] }, \"Month picker overlay\": { \"v\": [\"월 선택기 오버레이\"] }, \"Next month\": { \"v\": [\"다음 달\"] }, \"Next year\": { \"v\": [\"다음 해\"] }, \"Now\": { \"v\": [\"현재\"] }, \"Open hours overlay\": { \"v\": [\"시 오버레이 열기\"] }, \"Open minutes overlay\": { \"v\": [\"분 오버레이 열기\"] }, \"Open months overlay\": { \"v\": [\"월 오버레이 열기\"] }, \"Open seconds overlay\": { \"v\": [\"초 오버레이 열기\"] }, \"Open time picker\": { \"v\": [\"시간 선택기 열기\"] }, \"Open years overlay\": { \"v\": [\"년 오버레이 열기\"] }, \"Pick\": { \"v\": [\"선택\"] }, \"Previous month\": { \"v\": [\"이전 달\"] }, \"Previous year\": { \"v\": [\"이전 해\"] }, \"Select date\": { \"v\": [\"날짜 선택\"] }, \"Select date and time\": { \"v\": [\"날짜와 시간 선택\"] }, \"Select month\": { \"v\": [\"월 선택\"] }, \"Select time\": { \"v\": [\"시간 선택\"] }, \"Select time range\": { \"v\": [\"시간 구간 선택\"] }, \"Select week\": { \"v\": [\"주 선택\"] }, \"Select year\": { \"v\": [\"년도 선택\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM 모드 전환\"] }, \"Time picker\": { \"v\": [\"시간 선택기\"] }, \"Time zone\": { \"v\": [\"시간대\"] }, \"Toggle overlay\": { \"v\": [\"오버레이 토글\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"년도 선택기\"] }, \"Year picker overlay\": { \"v\": [\"년도 선택기 오버레이\"] } } }, { \"l\": \"lo\", \"t\": { \"Calendar icon\": { \"v\": [\"ໄອຄອນປະຕິທິນ\"] }, \"Cancel\": { \"v\": [\"ຍົກເລີກ\"] }, \"Clear value\": { \"v\": [\"ລຶບຄ່າ\"] }, \"Close time Picker\": { \"v\": [\"ປິດໂຕເລືອກເວລາ\"] }, \"Datepicker input\": { \"v\": [\"ຊ່ອງປ້ອນວັນທີ\"] }, \"Datepicker menu\": { \"v\": [\"ເມນູໂຕເລືອກວັນທີ\"] }, \"Decrement hours\": { \"v\": [\"ຫຼຸດຊົ່ວໂມງ\"] }, \"Decrement minutes\": { \"v\": [\"ຫຼຸດນາທີ\"] }, \"Decrement seconds\": { \"v\": [\"ຫຼຸດວິນາທີ\"] }, \"Increment hours\": { \"v\": [\"ເພີ່ມຊົ່ວໂມງ\"] }, \"Increment minutes\": { \"v\": [\"ເພີ່ມນາທີ\"] }, \"Increment seconds\": { \"v\": [\"ເພີ່ມວິນາທີ\"] }, \"Month picker\": { \"v\": [\"ໂຕເລືອກເດືອນ\"] }, \"Month picker overlay\": { \"v\": [\"ໜ້າຕ່າງໂຕເລືອກເດືອນ\"] }, \"Next month\": { \"v\": [\"ເດືອນໜ້າ\"] }, \"Next year\": { \"v\": [\"ປີໜ້າ\"] }, \"Now\": { \"v\": [\"ຕອນນີ້\"] }, \"Open hours overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກຊົ່ວໂມງ\"] }, \"Open minutes overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກນາທີ\"] }, \"Open months overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກເດືອນ\"] }, \"Open seconds overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກວິນາທີ\"] }, \"Open time picker\": { \"v\": [\"ເປີດໂຕເລືອກເວລາ\"] }, \"Open years overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກປີ\"] }, \"Pick\": { \"v\": [\"ເລືອກ\"] }, \"Previous month\": { \"v\": [\"ເດືອນກ່ອນ\"] }, \"Previous year\": { \"v\": [\"ປີກ່ອນ\"] }, \"Select date\": { \"v\": [\"ເລືອກວັນທີ\"] }, \"Select date and time\": { \"v\": [\"ເລືອກວັນທີ ແລະ ເວລາ\"] }, \"Select month\": { \"v\": [\"ເລືອກເດືອນ\"] }, \"Select time\": { \"v\": [\"ເລືອກເວລາ\"] }, \"Select time range\": { \"v\": [\"ເລືອກຊ່ວງເວລາ\"] }, \"Select week\": { \"v\": [\"ເລືອກອາທິດ\"] }, \"Select year\": { \"v\": [\"ເລືອກປີ\"] }, \"Switch AM/PM mode\": { \"v\": [\"ສະຫຼັບໂໝດ AM/PM\"] }, \"Time picker\": { \"v\": [\"ໂຕເລືອກເວລາ\"] }, \"Time zone\": { \"v\": [\"ເຂດເວລາ\"] }, \"Toggle overlay\": { \"v\": [\"ສະຫຼັບໜ້າຕ່າງ\"] }, \"W\": { \"v\": [\"ອ\"] }, \"Year picker\": { \"v\": [\"ໂຕເລືອກປີ\"] }, \"Year picker overlay\": { \"v\": [\"ໜ້າຕ່າງໂຕເລືອກປີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendoriaus piktograma\"] }, \"Cancel\": { \"v\": [\"Atsisakyti\"] }, \"Clear value\": { \"v\": [\"Aiški vertė\"] }, \"Close time Picker\": { \"v\": [\"Uždaryti laiko pasirinkimo langą\"] }, \"Datepicker input\": { \"v\": [\"Datos rinkiklio įvestis\"] }, \"Datepicker menu\": { \"v\": [\"Datos rinkiklio meniu\"] }, \"Decrement hours\": { \"v\": [\"Sumažinkite valandas\"] }, \"Decrement minutes\": { \"v\": [\"Sumažinkite minutes\"] }, \"Decrement seconds\": { \"v\": [\"Sumažinkite sekundes\"] }, \"Increment hours\": { \"v\": [\"Padidinkite valandas\"] }, \"Increment minutes\": { \"v\": [\"Padidinkite minutes\"] }, \"Increment seconds\": { \"v\": [\"Padidinkite sekundes\"] }, \"Month picker\": { \"v\": [\"Mėnesio pasirinkimas\"] }, \"Month picker overlay\": { \"v\": [\"Mėnesio parinkiklio langas\"] }, \"Next month\": { \"v\": [\"Kitą mėnesį\"] }, \"Next year\": { \"v\": [\"Kiti metai\"] }, \"Now\": { \"v\": [\"Dabar\"] }, \"Open hours overlay\": { \"v\": [\"Atidaryti valandų pasirinkimą\"] }, \"Open minutes overlay\": { \"v\": [\"Atidaryti minučių pasirinkimą\"] }, \"Open months overlay\": { \"v\": [\"Atidaryti mėnesių pasirinkimą\"] }, \"Open seconds overlay\": { \"v\": [\"Atidaryti sekundžių pasirinkimą\"] }, \"Open time picker\": { \"v\": [\"Atverti laiko pasirinkimo langą\"] }, \"Open years overlay\": { \"v\": [\"Atidaryti metų pasirinkimą\"] }, \"Pick\": { \"v\": [\"Pasirinkti\"] }, \"Previous month\": { \"v\": [\"Ankstesnis mėnesis\"] }, \"Previous year\": { \"v\": [\"Ankstesni metai\"] }, \"Select date\": { \"v\": [\"Pasirinkti datą\"] }, \"Select date and time\": { \"v\": [\"Pasirinkti datą ir laiką\"] }, \"Select month\": { \"v\": [\"Pasirinkti mėnesį\"] }, \"Select time\": { \"v\": [\"Pasirinkti laiką\"] }, \"Select time range\": { \"v\": [\"Pasirinkti laikotarpį\"] }, \"Select week\": { \"v\": [\"Pasirinkti savaitę\"] }, \"Select year\": { \"v\": [\"Pasirinkti metus\"] }, \"Switch AM/PM mode\": { \"v\": [\"Perjungti AM/PM režimą\"] }, \"Time picker\": { \"v\": [\"Laiko parinkiklis\"] }, \"Time zone\": { \"v\": [\"Laiko juosta\"] }, \"Toggle overlay\": { \"v\": [\"Perjungti pasirinkimo langą\"] }, \"W\": { \"v\": ['\"W\"'] }, \"Year picker\": { \"v\": [\"Metų parinkiklis\"] }, \"Year picker overlay\": { \"v\": [\"Metų pasirinkimo langas\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Calendar icon\": { \"v\": [\"Икона за календар\"] }, \"Cancel\": { \"v\": [\"Откажи\"] }, \"Clear value\": { \"v\": [\"Исчисти вредност\"] }, \"Close time Picker\": { \"v\": [\"Затвори избирач на време\"] }, \"Datepicker input\": { \"v\": [\"Поле за избор на датум\"] }, \"Datepicker menu\": { \"v\": [\"Мени за избор на датум\"] }, \"Decrement hours\": { \"v\": [\"Намали часови\"] }, \"Decrement minutes\": { \"v\": [\"Намали минути\"] }, \"Decrement seconds\": { \"v\": [\"Намали секунди\"] }, \"Increment hours\": { \"v\": [\"Зголеми часови\"] }, \"Increment minutes\": { \"v\": [\"Зголеми минути\"] }, \"Increment seconds\": { \"v\": [\"Зголеми секунди\"] }, \"Month picker\": { \"v\": [\"Избор на месец\"] }, \"Month picker overlay\": { \"v\": [\"Надолжен избор на месец\"] }, \"Next month\": { \"v\": [\"Следен месец\"] }, \"Next year\": { \"v\": [\"Следна година\"] }, \"Now\": { \"v\": [\"Сега\"] }, \"Open hours overlay\": { \"v\": [\"Отвори преклоп за часови\"] }, \"Open minutes overlay\": { \"v\": [\"Отвори преклоп за минути\"] }, \"Open months overlay\": { \"v\": [\"Отвори преклоп за месеци\"] }, \"Open seconds overlay\": { \"v\": [\"Отвори преклоп за секунди\"] }, \"Open time picker\": { \"v\": [\"Отвори избор на време\"] }, \"Open years overlay\": { \"v\": [\"Отвори преклоп за години\"] }, \"Pick\": { \"v\": [\"Избери\"] }, \"Previous month\": { \"v\": [\"Предходен месец\"] }, \"Previous year\": { \"v\": [\"Предходна година\"] }, \"Select date\": { \"v\": [\"Избери датум\"] }, \"Select date and time\": { \"v\": [\"Избери датум и време\"] }, \"Select month\": { \"v\": [\"Избери месец\"] }, \"Select time\": { \"v\": [\"Избери време\"] }, \"Select time range\": { \"v\": [\"Избери времески опсег\"] }, \"Select week\": { \"v\": [\"Избери недела\"] }, \"Select year\": { \"v\": [\"Избери година\"] }, \"Switch AM/PM mode\": { \"v\": [\"Смени AM/PM режим\"] }, \"Time picker\": { \"v\": [\"Избирач на време\"] }, \"Time zone\": { \"v\": [\"Временска зона\"] }, \"Toggle overlay\": { \"v\": [\"Вклучи/исклучи преклоп\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Избор на година\"] }, \"Year picker overlay\": { \"v\": [\"Надолжен избор на година\"] } } }, { \"l\": \"mn\", \"t\": { \"Calendar icon\": { \"v\": [\"Календарийн дүрс\"] }, \"Cancel\": { \"v\": [\"Цуцлах\"] }, \"Clear value\": { \"v\": [\"Утгыг цэвэрлэх\"] }, \"Close time Picker\": { \"v\": [\"Цаг сонгогчийг хаах\"] }, \"Datepicker input\": { \"v\": [\"Огноо сонгогчийн оролт\"] }, \"Datepicker menu\": { \"v\": [\"Огноо сонгогчийн цэс\"] }, \"Decrement hours\": { \"v\": [\"Цагийг бууруулах\"] }, \"Decrement minutes\": { \"v\": [\"Минутыг бууруулах\"] }, \"Decrement seconds\": { \"v\": [\"Секундыг бууруулах\"] }, \"Increment hours\": { \"v\": [\"Цагийг нэмэгдүүлэх\"] }, \"Increment minutes\": { \"v\": [\"Минутыг нэмэгдүүлэх\"] }, \"Increment seconds\": { \"v\": [\"Секундыг нэмэгдүүлэх\"] }, \"Month picker\": { \"v\": [\"Сар сонгогч\"] }, \"Month picker overlay\": { \"v\": [\"Сар сонгогчийн давхарга\"] }, \"Next month\": { \"v\": [\"Дараа сар\"] }, \"Next year\": { \"v\": [\"Дараа жил\"] }, \"Now\": { \"v\": [\"Одоо\"] }, \"Open hours overlay\": { \"v\": [\"Цагийн давхаргыг нээх\"] }, \"Open minutes overlay\": { \"v\": [\"Минутын давхаргыг нээх\"] }, \"Open months overlay\": { \"v\": [\"Сарын давхаргыг нээх\"] }, \"Open seconds overlay\": { \"v\": [\"Секундын давхаргыг нээх\"] }, \"Open time picker\": { \"v\": [\"Цаг сонгогчийг нээх\"] }, \"Open years overlay\": { \"v\": [\"Жилийн давхаргыг нээх\"] }, \"Pick\": { \"v\": [\"Сонгох\"] }, \"Previous month\": { \"v\": [\"Өмнөх сар\"] }, \"Previous year\": { \"v\": [\"Өмнөх жил\"] }, \"Select date\": { \"v\": [\"Огноо сонгох\"] }, \"Select date and time\": { \"v\": [\"Огноо, цаг сонгох\"] }, \"Select month\": { \"v\": [\"Сар сонгох\"] }, \"Select time\": { \"v\": [\"Цаг сонгох\"] }, \"Select time range\": { \"v\": [\"Цагийн хүрээ сонгох\"] }, \"Select week\": { \"v\": [\"Долоо хоног сонгох\"] }, \"Select year\": { \"v\": [\"Жил сонгох\"] }, \"Switch AM/PM mode\": { \"v\": [\"ҮӨ/ҮХ горимыг солих\"] }, \"Time picker\": { \"v\": [\"Цаг сонгогч\"] }, \"Time zone\": { \"v\": [\"Цагийн бүс\"] }, \"Toggle overlay\": { \"v\": [\"Давхаргыг сэлгэх\"] }, \"W\": { \"v\": [\"Д\"] }, \"Year picker\": { \"v\": [\"Жил сонгогч\"] }, \"Year picker overlay\": { \"v\": [\"Жил сонгогчийн давхарга\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalender-pictogram\"] }, \"Cancel\": { \"v\": [\"Annuleren\"] }, \"Clear value\": { \"v\": [\"Waarde wissen\"] }, \"Close time Picker\": { \"v\": [\"Tijdkiezer sluiten\"] }, \"Datepicker input\": { \"v\": [\"Datumkiezer invoer\"] }, \"Datepicker menu\": { \"v\": [\"Datumkiezer menu\"] }, \"Decrement hours\": { \"v\": [\"Uren verminderen\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verminderen\"] }, \"Decrement seconds\": { \"v\": [\"Seconden verminderen\"] }, \"Increment hours\": { \"v\": [\"Uren vermeerderen\"] }, \"Increment minutes\": { \"v\": [\"Minuten vermeerderen\"] }, \"Increment seconds\": { \"v\": [\"Seconden vermeerderen\"] }, \"Month picker\": { \"v\": [\"Maandkiezer\"] }, \"Month picker overlay\": { \"v\": [\"Maandkiezer-overlay\"] }, \"Next month\": { \"v\": [\"Volgende maand\"] }, \"Next year\": { \"v\": [\"Volgend jaar\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Uren-overlay openen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-overlay openen\"] }, \"Open months overlay\": { \"v\": [\"Maanden-overlay openen\"] }, \"Open seconds overlay\": { \"v\": [\"Seconden-overlay openen\"] }, \"Open time picker\": { \"v\": [\"Tijdkiezer openen\"] }, \"Open years overlay\": { \"v\": [\"Jaren-overlay openen\"] }, \"Pick\": { \"v\": [\"Kiezen\"] }, \"Previous month\": { \"v\": [\"Vorige maand\"] }, \"Previous year\": { \"v\": [\"Vorig jaar\"] }, \"Select date\": { \"v\": [\"Selecteer datum\"] }, \"Select date and time\": { \"v\": [\"Selecteer datum en tijd\"] }, \"Select month\": { \"v\": [\"Selecteer maand\"] }, \"Select time\": { \"v\": [\"Selecteer tijd\"] }, \"Select time range\": { \"v\": [\"Selecteer tijdsbereik\"] }, \"Select week\": { \"v\": [\"Selecteer week\"] }, \"Select year\": { \"v\": [\"Selecteer jaar\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM-modus wisselen\"] }, \"Time picker\": { \"v\": [\"Tijdkiezer\"] }, \"Time zone\": { \"v\": [\"Tijdzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay wisselen\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jaarkiezer\"] }, \"Year picker overlay\": { \"v\": [\"Jaarkiezer-overlay\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Calendar icon\": { \"v\": [\"Ícone de calendário\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar valor\"] }, \"Close time Picker\": { \"v\": [\"Fechar Seletor de tempo\"] }, \"Datepicker input\": { \"v\": [\"entrada do seletor de data\"] }, \"Datepicker menu\": { \"v\": [\"menu do seletor de data\"] }, \"Decrement hours\": { \"v\": [\"Diminuir horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuir minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuir segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar segundos\"] }, \"Month picker\": { \"v\": [\"Seletor de meses\"] }, \"Month picker overlay\": { \"v\": [\"Sobreposição do seletor de meses\"] }, \"Next month\": { \"v\": [\"Próximo mês\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir sobreposição de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir sobreposição de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir sobreposição de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir sobreposição de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir seletor de tempo\"] }, \"Open years overlay\": { \"v\": [\"Abrir sobreposição de anos\"] }, \"Pick\": { \"v\": [\"Escolher\"] }, \"Previous month\": { \"v\": [\"Mês anterior\"] }, \"Previous year\": { \"v\": [\"Ano anterior\"] }, \"Select date\": { \"v\": [\"Selecione data\"] }, \"Select date and time\": { \"v\": [\"Selecione data e hora\"] }, \"Select month\": { \"v\": [\"Selecione mês\"] }, \"Select time\": { \"v\": [\"Selecione hora\"] }, \"Select time range\": { \"v\": [\"Selecione intervalo de tempo\"] }, \"Select week\": { \"v\": [\"Selecione semana\"] }, \"Select year\": { \"v\": [\"Selecione ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Seletor de tempo\"] }, \"Time zone\": { \"v\": [\"Fuso horário\"] }, \"Toggle overlay\": { \"v\": [\"Alternar sobreposição\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Seletor de ano\"] }, \"Year picker overlay\": { \"v\": [\"Sobreposição do seletor de ano\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Calendar icon\": { \"v\": [\"Ícone de calendário\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar valor\"] }, \"Close time Picker\": { \"v\": [\"Fechar seletor de hora\"] }, \"Datepicker input\": { \"v\": [\"Campo do seletor de data\"] }, \"Datepicker menu\": { \"v\": [\"Menu do seletor de data\"] }, \"Decrement hours\": { \"v\": [\"Diminuir horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuir minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuir segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar segundos\"] }, \"Month picker\": { \"v\": [\"Seletor de mês\"] }, \"Month picker overlay\": { \"v\": [\"Janela do seletor de mês\"] }, \"Next month\": { \"v\": [\"Próximo mês\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir janela de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir janela de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir janela de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir janela de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir seletor de hora\"] }, \"Open years overlay\": { \"v\": [\"Abrir janela de anos\"] }, \"Pick\": { \"v\": [\"Selecionar\"] }, \"Previous month\": { \"v\": [\"Mês anterior\"] }, \"Previous year\": { \"v\": [\"Ano anterior\"] }, \"Select date\": { \"v\": [\"Selecionar data\"] }, \"Select date and time\": { \"v\": [\"Selecionar data e hora\"] }, \"Select month\": { \"v\": [\"Selecionar mês\"] }, \"Select time\": { \"v\": [\"Selecionar hora\"] }, \"Select time range\": { \"v\": [\"Selecionar intervalo de horas\"] }, \"Select week\": { \"v\": [\"Selecionar semana\"] }, \"Select year\": { \"v\": [\"Selecionar ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Seletor de hora\"] }, \"Toggle overlay\": { \"v\": [\"Alternar sobreposição\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Seletor de ano\"] }, \"Year picker overlay\": { \"v\": [\"Janela do seletor de ano\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Calendar icon\": { \"v\": [\"Значок календаря\"] }, \"Cancel\": { \"v\": [\"Отмена\"] }, \"Clear value\": { \"v\": [\"Очистить значение\"] }, \"Close time Picker\": { \"v\": [\"Закрыть выбор времени\"] }, \"Datepicker input\": { \"v\": [\"Поле выбора даты\"] }, \"Datepicker menu\": { \"v\": [\"Меню выбора даты\"] }, \"Decrement hours\": { \"v\": [\"Уменьшить количество часов\"] }, \"Decrement minutes\": { \"v\": [\"Уменьшить количество минут\"] }, \"Decrement seconds\": { \"v\": [\"Уменьшить количество секунд\"] }, \"Increment hours\": { \"v\": [\"Увеличить количество часов\"] }, \"Increment minutes\": { \"v\": [\"Увеличить количество минут\"] }, \"Increment seconds\": { \"v\": [\"Увеличить количество секунд\"] }, \"Month picker\": { \"v\": [\"Выбор месяца\"] }, \"Month picker overlay\": { \"v\": [\"Окно выбора месяца\"] }, \"Next month\": { \"v\": [\"Следующий месяц\"] }, \"Next year\": { \"v\": [\"Следующий год\"] }, \"Now\": { \"v\": [\"Сейчас\"] }, \"Open hours overlay\": { \"v\": [\"Открыть окно выбора часов\"] }, \"Open minutes overlay\": { \"v\": [\"Открыть окно выбора минут\"] }, \"Open months overlay\": { \"v\": [\"Открыть окно выбора месяца\"] }, \"Open seconds overlay\": { \"v\": [\"Открыть окно выбора секунд\"] }, \"Open time picker\": { \"v\": [\"Открыть средство выбора времени\"] }, \"Open years overlay\": { \"v\": [\"Открыть окно выбора года\"] }, \"Pick\": { \"v\": [\"Выбор\"] }, \"Previous month\": { \"v\": [\"Предыдущий месяц\"] }, \"Previous year\": { \"v\": [\"Предыдущий год\"] }, \"Select date\": { \"v\": [\"Выбрать дату\"] }, \"Select date and time\": { \"v\": [\"Выбрать дату и время\"] }, \"Select month\": { \"v\": [\"Выбрать месяц\"] }, \"Select time\": { \"v\": [\"Выбрать время\"] }, \"Select time range\": { \"v\": [\"Выбрать временной диапазон\"] }, \"Select week\": { \"v\": [\"Выбрать неделю\"] }, \"Select year\": { \"v\": [\"Выбрать год\"] }, \"Switch AM/PM mode\": { \"v\": [\"Переключение режима AM/PM\"] }, \"Time picker\": { \"v\": [\"Выбор времени\"] }, \"Time zone\": { \"v\": [\"Часовой пояс\"] }, \"Toggle overlay\": { \"v\": [\"Переключить панель\"] }, \"W\": { \"v\": [\"Н\"] }, \"Year picker\": { \"v\": [\"Выбор года\"] }, \"Year picker overlay\": { \"v\": [\"Окно выбора года\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Calendar icon\": { \"v\": [\"Икона календара\"] }, \"Cancel\": { \"v\": [\"Откажи\"] }, \"Clear value\": { \"v\": [\"Обриши вредност\"] }, \"Close time Picker\": { \"v\": [\"Затвори бирач времена\"] }, \"Datepicker input\": { \"v\": [\"Улаз бирача датума\"] }, \"Datepicker menu\": { \"v\": [\"Мени бирача датума\"] }, \"Decrement hours\": { \"v\": [\"Умањи сате\"] }, \"Decrement minutes\": { \"v\": [\"Умањи минуте\"] }, \"Decrement seconds\": { \"v\": [\"Умањи секунде\"] }, \"Increment hours\": { \"v\": [\"Увећај сате\"] }, \"Increment minutes\": { \"v\": [\"Увећај минуте\"] }, \"Increment seconds\": { \"v\": [\"Увећај секунде\"] }, \"Month picker\": { \"v\": [\"Бирач месеца\"] }, \"Month picker overlay\": { \"v\": [\"Маска бирача месеца\"] }, \"Next month\": { \"v\": [\"Наредни месец\"] }, \"Next year\": { \"v\": [\"Наредна година\"] }, \"Now\": { \"v\": [\"Сада\"] }, \"Open hours overlay\": { \"v\": [\"Отвори маску сати\"] }, \"Open minutes overlay\": { \"v\": [\"Отвори маску минута\"] }, \"Open months overlay\": { \"v\": [\"Отвори маску месеци\"] }, \"Open seconds overlay\": { \"v\": [\"Отвори маску секунди\"] }, \"Open time picker\": { \"v\": [\"Отвори бирач времена\"] }, \"Open years overlay\": { \"v\": [\"Отвори маску година\"] }, \"Pick\": { \"v\": [\"Изабери\"] }, \"Previous month\": { \"v\": [\"Претходни месец\"] }, \"Previous year\": { \"v\": [\"Претходна година\"] }, \"Select date\": { \"v\": [\"Изаберите датум\"] }, \"Select date and time\": { \"v\": [\"Изаберите датум и време\"] }, \"Select month\": { \"v\": [\"Изаберите месец\"] }, \"Select time\": { \"v\": [\"Изаберите време\"] }, \"Select time range\": { \"v\": [\"Изаберите опсег времена\"] }, \"Select week\": { \"v\": [\"Изаберите недељу\"] }, \"Select year\": { \"v\": [\"Изаберите годину\"] }, \"Switch AM/PM mode\": { \"v\": [\"Укљ./Искљ. AM/PM режим\"] }, \"Time picker\": { \"v\": [\"Бирач времена\"] }, \"Toggle overlay\": { \"v\": [\"Укљ./Искљ. маску\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Бирач године\"] }, \"Year picker overlay\": { \"v\": [\"Маска бирача године\"] } } }, { \"l\": \"sv\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalenderikon\"] }, \"Cancel\": { \"v\": [\"Avbryt\"] }, \"Clear value\": { \"v\": [\"Rensa värde\"] }, \"Close time Picker\": { \"v\": [\"Stäng tidsväljaren\"] }, \"Datepicker input\": { \"v\": [\"Inmatning för datumväljare\"] }, \"Datepicker menu\": { \"v\": [\"Datumväljarmeny\"] }, \"Decrement hours\": { \"v\": [\"Minska timmar\"] }, \"Decrement minutes\": { \"v\": [\"Minska minuter\"] }, \"Decrement seconds\": { \"v\": [\"Minska sekunder\"] }, \"Increment hours\": { \"v\": [\"Öka timmar\"] }, \"Increment minutes\": { \"v\": [\"Öka minuter\"] }, \"Increment seconds\": { \"v\": [\"Öka sekunder\"] }, \"Month picker\": { \"v\": [\"Månadsväljare\"] }, \"Month picker overlay\": { \"v\": [\"Månadsväljarens panel\"] }, \"Next month\": { \"v\": [\"Nästa månad\"] }, \"Next year\": { \"v\": [\"Nästa år\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Öppna timmespanel\"] }, \"Open minutes overlay\": { \"v\": [\"Öppna minutpanel\"] }, \"Open months overlay\": { \"v\": [\"Öppna månadspanel\"] }, \"Open seconds overlay\": { \"v\": [\"Öppna sekundpanel\"] }, \"Open time picker\": { \"v\": [\"Öppna tidsväljaren\"] }, \"Open years overlay\": { \"v\": [\"Öppna årspanel\"] }, \"Pick\": { \"v\": [\"Välj\"] }, \"Previous month\": { \"v\": [\"Föregående månad\"] }, \"Previous year\": { \"v\": [\"Föregående år\"] }, \"Select date\": { \"v\": [\"Välj datum\"] }, \"Select date and time\": { \"v\": [\"Välj datum och tid\"] }, \"Select month\": { \"v\": [\"Välj månad\"] }, \"Select time\": { \"v\": [\"Välj tid\"] }, \"Select time range\": { \"v\": [\"Välj tidsintervall\"] }, \"Select week\": { \"v\": [\"Välj vecka\"] }, \"Select year\": { \"v\": [\"Välj år\"] }, \"Switch AM/PM mode\": { \"v\": [\"Växla mellan AM/PM-läge\"] }, \"Time picker\": { \"v\": [\"Tidsväljare\"] }, \"Time zone\": { \"v\": [\"Tidszon\"] }, \"Toggle overlay\": { \"v\": [\"Växla panel\"] }, \"W\": { \"v\": [\"V\"] }, \"Year picker\": { \"v\": [\"Årsväljare\"] }, \"Year picker overlay\": { \"v\": [\"Årsväljarens panel\"] } } }, { \"l\": \"tr\", \"t\": { \"Calendar icon\": { \"v\": [\"Takvim simgesi\"] }, \"Cancel\": { \"v\": [\"İptal\"] }, \"Clear value\": { \"v\": [\"Değeri temizle\"] }, \"Close time Picker\": { \"v\": [\"Zaman seçiciyi kapat\"] }, \"Datepicker input\": { \"v\": [\"Tarih seçici girişi\"] }, \"Datepicker menu\": { \"v\": [\"Tarih seçici menüsü\"] }, \"Decrement hours\": { \"v\": [\"Azalma saati\"] }, \"Decrement minutes\": { \"v\": [\"Azalma dakikası\"] }, \"Decrement seconds\": { \"v\": [\"Azalma saniyesi\"] }, \"Increment hours\": { \"v\": [\"Artma saati\"] }, \"Increment minutes\": { \"v\": [\"Artma dakikası\"] }, \"Increment seconds\": { \"v\": [\"Artma saniyesi\"] }, \"Month picker\": { \"v\": [\"Ay seçici\"] }, \"Month picker overlay\": { \"v\": [\"Ay seçici kaplaması\"] }, \"Next month\": { \"v\": [\"Sonraki ay\"] }, \"Next year\": { \"v\": [\"Sonraki yıl\"] }, \"Now\": { \"v\": [\"Şimdi\"] }, \"Open hours overlay\": { \"v\": [\"Açık saatler kaplaması\"] }, \"Open minutes overlay\": { \"v\": [\"Dakika kaplamasını aç\"] }, \"Open months overlay\": { \"v\": [\"Ay kaplamasını aç\"] }, \"Open seconds overlay\": { \"v\": [\"Saniye kaplamasını aç\"] }, \"Open time picker\": { \"v\": [\"Saat seçiciyi aç\"] }, \"Open years overlay\": { \"v\": [\"Yıl kaplamasını aç\"] }, \"Pick\": { \"v\": [\"Seçin\"] }, \"Previous month\": { \"v\": [\"Önceki ay\"] }, \"Previous year\": { \"v\": [\"Önceki yıl\"] }, \"Select date\": { \"v\": [\"Tarih seçin\"] }, \"Select date and time\": { \"v\": [\"Tarih ve saat seçin\"] }, \"Select month\": { \"v\": [\"Ay seçin\"] }, \"Select time\": { \"v\": [\"Saat seçin\"] }, \"Select time range\": { \"v\": [\"Saat aralığı seçin\"] }, \"Select week\": { \"v\": [\"Hafta seçin\"] }, \"Select year\": { \"v\": [\"Yıl seçin\"] }, \"Switch AM/PM mode\": { \"v\": [\"ÖÖ/ÖS kipine geç\"] }, \"Time picker\": { \"v\": [\"Saat seçici\"] }, \"Time zone\": { \"v\": [\"Saat dilimi\"] }, \"Toggle overlay\": { \"v\": [\"Kaplamayı aç/kapat\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Yıl seçici\"] }, \"Year picker overlay\": { \"v\": [\"Yıl seçici kaplaması\"] } } }, { \"l\": \"uk\", \"t\": { \"Calendar icon\": { \"v\": [\"Значок календаря\"] }, \"Cancel\": { \"v\": [\"Скасувати\"] }, \"Clear value\": { \"v\": [\"Очистити значення\"] }, \"Close time Picker\": { \"v\": [\"Закрити вибір часу\"] }, \"Datepicker input\": { \"v\": [\"Вибір дати\"] }, \"Datepicker menu\": { \"v\": [\"Меню вибору дати\"] }, \"Decrement hours\": { \"v\": [\"Зменшення годин\"] }, \"Decrement minutes\": { \"v\": [\"Зменшення хвилин\"] }, \"Decrement seconds\": { \"v\": [\"Зменшення секунд\"] }, \"Increment hours\": { \"v\": [\"Збільшення годин\"] }, \"Increment minutes\": { \"v\": [\"Збільшення хвилин\"] }, \"Increment seconds\": { \"v\": [\"Збільшення секунд\"] }, \"Month picker\": { \"v\": [\"Вибір місяця\"] }, \"Month picker overlay\": { \"v\": [\"Напис вибору місяця\"] }, \"Next month\": { \"v\": [\"Наступний місяць\"] }, \"Next year\": { \"v\": [\"Наступний рік\"] }, \"Now\": { \"v\": [\"Зараз\"] }, \"Open hours overlay\": { \"v\": [\"Відкрити напис годин\"] }, \"Open minutes overlay\": { \"v\": [\"Відкрити напис хвилин\"] }, \"Open months overlay\": { \"v\": [\"Відкрити напис місяців\"] }, \"Open seconds overlay\": { \"v\": [\"Відкрити напис секунд\"] }, \"Open time picker\": { \"v\": [\"Відкрити вибір часу\"] }, \"Open years overlay\": { \"v\": [\"Відкрити напис років\"] }, \"Pick\": { \"v\": [\"Вибрати\"] }, \"Previous month\": { \"v\": [\"Попередній місяць\"] }, \"Previous year\": { \"v\": [\"Попередній рік\"] }, \"Select date\": { \"v\": [\"Вибрати дату\"] }, \"Select date and time\": { \"v\": [\"Вибрати дату та час\"] }, \"Select month\": { \"v\": [\"Вибрати місяць\"] }, \"Select time\": { \"v\": [\"Вибрати час\"] }, \"Select time range\": { \"v\": [\"Вибрати проміжок часу\"] }, \"Select week\": { \"v\": [\"Вибрати тиждень\"] }, \"Select year\": { \"v\": [\"Вибрати рік\"] }, \"Switch AM/PM mode\": { \"v\": [\"Перемкнути показ по полудні/до полудня\"] }, \"Time picker\": { \"v\": [\"Вибір часу\"] }, \"Toggle overlay\": { \"v\": [\"Перемкнути напис\"] }, \"W\": { \"v\": [\"Тиж.\"] }, \"Year picker\": { \"v\": [\"Вибір року\"] }, \"Year picker overlay\": { \"v\": [\"Напис вибору року\"] } } }, { \"l\": \"uz\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendar belgisi\"] }, \"Cancel\": { \"v\": [\"Bekor qilish\"] }, \"Clear value\": { \"v\": [\"Qiymatni tozalash\"] }, \"Close time Picker\": { \"v\": [\"Vaqtni tanlash vositasini yopish\"] }, \"Datepicker input\": { \"v\": [\"Sana tanlash vositasi kiritish\"] }, \"Datepicker menu\": { \"v\": [\"Sana tanlash menyusi\"] }, \"Decrement hours\": { \"v\": [\"Ish vaqtini qisqartirish\"] }, \"Decrement minutes\": { \"v\": [\"Daqiqalarni kamaytirish\"] }, \"Decrement seconds\": { \"v\": [\"Soniyalarni kamaytirish\"] }, \"Increment hours\": { \"v\": [\"Ish soatlarini oshirish\"] }, \"Increment minutes\": { \"v\": [\"Daqiqalarni oshiring\"] }, \"Increment seconds\": { \"v\": [\"Soniyalarni ko'paytirish\"] }, \"Month picker\": { \"v\": [\"Oyni tanlovchi\"] }, \"Month picker overlay\": { \"v\": [\"Oyni tanlash vositasi qoplamasi\"] }, \"Next month\": { \"v\": [\"Keyingi oy\"] }, \"Next year\": { \"v\": [\"Keyingi yil\"] }, \"Now\": { \"v\": [\"Hozir\"] }, \"Open hours overlay\": { \"v\": [\"Ochiq ish soatlari\"] }, \"Open minutes overlay\": { \"v\": [\"Ochiq daqiqalar qoplamasi\"] }, \"Open months overlay\": { \"v\": [\"Ochiq oylik qoplama\"] }, \"Open seconds overlay\": { \"v\": [\"Ochiq soniyalar qoplamasi\"] }, \"Open time picker\": { \"v\": [\"Vaqt tanlagichni ochish\"] }, \"Open years overlay\": { \"v\": [\"Yillar qoplamasini ochish\"] }, \"Pick\": { \"v\": [\"Tanlash\"] }, \"Previous month\": { \"v\": [\"Oldingi oy\"] }, \"Previous year\": { \"v\": [\"O'tgan yil\"] }, \"Select date\": { \"v\": [\"Sana tanlang\"] }, \"Select date and time\": { \"v\": [\"Sana va vaqtni tanlang\"] }, \"Select month\": { \"v\": [\"Oyni tanlang\"] }, \"Select time\": { \"v\": [\"Oyni tanlang\"] }, \"Select time range\": { \"v\": [\"Vaqt oralig'ini tanlang\"] }, \"Select week\": { \"v\": [\"Haftani tanlang\"] }, \"Select year\": { \"v\": [\"Yilni tanlang\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM rejimini almashtiring\"] }, \"Time picker\": { \"v\": [\"Vaqtni tanlovchi\"] }, \"Time zone\": { \"v\": [\"Vaqt mintaqasi\"] }, \"Toggle overlay\": { \"v\": [\"Qoplamani almashtirish\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Yilni tanlovchi\"] }, \"Year picker overlay\": { \"v\": [\"Yilni tanlash vositasi\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Calendar icon\": { \"v\": [\"行事曆圖示\"] }, \"Cancel\": { \"v\": [\"取消\"] }, \"Clear value\": { \"v\": [\"清除值\"] }, \"Close time Picker\": { \"v\": [\"關閉時間挑選器\"] }, \"Datepicker input\": { \"v\": [\"日期挑選器輸入\"] }, \"Datepicker menu\": { \"v\": [\"日期挑選器選單\"] }, \"Decrement hours\": { \"v\": [\"小時遞減\"] }, \"Decrement minutes\": { \"v\": [\"分鐘遞減\"] }, \"Decrement seconds\": { \"v\": [\"秒遞減\"] }, \"Increment hours\": { \"v\": [\"小時遞增\"] }, \"Increment minutes\": { \"v\": [\"分鐘遞增\"] }, \"Increment seconds\": { \"v\": [\"秒遞增\"] }, \"Month picker\": { \"v\": [\"月挑選器\"] }, \"Month picker overlay\": { \"v\": [\"月挑選器覆蓋層\"] }, \"Next month\": { \"v\": [\"下個月\"] }, \"Next year\": { \"v\": [\"明年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"開啟小時覆蓋層\"] }, \"Open minutes overlay\": { \"v\": [\"開啟分鐘覆蓋層\"] }, \"Open months overlay\": { \"v\": [\"開啟月覆蓋層\"] }, \"Open seconds overlay\": { \"v\": [\"開啟秒覆蓋層\"] }, \"Open time picker\": { \"v\": [\"開啟時間挑選器\"] }, \"Open years overlay\": { \"v\": [\"開啟年覆蓋層\"] }, \"Pick\": { \"v\": [\"挑選\"] }, \"Previous month\": { \"v\": [\"上個月\"] }, \"Previous year\": { \"v\": [\"去年\"] }, \"Select date\": { \"v\": [\"選取日期\"] }, \"Select date and time\": { \"v\": [\"選取日期與時間\"] }, \"Select month\": { \"v\": [\"選取月\"] }, \"Select time\": { \"v\": [\"選取時間\"] }, \"Select time range\": { \"v\": [\"選取時間範圍\"] }, \"Select week\": { \"v\": [\"選取週\"] }, \"Select year\": { \"v\": [\"選取年\"] }, \"Switch AM/PM mode\": { \"v\": [\"切換上午/下午模式\"] }, \"Time picker\": { \"v\": [\"時間挑選器\"] }, \"Time zone\": { \"v\": [\"時區\"] }, \"Toggle overlay\": { \"v\": [\"切換覆蓋層\"] }, \"W\": { \"v\": [\"週\"] }, \"Year picker\": { \"v\": [\"年挑選器\"] }, \"Year picker overlay\": { \"v\": [\"年挑選器覆蓋層\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Calendar icon\": { \"v\": [\"行事曆圖示\"] }, \"Cancel\": { \"v\": [\"取消\"] }, \"Clear value\": { \"v\": [\"清除值\"] }, \"Close time Picker\": { \"v\": [\"關閉時間挑選器\"] }, \"Datepicker input\": { \"v\": [\"日期挑選器輸入\"] }, \"Datepicker menu\": { \"v\": [\"日期挑選器選單\"] }, \"Decrement hours\": { \"v\": [\"小時遞減\"] }, \"Decrement minutes\": { \"v\": [\"分鐘遞減\"] }, \"Decrement seconds\": { \"v\": [\"秒遞減\"] }, \"Increment hours\": { \"v\": [\"小時遞增\"] }, \"Increment minutes\": { \"v\": [\"分鐘遞增\"] }, \"Increment seconds\": { \"v\": [\"秒遞增\"] }, \"Month picker\": { \"v\": [\"月挑選器\"] }, \"Month picker overlay\": { \"v\": [\"月挑選器覆蓋層\"] }, \"Next month\": { \"v\": [\"下個月\"] }, \"Next year\": { \"v\": [\"明年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"開啟小時覆蓋層\"] }, \"Open minutes overlay\": { \"v\": [\"開啟分鐘覆蓋層\"] }, \"Open months overlay\": { \"v\": [\"開啟月覆蓋層\"] }, \"Open seconds overlay\": { \"v\": [\"開啟秒覆蓋層\"] }, \"Open time picker\": { \"v\": [\"開啟時間挑選器\"] }, \"Open years overlay\": { \"v\": [\"開啟年覆蓋層\"] }, \"Pick\": { \"v\": [\"挑選\"] }, \"Previous month\": { \"v\": [\"上個月\"] }, \"Previous year\": { \"v\": [\"去年\"] }, \"Select date\": { \"v\": [\"選取日期\"] }, \"Select date and time\": { \"v\": [\"選取日期與時間\"] }, \"Select month\": { \"v\": [\"選取月\"] }, \"Select time\": { \"v\": [\"選取時間\"] }, \"Select time range\": { \"v\": [\"選取時間範圍\"] }, \"Select week\": { \"v\": [\"選取週\"] }, \"Select year\": { \"v\": [\"選取年\"] }, \"Switch AM/PM mode\": { \"v\": [\"切換上午/下午模式\"] }, \"Time picker\": { \"v\": [\"時間挑選器\"] }, \"Time zone\": { \"v\": [\"時區\"] }, \"Toggle overlay\": { \"v\": [\"切換覆蓋層\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"年挑選器\"] }, \"Year picker overlay\": { \"v\": [\"年挑選器覆蓋層\"] } } }];\nconst t14 = [{ \"l\": \"ar\", \"t\": { \"Cancel changes\": { \"v\": [\"إلغاء التغييرات\"] }, \"Confirm changes\": { \"v\": [\"تأكيد التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Cancel changes\": { \"v\": [\"Encaboxar los cambeos\"] }, \"Confirm changes\": { \"v\": [\"Confirmar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel·la els canvis\"] }, \"Confirm changes\": { \"v\": [\"Confirmeu els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuller ændringer\"] }, \"Confirm changes\": { \"v\": [\"Bekræft ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"el\", \"t\": { \"Cancel changes\": { \"v\": [\"Ακύρωση αλλαγών\"] }, \"Confirm changes\": { \"v\": [\"Επιβεβαίωση αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel changes\"] }, \"Confirm changes\": { \"v\": [\"Confirm changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Cancel changes\": { \"v\": [\"Tühista muudatused\"] }, \"Confirm changes\": { \"v\": [\"Kinnita muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Cancel changes\": { \"v\": [\"Ezeztatu aldaketak\"] }, \"Confirm changes\": { \"v\": [\"Baieztatu aldaketak\"] } } }, { \"l\": \"fa\", \"t\": { \"Cancel changes\": { \"v\": [\"لغو تغییرات\"] }, \"Confirm changes\": { \"v\": [\"تایید تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Cancel changes\": { \"v\": [\"Peruuta muutokset\"] }, \"Confirm changes\": { \"v\": [\"Vahvista muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuler les modifications\"] }, \"Confirm changes\": { \"v\": [\"Confirmer les modifications\"] } } }, { \"l\": \"ga\", \"t\": { \"Cancel changes\": { \"v\": [\"Cealaigh athruithe\"] }, \"Confirm changes\": { \"v\": [\"Deimhnigh na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar os cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirma os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Cancel changes\": { \"v\": [\"ביטול שינויים\"] }, \"Confirm changes\": { \"v\": [\"אישור השינויים\"] } } }, { \"l\": \"hr\", \"t\": { \"Cancel changes\": { \"v\": [\"Otkaži promjene\"] }, \"Confirm changes\": { \"v\": [\"Potvrdi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Cancel changes\": { \"v\": [\"Változtatások elvetése\"] }, \"Confirm changes\": { \"v\": [\"Változtatások megerősítése\"] } } }, { \"l\": \"id\", \"t\": { \"Cancel changes\": { \"v\": [\"Batalkan perubahan\"] }, \"Confirm changes\": { \"v\": [\"Konfirmasikan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Cancel changes\": { \"v\": [\"Hætta við breytingar\"] }, \"Confirm changes\": { \"v\": [\"Staðfesta breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Cancel changes\": { \"v\": [\"Annulla modifiche\"] }, \"Confirm changes\": { \"v\": [\"Conferma modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ko\", \"t\": { \"Cancel changes\": { \"v\": [\"변경 취소\"] }, \"Confirm changes\": { \"v\": [\"변경 사항 확인\"] } } }, { \"l\": \"lo\", \"t\": { \"Cancel changes\": { \"v\": [\"ຍົກເລີກການປ່ຽນແປງ\"] }, \"Confirm changes\": { \"v\": [\"ຢືນຢັນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Cancel changes\": { \"v\": [\"Atsisakyti pakeitimų\"] }, \"Confirm changes\": { \"v\": [\"Patvirtinti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи ги промените\"] }, \"Confirm changes\": { \"v\": [\"Потврди ги промените\"] } } }, { \"l\": \"mn\", \"t\": { \"Cancel changes\": { \"v\": [\"Өөрчлөлтийг цуцлах\"] }, \"Confirm changes\": { \"v\": [\"Өөрчлөлтийг баталгаажуулах\"] } } }, { \"l\": \"my\", \"t\": { \"Cancel changes\": { \"v\": [\"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်\"] }, \"Confirm changes\": { \"v\": [\"ပြောင်းလဲမှုများ အတည်ပြုရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt endringer\"] }, \"Confirm changes\": { \"v\": [\"Bekreft endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Cancel changes\": { \"v\": [\"Wijzigingen annuleren\"] }, \"Confirm changes\": { \"v\": [\"Wijzigingen bevestigen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Cancel changes\": { \"v\": [\"Anuluj zmiany\"] }, \"Confirm changes\": { \"v\": [\"Potwierdź zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Cancel changes\": { \"v\": [\"Anulează modificările\"] }, \"Confirm changes\": { \"v\": [\"Confirmați modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Cancel changes\": { \"v\": [\"Отменить изменения\"] }, \"Confirm changes\": { \"v\": [\"Подтвердить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušiť zmeny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Cancel changes\": { \"v\": [\"Prekliči spremembe\"] }, \"Confirm changes\": { \"v\": [\"Potrdi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи измене\"] }, \"Confirm changes\": { \"v\": [\"Потврдите измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt ändringar\"] }, \"Confirm changes\": { \"v\": [\"Bekräfta ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Cancel changes\": { \"v\": [\"Değişiklikleri iptal et\"] }, \"Confirm changes\": { \"v\": [\"Değişiklikleri onayla\"] } } }, { \"l\": \"uk\", \"t\": { \"Cancel changes\": { \"v\": [\"Скасувати зміни\"] }, \"Confirm changes\": { \"v\": [\"Підтвердити зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Cancel changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] }, \"Confirm changes\": { \"v\": [\"O'zgarishlarni tasdiqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"确认更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"確認更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Cancel changes\": { \"v\": [\"取消變更\"] }, \"Confirm changes\": { \"v\": [\"確認變更\"] } } }];\nconst t15 = [{ \"l\": \"ar\", \"t\": { \"Change name\": { \"v\": [\"تغيير الاسم\"] }, \"Close sidebar\": { \"v\": [\"قفل الشريط الجانبي\"] }, \"Favorite\": { \"v\": [\"المفضلة\"] }, \"Open sidebar\": { \"v\": [\"إفتَح الشريط الجانبي\"] } } }, { \"l\": \"ast\", \"t\": { \"Change name\": { \"v\": [\"Camudar el nome\"] }, \"Close sidebar\": { \"v\": [\"Zarrar la barra llateral\"] }, \"Favorite\": { \"v\": [\"Favoritu\"] }, \"Open sidebar\": { \"v\": [\"Abrir la barra llateral\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close sidebar\": { \"v\": [\"Tancar la barra lateral\"] }, \"Favorite\": { \"v\": [\"Preferit\"] } } }, { \"l\": \"cs\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] }, \"Open sidebar\": { \"v\": [\"Otevřít postranní panel\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] } } }, { \"l\": \"da\", \"t\": { \"Change name\": { \"v\": [\"Ændre navn\"] }, \"Close sidebar\": { \"v\": [\"Luk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Åbn sidepanel\"] } } }, { \"l\": \"de\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Change name\": { \"v\": [\"Αλλαγή ονόματος\"] }, \"Close sidebar\": { \"v\": [\"Κλείσιμο πλευρικής μπάρας\"] }, \"Favorite\": { \"v\": [\"Αγαπημένα\"] }, \"Open sidebar\": { \"v\": [\"Άνοιγμα πλευρικής μπάρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Change name\": { \"v\": [\"Change name\"] }, \"Close sidebar\": { \"v\": [\"Close sidebar\"] }, \"Favorite\": { \"v\": [\"Favourite\"] }, \"Open sidebar\": { \"v\": [\"Open sidebar\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Change name\": { \"v\": [\"Muuda nime\"] }, \"Close sidebar\": { \"v\": [\"Sulge külgriba\"] }, \"Favorite\": { \"v\": [\"Lemmik\"] }, \"Open sidebar\": { \"v\": [\"Ava külgriba\"] } } }, { \"l\": \"eu\", \"t\": { \"Change name\": { \"v\": [\"Aldatu izena\"] }, \"Close sidebar\": { \"v\": [\"Itxi albo-barra\"] }, \"Favorite\": { \"v\": [\"Gogokoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Change name\": { \"v\": [\"تغییر نام\"] }, \"Close sidebar\": { \"v\": [\"بستن نوار کناری\"] }, \"Favorite\": { \"v\": [\"مورد علاقه\"] }, \"Open sidebar\": { \"v\": [\"باز کردن نوار کنار\"] } } }, { \"l\": \"fi\", \"t\": { \"Change name\": { \"v\": [\"Vaihda nimi\"] }, \"Close sidebar\": { \"v\": [\"Sulje sivupalkki\"] }, \"Favorite\": { \"v\": [\"Suosikki\"] }, \"Open sidebar\": { \"v\": [\"Avaa sivupalkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Change name\": { \"v\": [\"Modifier le nom\"] }, \"Close sidebar\": { \"v\": [\"Fermer la barre latérale\"] }, \"Favorite\": { \"v\": [\"Favori\"] }, \"Open sidebar\": { \"v\": [\"Ouvrir la barre latérale\"] } } }, { \"l\": \"ga\", \"t\": { \"Change name\": { \"v\": [\"Athrú ainm\"] }, \"Close sidebar\": { \"v\": [\"Dún barra taoibh\"] }, \"Favorite\": { \"v\": [\"is fearr leat\"] }, \"Open sidebar\": { \"v\": [\"Oscail barra taoibh\"] } } }, { \"l\": \"gl\", \"t\": { \"Change name\": { \"v\": [\"Cambiar o nome\"] }, \"Close sidebar\": { \"v\": [\"Pechar a barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir a barra lateral\"] } } }, { \"l\": \"he\", \"t\": { \"Change name\": { \"v\": [\"החלפת שם\"] }, \"Close sidebar\": { \"v\": [\"סגירת סרגל הצד\"] }, \"Favorite\": { \"v\": [\"למועדפים\"] } } }, { \"l\": \"hr\", \"t\": { \"Change name\": { \"v\": [\"Promjeni naziv\"] }, \"Close sidebar\": { \"v\": [\"Zatvori bočnu traku\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Otvori bočnu traku\"] } } }, { \"l\": \"hu\", \"t\": { \"Change name\": { \"v\": [\"Név módosítása\"] }, \"Close sidebar\": { \"v\": [\"Oldalsáv bezárása\"] }, \"Favorite\": { \"v\": [\"Kedvenc\"] }, \"Open sidebar\": { \"v\": [\"Oldalsáv megnyitása\"] } } }, { \"l\": \"id\", \"t\": { \"Change name\": { \"v\": [\"Ubah nama\"] }, \"Close sidebar\": { \"v\": [\"Tutup bilah sisi\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Buka bilah sisi\"] } } }, { \"l\": \"is\", \"t\": { \"Change name\": { \"v\": [\"Breyta nafni\"] }, \"Close sidebar\": { \"v\": [\"Loka hliðarstiku\"] }, \"Favorite\": { \"v\": [\"Eftirlæti\"] }, \"Open sidebar\": { \"v\": [\"Opna hliðarspjald\"] } } }, { \"l\": \"it\", \"t\": { \"Change name\": { \"v\": [\"Cambia nome\"] }, \"Close sidebar\": { \"v\": [\"Chiudi la barra laterale\"] }, \"Favorite\": { \"v\": [\"Preferito\"] } } }, { \"l\": \"ja\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Change name\": { \"v\": [\"이름 변경\"] }, \"Close sidebar\": { \"v\": [\"사이드바 닫기\"] }, \"Favorite\": { \"v\": [\"즐겨찾기\"] }, \"Open sidebar\": { \"v\": [\"사이드바 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Change name\": { \"v\": [\"ປ່ຽນຊື່\"] }, \"Close sidebar\": { \"v\": [\"ປິດແຖບດ້ານຂ້າງ\"] }, \"Favorite\": { \"v\": [\"ລາຍການທີ່ມັກ\"] }, \"Open sidebar\": { \"v\": [\"ເປີດແຖບດ້ານຂ້າງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Change name\": { \"v\": [\"Pakeisti vardą\"] }, \"Close sidebar\": { \"v\": [\"Užverti šoninę juostą\"] }, \"Favorite\": { \"v\": [\"Mėgstamiausias\"] }, \"Open sidebar\": { \"v\": [\"Atverti šoninę juostą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Change name\": { \"v\": [\"Промени име\"] }, \"Close sidebar\": { \"v\": [\"Затвори странична лента\"] }, \"Favorite\": { \"v\": [\"Фаворити\"] }, \"Open sidebar\": { \"v\": [\"Отвори странична лента\"] } } }, { \"l\": \"mn\", \"t\": { \"Change name\": { \"v\": [\"Нэр солих\"] }, \"Close sidebar\": { \"v\": [\"Хажуугийн самбарыг хаах\"] }, \"Favorite\": { \"v\": [\"Дуртай\"] }, \"Open sidebar\": { \"v\": [\"Хажуугийн самбарыг нээх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Change name\": { \"v\": [\"Endre navn\"] }, \"Close sidebar\": { \"v\": [\"Lukk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favoritt\"] }, \"Open sidebar\": { \"v\": [\"Åpne sidefelt\"] } } }, { \"l\": \"nl\", \"t\": { \"Change name\": { \"v\": [\"Naam wijzigen\"] }, \"Close sidebar\": { \"v\": [\"Zijbalk sluiten\"] }, \"Favorite\": { \"v\": [\"Favoriet\"] }, \"Open sidebar\": { \"v\": [\"Zijbalk openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Change name\": { \"v\": [\"Zmień nazwę\"] }, \"Close sidebar\": { \"v\": [\"Zamknij pasek boczny\"] }, \"Favorite\": { \"v\": [\"Ulubiony\"] }, \"Open sidebar\": { \"v\": [\"Otwórz pasek boczny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Change name\": { \"v\": [\"Mudar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Change name\": { \"v\": [\"Alterar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"ro\", \"t\": { \"Change name\": { \"v\": [\"Modifică numele\"] }, \"Close sidebar\": { \"v\": [\"Închide bara laterală\"] }, \"Favorite\": { \"v\": [\"Favorit\"] } } }, { \"l\": \"ru\", \"t\": { \"Change name\": { \"v\": [\"Изменить имя\"] }, \"Close sidebar\": { \"v\": [\"Закрыть сайдбар\"] }, \"Favorite\": { \"v\": [\"Избранное\"] }, \"Open sidebar\": { \"v\": [\"Открыть боковую панель\"] } } }, { \"l\": \"sk\", \"t\": { \"Change name\": { \"v\": [\"Zmeniť názov\"] }, \"Close sidebar\": { \"v\": [\"Zavrieť bočný panel\"] }, \"Favorite\": { \"v\": [\"Obľúbené\"] }, \"Open sidebar\": { \"v\": [\"Otvoriť bočný panel\"] } } }, { \"l\": \"sl\", \"t\": { \"Close sidebar\": { \"v\": [\"Zapri stransko vrstico\"] }, \"Favorite\": { \"v\": [\"Priljubljeno\"] } } }, { \"l\": \"sr\", \"t\": { \"Change name\": { \"v\": [\"Измени назив\"] }, \"Close sidebar\": { \"v\": [\"Затвори бочну траку\"] }, \"Favorite\": { \"v\": [\"Омиљени\"] }, \"Open sidebar\": { \"v\": [\"Отвори бочну траку\"] } } }, { \"l\": \"sv\", \"t\": { \"Change name\": { \"v\": [\"Ändra namn\"] }, \"Close sidebar\": { \"v\": [\"Stäng sidofältet\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Öppna sidofältet\"] } } }, { \"l\": \"tr\", \"t\": { \"Change name\": { \"v\": [\"Adı değiştir\"] }, \"Close sidebar\": { \"v\": [\"Yan çubuğu kapat\"] }, \"Favorite\": { \"v\": [\"Sık kullanılanlara ekle\"] }, \"Open sidebar\": { \"v\": [\"Yan çubuğu aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Change name\": { \"v\": [\"Змінити назву\"] }, \"Close sidebar\": { \"v\": [\"Закрити бічну панель\"] }, \"Favorite\": { \"v\": [\"Із зірочкою\"] }, \"Open sidebar\": { \"v\": [\"Бокове меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Change name\": { \"v\": [\"Ismni o'zgartirish\"] }, \"Close sidebar\": { \"v\": [\"Yon panelni yoping\"] }, \"Favorite\": { \"v\": [\"Tanlangan\"] }, \"Open sidebar\": { \"v\": [\"Yon panelni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Change name\": { \"v\": [\"修改名称\"] }, \"Close sidebar\": { \"v\": [\"关闭侧边栏\"] }, \"Favorite\": { \"v\": [\"喜爱\"] }, \"Open sidebar\": { \"v\": [\"打开侧边栏\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Change name\": { \"v\": [\"更改名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"喜愛\"] }, \"Open sidebar\": { \"v\": [\"打開側邊欄\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Change name\": { \"v\": [\"變更名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"最愛\"] }, \"Open sidebar\": { \"v\": [\"開啟側邊欄\"] } } }];\nconst t16 = [{ \"l\": \"ar\", \"t\": { \"Clear search\": { \"v\": [\"محو البحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear search\": { \"v\": [\"Borrar la busca\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"da\", \"t\": { \"Clear search\": { \"v\": [\"Ryd søgning\"] } } }, { \"l\": \"de\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"el\", \"t\": { \"Clear search\": { \"v\": [\"Εκκαθάριση αναζήτησης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear search\": { \"v\": [\"Clear search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear search\": { \"v\": [\"Tühjenda otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear search\": { \"v\": [\"Garbitu bilaketa\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear search\": { \"v\": [\"پاک کردن جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear search\": { \"v\": [\"Tyhjennä haku\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear search\": { \"v\": [\"Effacer la recherche\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear search\": { \"v\": [\"Glan cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear search\": { \"v\": [\"Limpar a busca\"] } } }, { \"l\": \"he\", \"t\": { \"Clear search\": { \"v\": [\"פינוי חיפוש\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear search\": { \"v\": [\"Očisti pretraživanje\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear search\": { \"v\": [\"Keresés törlése\"] } } }, { \"l\": \"id\", \"t\": { \"Clear search\": { \"v\": [\"Bersihkan pencarian\"] } } }, { \"l\": \"is\", \"t\": { \"Clear search\": { \"v\": [\"Hreinsa leit\"] } } }, { \"l\": \"it\", \"t\": { \"Clear search\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear search\": { \"v\": [\"검색 지우기\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear search\": { \"v\": [\"ລຶບການຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear search\": { \"v\": [\"Išvalyti paiešką\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear search\": { \"v\": [\"Исчисти пребарување\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear search\": { \"v\": [\"Хайлтыг цэвэрлэх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear search\": { \"v\": [\"Tøm søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear search\": { \"v\": [\"Zoekopdracht wissen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear search\": { \"v\": [\"Wyczyść wyszukiwanie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear search\": { \"v\": [\"Șterge căutarea\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear search\": { \"v\": [\"Очистить поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear search\": { \"v\": [\"Vymazať vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Clear search\": { \"v\": [\"Обриши претрагу\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear search\": { \"v\": [\"Rensa sökning\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear search\": { \"v\": [\"Aramayı temizle\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear search\": { \"v\": [\"Очистити пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear search\": { \"v\": [\"Qidiruvni tozalash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear search\": { \"v\": [\"清除搜尋\"] } } }];\nconst t17 = [{ \"l\": \"ar\", \"t\": { \"Clear selected\": { \"v\": [\"محو المحدّد\"] }, \"Deselect {option}\": { \"v\": [\"إلغاء تحديد {option}\"] }, \"No results\": { \"v\": [\"ليس هناك أية نتيجة\"] }, \"Options\": { \"v\": [\"خيارات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear selected\": { \"v\": [\"Borrar lo seleicionao\"] }, \"Deselect {option}\": { \"v\": [\"Deseleicionar «{option}»\"] }, \"No results\": { \"v\": [\"Nun hai nengún resultáu\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"br\", \"t\": { \"No results\": { \"v\": [\"Disoc'h ebet\"] } } }, { \"l\": \"ca\", \"t\": { \"No results\": { \"v\": [\"Sense resultats\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"da\", \"t\": { \"Clear selected\": { \"v\": [\"Ryd valgt\"] }, \"Deselect {option}\": { \"v\": [\"Fravælg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"el\", \"t\": { \"Clear selected\": { \"v\": [\"Εκκαθάριση επιλογής\"] }, \"Deselect {option}\": { \"v\": [\"Αποεπιλογή {option}\"] }, \"No results\": { \"v\": [\"Κανένα αποτέλεσμα\"] }, \"Options\": { \"v\": [\"Επιλογές\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear selected\": { \"v\": [\"Clear selected\"] }, \"Deselect {option}\": { \"v\": [\"Deselect {option}\"] }, \"No results\": { \"v\": [\"No results\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"eo\", \"t\": { \"No results\": { \"v\": [\"La rezulto forestas\"] } } }, { \"l\": \"es\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\" Ningún resultado\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No results\": { \"v\": [\"Sin resultados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear selected\": { \"v\": [\"Tühjenda valik\"] }, \"Deselect {option}\": { \"v\": [\"Eemalda {option} valik\"] }, \"No results\": { \"v\": [\"Tulemusi pole\"] }, \"Options\": { \"v\": [\"Valikud\"] } } }, { \"l\": \"eu\", \"t\": { \"No results\": { \"v\": [\"Emaitzarik ez\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear selected\": { \"v\": [\"پاک کردن مورد انتخاب شده\"] }, \"Deselect {option}\": { \"v\": [\"لغو انتخاب {option}\"] }, \"No results\": { \"v\": [\"بدون هیچ نتیجه‌ای\"] }, \"Options\": { \"v\": [\"گزینه‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear selected\": { \"v\": [\"Tyhjennä valitut\"] }, \"Deselect {option}\": { \"v\": [\"Poista valinta {option}\"] }, \"No results\": { \"v\": [\"Ei tuloksia\"] }, \"Options\": { \"v\": [\"Valinnat\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear selected\": { \"v\": [\"Vider la sélection\"] }, \"Deselect {option}\": { \"v\": [\"Désélectionner {option}\"] }, \"No results\": { \"v\": [\"Aucun résultat\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear selected\": { \"v\": [\"Glan roghnaithe\"] }, \"Deselect {option}\": { \"v\": [\"Díroghnaigh {option}\"] }, \"No results\": { \"v\": [\"Gan torthaí\"] }, \"Options\": { \"v\": [\"Roghanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar o seleccionado\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sen resultados\"] }, \"Options\": { \"v\": [\"Opcións\"] } } }, { \"l\": \"he\", \"t\": { \"No results\": { \"v\": [\"אין תוצאות\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear selected\": { \"v\": [\"Očisti odabir\"] }, \"Deselect {option}\": { \"v\": [\"Odznači {option}\"] }, \"No results\": { \"v\": [\"Nema rezultata\"] }, \"Options\": { \"v\": [\"Mogućnosti\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear selected\": { \"v\": [\"Kijelölés törlése\"] }, \"Deselect {option}\": { \"v\": [\"{option} kijelölésének megszüntetése\"] }, \"No results\": { \"v\": [\"Nincs találat\"] }, \"Options\": { \"v\": [\"Beállítások\"] } } }, { \"l\": \"id\", \"t\": { \"Clear selected\": { \"v\": [\"Hapus terpilih\"] }, \"Deselect {option}\": { \"v\": [\"Batalkan pemilihan {option}\"] }, \"No results\": { \"v\": [\"Tidak ada hasil\"] }, \"Options\": { \"v\": [\"Opsi\"] } } }, { \"l\": \"is\", \"t\": { \"Clear selected\": { \"v\": [\"Hreinsa valið\"] }, \"Deselect {option}\": { \"v\": [\"Afvelja {option}\"] }, \"No results\": { \"v\": [\"Engar niðurstöður\"] }, \"Options\": { \"v\": [\"Valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"Clear selected\": { \"v\": [\"Cancella selezionati\"] }, \"Deselect {option}\": { \"v\": [\"Deselezionare {option}\"] }, \"No results\": { \"v\": [\"Nessun risultato\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear selected\": { \"v\": [\"선택 항목 지우기\"] }, \"Deselect {option}\": { \"v\": [\"{option} 선택 해제\"] }, \"No results\": { \"v\": [\"결과 없음\"] }, \"Options\": { \"v\": [\"옵션\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear selected\": { \"v\": [\"ລຶບສິ່ງທີ່ເລືອກ\"] }, \"Deselect {option}\": { \"v\": [\"ຍົກເລີກການເລືອກ {option}\"] }, \"No results\": { \"v\": [\"ບໍ່ມີຜົນລັບ\"] }, \"Options\": { \"v\": [\"ຕົວເລືອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear selected\": { \"v\": [\"Išvalyti pasirinkimą\"] }, \"Deselect {option}\": { \"v\": [\"Panaikinkite {option} pasirinkimą\"] }, \"No results\": { \"v\": [\"Nėra rezultatų\"] }, \"Options\": { \"v\": [\"Parinktys\"] } } }, { \"l\": \"lv\", \"t\": { \"No results\": { \"v\": [\"Nav rezultātu\"] } } }, { \"l\": \"mk\", \"t\": { \"Clear selected\": { \"v\": [\"Исчисти означени\"] }, \"Deselect {option}\": { \"v\": [\"Откажи избор на {option}\"] }, \"No results\": { \"v\": [\"Нема резултати\"] }, \"Options\": { \"v\": [\"Опции\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear selected\": { \"v\": [\"Сонголтыг цэвэрлэх\"] }, \"Deselect {option}\": { \"v\": [\"{option}-г сонголтоос хасах\"] }, \"No results\": { \"v\": [\"Үр дүн алга\"] }, \"Options\": { \"v\": [\"Тохиргоо\"] } } }, { \"l\": \"my\", \"t\": { \"No results\": { \"v\": [\"ရလဒ်မရှိပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Clear selected\": { \"v\": [\"Tøm merket\"] }, \"Deselect {option}\": { \"v\": [\"Opphev valg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear selected\": { \"v\": [\"Selectie wissen\"] }, \"Deselect {option}\": { \"v\": [\"Selectie {option} opheffen\"] }, \"No results\": { \"v\": [\"Geen resultaten\"] }, \"Options\": { \"v\": [\"Opties\"] } } }, { \"l\": \"oc\", \"t\": { \"No results\": { \"v\": [\"Cap de resultat\"] } } }, { \"l\": \"pl\", \"t\": { \"Clear selected\": { \"v\": [\"Wyczyść wybrane\"] }, \"Deselect {option}\": { \"v\": [\"Odznacz {option}\"] }, \"No results\": { \"v\": [\"Brak wyników\"] }, \"Options\": { \"v\": [\"Opcje\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar selecionado\"] }, \"Deselect {option}\": { \"v\": [\"Desselecionar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear selected\": { \"v\": [\"Limpeza selecionada\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear selected\": { \"v\": [\"Șterge selecția\"] }, \"Deselect {option}\": { \"v\": [\"Deselctează {option}\"] }, \"No results\": { \"v\": [\"Nu există rezultate\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear selected\": { \"v\": [\"Очистить выбранный\"] }, \"Deselect {option}\": { \"v\": [\"Отменить выбор {option}\"] }, \"No results\": { \"v\": [\"Результаты отсуствуют\"] }, \"Options\": { \"v\": [\"Варианты\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear selected\": { \"v\": [\"Vymazať vybraté\"] }, \"Deselect {option}\": { \"v\": [\"Zrušiť výber {option}\"] }, \"No results\": { \"v\": [\"Žiadne výsledky\"] }, \"Options\": { \"v\": [\"možnosti\"] } } }, { \"l\": \"sl\", \"t\": { \"No results\": { \"v\": [\"Ni zadetkov\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear selected\": { \"v\": [\"Обриши изабрано\"] }, \"Deselect {option}\": { \"v\": [\"Уклони избор {option}\"] }, \"No results\": { \"v\": [\"Нема резултата\"] }, \"Options\": { \"v\": [\"Опције\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear selected\": { \"v\": [\"Rensa val\"] }, \"Deselect {option}\": { \"v\": [\"Avmarkera {option}\"] }, \"No results\": { \"v\": [\"Inga resultat\"] }, \"Options\": { \"v\": [\"Alternativ\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear selected\": { \"v\": [\"Seçilmişleri temizle\"] }, \"Deselect {option}\": { \"v\": [\"{option} bırak\"] }, \"No results\": { \"v\": [\"Herhangi bir sonuç bulunamadı\"] }, \"Options\": { \"v\": [\"Seçenekler\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear selected\": { \"v\": [\"Очистити вибране\"] }, \"Deselect {option}\": { \"v\": [\"Зняти вибір {option}\"] }, \"No results\": { \"v\": [\"Відсутні результати\"] }, \"Options\": { \"v\": [\"Параметри\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear selected\": { \"v\": [\"Tanlanganni tozalash\"] }, \"Deselect {option}\": { \"v\": [\"{option}tanlovni bekor qiling\"] }, \"No results\": { \"v\": [\"Natija yoʻq\"] }, \"Options\": { \"v\": [\"Variantlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear selected\": { \"v\": [\"清除所选\"] }, \"Deselect {option}\": { \"v\": [\"取消选择 {option}\"] }, \"No results\": { \"v\": [\"无结果\"] }, \"Options\": { \"v\": [\"选项\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear selected\": { \"v\": [\"清除所選項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選擇 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear selected\": { \"v\": [\"清除選定項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選取 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }];\nconst t18 = [{ \"l\": \"ar\", \"t\": { \"Clear text\": { \"v\": [\"محو النص\"] }, \"Save changes\": { \"v\": [\"حفظ التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear text\": { \"v\": [\"Borrar el testu\"] }, \"Save changes\": { \"v\": [\"Guardar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Clear text\": { \"v\": [\"Netejar text\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear text\": { \"v\": [\"Čitelný text\"] }, \"Save changes\": { \"v\": [\"Uložit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear text\": { \"v\": [\"Čitelný text\"] }, \"Save changes\": { \"v\": [\"Uložit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Clear text\": { \"v\": [\"Ryd tekst\"] }, \"Save changes\": { \"v\": [\"Gem ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Clear text\": { \"v\": [\"Klartext\"] }, \"Save changes\": { \"v\": [\"Änderungen speichern\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear text\": { \"v\": [\"Klartext\"] }, \"Save changes\": { \"v\": [\"Änderungen speichern\"] } } }, { \"l\": \"el\", \"t\": { \"Clear text\": { \"v\": [\"Εκκαθάριση κειμένου\"] }, \"Save changes\": { \"v\": [\"Αποθήκευση αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear text\": { \"v\": [\"Clear text\"] }, \"Save changes\": { \"v\": [\"Save changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear text\": { \"v\": [\"Kustuta tekst\"] }, \"Save changes\": { \"v\": [\"Salvesta muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear text\": { \"v\": [\"Garbitu testua\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear text\": { \"v\": [\"پاک کردن متن\"] }, \"Save changes\": { \"v\": [\"ذخیرهٔ تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear text\": { \"v\": [\"Tyhjennä teksti\"] }, \"Save changes\": { \"v\": [\"Tallenna muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear text\": { \"v\": [\"Effacer le texte\"] }, \"Save changes\": { \"v\": [\"Sauvegarder les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear text\": { \"v\": [\"Glan téacs\"] }, \"Save changes\": { \"v\": [\"Sabháil na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear text\": { \"v\": [\"Limpar o texto\"] }, \"Save changes\": { \"v\": [\"Gardar os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Clear text\": { \"v\": [\"פינוי טקסט\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear text\": { \"v\": [\"Očisti tekst\"] }, \"Save changes\": { \"v\": [\"Spremi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear text\": { \"v\": [\"Szöveg törlése\"] }, \"Save changes\": { \"v\": [\"Változtatások mentése\"] } } }, { \"l\": \"id\", \"t\": { \"Clear text\": { \"v\": [\"Bersihkan teks\"] }, \"Save changes\": { \"v\": [\"Simpan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Clear text\": { \"v\": [\"Hreinsa texta\"] }, \"Save changes\": { \"v\": [\"Vista breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Clear text\": { \"v\": [\"Cancella il testo\"] }, \"Save changes\": { \"v\": [\"Salva le modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear text\": { \"v\": [\"テキストをクリア\"] }, \"Save changes\": { \"v\": [\"変更を保存\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear text\": { \"v\": [\"テキストをクリア\"] }, \"Save changes\": { \"v\": [\"変更を保存\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear text\": { \"v\": [\"텍스트 지우기\"] }, \"Save changes\": { \"v\": [\"변경 사항 저장\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear text\": { \"v\": [\"ລຶບຂໍ້ຄວາມ\"] }, \"Save changes\": { \"v\": [\"ບັນທຶກການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear text\": { \"v\": [\"Išvalyti tekstą\"] }, \"Save changes\": { \"v\": [\"Įrašyti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear text\": { \"v\": [\"Исчисти текст\"] }, \"Save changes\": { \"v\": [\"Зачувај промени\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear text\": { \"v\": [\"Текстийг цэвэрлэх\"] }, \"Save changes\": { \"v\": [\"Өөрчлөлтийг хадгалах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear text\": { \"v\": [\"Fjern tekst\"] }, \"Save changes\": { \"v\": [\"Lagre endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear text\": { \"v\": [\"Tekst wissen\"] }, \"Save changes\": { \"v\": [\"Wijzigingen opslaan\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear text\": { \"v\": [\"Wyczyść tekst\"] }, \"Save changes\": { \"v\": [\"Zapisz zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear text\": { \"v\": [\"Limpar texto\"] }, \"Save changes\": { \"v\": [\"Salvar alterações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear text\": { \"v\": [\"Limpar texto\"] }, \"Save changes\": { \"v\": [\"Gravar alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear text\": { \"v\": [\"Șterge textul\"] }, \"Save changes\": { \"v\": [\"Salvează modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear text\": { \"v\": [\"Очистить текст\"] }, \"Save changes\": { \"v\": [\"Сохранить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear text\": { \"v\": [\"Vamazať text\"] }, \"Save changes\": { \"v\": [\"Uložiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Clear text\": { \"v\": [\"Počisti besedilo\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear text\": { \"v\": [\"Обриши текст\"] }, \"Save changes\": { \"v\": [\"Сачувај измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear text\": { \"v\": [\"Ta bort text\"] }, \"Save changes\": { \"v\": [\"Spara ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear text\": { \"v\": [\"Metni temizle\"] }, \"Save changes\": { \"v\": [\"Değişiklikleri kaydet\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear text\": { \"v\": [\"Очистити текст\"] }, \"Save changes\": { \"v\": [\"Зберегти зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear text\": { \"v\": [\"Matnni tozalash\"] }, \"Save changes\": { \"v\": [\"O'zgarishlarni saqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear text\": { \"v\": [\"清除文本\"] }, \"Save changes\": { \"v\": [\"保存修改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear text\": { \"v\": [\"清除文本\"] }, \"Save changes\": { \"v\": [\"保存更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear text\": { \"v\": [\"清除文字\"] }, \"Save changes\": { \"v\": [\"儲存變更\"] } } }];\nconst t19 = [{ \"l\": \"ar\", \"t\": { \"Close\": { \"v\": [\"إغلاق\"] } } }, { \"l\": \"ast\", \"t\": { \"Close\": { \"v\": [\"Zarrar\"] } } }, { \"l\": \"br\", \"t\": { \"Close\": { \"v\": [\"Serriñ\"] } } }, { \"l\": \"ca\", \"t\": { \"Close\": { \"v\": [\"Tanca\"] } } }, { \"l\": \"cs\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"da\", \"t\": { \"Close\": { \"v\": [\"Luk\"] } } }, { \"l\": \"de\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"el\", \"t\": { \"Close\": { \"v\": [\"Κλείσιμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close\": { \"v\": [\"Close\"] } } }, { \"l\": \"eo\", \"t\": { \"Close\": { \"v\": [\"Fermu\"] } } }, { \"l\": \"es\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close\": { \"v\": [\"Sulge\"] } } }, { \"l\": \"eu\", \"t\": { \"Close\": { \"v\": [\"Itxi\"] } } }, { \"l\": \"fa\", \"t\": { \"Close\": { \"v\": [\"بستن\"] } } }, { \"l\": \"fi\", \"t\": { \"Close\": { \"v\": [\"Sulje\"] } } }, { \"l\": \"fr\", \"t\": { \"Close\": { \"v\": [\"Fermer\"] } } }, { \"l\": \"ga\", \"t\": { \"Close\": { \"v\": [\"Dún\"] } } }, { \"l\": \"gl\", \"t\": { \"Close\": { \"v\": [\"Pechar\"] } } }, { \"l\": \"he\", \"t\": { \"Close\": { \"v\": [\"סגירה\"] } } }, { \"l\": \"hr\", \"t\": { \"Close\": { \"v\": [\"Zatvori\"] } } }, { \"l\": \"hu\", \"t\": { \"Close\": { \"v\": [\"Bezárás\"] } } }, { \"l\": \"id\", \"t\": { \"Close\": { \"v\": [\"Tutup\"] } } }, { \"l\": \"is\", \"t\": { \"Close\": { \"v\": [\"Loka\"] } } }, { \"l\": \"it\", \"t\": { \"Close\": { \"v\": [\"Chiudi\"] } } }, { \"l\": \"ja\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ko\", \"t\": { \"Close\": { \"v\": [\"닫기\"] } } }, { \"l\": \"lo\", \"t\": { \"Close\": { \"v\": [\"ປິດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close\": { \"v\": [\"Užverti\"] } } }, { \"l\": \"lv\", \"t\": { \"Close\": { \"v\": [\"Aizvērt\"] } } }, { \"l\": \"mk\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"mn\", \"t\": { \"Close\": { \"v\": [\"Хаах\"] } } }, { \"l\": \"my\", \"t\": { \"Close\": { \"v\": [\"ပိတ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Close\": { \"v\": [\"Lukk\"] } } }, { \"l\": \"nl\", \"t\": { \"Close\": { \"v\": [\"Sluiten\"] } } }, { \"l\": \"oc\", \"t\": { \"Close\": { \"v\": [\"Tampar\"] } } }, { \"l\": \"pl\", \"t\": { \"Close\": { \"v\": [\"Zamknij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"ro\", \"t\": { \"Close\": { \"v\": [\"Închideți\"] } } }, { \"l\": \"ru\", \"t\": { \"Close\": { \"v\": [\"Закрыть\"] } } }, { \"l\": \"sk\", \"t\": { \"Close\": { \"v\": [\"Zavrieť\"] } } }, { \"l\": \"sl\", \"t\": { \"Close\": { \"v\": [\"Zapri\"] } } }, { \"l\": \"sr\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"sv\", \"t\": { \"Close\": { \"v\": [\"Stäng\"] } } }, { \"l\": \"tr\", \"t\": { \"Close\": { \"v\": [\"Kapat\"] } } }, { \"l\": \"uk\", \"t\": { \"Close\": { \"v\": [\"Закрити\"] } } }, { \"l\": \"uz\", \"t\": { \"Close\": { \"v\": [\"Yopish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close\": { \"v\": [\"关闭\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }];\nconst t20 = [{ \"l\": \"ar\", \"t\": { \"Close navigation\": { \"v\": [\"إغلاق التصفح\"] }, \"Open navigation\": { \"v\": [\"فتح التنقُّل\"] } } }, { \"l\": \"ast\", \"t\": { \"Close navigation\": { \"v\": [\"Zarrar la navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir la navegación\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close navigation\": { \"v\": [\"Tanca la navegació\"] }, \"Open navigation\": { \"v\": [\"Obre la navegació\"] } } }, { \"l\": \"cs\", \"t\": { \"Close navigation\": { \"v\": [\"Zavřít navigaci\"] }, \"Open navigation\": { \"v\": [\"Otevřít navigaci\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close navigation\": { \"v\": [\"Zavřít navigaci\"] }, \"Open navigation\": { \"v\": [\"Otevřít navigaci\"] } } }, { \"l\": \"da\", \"t\": { \"Close navigation\": { \"v\": [\"Luk navigation\"] }, \"Open navigation\": { \"v\": [\"Åben navigation\"] } } }, { \"l\": \"de\", \"t\": { \"Close navigation\": { \"v\": [\"Navigation schließen\"] }, \"Open navigation\": { \"v\": [\"Navigation öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close navigation\": { \"v\": [\"Navigation schließen\"] }, \"Open navigation\": { \"v\": [\"Navigation öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Close navigation\": { \"v\": [\"Κλείσιμο πλοήγησης\"] }, \"Open navigation\": { \"v\": [\"Άνοιγμα πλοήγησης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close navigation\": { \"v\": [\"Close navigation\"] }, \"Open navigation\": { \"v\": [\"Open navigation\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close navigation\": { \"v\": [\"Sulge navigatsioon\"] }, \"Open navigation\": { \"v\": [\"Ava liikumisvaade\"] } } }, { \"l\": \"eu\", \"t\": { \"Close navigation\": { \"v\": [\"Itxi nabigazioa\"] }, \"Open navigation\": { \"v\": [\"Ireki nabigazioa\"] } } }, { \"l\": \"fa\", \"t\": { \"Close navigation\": { \"v\": [\"بستن بخش ناوبری\"] }, \"Open navigation\": { \"v\": [\"باز کردن بخش ناوبری\"] } } }, { \"l\": \"fi\", \"t\": { \"Close navigation\": { \"v\": [\"Sulje navigaatio\"] } } }, { \"l\": \"fr\", \"t\": { \"Close navigation\": { \"v\": [\"Fermer la navigation\"] }, \"Open navigation\": { \"v\": [\"Ouvrir la navigation\"] } } }, { \"l\": \"ga\", \"t\": { \"Close navigation\": { \"v\": [\"Dún nascleanúint\"] }, \"Open navigation\": { \"v\": [\"Oscail nascleanúint\"] } } }, { \"l\": \"gl\", \"t\": { \"Close navigation\": { \"v\": [\"Pechar a navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir a navegación\"] } } }, { \"l\": \"he\", \"t\": { \"Close navigation\": { \"v\": [\"סגירת הניווט\"] }, \"Open navigation\": { \"v\": [\"פתיחת ניווט\"] } } }, { \"l\": \"hr\", \"t\": { \"Close navigation\": { \"v\": [\"Zatvori navigaciju\"] }, \"Open navigation\": { \"v\": [\"Otvori navigaciju\"] } } }, { \"l\": \"hu\", \"t\": { \"Close navigation\": { \"v\": [\"Navigáció bezárása\"] }, \"Open navigation\": { \"v\": [\"Navigáció megnyitása\"] } } }, { \"l\": \"id\", \"t\": { \"Close navigation\": { \"v\": [\"Tutup navigasi\"] }, \"Open navigation\": { \"v\": [\"Buka navigasi\"] } } }, { \"l\": \"is\", \"t\": { \"Close navigation\": { \"v\": [\"Loka leiðsagnarsleða\"] } } }, { \"l\": \"it\", \"t\": { \"Close navigation\": { \"v\": [\"Chiudi la navigazione\"] }, \"Open navigation\": { \"v\": [\"Apri la navigazione\"] } } }, { \"l\": \"ja\", \"t\": { \"Close navigation\": { \"v\": [\"ナビゲーションを閉じる\"] }, \"Open navigation\": { \"v\": [\"ナビゲーションを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close navigation\": { \"v\": [\"ナビゲーションを閉じる\"] }, \"Open navigation\": { \"v\": [\"ナビゲーションを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Close navigation\": { \"v\": [\"탐색 닫기\"] }, \"Open navigation\": { \"v\": [\"탐색 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Close navigation\": { \"v\": [\"ປິດການນຳທາງ\"] }, \"Open navigation\": { \"v\": [\"ເປີດການນຳທາງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close navigation\": { \"v\": [\"Užverti naršymą\"] }, \"Open navigation\": { \"v\": [\"Atverti naršymą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Close navigation\": { \"v\": [\"Затвори навигација\"] }, \"Open navigation\": { \"v\": [\"Отвори навигација\"] } } }, { \"l\": \"mn\", \"t\": { \"Close navigation\": { \"v\": [\"Навигацийг хаах\"] }, \"Open navigation\": { \"v\": [\"Навигацийг нээх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Close navigation\": { \"v\": [\"Lukk navigasjon\"] }, \"Open navigation\": { \"v\": [\"Åpne navigasjon\"] } } }, { \"l\": \"nl\", \"t\": { \"Close navigation\": { \"v\": [\"Navigatie sluiten\"] }, \"Open navigation\": { \"v\": [\"Navigatie openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Close navigation\": { \"v\": [\"Zamknij nawigację\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close navigation\": { \"v\": [\"Fechar navegação\"] }, \"Open navigation\": { \"v\": [\"Abrir navegação\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close navigation\": { \"v\": [\"Fechar navegação\"] }, \"Open navigation\": { \"v\": [\"Abrir navegação\"] } } }, { \"l\": \"ro\", \"t\": { \"Close navigation\": { \"v\": [\"Închideți navigarea\"] }, \"Open navigation\": { \"v\": [\"Deschideți navigația\"] } } }, { \"l\": \"ru\", \"t\": { \"Close navigation\": { \"v\": [\"Закрыть навигацию\"] }, \"Open navigation\": { \"v\": [\"Открыть навигацию\"] } } }, { \"l\": \"sk\", \"t\": { \"Close navigation\": { \"v\": [\"Zavrieť navigáciu\"] } } }, { \"l\": \"sl\", \"t\": { \"Close navigation\": { \"v\": [\"Zapri krmarjenje\"] }, \"Open navigation\": { \"v\": [\"Odpri krmarjenje\"] } } }, { \"l\": \"sr\", \"t\": { \"Close navigation\": { \"v\": [\"Затвори навигацију\"] }, \"Open navigation\": { \"v\": [\"Отвори навигацију\"] } } }, { \"l\": \"sv\", \"t\": { \"Close navigation\": { \"v\": [\"Stäng navigering\"] }, \"Open navigation\": { \"v\": [\"Öppna navigering\"] } } }, { \"l\": \"tr\", \"t\": { \"Close navigation\": { \"v\": [\"Gezinmeyi kapat\"] }, \"Open navigation\": { \"v\": [\"Gezinmeyi aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Close navigation\": { \"v\": [\"Закрити навігацію\"] }, \"Open navigation\": { \"v\": [\"Перейти до навігації\"] } } }, { \"l\": \"uz\", \"t\": { \"Close navigation\": { \"v\": [\"Navigatsiyani yopish\"] }, \"Open navigation\": { \"v\": [\"Navigatsiyani oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close navigation\": { \"v\": [\"关闭导航\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close navigation\": { \"v\": [\"關閉導航\"] }, \"Open navigation\": { \"v\": [\"開啟導航\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close navigation\": { \"v\": [\"關閉導航\"] }, \"Open navigation\": { \"v\": [\"開啟導航\"] } } }];\nconst t21 = [{ \"l\": \"ar\", \"t\": { \"Collapse menu\": { \"v\": [\"طي القائمة\"] }, \"Open menu\": { \"v\": [\"إفتَح القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Collapse menu\": { \"v\": [\"Recoyer el menú\"] }, \"Open menu\": { \"v\": [\"Abrir le menú\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"da\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul menuen\"] }, \"Open menu\": { \"v\": [\"Åben menu\"] } } }, { \"l\": \"de\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Collapse menu\": { \"v\": [\"Σύμπτυξη μενού\"] }, \"Open menu\": { \"v\": [\"Άνοιγμα μενού\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Collapse menu\": { \"v\": [\"Collapse menu\"] }, \"Open menu\": { \"v\": [\"Open menu\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Collapse menu\": { \"v\": [\"Ahenda menüü\"] }, \"Open menu\": { \"v\": [\"Ava menüü\"] } } }, { \"l\": \"eu\", \"t\": { \"Collapse menu\": { \"v\": [\"Tolestu menua\"] }, \"Open menu\": { \"v\": [\"Ireki menua\"] } } }, { \"l\": \"fa\", \"t\": { \"Collapse menu\": { \"v\": [\"بستن فهرست\"] }, \"Open menu\": { \"v\": [\"باز کردن فهرست\"] } } }, { \"l\": \"fi\", \"t\": { \"Collapse menu\": { \"v\": [\"Supista valikko\"] }, \"Open menu\": { \"v\": [\"Avaa valikko\"] } } }, { \"l\": \"fr\", \"t\": { \"Collapse menu\": { \"v\": [\"Réduire le menu\"] }, \"Open menu\": { \"v\": [\"Ouvrir le menu\"] } } }, { \"l\": \"ga\", \"t\": { \"Collapse menu\": { \"v\": [\"Roghchlár Laghdaigh\"] }, \"Open menu\": { \"v\": [\"Roghchlár a oscailt\"] } } }, { \"l\": \"gl\", \"t\": { \"Collapse menu\": { \"v\": [\"Contraer o menú\"] }, \"Open menu\": { \"v\": [\"Abrir o menú\"] } } }, { \"l\": \"he\", \"t\": { \"Collapse menu\": { \"v\": [\"צמצום התפריט\"] }, \"Open menu\": { \"v\": [\"פתיחת תפריט\"] } } }, { \"l\": \"hr\", \"t\": { \"Collapse menu\": { \"v\": [\"Sakrij izbornik\"] }, \"Open menu\": { \"v\": [\"Otvori izbornik\"] } } }, { \"l\": \"hu\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü összecsukása\"] }, \"Open menu\": { \"v\": [\"Menü megnyitása\"] } } }, { \"l\": \"id\", \"t\": { \"Collapse menu\": { \"v\": [\"Ciutkan menu\"] }, \"Open menu\": { \"v\": [\"Buka menu\"] } } }, { \"l\": \"is\", \"t\": { \"Collapse menu\": { \"v\": [\"Fella valmynd saman\"] }, \"Open menu\": { \"v\": [\"Opna valmynd\"] } } }, { \"l\": \"it\", \"t\": { \"Collapse menu\": { \"v\": [\"Chiudi Menu\"] }, \"Open menu\": { \"v\": [\"Apri il menu\"] } } }, { \"l\": \"ja\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Collapse menu\": { \"v\": [\"메뉴 접기\"] }, \"Open menu\": { \"v\": [\"메뉴 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Collapse menu\": { \"v\": [\"ຫຍໍ້ເມນູ\"] }, \"Open menu\": { \"v\": [\"ເປີດເມນູ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Collapse menu\": { \"v\": [\"Suskleisti meniu\"] }, \"Open menu\": { \"v\": [\"Atverti meniu\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Collapse menu\": { \"v\": [\"Скриј мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"mn\", \"t\": { \"Collapse menu\": { \"v\": [\"Цэсийг хураах\"] }, \"Open menu\": { \"v\": [\"Цэсийг нээх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul meny\"] }, \"Open menu\": { \"v\": [\"Åpne meny\"] } } }, { \"l\": \"nl\", \"t\": { \"Collapse menu\": { \"v\": [\"Menu inklappen\"] }, \"Open menu\": { \"v\": [\"Menu openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Collapse menu\": { \"v\": [\"Zwiń menu\"] }, \"Open menu\": { \"v\": [\"Otwórz menu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Collapse menu\": { \"v\": [\"Recolher menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"ro\", \"t\": { \"Collapse menu\": { \"v\": [\"Restrânge meniul\"] }, \"Open menu\": { \"v\": [\"Deschide meniul\"] } } }, { \"l\": \"ru\", \"t\": { \"Collapse menu\": { \"v\": [\"Свернуть меню\"] }, \"Open menu\": { \"v\": [\"Открыть меню\"] } } }, { \"l\": \"sk\", \"t\": { \"Collapse menu\": { \"v\": [\"Zbaliť menu\"] }, \"Open menu\": { \"v\": [\"Otvoriť menu\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Collapse menu\": { \"v\": [\"Сажми мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"sv\", \"t\": { \"Collapse menu\": { \"v\": [\"Dölj menyn\"] }, \"Open menu\": { \"v\": [\"Öppna menyn\"] } } }, { \"l\": \"tr\", \"t\": { \"Collapse menu\": { \"v\": [\"Menüyü daralt\"] }, \"Open menu\": { \"v\": [\"Menüyü aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Collapse menu\": { \"v\": [\"Згорнути меню\"] }, \"Open menu\": { \"v\": [\"Відкрити меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Collapse menu\": { \"v\": [\"Menyuni yig‘ish\"] }, \"Open menu\": { \"v\": [\"Menyuni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Collapse menu\": { \"v\": [\"收起菜单\"] }, \"Open menu\": { \"v\": [\"打开菜单\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }];\nconst t22 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Copied\": { \"v\": [\"Zkopírováno\"] }, \"Copy to clipboard\": { \"v\": [\"Zkopírovat do schránky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Copied\": { \"v\": [\"Kopieret\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiér til udklipsholderen\"] } } }, { \"l\": \"de\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Copied\": { \"v\": [\"Copied\"] }, \"Copy to clipboard\": { \"v\": [\"Copy to clipboard\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Copied\": { \"v\": [\"Kopeeritud\"] }, \"Copy to clipboard\": { \"v\": [\"Kopeeri lõikelauale\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Copied\": { \"v\": [\"Copié\"] }, \"Copy to clipboard\": { \"v\": [\"Copier dans le presse-papiers\"] } } }, { \"l\": \"ga\", \"t\": { \"Copied\": { \"v\": [\"Cóipeáilte\"] }, \"Copy to clipboard\": { \"v\": [\"Cóipeáil chuig an ghearrthaisce\"] } } }, { \"l\": \"gl\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar ao portapapeis\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Copied\": { \"v\": [\"Kopirano\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiraj u međuspremnik\"] } } }, { \"l\": \"hu\", \"t\": { \"Copied\": { \"v\": [\"Másolva\"] }, \"Copy to clipboard\": { \"v\": [\"Vágólapra másolás\"] } } }, { \"l\": \"id\", \"t\": { \"Copied\": { \"v\": [\"Disalin\"] }, \"Copy to clipboard\": { \"v\": [\"Salin ke clipboard\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Copied\": { \"v\": [\"コピーされました\"] }, \"Copy to clipboard\": { \"v\": [\"クリップボードにコピー\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Copied\": { \"v\": [\"복사됨\"] }, \"Copy to clipboard\": { \"v\": [\"클립보드로 복사\"] } } }, { \"l\": \"lo\", \"t\": { \"Copied\": { \"v\": [\"ສຳເນົາແລ້ວ\"] }, \"Copy to clipboard\": { \"v\": [\"ສຳເນົາໃສ່ຄລິບບອດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Copied\": { \"v\": [\"Nukopijuota\"] }, \"Copy to clipboard\": { \"v\": [\"Kopijuoti į iškarpinę\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Copied\": { \"v\": [\"Копирано\"] }, \"Copy to clipboard\": { \"v\": [\"Копирај во клипбоард\"] } } }, { \"l\": \"mn\", \"t\": { \"Copied\": { \"v\": [\"Хуулагдлаа\"] }, \"Copy to clipboard\": { \"v\": [\"Санах ой руу хуулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Copied\": { \"v\": [\"Gekopieerd\"] }, \"Copy to clipboard\": { \"v\": [\"Kopieer naar klembord\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar para a área de transferência\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Copied\": { \"v\": [\"Скопировано\"] }, \"Copy to clipboard\": { \"v\": [\"Скопировать в буфер\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": { \"Copied\": { \"v\": [\"Kopierad\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiera till urklipp\"] } } }, { \"l\": \"tr\", \"t\": { \"Copied\": { \"v\": [\"Kopyalandı\"] }, \"Copy to clipboard\": { \"v\": [\"Panoya kopyalandı\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Copied\": { \"v\": [\"Nusxalandi\"] }, \"Copy to clipboard\": { \"v\": [\"Buferga nusxalash\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"複製到剪貼簿\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"複製到剪貼簿\"] } } }];\nconst t23 = [{ \"l\": \"ar\", \"t\": { \"Edit item\": { \"v\": [\"تعديل عنصر\"] } } }, { \"l\": \"ast\", \"t\": { \"Edit item\": { \"v\": [\"Editar l'elementu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Edit item\": { \"v\": [\"Edita l'element\"] } } }, { \"l\": \"cs\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"da\", \"t\": { \"Edit item\": { \"v\": [\"Rediger emne\"] } } }, { \"l\": \"de\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"el\", \"t\": { \"Edit item\": { \"v\": [\"Επεξεργασία αντικειμένου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Edit item\": { \"v\": [\"Muuda objekti\"] } } }, { \"l\": \"eu\", \"t\": { \"Edit item\": { \"v\": [\"Editatu elementua\"] } } }, { \"l\": \"fa\", \"t\": { \"Edit item\": { \"v\": [\"ویرایش مورد\"] } } }, { \"l\": \"fi\", \"t\": { \"Edit item\": { \"v\": [\"Muokkaa kohdetta\"] } } }, { \"l\": \"fr\", \"t\": { \"Edit item\": { \"v\": [\"Éditer l'élément\"] } } }, { \"l\": \"ga\", \"t\": { \"Edit item\": { \"v\": [\"Cuir mír in eagar\"] } } }, { \"l\": \"gl\", \"t\": { \"Edit item\": { \"v\": [\"Editar o elemento\"] } } }, { \"l\": \"he\", \"t\": { \"Edit item\": { \"v\": [\"עריכת פריט\"] } } }, { \"l\": \"hr\", \"t\": { \"Edit item\": { \"v\": [\"Uredi stavku\"] } } }, { \"l\": \"hu\", \"t\": { \"Edit item\": { \"v\": [\"Elem szerkesztése\"] } } }, { \"l\": \"id\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"is\", \"t\": { \"Edit item\": { \"v\": [\"Breyta atriði\"] } } }, { \"l\": \"it\", \"t\": { \"Edit item\": { \"v\": [\"Modifica l'elemento\"] } } }, { \"l\": \"ja\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ko\", \"t\": { \"Edit item\": { \"v\": [\"항목 수정\"] } } }, { \"l\": \"lo\", \"t\": { \"Edit item\": { \"v\": [\"ແກ້ໄຂລາຍການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Edit item\": { \"v\": [\"Taisyti elementą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Edit item\": { \"v\": [\"Уреди\"] } } }, { \"l\": \"mn\", \"t\": { \"Edit item\": { \"v\": [\"Зүйлийг засварлах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Edit item\": { \"v\": [\"Rediger\"] } } }, { \"l\": \"nl\", \"t\": { \"Edit item\": { \"v\": [\"Item bewerken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Edit item\": { \"v\": [\"Edytuj element\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"ro\", \"t\": { \"Edit item\": { \"v\": [\"Editați elementul\"] } } }, { \"l\": \"ru\", \"t\": { \"Edit item\": { \"v\": [\"Изменить элемент\"] } } }, { \"l\": \"sk\", \"t\": { \"Edit item\": { \"v\": [\"Upraviť položku\"] } } }, { \"l\": \"sl\", \"t\": { \"Edit item\": { \"v\": [\"Uredi predmet\"] } } }, { \"l\": \"sr\", \"t\": { \"Edit item\": { \"v\": [\"Уреди ставку\"] } } }, { \"l\": \"sv\", \"t\": { \"Edit item\": { \"v\": [\"Redigera objekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Edit item\": { \"v\": [\"Ögeyi düzenle\"] } } }, { \"l\": \"uk\", \"t\": { \"Edit item\": { \"v\": [\"Редагувати елемент\"] } } }, { \"l\": \"uz\", \"t\": { \"Edit item\": { \"v\": [\"Elementni tahrirlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Edit item\": { \"v\": [\"编辑项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }];\nconst t24 = [{ \"l\": \"ar\", \"t\": { \"Enable interactive view\": { \"v\": [\"تمكين المنظور التفاعلي\"] } } }, { \"l\": \"ast\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activar la vista interactiva\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enable interactive view\": { \"v\": [\"Zapnout interaktivní zobrazení\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktiver interaktiv visning\"] } } }, { \"l\": \"de\", \"t\": { \"Enable interactive view\": { \"v\": [\"Die interaktive Ansicht aktivieren\"] }, \"Widget height\": { \"v\": [\"Widget-Höhe\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enable interactive view\": { \"v\": [\"Die interaktive Ansicht aktivieren\"] }, \"Widget height\": { \"v\": [\"Widget-Höhe\"] } } }, { \"l\": \"el\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ενεργοποίηση διαδραστικής προβολής\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enable interactive view\": { \"v\": [\"Enable interactive view\"] }, \"Widget height\": { \"v\": [\"Widget height\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enable interactive view\": { \"v\": [\"Lülita interaktiivne vaade sisse\"] }, \"Widget height\": { \"v\": [\"Vidina kõrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Enable interactive view\": { \"v\": [\"فعال‌سازی نمای تعاملی\"] } } }, { \"l\": \"fi\", \"t\": { \"Enable interactive view\": { \"v\": [\"Näytä vuorovaikutteinen näkymä\"] } } }, { \"l\": \"fr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activer la vue interactive\"] } } }, { \"l\": \"ga\", \"t\": { \"Enable interactive view\": { \"v\": [\"Cumasaigh amharc idirghníomhach\"] }, \"Widget height\": { \"v\": [\"Airde an ghiuirléid\"] } } }, { \"l\": \"gl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activar a vista interactiva\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Omogući interaktivni prikaz\"] } } }, { \"l\": \"hu\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interaktív nézet engedélyezése\"] } } }, { \"l\": \"id\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktifkan tampilan interaktif\"] } } }, { \"l\": \"is\", \"t\": { \"Enable interactive view\": { \"v\": [\"Virkja gagnvirka sýn\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Enable interactive view\": { \"v\": [\"インタラクティブ・ビューを有効にする\"] }, \"Widget height\": { \"v\": [\"ウィジェットの高さ\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enable interactive view\": { \"v\": [\"インタラクティブ・ビューを有効にする\"] } } }, { \"l\": \"ko\", \"t\": { \"Enable interactive view\": { \"v\": [\"대화형 보기 활성화\"] } } }, { \"l\": \"lo\", \"t\": { \"Enable interactive view\": { \"v\": [\"ເປີດໃຊ້ງານມຸມມອງໂຕ້ຕອບ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Enable interactive view\": { \"v\": [\"Įgalinti interaktyvų vaizdą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Овозможи интерактивен приказ\"] } } }, { \"l\": \"mn\", \"t\": { \"Enable interactive view\": { \"v\": [\"Интерактив харагдацыг идэвхжүүлэх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktiver interaktiv visning\"] } } }, { \"l\": \"nl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interactieve weergave inschakelen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Włącz widok interaktywny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ativar visualização interativa\"] }, \"Widget height\": { \"v\": [\"Altura do widget\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ativar vista interativa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Enable interactive view\": { \"v\": [\"Включить интерактивный просмотр\"] } } }, { \"l\": \"sk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Povoliť interaktívny pohľad\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Укључи интерактивни приказ\"] } } }, { \"l\": \"sv\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktivera interaktiv vy\"] }, \"Widget height\": { \"v\": [\"Widget höjd\"] } } }, { \"l\": \"tr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Etkileşimli görünümü aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Увімкнути інтерактивний перегляд\"] } } }, { \"l\": \"uz\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interaktiv ko'rinishni yoqing\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enable interactive view\": { \"v\": [\"启用交互视窗\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enable interactive view\": { \"v\": [\"啟用互動視圖\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enable interactive view\": { \"v\": [\"啟用互動檢視\"] } } }];\nconst t25 = [{ \"l\": \"ar\", \"t\": { \"Enter link\": { \"v\": [\"أدخِل الرابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Enter link\": { \"v\": [\"Introducir l'enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Enter link\": { \"v\": [\"Indtast link\"] } } }, { \"l\": \"de\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"el\", \"t\": { \"Enter link\": { \"v\": [\"Εισάγετε σύνδεσμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enter link\": { \"v\": [\"Enter link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enter link\": { \"v\": [\"Ingrese enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enter link\": { \"v\": [\"Sisesta link\"] } } }, { \"l\": \"eu\", \"t\": { \"Enter link\": { \"v\": [\"Sartu esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Enter link\": { \"v\": [\"لینک را وارد کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Enter link\": { \"v\": [\"Kirjoita linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Enter link\": { \"v\": [\"Saisissez le lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Enter link\": { \"v\": [\"Cuir isteach nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Enter link\": { \"v\": [\"Introducir a ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Enter link\": { \"v\": [\"מילוי קישור\"] } } }, { \"l\": \"hr\", \"t\": { \"Enter link\": { \"v\": [\"Unesi poveznicu\"] } } }, { \"l\": \"hu\", \"t\": { \"Enter link\": { \"v\": [\"Adja meg a hivatkozást\"] } } }, { \"l\": \"id\", \"t\": { \"Enter link\": { \"v\": [\"Masukkan tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Enter link\": { \"v\": [\"Settu inn tengil\"] } } }, { \"l\": \"it\", \"t\": { \"Enter link\": { \"v\": [\"Inserire il link\"] } } }, { \"l\": \"ja\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ko\", \"t\": { \"Enter link\": { \"v\": [\"링크 입력\"] } } }, { \"l\": \"lo\", \"t\": { \"Enter link\": { \"v\": [\"ປ້ອນລິງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Enter link\": { \"v\": [\"Įvesti nuorodą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enter link\": { \"v\": [\"Внеси линк\"] } } }, { \"l\": \"mn\", \"t\": { \"Enter link\": { \"v\": [\"Холбоос оруулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enter link\": { \"v\": [\"Skriv inn lenken\"] } } }, { \"l\": \"nl\", \"t\": { \"Enter link\": { \"v\": [\"Link invoeren\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enter link\": { \"v\": [\"Wprowadź link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enter link\": { \"v\": [\"Insira o link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enter link\": { \"v\": [\"Inserir hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Enter link\": { \"v\": [\"Introduceți link-ul\"] } } }, { \"l\": \"ru\", \"t\": { \"Enter link\": { \"v\": [\"Введите ссылку\"] } } }, { \"l\": \"sk\", \"t\": { \"Enter link\": { \"v\": [\"Vložiť link\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enter link\": { \"v\": [\"Унесите линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Enter link\": { \"v\": [\"Ange länk\"] } } }, { \"l\": \"tr\", \"t\": { \"Enter link\": { \"v\": [\"Bağlantıyı yazın\"] } } }, { \"l\": \"uk\", \"t\": { \"Enter link\": { \"v\": [\"Зазначте посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Enter link\": { \"v\": [\"Havolani kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enter link\": { \"v\": [\"输入链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }];\nconst t26 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"External documentation\": { \"v\": [\"Externí dokumentace\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"External documentation\": { \"v\": [\"Ekstern dokumentation\"] } } }, { \"l\": \"de\", \"t\": { \"External documentation\": { \"v\": [\"Externe Dokumentation\"] } } }, { \"l\": \"de-DE\", \"t\": { \"External documentation\": { \"v\": [\"Externe Dokumentation\"] } } }, { \"l\": \"el\", \"t\": { \"External documentation\": { \"v\": [\"Εξωτερική τεκμηρίωση\"] } } }, { \"l\": \"en-GB\", \"t\": { \"External documentation\": { \"v\": [\"External documentation\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"External documentation\": { \"v\": [\"Dokumentatsioon välises allikas\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"External documentation\": { \"v\": [\"Documentation externe\"] } } }, { \"l\": \"ga\", \"t\": { \"External documentation\": { \"v\": [\"Doiciméadú seachtrach\"] } } }, { \"l\": \"gl\", \"t\": { \"External documentation\": { \"v\": [\"Documentación externa\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"External documentation\": { \"v\": [\"Vanjska dokumentacija\"] } } }, { \"l\": \"hu\", \"t\": { \"External documentation\": { \"v\": [\"Külső dokumentáció\"] } } }, { \"l\": \"id\", \"t\": { \"External documentation\": { \"v\": [\"Dokumentasi eksternal\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"External documentation\": { \"v\": [\"外部ドキュメント\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"External documentation\": { \"v\": [\"외부 문서\"] } } }, { \"l\": \"lo\", \"t\": { \"External documentation\": { \"v\": [\"ເອກະສານພາຍນອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"External documentation\": { \"v\": [\"Išorinė dokumentacija\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"External documentation\": { \"v\": [\"Надворешна документација\"] } } }, { \"l\": \"mn\", \"t\": { \"External documentation\": { \"v\": [\"Гадаад баримт бичиг\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"External documentation\": { \"v\": [\"Externe documentatie\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"External documentation\": { \"v\": [\"Documentação externa\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"External documentation\": { \"v\": [\"Внешняя документация\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"External documentation\": { \"v\": [\"Спољна документација\"] } } }, { \"l\": \"sv\", \"t\": { \"External documentation\": { \"v\": [\"Extern dokumentation\"] } } }, { \"l\": \"tr\", \"t\": { \"External documentation\": { \"v\": [\"Dış belgeler\"] } } }, { \"l\": \"uk\", \"t\": { \"External documentation\": { \"v\": [\"Зовнішня документація\"] } } }, { \"l\": \"uz\", \"t\": { \"External documentation\": { \"v\": [\"Tashqi hujjatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"External documentation\": { \"v\": [\"外部文件\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"External documentation\": { \"v\": [\"外部文件\"] } } }];\nconst t27 = [{ \"l\": \"ar\", \"t\": { \"Go back to the list\": { \"v\": [\"عودة إلى القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la llista\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Go back to the list\": { \"v\": [\"Torna a la llista\"] } } }, { \"l\": \"cs\", \"t\": { \"Go back to the list\": { \"v\": [\"Jít zpět na seznam\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Go back to the list\": { \"v\": [\"Jít zpět na seznam\"] } } }, { \"l\": \"da\", \"t\": { \"Go back to the list\": { \"v\": [\"Tilbage til listen\"] } } }, { \"l\": \"de\", \"t\": { \"Go back to the list\": { \"v\": [\"Zurück zur Liste\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Go back to the list\": { \"v\": [\"Zurück zur Liste\"] } } }, { \"l\": \"el\", \"t\": { \"Go back to the list\": { \"v\": [\"Επιστροφή στην αρχική λίστα\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Go back to the list\": { \"v\": [\"Go back to the list\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Go back to the list\": { \"v\": [\"Regresar a la lista\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Go back to the list\": { \"v\": [\"Tagasi nimekirja juurde\"] } } }, { \"l\": \"eu\", \"t\": { \"Go back to the list\": { \"v\": [\"Bueltatu zerrendara\"] } } }, { \"l\": \"fa\", \"t\": { \"Go back to the list\": { \"v\": [\"برگشت به لیست\"] } } }, { \"l\": \"fi\", \"t\": { \"Go back to the list\": { \"v\": [\"Takaisin listaan\"] } } }, { \"l\": \"fr\", \"t\": { \"Go back to the list\": { \"v\": [\"Retourner à la liste\"] } } }, { \"l\": \"ga\", \"t\": { \"Go back to the list\": { \"v\": [\"Téigh ar ais go dtí an liosta\"] } } }, { \"l\": \"gl\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver á lista\"] } } }, { \"l\": \"he\", \"t\": { \"Go back to the list\": { \"v\": [\"חזרה לרשימה\"] } } }, { \"l\": \"hr\", \"t\": { \"Go back to the list\": { \"v\": [\"Vrati se na popis\"] } } }, { \"l\": \"hu\", \"t\": { \"Go back to the list\": { \"v\": [\"Ugrás vissza a listához\"] } } }, { \"l\": \"id\", \"t\": { \"Go back to the list\": { \"v\": [\"Kembali ke daftar\"] } } }, { \"l\": \"is\", \"t\": { \"Go back to the list\": { \"v\": [\"Fara til baka í listann\"] } } }, { \"l\": \"it\", \"t\": { \"Go back to the list\": { \"v\": [\"Torna all'elenco\"] } } }, { \"l\": \"ja\", \"t\": { \"Go back to the list\": { \"v\": [\"リストに戻る\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Go back to the list\": { \"v\": [\"リストに戻る\"] } } }, { \"l\": \"ko\", \"t\": { \"Go back to the list\": { \"v\": [\"목록으로 돌아가기\"] } } }, { \"l\": \"lo\", \"t\": { \"Go back to the list\": { \"v\": [\"ກັບໄປທີ່ລາຍການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Go back to the list\": { \"v\": [\"Grįžti į sąrašą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Go back to the list\": { \"v\": [\"Врати се на листата\"] } } }, { \"l\": \"mn\", \"t\": { \"Go back to the list\": { \"v\": [\"Жагсаалт руу буцах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Go back to the list\": { \"v\": [\"Gå tilbake til listen\"] } } }, { \"l\": \"nl\", \"t\": { \"Go back to the list\": { \"v\": [\"Ga terug naar de lijst\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Go back to the list\": { \"v\": [\"Powrót do listy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Go back to the list\": { \"v\": [\"Voltar para a lista\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Go back to the list\": { \"v\": [\"Voltar para a lista\"] } } }, { \"l\": \"ro\", \"t\": { \"Go back to the list\": { \"v\": [\"Întoarceți-vă la listă\"] } } }, { \"l\": \"ru\", \"t\": { \"Go back to the list\": { \"v\": [\"Вернуться к списку\"] } } }, { \"l\": \"sk\", \"t\": { \"Go back to the list\": { \"v\": [\"Späť na zoznam\"] } } }, { \"l\": \"sl\", \"t\": { \"Go back to the list\": { \"v\": [\"Vrni se na seznam\"] } } }, { \"l\": \"sr\", \"t\": { \"Go back to the list\": { \"v\": [\"Назад на листу\"] } } }, { \"l\": \"sv\", \"t\": { \"Go back to the list\": { \"v\": [\"Gå tillbaka till listan\"] } } }, { \"l\": \"tr\", \"t\": { \"Go back to the list\": { \"v\": [\"Listeye dön\"] } } }, { \"l\": \"uk\", \"t\": { \"Go back to the list\": { \"v\": [\"Повернутися до списку\"] } } }, { \"l\": \"uz\", \"t\": { \"Go back to the list\": { \"v\": [\"Ro'yxatga qayting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Go back to the list\": { \"v\": [\"返回至列表\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Go back to the list\": { \"v\": [\"返回清單\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Go back to the list\": { \"v\": [\"回到清單\"] } } }];\nconst t28 = [{ \"l\": \"ar\", \"t\": { \"Hide details\": { \"v\": [\"أخفِ التفاصيل\"] }, \"Rename project\": { \"v\": [\"تغيير اسم المشروع\"] }, \"Show details\": { \"v\": [\"أظهِر التفاصيل\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Hide details\": { \"v\": [\"Skrýt podrobnosti\"] }, \"Rename project\": { \"v\": [\"Přejmenovat projekt\"] }, \"Show details\": { \"v\": [\"Zobrazit podrobnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Omdøb projekt\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"de\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide details\": { \"v\": [\"Απόκρυψη λεπτομερειών\"] }, \"Rename project\": { \"v\": [\"Μετονομασία έργου\"] }, \"Show details\": { \"v\": [\"Εμφάνιση λεπτομερειών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide details\": { \"v\": [\"Hide details\"] }, \"Rename project\": { \"v\": [\"Rename project\"] }, \"Show details\": { \"v\": [\"Show details\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide details\": { \"v\": [\"Peida üksikasjad\"] }, \"Rename project\": { \"v\": [\"Muuda projekti nime\"] }, \"Show details\": { \"v\": [\"Näita üksikasju\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Hide details\": { \"v\": [\"پنهان کردن جزئیات\"] }, \"Rename project\": { \"v\": [\"تغییر نام پروژه\"] }, \"Show details\": { \"v\": [\"نمایش جزئیات\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide details\": { \"v\": [\"Piilota yksityiskohdat\"] }, \"Rename project\": { \"v\": [\"Nimeä projekti\"] }, \"Show details\": { \"v\": [\"Näytä yksityiskohdat\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide details\": { \"v\": [\"Masquer les détails\"] }, \"Rename project\": { \"v\": [\"Renommer le projet\"] }, \"Show details\": { \"v\": [\"Afficher les détails\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide details\": { \"v\": [\"Folaigh sonraí\"] }, \"Rename project\": { \"v\": [\"Athainmnigh an tionscadal\"] }, \"Show details\": { \"v\": [\"Taispeáin sonraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide details\": { \"v\": [\"Agochar os detalles\"] }, \"Rename project\": { \"v\": [\"Cambiar o nome do proxecto\"] }, \"Show details\": { \"v\": [\"Amosar os detalles\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Hide details\": { \"v\": [\"Sakrij detalje\"] }, \"Rename project\": { \"v\": [\"Preimenuj projekt\"] }, \"Show details\": { \"v\": [\"Prikaži detalje\"] } } }, { \"l\": \"hu\", \"t\": { \"Hide details\": { \"v\": [\"Részletek elrejtése\"] }, \"Rename project\": { \"v\": [\"Projekt átnevezése\"] }, \"Show details\": { \"v\": [\"Részletek megjelenítése\"] } } }, { \"l\": \"id\", \"t\": { \"Hide details\": { \"v\": [\"Sembunyikan detail\"] }, \"Rename project\": { \"v\": [\"Ganti nama proyek\"] }, \"Show details\": { \"v\": [\"Tampilkan detail\"] } } }, { \"l\": \"is\", \"t\": { \"Hide details\": { \"v\": [\"Fela nánari upplýsingar\"] }, \"Rename project\": { \"v\": [\"Endurnefna verkefni\"] }, \"Show details\": { \"v\": [\"Birta nánari upplýsingar\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Hide details\": { \"v\": [\"詳細を非表示\"] }, \"Rename project\": { \"v\": [\"プロジェクト名を変更\"] }, \"Show details\": { \"v\": [\"詳細の表示\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Hide details\": { \"v\": [\"세부 사항 숨기기\"] }, \"Rename project\": { \"v\": [\"프로젝트 이름 변경\"] }, \"Show details\": { \"v\": [\"세부 사항 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide details\": { \"v\": [\"ເຊື່ອງລາຍລະອຽດ\"] }, \"Rename project\": { \"v\": [\"ປ່ຽນຊື່ໂຄງການ\"] }, \"Show details\": { \"v\": [\"ສະແດງລາຍລະອຽດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Hide details\": { \"v\": [\"Slėpti detales\"] }, \"Rename project\": { \"v\": [\"Pervadinti projektą\"] }, \"Show details\": { \"v\": [\"Rodyti detales\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide details\": { \"v\": [\"Сокриј детали\"] }, \"Rename project\": { \"v\": [\"Преименувај проект\"] }, \"Show details\": { \"v\": [\"Прикажи детали\"] } } }, { \"l\": \"mn\", \"t\": { \"Hide details\": { \"v\": [\"Дэлгэрэнгүйг нуух\"] }, \"Rename project\": { \"v\": [\"Төслийн нэр солих\"] }, \"Show details\": { \"v\": [\"Дэлгэрэнгүйг харуулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Gi prosjekt nytt navn\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide details\": { \"v\": [\"Details verbergen\"] }, \"Rename project\": { \"v\": [\"Project hernoemen\"] }, \"Show details\": { \"v\": [\"Details weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide details\": { \"v\": [\"Ukryj szczegóły\"] }, \"Rename project\": { \"v\": [\"Zmień nazwę projektu\"] }, \"Show details\": { \"v\": [\"Pokaż szczegóły\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Renomear projeto\"] }, \"Show details\": { \"v\": [\"Mostrar detalhes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Alterar nome do projeto\"] }, \"Show details\": { \"v\": [\"Ver detalhes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Hide details\": { \"v\": [\"Скрыть подробности\"] }, \"Rename project\": { \"v\": [\"Переименовать проект\"] }, \"Show details\": { \"v\": [\"Показать детали\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide details\": { \"v\": [\"Skryť detaily\"] }, \"Rename project\": { \"v\": [\"Premenovať projekt\"] }, \"Show details\": { \"v\": [\"Zobraziť detaily\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Hide details\": { \"v\": [\"Сакриј детаље\"] }, \"Rename project\": { \"v\": [\"Промени име пројекта\"] }, \"Show details\": { \"v\": [\"Прикажи детаље\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide details\": { \"v\": [\"Göm detaljer\"] }, \"Rename project\": { \"v\": [\"Byt namn på projektet\"] }, \"Show details\": { \"v\": [\"Visa detaljer\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide details\": { \"v\": [\"Ayrıntıları gizle\"] }, \"Rename project\": { \"v\": [\"Projeyi yeniden adlandır\"] }, \"Show details\": { \"v\": [\"Ayrıntıları görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide details\": { \"v\": [\"Сховати деталі\"] }, \"Rename project\": { \"v\": [\"Перейменувати проєкт\"] }, \"Show details\": { \"v\": [\"Показати деталі\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide details\": { \"v\": [\"Tafsilotlarni yashirish\"] }, \"Rename project\": { \"v\": [\"Loyiha nomini o'zgartirish\"] }, \"Show details\": { \"v\": [\"Tafsilotlarni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide details\": { \"v\": [\"隐藏细节\"] }, \"Rename project\": { \"v\": [\"重命名项目\"] }, \"Show details\": { \"v\": [\"显示细节\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳情\"] }, \"Rename project\": { \"v\": [\"重命名方案\"] }, \"Show details\": { \"v\": [\"顯示詳情\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳細資料\"] }, \"Rename project\": { \"v\": [\"重新命名專案\"] }, \"Show details\": { \"v\": [\"顯示詳細資訊\"] } } }];\nconst t29 = [{ \"l\": \"ar\", \"t\": { \"Hide password\": { \"v\": [\"إخفاء كلمة المرور\"] }, \"Password is secure\": { \"v\": [\"كلمة المرور آمنة\"] }, \"Show password\": { \"v\": [\"أظهِر كلمة المرور\"] } } }, { \"l\": \"ast\", \"t\": { \"Hide password\": { \"v\": [\"Anubrir la contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña ye segura\"] }, \"Show password\": { \"v\": [\"Amosar la contraseña\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Hide password\": { \"v\": [\"Amagar contrasenya\"] }, \"Password is secure\": { \"v\": [\"Contrasenya segura
\"] }, \"Show password\": { \"v\": [\"Mostrar contrasenya\"] } } }, { \"l\": \"cs\", \"t\": { \"Hide password\": { \"v\": [\"Skrýt heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobrazit heslo\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Hide password\": { \"v\": [\"Skrýt heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobrazit heslo\"] } } }, { \"l\": \"da\", \"t\": { \"Hide password\": { \"v\": [\"Skjul kodeord\"] }, \"Password is secure\": { \"v\": [\"Kodeordet er sikkert\"] }, \"Show password\": { \"v\": [\"Vis kodeord\"] } } }, { \"l\": \"de\", \"t\": { \"Hide password\": { \"v\": [\"Passwort verbergen\"] }, \"Password is secure\": { \"v\": [\"Passwort ist sicher\"] }, \"Show password\": { \"v\": [\"Passwort anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide password\": { \"v\": [\"Passwort verbergen\"] }, \"Password is secure\": { \"v\": [\"Passwort ist sicher\"] }, \"Show password\": { \"v\": [\"Passwort anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide password\": { \"v\": [\"Απόκρυψη συνθηματικού\"] }, \"Password is secure\": { \"v\": [\"Το συνθηματικό είναι ασφαλές\"] }, \"Show password\": { \"v\": [\"Εμφάνιση κωδικού πρόσβασης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide password\": { \"v\": [\"Hide password\"] }, \"Password is secure\": { \"v\": [\"Password is secure\"] }, \"Show password\": { \"v\": [\"Show password\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide password\": { \"v\": [\"Peida salasõna\"] }, \"Password is secure\": { \"v\": [\"Salasõna on turvaline\"] }, \"Show password\": { \"v\": [\"Näita salasõna\"] } } }, { \"l\": \"eu\", \"t\": { \"Hide password\": { \"v\": [\"Ezkutatu pasahitza\"] }, \"Password is secure\": { \"v\": [\"Pasahitza segurua da\"] }, \"Show password\": { \"v\": [\"Erakutsi pasahitza\"] } } }, { \"l\": \"fa\", \"t\": { \"Hide password\": { \"v\": [\"پنهان کردن رمز عبور\"] }, \"Password is secure\": { \"v\": [\"گذرواژه امن است\"] }, \"Show password\": { \"v\": [\"نمایش گذرواژه\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide password\": { \"v\": [\"Piilota salasana\"] }, \"Password is secure\": { \"v\": [\"Salasana on turvallinen\"] }, \"Show password\": { \"v\": [\"Näytä salasana\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide password\": { \"v\": [\"Cacher le mot de passe\"] }, \"Password is secure\": { \"v\": [\"Le mot de passe est sécurisé\"] }, \"Show password\": { \"v\": [\"Afficher le mot de passe\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide password\": { \"v\": [\"Folaigh pasfhocal\"] }, \"Password is secure\": { \"v\": [\"Tá pasfhocal slán\"] }, \"Show password\": { \"v\": [\"Taispeáin pasfhocal\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide password\": { \"v\": [\"Agochar o contrasinal\"] }, \"Password is secure\": { \"v\": [\"O contrasinal é seguro\"] }, \"Show password\": { \"v\": [\"Amosar o contrasinal\"] } } }, { \"l\": \"he\", \"t\": { \"Hide password\": { \"v\": [\"הסתרת סיסמה\"] }, \"Password is secure\": { \"v\": [\"הסיסמה מאובטחת\"] }, \"Show password\": { \"v\": [\"הצגת סיסמה\"] } } }, { \"l\": \"hr\", \"t\": { \"Hide password\": { \"v\": [\"Sakrij lozinku\"] }, \"Password is secure\": { \"v\": [\"Lozinka je zaštićena\"] }, \"Show password\": { \"v\": [\"Prikaži lozinku\"] } } }, { \"l\": \"hu\", \"t\": { \"Hide password\": { \"v\": [\"Jelszó elrejtése\"] }, \"Password is secure\": { \"v\": [\"A jelszó biztonságos\"] }, \"Show password\": { \"v\": [\"Jelszó megjelenítése\"] } } }, { \"l\": \"id\", \"t\": { \"Hide password\": { \"v\": [\"Sembunyikan sandi\"] }, \"Password is secure\": { \"v\": [\"Kata sandi sudah aman\"] }, \"Show password\": { \"v\": [\"Tampilkan sandi\"] } } }, { \"l\": \"is\", \"t\": { \"Hide password\": { \"v\": [\"Fela lykilorð\"] }, \"Password is secure\": { \"v\": [\"Lykilorðið er öruggt\"] }, \"Show password\": { \"v\": [\"Birta lykilorð\"] } } }, { \"l\": \"it\", \"t\": { \"Hide password\": { \"v\": [\"Nascondi la password\"] }, \"Password is secure\": { \"v\": [\"La password è sicura\"] }, \"Show password\": { \"v\": [\"Mostra la password\"] } } }, { \"l\": \"ja\", \"t\": { \"Hide password\": { \"v\": [\"パスワードを非表示\"] }, \"Password is secure\": { \"v\": [\"パスワードは保護されています\"] }, \"Show password\": { \"v\": [\"パスワードを表示\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Hide password\": { \"v\": [\"パスワードを非表示\"] }, \"Password is secure\": { \"v\": [\"パスワードは保護されています\"] }, \"Show password\": { \"v\": [\"パスワードを表示\"] } } }, { \"l\": \"ko\", \"t\": { \"Hide password\": { \"v\": [\"암호 숨기기\"] }, \"Password is secure\": { \"v\": [\"암호가 안전합니다.\"] }, \"Show password\": { \"v\": [\"암호 표시\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide password\": { \"v\": [\"ເຊື່ອງລະຫັດຜ່ານ\"] }, \"Password is secure\": { \"v\": [\"ລະຫັດຜ່ານປອດໄພ\"] }, \"Show password\": { \"v\": [\"ສະແດງລະຫັດຜ່ານ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Hide password\": { \"v\": [\"Slėpti slaptažodį\"] }, \"Password is secure\": { \"v\": [\"Slaptažodis yra saugus\"] }, \"Show password\": { \"v\": [\"Rodyti slaptažodį\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide password\": { \"v\": [\"Сокриј лозинка\"] }, \"Password is secure\": { \"v\": [\"Лозинката е безбедна\"] }, \"Show password\": { \"v\": [\"Прикажи лозинка\"] } } }, { \"l\": \"mn\", \"t\": { \"Hide password\": { \"v\": [\"Нууц үгийг нуух\"] }, \"Password is secure\": { \"v\": [\"Нууц үг найдвартай байна\"] }, \"Show password\": { \"v\": [\"Нууц үгийг харуулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide password\": { \"v\": [\"Skjul passord\"] }, \"Password is secure\": { \"v\": [\"Passordet er sikkert\"] }, \"Show password\": { \"v\": [\"Vis passord\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide password\": { \"v\": [\"Wachtwoord verbergen\"] }, \"Password is secure\": { \"v\": [\"Wachtwoord is veilig\"] }, \"Show password\": { \"v\": [\"Wachtwoord weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide password\": { \"v\": [\"Ukryj hasło\"] }, \"Password is secure\": { \"v\": [\"Hasło jest bezpieczne\"] }, \"Show password\": { \"v\": [\"Pokaż hasło\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar senha\"] }, \"Password is secure\": { \"v\": [\"A senha é segura\"] }, \"Show password\": { \"v\": [\"Mostrar senha\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar palavra-passe\"] }, \"Password is secure\": { \"v\": [\"A palavra-passe é segura\"] }, \"Show password\": { \"v\": [\"Mostrar palavra-passe\"] } } }, { \"l\": \"ro\", \"t\": { \"Hide password\": { \"v\": [\"Ascunde parola\"] }, \"Password is secure\": { \"v\": [\"Parola este sigură\"] }, \"Show password\": { \"v\": [\"Arată parola\"] } } }, { \"l\": \"ru\", \"t\": { \"Hide password\": { \"v\": [\"Скрыть пароль\"] }, \"Password is secure\": { \"v\": [\"Пароль надежный\"] }, \"Show password\": { \"v\": [\"Показать пароль\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide password\": { \"v\": [\"Skryť heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobraziť heslo\"] } } }, { \"l\": \"sl\", \"t\": { \"Hide password\": { \"v\": [\"Skrij geslo\"] }, \"Password is secure\": { \"v\": [\"Geslo je varno\"] }, \"Show password\": { \"v\": [\"Pokaži geslo\"] } } }, { \"l\": \"sr\", \"t\": { \"Hide password\": { \"v\": [\"Сакриј лозинку\"] }, \"Password is secure\": { \"v\": [\"Лозинка је безбедна\"] }, \"Show password\": { \"v\": [\"Прикажи лозинку\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide password\": { \"v\": [\"Göm lösenordet\"] }, \"Password is secure\": { \"v\": [\"Lössenordet är säkert\"] }, \"Show password\": { \"v\": [\"Visa lösenordet\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide password\": { \"v\": [\"Parolayı gizle\"] }, \"Password is secure\": { \"v\": [\"Parola güvenli\"] }, \"Show password\": { \"v\": [\"Parolayı görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide password\": { \"v\": [\"Приховати пароль\"] }, \"Password is secure\": { \"v\": [\"Пароль безпечний\"] }, \"Show password\": { \"v\": [\"Показати пароль\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide password\": { \"v\": [\"Parolni yashirish\"] }, \"Password is secure\": { \"v\": [\"Parol xavfsiz\"] }, \"Show password\": { \"v\": [\"Parolni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide password\": { \"v\": [\"隐藏密码\"] }, \"Password is secure\": { \"v\": [\"密码安全\"] }, \"Show password\": { \"v\": [\"显示密码\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide password\": { \"v\": [\"隱藏密碼\"] }, \"Password is secure\": { \"v\": [\"密碼是安全的\"] }, \"Show password\": { \"v\": [\"顯示密碼\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide password\": { \"v\": [\"隱藏密碼\"] }, \"Password is secure\": { \"v\": [\"密碼安全\"] }, \"Show password\": { \"v\": [\"顯示密碼\"] } } }];\nconst t30 = [{ \"l\": \"ar\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"مساعدة في التنقل باستعمال لوحة المفاتيح\"] }, \"Skip to app navigation\": { \"v\": [\"تجاوَز إلى التنقل في التطبيق\"] }, \"Skip to main content\": { \"v\": [\"تجاوَز إلى المحتوى الرئيسي\"] } } }, { \"l\": \"ast\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de la navegación pente'l tecláu\"] }, \"Skip to app navigation\": { \"v\": [\"Dir a la navegación d'aplicaciones\"] }, \"Skip to main content\": { \"v\": [\"Dir al conteníu principal\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Nápověda pro pohyb pomocí klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Přeskočit na navigaci aplikace\"] }, \"Skip to main content\": { \"v\": [\"Přeskočit na hlavní obsah\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Nápověda pro pohyb pomocí klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Přeskočit na navigaci aplikace\"] }, \"Skip to main content\": { \"v\": [\"Přeskočit na hlavní obsah\"] } } }, { \"l\": \"da\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjælp til tastaturnavigation\"] }, \"Skip to app navigation\": { \"v\": [\"Spring til app navigation\"] }, \"Skip to main content\": { \"v\": [\"Spring til hovedindhold\"] } } }, { \"l\": \"de\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Tastatur-Navigationshilfe\"] }, \"Skip to app navigation\": { \"v\": [\"Zur App-Navigation springen\"] }, \"Skip to main content\": { \"v\": [\"Zum Hauptinhalt springen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Tastatur-Navigationshilfe\"] }, \"Skip to app navigation\": { \"v\": [\"Zur App-Navigation springen\"] }, \"Skip to main content\": { \"v\": [\"Zum Hauptinhalt springen\"] } } }, { \"l\": \"el\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Βοήθεια πλοήγησης με πληκτρολόγιο\"] }, \"Skip to app navigation\": { \"v\": [\"Μετάβαση στην πλοήγηση της εφαρμογής\"] }, \"Skip to main content\": { \"v\": [\"Μετάβαση στο κύριο περιεχόμενο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Keyboard navigation help\"] }, \"Skip to app navigation\": { \"v\": [\"Skip to app navigation\"] }, \"Skip to main content\": { \"v\": [\"Skip to main content\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de apps\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de app\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de app\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klahvistiku kasutuse abiteave\"] }, \"Skip to app navigation\": { \"v\": [\"Suundu rakenduses liikumise valikute juurde\"] }, \"Skip to main content\": { \"v\": [\"Suundu põhisisu juurde\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"راهنمای ناوبری صفحه کلید\"] }, \"Skip to app navigation\": { \"v\": [\"رفتن به پیمایش برنامه\"] }, \"Skip to main content\": { \"v\": [\"رفتن به محتوای اصلی\"] } } }, { \"l\": \"fi\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Näppäimistönavigoinnin ohje\"] }, \"Skip to app navigation\": { \"v\": [\"Siirry sovelluksen navigaatioon\"] }, \"Skip to main content\": { \"v\": [\"Siirry pääsisältöön\"] } } }, { \"l\": \"fr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Aide à la navigation du clavier\"] }, \"Skip to app navigation\": { \"v\": [\"Passer à l'app navigation\"] }, \"Skip to main content\": { \"v\": [\"Passer au contenu principal\"] } } }, { \"l\": \"ga\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Cabhair le nascleanúint méarchláir\"] }, \"Skip to app navigation\": { \"v\": [\"Téigh ar aghaidh chuig nascleanúint aip\"] }, \"Skip to main content\": { \"v\": [\"Téigh ar aghaidh chuig an bpríomhábhar\"] } } }, { \"l\": \"gl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Axuda á navegación co teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Ir á navegación da aplicación\"] }, \"Skip to main content\": { \"v\": [\"Ir ao contido principal\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoć za navigaciju tipkovnicom\"] }, \"Skip to app navigation\": { \"v\": [\"Preskoči na navigaciju aplikacije\"] }, \"Skip to main content\": { \"v\": [\"Preskoči na glavni sadržaj\"] } } }, { \"l\": \"hu\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Billentyűzetes navigáció súgója\"] }, \"Skip to app navigation\": { \"v\": [\"Ugrás az alkalmazásnavigációhoz\"] }, \"Skip to main content\": { \"v\": [\"Ugrás a fő tartalomhoz\"] } } }, { \"l\": \"id\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Bantuan navigasi keyboard\"] }, \"Skip to app navigation\": { \"v\": [\"Lewati ke navigasi aplikasi\"] }, \"Skip to main content\": { \"v\": [\"Lewati ke konten utama\"] } } }, { \"l\": \"is\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Aðstoð við rötun á lyklaborði\"] }, \"Skip to app navigation\": { \"v\": [\"Sleppa og fara í flakk innan forrits\"] }, \"Skip to main content\": { \"v\": [\"Sleppa og fara í meginefni\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"キーボード・ナビゲーション・ヘルプ\"] }, \"Skip to app navigation\": { \"v\": [\"アプリのナビゲーションへ移動\"] }, \"Skip to main content\": { \"v\": [\"メインコンテンツへ移動\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"キーボード・ナビゲーション・ヘルプ\"] }, \"Skip to app navigation\": { \"v\": [\"アプリのナビゲーションへ移動\"] }, \"Skip to main content\": { \"v\": [\"メインコンテンツへ移動\"] } } }, { \"l\": \"ko\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"키보드 탐색 도움말\"] }, \"Skip to app navigation\": { \"v\": [\"앱 탐색으로 건너뛰기\"] }, \"Skip to main content\": { \"v\": [\"본 내용으로 건너뛰기\"] } } }, { \"l\": \"lo\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"ການຊ່ວຍເຫຼືອການນຳທາງດ້ວຍຄີບອດ\"] }, \"Skip to app navigation\": { \"v\": [\"ຂ້າມໄປທີ່ການນຳທາງຂອງແອັບ\"] }, \"Skip to main content\": { \"v\": [\"ຂ້າມໄປທີ່ເນື້ອຫາຫຼັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klaviatūros navigacijos pagalba\"] }, \"Skip to app navigation\": { \"v\": [\"Pereiti prie programėlės naršymo\"] }, \"Skip to main content\": { \"v\": [\"Pereiti prie pagrindinio turinio\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Навигација со тастатура\"] }, \"Skip to app navigation\": { \"v\": [\"Прескокни на навигација на апликацијата\"] }, \"Skip to main content\": { \"v\": [\"Прескокни на главна содржина\"] } } }, { \"l\": \"mn\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Гарын навигацийн тусламж\"] }, \"Skip to app navigation\": { \"v\": [\"Аппын навигаци руу алгасах\"] }, \"Skip to main content\": { \"v\": [\"Үндсэн агуулга руу алгасах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjelp for tastaturnavigering\"] }, \"Skip to app navigation\": { \"v\": [\"Hopp til appnavigering\"] }, \"Skip to main content\": { \"v\": [\"Hopp til hovedinnhold\"] } } }, { \"l\": \"nl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hulp voor toetsenbordnavigatie\"] }, \"Skip to app navigation\": { \"v\": [\"Doorgaan naar app-navigatie\"] }, \"Skip to main content\": { \"v\": [\"Naar hoofdinhoud gaan\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoc w nawigacji za pomocą klawiatury\"] }, \"Skip to app navigation\": { \"v\": [\"Przewiń do nawigacji\"] }, \"Skip to main content\": { \"v\": [\"Przewiń do głównych treści\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ajuda para navegação pelo teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Ir para navegação de aplicativo\"] }, \"Skip to main content\": { \"v\": [\"Ir para conteúdo principal\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ajuda à navegação no teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar para navegação da app\"] }, \"Skip to main content\": { \"v\": [\"Saltar para conteúdo principal\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Справка по навигации с помощью клавиатуры\"] }, \"Skip to app navigation\": { \"v\": [\"Перейти к навигации по приложению\"] }, \"Skip to main content\": { \"v\": [\"Перейти к основному содержанию\"] } } }, { \"l\": \"sk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoc pri navigácii pomocou klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Preskočiť na navigáciu v aplikácii\"] }, \"Skip to main content\": { \"v\": [\"Preskočiť na hlavný obsah\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Помоћ за навигацију тастатуром\"] }, \"Skip to app navigation\": { \"v\": [\"Прескочи на навигацију апликацијом\"] }, \"Skip to main content\": { \"v\": [\"Прескочи на главни садржај\"] } } }, { \"l\": \"sv\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjälp med tangentbordsnavigering\"] }, \"Skip to app navigation\": { \"v\": [\"Hoppa till appnavigering\"] }, \"Skip to main content\": { \"v\": [\"Hoppa till huvudinnehåll\"] } } }, { \"l\": \"tr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klavye ile gezinme yardımı\"] }, \"Skip to app navigation\": { \"v\": [\"Uygulama gezinmesine git\"] }, \"Skip to main content\": { \"v\": [\"Ana içeriğe git\"] } } }, { \"l\": \"uk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Допомога з навігацією клавішами\"] }, \"Skip to app navigation\": { \"v\": [\"Пропустити навігацію по застосунках\"] }, \"Skip to main content\": { \"v\": [\"Перейти одразу до головного вмісту\"] } } }, { \"l\": \"uz\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klaviatura navigatsiyasi yordami\"] }, \"Skip to app navigation\": { \"v\": [\"Ilova navigatsiyasiga oʻtish\"] }, \"Skip to main content\": { \"v\": [\"Asosiy tarkibga o'tish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"键盘导航栏帮助\"] }, \"Skip to app navigation\": { \"v\": [\"跳转至应用程序导航页\"] }, \"Skip to main content\": { \"v\": [\"跳转至主要内容\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"鍵盤導航幫助\"] }, \"Skip to app navigation\": { \"v\": [\"跳至應用程式導航\"] }, \"Skip to main content\": { \"v\": [\"跳至主要內容\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"鍵盤導航說明\"] }, \"Skip to app navigation\": { \"v\": [\"略過應用程式導覽\"] }, \"Skip to main content\": { \"v\": [\"跳至主要內容\"] } } }];\nconst t31 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klávesové zkratky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturgenveje\"] } } }, { \"l\": \"de\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturkürzel\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturkürzel\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Keyboard shortcuts\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klahvistiku kiirklahvid\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Raccourcis clavier\"] } } }, { \"l\": \"ga\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Aicearraí méarchláir\"] } } }, { \"l\": \"gl\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Atallos de teclado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tipkovnički prečaci\"] } } }, { \"l\": \"hu\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Gyorsbillentyűk\"] } } }, { \"l\": \"id\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Shortcut keyboard\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"キーボードショートカット\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"키보드 바로가기\"] } } }, { \"l\": \"lo\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"ທາງລັດຄີບອດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Spartieji klavišai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Кратенки со тастатура\"] } } }, { \"l\": \"mn\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Гарын товчлол\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Toetsenbord sneltoetsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Atalhos de teclado\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Комбинации клавиш\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tangentbordsgenvägar\"] } } }, { \"l\": \"tr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klavye kısayolları\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klaviatura yorliqlari\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"鍵盤快速鍵\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"鍵盤快速鍵\"] } } }];\nconst t32 = [{ \"l\": \"ar\", \"t\": { 'Load more \"{options}\"': { \"v\": ['تحميل المزيد من \"{options}\" '] }, \"Raw link {options}\": { \"v\": [\" الرابط الخام raw link ـ {options}\"] }, \"Start typing to search\": { \"v\": [\"إبدإ كتابة مفردات البحث\"] } } }, { \"l\": \"ast\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar más «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Enllaz en bruto {optiones}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir pa buscar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"da\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Indlæs flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå link {options}\"] }, \"Start typing to search\": { \"v\": [\"Begynd at skrive for at søge\"] } } }, { \"l\": \"de\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"el\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Φόρτωση περισσότερων \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ακατέργαστος σύνδεσμος {options}\"] }, \"Start typing to search\": { \"v\": [\"Ξεκινήστε να πληκτρολογείτε για αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Load more \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start typing to search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir para buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Laadi veel „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Töötlemata link: {options}\"] }, \"Start typing to search\": { \"v\": [\"Otsimiseks kirjuta midagi\"] } } }, { \"l\": \"eu\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Kargatu \"{options}\" gehiago'] }, \"Raw link {options}\": { \"v\": [\"Formaturik gabeko esteka {aukerak}\"] }, \"Start typing to search\": { \"v\": [\"Hasi idazten bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { 'Load more \"{options}\"': { \"v\": ['بارگذاری بیشتر \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"پیوند خام {options}\"] }, \"Start typing to search\": { \"v\": [\"برای جستجو تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Lataa lisää \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raaka linkki {options}\"] }, \"Start typing to search\": { \"v\": [\"Aloita kirjoittaminen hakeaksesi\"] } } }, { \"l\": \"fr\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Charger d'avantage \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\"Lien brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Commencez à écrire pour rechercher\"] } } }, { \"l\": \"ga\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Luchtaigh tuilleadh \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Nasc amh {roghanna}\"] }, \"Start typing to search\": { \"v\": [\"Tosaigh ag clóscríobh chun cuardach a dhéanamh\"] } } }, { \"l\": \"gl\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar máis «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Ligazón sen procesar {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a escribir para buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Raw link {options}\": { \"v\": [\"קישור גולמי {options}\"] }, \"Start typing to search\": { \"v\": [\"התחלת הקלדה מחפשת\"] } } }, { \"l\": \"hr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Učitaj još „{options}”\"] }, \"Raw link {options}\": { \"v\": [\"Izravna poveznica {options}\"] }, \"Start typing to search\": { \"v\": [\"Počnite tipkati za pretraživanje\"] } } }, { \"l\": \"hu\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"További „{options}” betöltése\"] }, \"Raw link {options}\": { \"v\": [\"Nyers hivatkozás: {options}\"] }, \"Start typing to search\": { \"v\": [\"Kezdjen gépelni a kereséshez\"] } } }, { \"l\": \"id\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Muat \"{options}\" lainnya'] }, \"Raw link {options}\": { \"v\": [\"Tautan mentah {options}\"] }, \"Start typing to search\": { \"v\": [\"Ketik untuk mulai mencari\"] } } }, { \"l\": \"is\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Hlaða inn fleiri \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Hrár tengill {options}\"] }, \"Start typing to search\": { \"v\": [\"Byrjaðu að skrifa til að leita\"] } } }, { \"l\": \"it\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carica più \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Iniziare a digitare per effettuare la ricerca\"] } } }, { \"l\": \"ja\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ja-JP\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ko\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" 더 불러오기'] }, \"Raw link {options}\": { \"v\": [\"{options} 원본 링크\"] }, \"Start typing to search\": { \"v\": [\"입력하여 검색\"] } } }, { \"l\": \"lo\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"ໂຫຼດ “{options}” ເພີ່ມເຕີມ\"] }, \"Raw link {options}\": { \"v\": [\"ລິງດິບ {options}\"] }, \"Start typing to search\": { \"v\": [\"ເລີ່ມພິມເພື່ອຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Įkelti daugiau \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Neapdorota nuoroda {options}\"] }, \"Start typing to search\": { \"v\": [\"Rašykite norėdami atlikti paiešką\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Вчитај повеќе \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Суров линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Почни да пишуваш за пребарување\"] } } }, { \"l\": \"mn\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Илүү ихийг ачаалах \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Түүхий холбоос {options}\"] }, \"Start typing to search\": { \"v\": [\"Хайхын тулд бичиж эхлэнэ үү\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Last inn flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå lenke {options}\"] }, \"Start typing to search\": { \"v\": [\"Start å skrive for å søke\"] } } }, { \"l\": \"nl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Meer \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Ruwe link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start met typen om te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Załaduj więcej \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Surowy odnośnik {options}\"] }, \"Start typing to search\": { \"v\": [\"Zacznij pisać, aby wyszukać\"] } } }, { \"l\": \"pt-BR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link bruto {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link inicial {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Încarcă mai multe \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Tastați pentru căutare\"] } } }, { \"l\": \"ru\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Загрузить больше \"{options}\"\"'] }, \"Raw link {options}\": { \"v\": [\"Необработанная ссылка {options}\"] }, \"Start typing to search\": { \"v\": [\"Начните вводить текст для поиска\"] } } }, { \"l\": \"sk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Načítať viac \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Začnite písať pre vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Учитај још „{options}”\"] }, \"Raw link {options}\": { \"v\": [\"Сирови линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Покрените претрагу куцањем\"] } } }, { \"l\": \"sv\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Ladda fler \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Oformaterad länk {options}\"] }, \"Start typing to search\": { \"v\": [\"Börja skriva för att söka\"] } } }, { \"l\": \"tr\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Diğer \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ham bağlantı {options}\"] }, \"Start typing to search\": { \"v\": [\"Aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Завантажити більше \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Пряме посилання {options}\"] }, \"Start typing to search\": { \"v\": [\"Почніть вводити для пошуку\"] } } }, { \"l\": \"uz\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Ko'proq yuklash \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\" {options}satr havolasi\"] }, \"Start typing to search\": { \"v\": [\"Qidirish uchun yozishni boshlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"加载更多 “{options}”\"] }, \"Raw link {options}\": { \"v\": [\"原始链接 {options}\"] }, \"Start typing to search\": { \"v\": [\"开始输入以进行搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Load more \"{options}\"': { \"v\": ['載入更多 \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"載入更多「{options}」\"] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }];\nconst t33 = [{ \"l\": \"ar\", \"t\": { \"Loading …\": { \"v\": [\"التحميل جارٍ ...\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Loading …\": { \"v\": [\"Načítání …\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Loading …\": { \"v\": [\"Indlæser ...\"] } } }, { \"l\": \"de\", \"t\": { \"Loading …\": { \"v\": [\"Wird geladen …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Loading …\": { \"v\": [\"Wird geladen …\"] } } }, { \"l\": \"el\", \"t\": { \"Loading …\": { \"v\": [\"Φόρτωση  …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Loading …\": { \"v\": [\"Loading …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Loading …\": { \"v\": [\"Laadin…\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Loading …\": { \"v\": [\"در حال بارگذاری ...\"] } } }, { \"l\": \"fi\", \"t\": { \"Loading …\": { \"v\": [\"Ladataan ...\"] } } }, { \"l\": \"fr\", \"t\": { \"Loading …\": { \"v\": [\"Chargement...\"] } } }, { \"l\": \"ga\", \"t\": { \"Loading …\": { \"v\": [\"Ag lódáil …\"] } } }, { \"l\": \"gl\", \"t\": { \"Loading …\": { \"v\": [\"Cargando…\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Loading …\": { \"v\": [\"Učitavanje …\"] } } }, { \"l\": \"hu\", \"t\": { \"Loading …\": { \"v\": [\"Betöltés…\"] } } }, { \"l\": \"id\", \"t\": { \"Loading …\": { \"v\": [\"Memuat …\"] } } }, { \"l\": \"is\", \"t\": { \"Loading …\": { \"v\": [\"Hleð inn …\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Loading …\": { \"v\": [\"読み込み中 …\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Loading …\": { \"v\": [\"로딩 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Loading …\": { \"v\": [\"ກຳລັງໂຫຼດ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Loading …\": { \"v\": [\"Įkeliama …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Loading …\": { \"v\": [\"Вчитување …\"] } } }, { \"l\": \"mn\", \"t\": { \"Loading …\": { \"v\": [\"Ачаалж байна …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Loading …\": { \"v\": [\"Laster inn...\"] } } }, { \"l\": \"nl\", \"t\": { \"Loading …\": { \"v\": [\"Laden …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Loading …\": { \"v\": [\"Wczytywanie…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Loading …\": { \"v\": [\"Carregando …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Loading …\": { \"v\": [\"A carregar...\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Loading …\": { \"v\": [\"Загрузка …\"] } } }, { \"l\": \"sk\", \"t\": { \"Loading …\": { \"v\": [\"Nahrávam ...\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Loading …\": { \"v\": [\"Учитава се…\"] } } }, { \"l\": \"sv\", \"t\": { \"Loading …\": { \"v\": [\"Laddar …\"] } } }, { \"l\": \"tr\", \"t\": { \"Loading …\": { \"v\": [\"Yükleniyor…\"] } } }, { \"l\": \"uk\", \"t\": { \"Loading …\": { \"v\": [\"Завантаження …\"] } } }, { \"l\": \"uz\", \"t\": { \"Loading …\": { \"v\": [\"Yuklanmoqda...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Loading …\": { \"v\": [\"加载中...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Loading …\": { \"v\": [\"加載中 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Loading …\": { \"v\": [\"載入中......\"] } } }];\nconst t34 = [{ \"l\": \"ar\", \"t\": { \"No link provider found\": { \"v\": [\"لا يوجد أيّ مزود روابط link provider\"] }, \"Write a message …\": { \"v\": [\"أكتب رسالة ...\"] } } }, { \"l\": \"ast\", \"t\": { \"No link provider found\": { \"v\": [\"Nun s'atopó nengún fornidor d'enllaces\"] }, \"Write a message …\": { \"v\": [\"Escribi un mensaxe…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosaženo limitu počtu %n znaku zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\"] }, \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napište zprávu …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napsat zprávu…\"] } } }, { \"l\": \"da\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Beskedgrænsen på %n tegn er nået\", \"Beskedgrænsen på %n tegn er nået\"] }, \"No link provider found\": { \"v\": [\"Ingen linkudbyder fundet\"] }, \"Write a message …\": { \"v\": [\"Skriv en besked ...\"] } } }, { \"l\": \"de\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"el\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Έφτασε το όριο μηνύματος των %n χαρακτήρων\", \"Έφτασε το όριο μηνύματος των %n χαρακτήρων\"] }, \"No link provider found\": { \"v\": [\"Δεν βρέθηκε πάροχος συνδέσμου\"] }, \"Write a message …\": { \"v\": [\"Γράψτε ένα μήνυμα …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Message limit of %n character reached\", \"Message limit of %n characters reached\"] }, \"No link provider found\": { \"v\": [\"No link provider found\"] }, \"Write a message …\": { \"v\": [\"Write a message …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sõnumi piirarv %n tähemärk on käes\", \"Sõnumi piirarv %n tähemärki on käes\"] }, \"No link provider found\": { \"v\": [\"Lingi pakkujat ei leitud\"] }, \"Write a message …\": { \"v\": [\"Koosta sõnum…\"] } } }, { \"l\": \"eu\", \"t\": { \"No link provider found\": { \"v\": [\"Ez da aurkitu esteka-hornitzailerik\"] }, \"Write a message …\": { \"v\": [\"Idatzi mezu bat…\"] } } }, { \"l\": \"fa\", \"t\": { \"No link provider found\": { \"v\": [\"هیچ ارائه‌دهنده پیوندی یافت نشد\"] }, \"Write a message …\": { \"v\": [\"یک پیام بنویسید ...\"] } } }, { \"l\": \"fi\", \"t\": { \"No link provider found\": { \"v\": [\"Linkin tarjoajia ei löydetty\"] }, \"Write a message …\": { \"v\": [\"Kirjoita viesti…\"] } } }, { \"l\": \"fr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de messages de %n caractère atteinte\", \"Limite de messages de %n caractères atteinte\", \"Limite de messages de %n caractères atteinte\"] }, \"No link provider found\": { \"v\": [\"Aucun fournisseur de lien trouvé\"] }, \"Write a message …\": { \"v\": [\"Écrire un message…\"] } } }, { \"l\": \"ga\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\"] }, \"No link provider found\": { \"v\": [\"Níor aimsíodh aon soláthraí naisc\"] }, \"Write a message …\": { \"v\": [\"Scríobh teachtaireacht …\"] } } }, { \"l\": \"gl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Acadouse o límite de %n caracter por mensaxe\", \"Acadouse o límite de %n caracteres por mensaxe\"] }, \"No link provider found\": { \"v\": [\"Non se atopou ningún provedor de ligazóns\"] }, \"Write a message …\": { \"v\": [\"Escribir unha mensaxe…\"] } } }, { \"l\": \"he\", \"t\": { \"No link provider found\": { \"v\": [\"לא נמצא ספק קישורים\"] } } }, { \"l\": \"hr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosegnuto je ograničenje poruke od %n znaka\", \"Dosegnuto je ograničenje poruke od %n znaka\", \"Dosegnuto je ograničenje poruke od %n znakova\"] }, \"No link provider found\": { \"v\": [\"Nije pronađen nijedan pružatelj poveznica\"] }, \"Write a message …\": { \"v\": [\"Napiši poruku …\"] } } }, { \"l\": \"hu\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"%n karakteres üzenetkorlát elérve\", \"%n karakteres üzenetkorlát elérve\"] }, \"No link provider found\": { \"v\": [\"Nem található hivatkozásszolgáltató\"] }, \"Write a message …\": { \"v\": [\"Írjon egy üzenetet…\"] } } }, { \"l\": \"id\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Batas pesan %n karakter telah tercapai\"] }, \"No link provider found\": { \"v\": [\"Tidak ada penyedia tautan yang ditemukan\"] }, \"Write a message …\": { \"v\": [\"Tulis pesan …\"] } } }, { \"l\": \"is\", \"t\": { \"No link provider found\": { \"v\": [\"Engin tenglaveita fannst\"] }, \"Write a message …\": { \"v\": [\"Skrifaðu skilaboð …\"] } } }, { \"l\": \"it\", \"t\": { \"No link provider found\": { \"v\": [\"Nessun fornitore di link trovato\"] }, \"Write a message …\": { \"v\": [\"Scrivi un messaggio ...\"] } } }, { \"l\": \"ja\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"メッセージの%n文字の制限に達しました\"] }, \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ko\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"메시지 제한 %n자에 도달\"] }, \"No link provider found\": { \"v\": [\"링크 제공자 없음\"] }, \"Write a message …\": { \"v\": [\"메시지 쓰는 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"ຮອດຂີດຈຳກັດຂໍ້ຄວາມ %n ໂຕອັກສອນແລ້ວ\"] }, \"No link provider found\": { \"v\": [\"ບໍ່ພົບຜູ້ໃຫ້ບໍລິການລິງ\"] }, \"Write a message …\": { \"v\": [\"ຂຽນຂໍ້ຄວາມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Pasiektas %n pranešimo simbolio skaičiaus limitas\", \"Pasiektas %n pranešimų simbolių skaičiaus limitas\", \"Pasiektas %n pranešimo simbolių skaičių limitas\", \"Pasiektas %n pranešimo simbolių skaičių limitas\"] }, \"No link provider found\": { \"v\": [\"Nerasta nuorodų teikėjo\"] }, \"Write a message …\": { \"v\": [\"Rašyti žinutę  …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнат е лимит од %n карактер\", \"Достигнат е лимит од %n карактери за порака\"] }, \"No link provider found\": { \"v\": [\"Не е пронајден давател на линк\"] }, \"Write a message …\": { \"v\": [\"Напиши порака …\"] } } }, { \"l\": \"mn\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"%n тэмдэгтийн зурвасын хязгаарт хүрлээ\", \"%n тэмдэгтийн зурвасын хязгаарт хүрлээ\"] }, \"No link provider found\": { \"v\": [\"Холбоосын үйлчилгээ үзүүлэгч олдсонгүй\"] }, \"Write a message …\": { \"v\": [\"Зурвас бичих …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"No link provider found\": { \"v\": [\"Finner ingen lenkeleverandør\"] }, \"Write a message …\": { \"v\": [\"Skriv en melding...\"] } } }, { \"l\": \"nl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Berichtlimiet van %n teken bereikt\", \"Berichtlimiet van %n tekens bereikt\"] }, \"No link provider found\": { \"v\": [\"Geen link provider gevonden\"] }, \"Write a message …\": { \"v\": [\"Schrijf een bericht …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No link provider found\": { \"v\": [\"Nie znaleziono dostawcy linków\"] }, \"Write a message …\": { \"v\": [\"Napisz wiadomość…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n caractere atingido\", \"Limite de mensagem de %n de caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum provedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n carácter atingido\", \"Limite de mensagem de %n caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum fornecedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem...\"] } } }, { \"l\": \"ro\", \"t\": { \"No link provider found\": { \"v\": [\"Nu s-a găsit un provider pentru linkuri\"] }, \"Write a message …\": { \"v\": [\"Scrieți un mesaj ...\"] } } }, { \"l\": \"ru\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнут лимит в %n символ\", \"Достигнут лимит в %n символа\", \"Достигнут лимит в %n символов\", \"Достигнут лимит в %n символов\"] }, \"No link provider found\": { \"v\": [\"Поставщик ссылок не найден\"] }, \"Write a message …\": { \"v\": [\"Напишите сообщение …\"] } } }, { \"l\": \"sk\", \"t\": { \"No link provider found\": { \"v\": [\"Žiaden odkaz poskytovateľa nebol nájdený\"] }, \"Write a message …\": { \"v\": [\"Napíšte správu…\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнуто је ограничење величине поруке од %n карактер\", \"Достигнуто је ограничење величине поруке од %n карактера\", \"Достигнуто је ограничење величине поруке од %n карактера\"] }, \"No link provider found\": { \"v\": [\"Није пронађен ниједан пружалац линка\"] }, \"Write a message …\": { \"v\": [\"Напишите поруку…\"] } } }, { \"l\": \"sv\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Meddelandebegränsning på %n tecken har uppnåtts\", \"Meddelandebegränsning på %n tecken har uppnåtts\"] }, \"No link provider found\": { \"v\": [\"Ingen länkleverantör hittades\"] }, \"Write a message …\": { \"v\": [\"Skriv ett meddelande …\"] } } }, { \"l\": \"tr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"İleti için %n karakter sayısı sınırına ulaşıldı\", \"İleti için %n karakter sayısı sınırına ulaşıldı\"] }, \"No link provider found\": { \"v\": [\"Bağlantı hizmeti sağlayıcısı bulunamadı\"] }, \"Write a message …\": { \"v\": [\"Bir ileti yazın…\"] } } }, { \"l\": \"uk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Досягнуто обмеження на довжину повідомлення у %n символ.\", \"Досягнуто обмеження на довжину повідомлення у %n символи.\", \"Досягнуто обмеження на довжину повідомлення у%n символів.\", \"Досягнуто обмеження на довжину повідомлення у %n символів.\"] }, \"No link provider found\": { \"v\": [\"Не наведено посилання\"] }, \"Write a message …\": { \"v\": [\"Створити повідомлення …\"] } } }, { \"l\": \"uz\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\" %n ta belgidan iborat xabar chegarasiga yetdi\"] }, \"No link provider found\": { \"v\": [\"Hech qanday havola provayderi topilmadi\"] }, \"Write a message …\": { \"v\": [\"Xabar yozish...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No link provider found\": { \"v\": [\"未找到任何链接提供者\"] }, \"Write a message …\": { \"v\": [\"编写信息 ...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"已達到訊息最多 %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"已達到訊息最多 %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息……\"] } } }];\nconst t35 = [{ \"l\": \"ar\", \"t\": { \"More items …\": { \"v\": [\"عناصر أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"More items …\": { \"v\": [\"Más elementos…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"More items …\": { \"v\": [\"Més artícles...\"] } } }, { \"l\": \"cs\", \"t\": { \"More items …\": { \"v\": [\"Další položky …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"More items …\": { \"v\": [\"Další položky…\"] } } }, { \"l\": \"da\", \"t\": { \"More items …\": { \"v\": [\"Flere elementer ...\"] } } }, { \"l\": \"de\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"el\", \"t\": { \"More items …\": { \"v\": [\"Περισσότερα στοιχεία …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"More items …\": { \"v\": [\"More items …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"More items …\": { \"v\": [\"Más ítems ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-MX\", \"t\": { \"More items …\": { \"v\": [\"Más Elementos ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"More items …\": { \"v\": [\"Vaata veel…\"] } } }, { \"l\": \"eu\", \"t\": { \"More items …\": { \"v\": [\"Elementu gehiago …\"] } } }, { \"l\": \"fa\", \"t\": { \"More items …\": { \"v\": [\"موارد بیشتر ...\"] } } }, { \"l\": \"fi\", \"t\": { \"More items …\": { \"v\": [\"Lisää kohteita…\"] } } }, { \"l\": \"fr\", \"t\": { \"More items …\": { \"v\": [\"Plus d'éléments...\"] } } }, { \"l\": \"ga\", \"t\": { \"More items …\": { \"v\": [\"Tuilleadh míreanna …\"] } } }, { \"l\": \"gl\", \"t\": { \"More items …\": { \"v\": [\"Máis elementos…\"] } } }, { \"l\": \"he\", \"t\": { \"More items …\": { \"v\": [\"פריטים נוספים…\"] } } }, { \"l\": \"hr\", \"t\": { \"More items …\": { \"v\": [\"Još stavki …\"] } } }, { \"l\": \"hu\", \"t\": { \"More items …\": { \"v\": [\"További elemek…\"] } } }, { \"l\": \"id\", \"t\": { \"More items …\": { \"v\": [\"Item lainnya …\"] } } }, { \"l\": \"is\", \"t\": { \"More items …\": { \"v\": [\"Fleiri atriði …\"] } } }, { \"l\": \"it\", \"t\": { \"More items …\": { \"v\": [\"Più elementi ...\"] } } }, { \"l\": \"ja\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム …\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム\"] } } }, { \"l\": \"ko\", \"t\": { \"More items …\": { \"v\": [\"더 많은 아이템 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"More items …\": { \"v\": [\"ລາຍການເພີ່ມເຕີມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"More items …\": { \"v\": [\"Daugiau elementų …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"More items …\": { \"v\": [\"Повеќе елементи …\"] } } }, { \"l\": \"mn\", \"t\": { \"More items …\": { \"v\": [\"Илүү олон зүйлс …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"More items …\": { \"v\": [\"Flere gjenstander...\"] } } }, { \"l\": \"nl\", \"t\": { \"More items …\": { \"v\": [\"Meer items …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"More items …\": { \"v\": [\"Więcej pozycji…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"More items …\": { \"v\": [\"Mais itens …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"More items …\": { \"v\": [\"Mais itens…\"] } } }, { \"l\": \"ro\", \"t\": { \"More items …\": { \"v\": [\"Mai multe articole ...\"] } } }, { \"l\": \"ru\", \"t\": { \"More items …\": { \"v\": [\"Больше элементов …\"] } } }, { \"l\": \"sk\", \"t\": { \"More items …\": { \"v\": [\"Viac položiek...\"] } } }, { \"l\": \"sl\", \"t\": { \"More items …\": { \"v\": [\"Več predmetov ...\"] } } }, { \"l\": \"sr\", \"t\": { \"More items …\": { \"v\": [\"Још ставки...\"] } } }, { \"l\": \"sv\", \"t\": { \"More items …\": { \"v\": [\"Fler objekt …\"] } } }, { \"l\": \"tr\", \"t\": { \"More items …\": { \"v\": [\"Diğer ögeler…\"] } } }, { \"l\": \"uk\", \"t\": { \"More items …\": { \"v\": [\"Більше …\"] } } }, { \"l\": \"uz\", \"t\": { \"More items …\": { \"v\": [\"Yana elementlar...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"More items …\": { \"v\": [\"更多项目…\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"More items …\": { \"v\": [\"更多項目 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"More items …\": { \"v\": [\"更多項目……\"] } } }];\nconst t36 = [{ \"l\": \"ar\", \"t\": { \"Next\": { \"v\": [\"التالي\"] }, \"Pause slideshow\": { \"v\": [\"تجميد عرض الشرائح\"] }, \"Previous\": { \"v\": [\"السابق\"] }, \"Start slideshow\": { \"v\": [\"إبدإ العرض\"] } } }, { \"l\": \"ast\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Posar la presentación de diapositives\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Aniciar la presentación de diapositives\"] } } }, { \"l\": \"br\", \"t\": { \"Next\": { \"v\": [\"Da heul\"] }, \"Pause slideshow\": { \"v\": [\"Arsav an diaporama\"] }, \"Previous\": { \"v\": [\"A-raok\"] }, \"Start slideshow\": { \"v\": [\"Kregiñ an diaporama\"] } } }, { \"l\": \"ca\", \"t\": { \"Next\": { \"v\": [\"Següent\"] }, \"Pause slideshow\": { \"v\": [\"Atura la presentació\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Inicia la presentació\"] } } }, { \"l\": \"cs\", \"t\": { \"Next\": { \"v\": [\"Následující\"] }, \"Pause slideshow\": { \"v\": [\"Pozastavit prezentaci\"] }, \"Previous\": { \"v\": [\"Předchozí\"] }, \"Start slideshow\": { \"v\": [\"Spustit prezentaci\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Next\": { \"v\": [\"Následující\"] }, \"Pause slideshow\": { \"v\": [\"Pozastavit prezentaci\"] }, \"Previous\": { \"v\": [\"Předchozí\"] }, \"Start slideshow\": { \"v\": [\"Spustit prezentaci\"] } } }, { \"l\": \"da\", \"t\": { \"Next\": { \"v\": [\"Videre\"] }, \"Pause slideshow\": { \"v\": [\"Suspender fremvisning\"] }, \"Previous\": { \"v\": [\"Forrige\"] }, \"Start slideshow\": { \"v\": [\"Start fremvisning\"] } } }, { \"l\": \"de\", \"t\": { \"Next\": { \"v\": [\"Weiter\"] }, \"Pause slideshow\": { \"v\": [\"Diashow pausieren\"] }, \"Previous\": { \"v\": [\"Vorherige\"] }, \"Start slideshow\": { \"v\": [\"Diashow starten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Next\": { \"v\": [\"Weiter\"] }, \"Pause slideshow\": { \"v\": [\"Diashow pausieren\"] }, \"Previous\": { \"v\": [\"Vorherige\"] }, \"Start slideshow\": { \"v\": [\"Diashow starten\"] } } }, { \"l\": \"el\", \"t\": { \"Next\": { \"v\": [\"Επόμενο\"] }, \"Pause slideshow\": { \"v\": [\"Παύση προβολής διαφανειών\"] }, \"Previous\": { \"v\": [\"Προηγούμενο\"] }, \"Start slideshow\": { \"v\": [\"Έναρξη προβολής διαφανειών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Next\": { \"v\": [\"Next\"] }, \"Pause slideshow\": { \"v\": [\"Pause slideshow\"] }, \"Previous\": { \"v\": [\"Previous\"] }, \"Start slideshow\": { \"v\": [\"Start slideshow\"] } } }, { \"l\": \"eo\", \"t\": { \"Next\": { \"v\": [\"Sekva\"] }, \"Pause slideshow\": { \"v\": [\"Payzi bildprezenton\"] }, \"Previous\": { \"v\": [\"Antaŭa\"] }, \"Start slideshow\": { \"v\": [\"Komenci bildprezenton\"] } } }, { \"l\": \"es\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar la presentación \"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar la presentación\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar la presentación \"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar la presentación\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar presentación de diapositivas\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar presentación de diapositivas\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar presentación de diapositivas\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar presentación de diapositivas\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Next\": { \"v\": [\"Edasi\"] }, \"Pause slideshow\": { \"v\": [\"Slaidiesitluse paus\"] }, \"Previous\": { \"v\": [\"Eelmine\"] }, \"Start slideshow\": { \"v\": [\"Alusta slaidiesitust\"] } } }, { \"l\": \"eu\", \"t\": { \"Next\": { \"v\": [\"Hurrengoa\"] }, \"Pause slideshow\": { \"v\": [\"Pausatu diaporama\"] }, \"Previous\": { \"v\": [\"Aurrekoa\"] }, \"Start slideshow\": { \"v\": [\"Hasi diaporama\"] } } }, { \"l\": \"fa\", \"t\": { \"Next\": { \"v\": [\"بعدی\"] }, \"Pause slideshow\": { \"v\": [\"توقف نمایش اسلاید\"] }, \"Previous\": { \"v\": [\"قبلی\"] }, \"Start slideshow\": { \"v\": [\"شروع نمایش اسلاید\"] } } }, { \"l\": \"fi\", \"t\": { \"Next\": { \"v\": [\"Seuraava\"] }, \"Pause slideshow\": { \"v\": [\"Keskeytä diaesitys\"] }, \"Previous\": { \"v\": [\"Edellinen\"] }, \"Start slideshow\": { \"v\": [\"Aloita diaesitys\"] } } }, { \"l\": \"fr\", \"t\": { \"Next\": { \"v\": [\"Suivant\"] }, \"Pause slideshow\": { \"v\": [\"Mettre le diaporama en pause\"] }, \"Previous\": { \"v\": [\"Précédent\"] }, \"Start slideshow\": { \"v\": [\"Démarrer le diaporama\"] } } }, { \"l\": \"ga\", \"t\": { \"Next\": { \"v\": [\"Ar aghaidh\"] }, \"Pause slideshow\": { \"v\": [\"Cuir taispeántas sleamhnán ar sos\"] }, \"Previous\": { \"v\": [\"Roimhe Seo\"] }, \"Start slideshow\": { \"v\": [\"Tosaigh taispeántas sleamhnán\"] } } }, { \"l\": \"gl\", \"t\": { \"Next\": { \"v\": [\"Seguinte\"] }, \"Pause slideshow\": { \"v\": [\"Pausar o diaporama\"] }, \"Previous\": { \"v\": [\"Anterir\"] }, \"Start slideshow\": { \"v\": [\"Iniciar o diaporama\"] } } }, { \"l\": \"he\", \"t\": { \"Next\": { \"v\": [\"הבא\"] }, \"Pause slideshow\": { \"v\": [\"השהיית מצגת\"] }, \"Previous\": { \"v\": [\"הקודם\"] }, \"Start slideshow\": { \"v\": [\"התחלת המצגת\"] } } }, { \"l\": \"hr\", \"t\": { \"Next\": { \"v\": [\"Sljedeće\"] }, \"Pause slideshow\": { \"v\": [\"Pauziraj dijaprojekciju\"] }, \"Previous\": { \"v\": [\"Prethodno\"] }, \"Start slideshow\": { \"v\": [\"Pokreni dijaprojekciju\"] } } }, { \"l\": \"hu\", \"t\": { \"Next\": { \"v\": [\"Következő\"] }, \"Pause slideshow\": { \"v\": [\"Diavetítés szüneteltetése\"] }, \"Previous\": { \"v\": [\"Előző\"] }, \"Start slideshow\": { \"v\": [\"Diavetítés indítása\"] } } }, { \"l\": \"id\", \"t\": { \"Next\": { \"v\": [\"Selanjutnya\"] }, \"Pause slideshow\": { \"v\": [\"Jeda tayangan slide\"] }, \"Previous\": { \"v\": [\"Sebelumnya\"] }, \"Start slideshow\": { \"v\": [\"Mulai salindia\"] } } }, { \"l\": \"is\", \"t\": { \"Next\": { \"v\": [\"Næsta\"] }, \"Pause slideshow\": { \"v\": [\"Gera hlé á skyggnusýningu\"] }, \"Previous\": { \"v\": [\"Fyrri\"] }, \"Start slideshow\": { \"v\": [\"Byrja skyggnusýningu\"] } } }, { \"l\": \"it\", \"t\": { \"Next\": { \"v\": [\"Successivo\"] }, \"Pause slideshow\": { \"v\": [\"Presentazione in pausa\"] }, \"Previous\": { \"v\": [\"Precedente\"] }, \"Start slideshow\": { \"v\": [\"Avvia presentazione\"] } } }, { \"l\": \"ja\", \"t\": { \"Next\": { \"v\": [\"次\"] }, \"Pause slideshow\": { \"v\": [\"スライドショーを一時停止\"] }, \"Previous\": { \"v\": [\"前\"] }, \"Start slideshow\": { \"v\": [\"スライドショーを開始\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Next\": { \"v\": [\"次\"] }, \"Pause slideshow\": { \"v\": [\"スライドショーを一時停止\"] }, \"Previous\": { \"v\": [\"前\"] }, \"Start slideshow\": { \"v\": [\"スライドショーを開始\"] } } }, { \"l\": \"ko\", \"t\": { \"Next\": { \"v\": [\"다음\"] }, \"Pause slideshow\": { \"v\": [\"슬라이드쇼 일시정지\"] }, \"Previous\": { \"v\": [\"이전\"] }, \"Start slideshow\": { \"v\": [\"슬라이드쇼 시작\"] } } }, { \"l\": \"lo\", \"t\": { \"Next\": { \"v\": [\"ຕໍ່ໄປ\"] }, \"Pause slideshow\": { \"v\": [\"ຢຸດສະໄລ້ໂຊຊົ່ວຄາວ\"] }, \"Previous\": { \"v\": [\"ກ່ອນໜ້າ\"] }, \"Start slideshow\": { \"v\": [\"ເລີ່ມສະໄລ້ໂຊ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Next\": { \"v\": [\"Kitas\"] }, \"Pause slideshow\": { \"v\": [\"Pristabdyti skaidrių rodymą\"] }, \"Previous\": { \"v\": [\"Ankstesnis\"] }, \"Start slideshow\": { \"v\": [\"Pradėti skaidrių rodymą\"] } } }, { \"l\": \"lv\", \"t\": { \"Next\": { \"v\": [\"Nākamais\"] }, \"Pause slideshow\": { \"v\": [\"Pauzēt slaidrādi\"] }, \"Previous\": { \"v\": [\"Iepriekšējais\"] }, \"Start slideshow\": { \"v\": [\"Sākt slaidrādi\"] } } }, { \"l\": \"mk\", \"t\": { \"Next\": { \"v\": [\"Следно\"] }, \"Pause slideshow\": { \"v\": [\"Пузирај слајдшоу\"] }, \"Previous\": { \"v\": [\"Предходно\"] }, \"Start slideshow\": { \"v\": [\"Стартувај слајдшоу\"] } } }, { \"l\": \"mn\", \"t\": { \"Next\": { \"v\": [\"Дараах\"] }, \"Pause slideshow\": { \"v\": [\"Слайд шоуг түр зогсоох\"] }, \"Previous\": { \"v\": [\"Өмнөх\"] }, \"Start slideshow\": { \"v\": [\"Слайд шоуг эхлүүлэх\"] } } }, { \"l\": \"my\", \"t\": { \"Next\": { \"v\": [\"နောက်သို့ဆက်ရန်\"] }, \"Pause slideshow\": { \"v\": [\"စလိုက်ရှိုး ခေတ္တရပ်ရန်\"] }, \"Previous\": { \"v\": [\"ယခင်\"] }, \"Start slideshow\": { \"v\": [\"စလိုက်ရှိုးအား စတင်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Next\": { \"v\": [\"Neste\"] }, \"Pause slideshow\": { \"v\": [\"Pause lysbildefremvisning\"] }, \"Previous\": { \"v\": [\"Forrige\"] }, \"Start slideshow\": { \"v\": [\"Start lysbildefremvisning\"] } } }, { \"l\": \"nl\", \"t\": { \"Next\": { \"v\": [\"Volgende\"] }, \"Pause slideshow\": { \"v\": [\"Diavoorstelling pauzeren\"] }, \"Previous\": { \"v\": [\"Vorige\"] }, \"Start slideshow\": { \"v\": [\"Diavoorstelling starten\"] } } }, { \"l\": \"oc\", \"t\": { \"Next\": { \"v\": [\"Seguent\"] }, \"Pause slideshow\": { \"v\": [\"Metre en pausa lo diaporama\"] }, \"Previous\": { \"v\": [\"Precedent\"] }, \"Start slideshow\": { \"v\": [\"Lançar lo diaporama\"] } } }, { \"l\": \"pl\", \"t\": { \"Next\": { \"v\": [\"Następny\"] }, \"Pause slideshow\": { \"v\": [\"Wstrzymaj pokaz slajdów\"] }, \"Previous\": { \"v\": [\"Poprzedni\"] }, \"Start slideshow\": { \"v\": [\"Rozpocznij pokaz slajdów\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Next\": { \"v\": [\"Próximo\"] }, \"Pause slideshow\": { \"v\": [\"Pausar apresentação de slides\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar apresentação de slides\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Next\": { \"v\": [\"Seguinte\"] }, \"Pause slideshow\": { \"v\": [\"Pausar diaporama\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar diaporama\"] } } }, { \"l\": \"ro\", \"t\": { \"Next\": { \"v\": [\"Următorul\"] }, \"Pause slideshow\": { \"v\": [\"Pauză prezentare de diapozitive\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Începeți prezentarea de diapozitive\"] } } }, { \"l\": \"ru\", \"t\": { \"Next\": { \"v\": [\"Следующее\"] }, \"Pause slideshow\": { \"v\": [\"Приостановить показ слйдов\"] }, \"Previous\": { \"v\": [\"Предыдущее\"] }, \"Start slideshow\": { \"v\": [\"Начать показ слайдов\"] } } }, { \"l\": \"sk\", \"t\": { \"Next\": { \"v\": [\"Ďalej\"] }, \"Pause slideshow\": { \"v\": [\"Pozastaviť prezentáciu\"] }, \"Previous\": { \"v\": [\"Predchádzajúce\"] }, \"Start slideshow\": { \"v\": [\"Začať prezentáciu\"] } } }, { \"l\": \"sl\", \"t\": { \"Next\": { \"v\": [\"Naslednji\"] }, \"Pause slideshow\": { \"v\": [\"Ustavi predstavitev\"] }, \"Previous\": { \"v\": [\"Predhodni\"] }, \"Start slideshow\": { \"v\": [\"Začni predstavitev\"] } } }, { \"l\": \"sr\", \"t\": { \"Next\": { \"v\": [\"Следеће\"] }, \"Pause slideshow\": { \"v\": [\"Паузирај слајд шоу\"] }, \"Previous\": { \"v\": [\"Претходно\"] }, \"Start slideshow\": { \"v\": [\"Покрени слајд шоу\"] } } }, { \"l\": \"sv\", \"t\": { \"Next\": { \"v\": [\"Nästa\"] }, \"Pause slideshow\": { \"v\": [\"Pausa bildspelet\"] }, \"Previous\": { \"v\": [\"Föregående\"] }, \"Start slideshow\": { \"v\": [\"Starta bildspelet\"] } } }, { \"l\": \"tr\", \"t\": { \"Next\": { \"v\": [\"Sonraki\"] }, \"Pause slideshow\": { \"v\": [\"Slayt sunumunu duraklat\"] }, \"Previous\": { \"v\": [\"Önceki\"] }, \"Start slideshow\": { \"v\": [\"Slayt sunumunu başlat\"] } } }, { \"l\": \"uk\", \"t\": { \"Next\": { \"v\": [\"Вперед\"] }, \"Pause slideshow\": { \"v\": [\"Пауза у показі слайдів\"] }, \"Previous\": { \"v\": [\"Назад\"] }, \"Start slideshow\": { \"v\": [\"Почати показ слайдів\"] } } }, { \"l\": \"uz\", \"t\": { \"Next\": { \"v\": [\"Keyingi\"] }, \"Pause slideshow\": { \"v\": [\"Slayd-shouni to'xtatib turish\"] }, \"Previous\": { \"v\": [\"Oldingi\"] }, \"Start slideshow\": { \"v\": [\"Slayd-shouni boshlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Next\": { \"v\": [\"下一个\"] }, \"Pause slideshow\": { \"v\": [\"暂停幻灯片\"] }, \"Previous\": { \"v\": [\"上一个\"] }, \"Start slideshow\": { \"v\": [\"开始幻灯片\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Next\": { \"v\": [\"下一個\"] }, \"Pause slideshow\": { \"v\": [\"暫停幻燈片\"] }, \"Previous\": { \"v\": [\"上一個\"] }, \"Start slideshow\": { \"v\": [\"開始幻燈片\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Next\": { \"v\": [\"下一個\"] }, \"Pause slideshow\": { \"v\": [\"暫停幻燈片\"] }, \"Previous\": { \"v\": [\"上一個\"] }, \"Start slideshow\": { \"v\": [\"開始幻燈片\"] } } }];\nconst t37 = [{ \"l\": \"ar\", \"t\": { \"No emoji found\": { \"v\": [\"لم يتم العثور على أي إيموجي emoji\"] } } }, { \"l\": \"ast\", \"t\": { \"No emoji found\": { \"v\": [\"Nun s'atopó nengún fustaxe\"] } } }, { \"l\": \"br\", \"t\": { \"No emoji found\": { \"v\": [\"Emoji ebet kavet\"] } } }, { \"l\": \"ca\", \"t\": { \"No emoji found\": { \"v\": [\"No s'ha trobat cap emoji\"] } } }, { \"l\": \"cs\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"da\", \"t\": { \"No emoji found\": { \"v\": [\"Ingen emoji fundet\"] } } }, { \"l\": \"de\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"el\", \"t\": { \"No emoji found\": { \"v\": [\"Δεν βρέθηκε emoji\"] } } }, { \"l\": \"en-GB\", \"t\": { \"No emoji found\": { \"v\": [\"No emoji found\"] } } }, { \"l\": \"eo\", \"t\": { \"No emoji found\": { \"v\": [\"La emoĝio forestas\"] } } }, { \"l\": \"es\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"et-EE\", \"t\": { \"No emoji found\": { \"v\": [\"Emojit ei leitud\"] } } }, { \"l\": \"eu\", \"t\": { \"No emoji found\": { \"v\": [\"Ez da emojirik aurkitu\"] } } }, { \"l\": \"fa\", \"t\": { \"No emoji found\": { \"v\": [\"هیچ شکلکی یافت نشد\"] } } }, { \"l\": \"fi\", \"t\": { \"No emoji found\": { \"v\": [\"Emojia ei löytynyt\"] } } }, { \"l\": \"fr\", \"t\": { \"No emoji found\": { \"v\": [\"Pas d’émoji trouvé\"] } } }, { \"l\": \"ga\", \"t\": { \"No emoji found\": { \"v\": [\"Níor aimsíodh emoji\"] } } }, { \"l\": \"gl\", \"t\": { \"No emoji found\": { \"v\": [\"Non se atopou ningún «emoji»\"] } } }, { \"l\": \"he\", \"t\": { \"No emoji found\": { \"v\": [\"לא נמצא אמוג׳י\"] } } }, { \"l\": \"hr\", \"t\": { \"No emoji found\": { \"v\": [\"Nije pronađen nijedan emoji\"] } } }, { \"l\": \"hu\", \"t\": { \"No emoji found\": { \"v\": [\"Nem található emodzsi\"] } } }, { \"l\": \"id\", \"t\": { \"No emoji found\": { \"v\": [\"Tidak ada emoji yang ditemukan\"] } } }, { \"l\": \"is\", \"t\": { \"No emoji found\": { \"v\": [\"Ekkert tjáningartákn fannst\"] } } }, { \"l\": \"it\", \"t\": { \"No emoji found\": { \"v\": [\"Nessun emoji trovato\"] } } }, { \"l\": \"ja\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ko\", \"t\": { \"No emoji found\": { \"v\": [\"이모지 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"No emoji found\": { \"v\": [\"ບໍ່ພົບອີໂມຈິ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"No emoji found\": { \"v\": [\"Nerasta emociukių\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"No emoji found\": { \"v\": [\"Не се пронајдени емотикони\"] } } }, { \"l\": \"mn\", \"t\": { \"No emoji found\": { \"v\": [\"Эможи олдсонгүй\"] } } }, { \"l\": \"my\", \"t\": { \"No emoji found\": { \"v\": [\"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"No emoji found\": { \"v\": [\"Fant ingen emoji\"] } } }, { \"l\": \"nl\", \"t\": { \"No emoji found\": { \"v\": [\"Geen emoji gevonden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No emoji found\": { \"v\": [\"Nie znaleziono emoji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"ro\", \"t\": { \"No emoji found\": { \"v\": [\"Nu s-a găsit niciun emoji\"] } } }, { \"l\": \"ru\", \"t\": { \"No emoji found\": { \"v\": [\"Эмодзи не найдено\"] } } }, { \"l\": \"sk\", \"t\": { \"No emoji found\": { \"v\": [\"Nenašli sa žiadne emodži\"] } } }, { \"l\": \"sl\", \"t\": { \"No emoji found\": { \"v\": [\"Ni najdenih izraznih ikon\"] } } }, { \"l\": \"sr\", \"t\": { \"No emoji found\": { \"v\": [\"Није пронађен ниједан емођи\"] } } }, { \"l\": \"sv\", \"t\": { \"No emoji found\": { \"v\": [\"Hittade inga emojis\"] } } }, { \"l\": \"tr\", \"t\": { \"No emoji found\": { \"v\": [\"Herhangi bir emoji bulunamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"No emoji found\": { \"v\": [\"Емоційки відсутні\"] } } }, { \"l\": \"uz\", \"t\": { \"No emoji found\": { \"v\": [\"Hech qanday emoji topilmadi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No emoji found\": { \"v\": [\"表情未找到\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }];\nconst t38 = [{ \"l\": \"ar\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['إفتَح الرابط إلى \"{resourceName}\"'] } } }, { \"l\": \"ast\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir l'enllaz a «{resourceName}»\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"da\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åbn link til \"{resourceName}\"'] } } }, { \"l\": \"de\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"de-DE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"el\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Άνοιγμα συνδέσμου για \"{resourceName}\"'] } } }, { \"l\": \"en-GB\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Open link to \"{resourceName}\"'] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-AR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-EC\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-MX\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"et-EE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Ava link „{resourceName}“\"] } } }, { \"l\": \"eu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ireki \"{resourceName}\" esteka'] } } }, { \"l\": \"fa\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"باز کردن پیوند به «{resourceName}»\"] } } }, { \"l\": \"fi\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Avaa linkki \"{resourceName}\"'] } } }, { \"l\": \"fr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ouvrir le lien vers \"{resourceName}\"'] } } }, { \"l\": \"ga\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Oscail nasc chuig \"{resourceName}\"'] } } }, { \"l\": \"gl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir a ligazón a «{resourceName}»\"] } } }, { \"l\": \"he\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"פתיחת קישור אל „{resourceName}”\"] } } }, { \"l\": \"hr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otvori poveznicu za \"{resourceName}\"'] } } }, { \"l\": \"hu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"A(z) „{resourceName}” hivatkozásának megnyitása\"] } } }, { \"l\": \"id\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Buka tautan ke \"{resourceName}\"'] } } }, { \"l\": \"is\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Opna tengil í \"{resourceName}\"'] } } }, { \"l\": \"it\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Apri il link a \"{resourceName}\"'] } } }, { \"l\": \"ja\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ja-JP\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ko\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\"의 링크 열기'] } } }, { \"l\": \"lo\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"ເປີດລິງໄປທີ່ “{resourceName}”\"] } } }, { \"l\": \"lt-LT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Atidaryti nuorodą į „{resourceName}“\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Отвори линк до \"{resourceName}\"'] } } }, { \"l\": \"mn\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" руу холбоос нээх'] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åpne lenken til \"{resourceName}\"'] } } }, { \"l\": \"nl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link naar \"{resourceName}\" openen'] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otwórz link do \"{resourceName}\"'] } } }, { \"l\": \"pt-BR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir o link para \"{resourceName}\"'] } } }, { \"l\": \"pt-PT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir link para \"{resourceName}\"'] } } }, { \"l\": \"ro\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Deschide linkul la \"{resourceName}\"'] } } }, { \"l\": \"ru\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Открыть ссылку на \"{resourceName}\"'] } } }, { \"l\": \"sk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otvoriť link v \"{resourceName}\"'] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Отвори линк на „{resourceName}”\"] } } }, { \"l\": \"sv\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Öppna länken till \"{resourceName}\"'] } } }, { \"l\": \"tr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Bağlantıyı \"{resourceName}\" üzerine aç'] } } }, { \"l\": \"uk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Відкрити посилання на \"{resourceName}\"'] } } }, { \"l\": \"uz\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [' \"{resourceName}\" ga havolani ochish'] } } }, { \"l\": \"zh-CN\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"打开 “{resourceName}” 的链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }];\nconst t40 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Please choose a date\": { \"v\": [\"Zvolte datum\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Please choose a date\": { \"v\": [\"Vælg en dato\"] } } }, { \"l\": \"de\", \"t\": { \"Please choose a date\": { \"v\": [\"Bitte ein Datum wählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Please choose a date\": { \"v\": [\"Bitte ein Datum wählen\"] } } }, { \"l\": \"el\", \"t\": { \"Please choose a date\": { \"v\": [\"Παρακαλώ επιλέξτε μια ημερομηνία\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Please choose a date\": { \"v\": [\"Please choose a date\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Please choose a date\": { \"v\": [\"Palun vali kuupäev\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Please choose a date\": { \"v\": [\"Veuillez choisir une date\"] } } }, { \"l\": \"ga\", \"t\": { \"Please choose a date\": { \"v\": [\"Roghnaigh dáta le do thoil\"] } } }, { \"l\": \"gl\", \"t\": { \"Please choose a date\": { \"v\": [\"Escolla unha data\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Please choose a date\": { \"v\": [\"Molimo odaberite datum\"] } } }, { \"l\": \"hu\", \"t\": { \"Please choose a date\": { \"v\": [\"Válasszon egy dátumot\"] } } }, { \"l\": \"id\", \"t\": { \"Please choose a date\": { \"v\": [\"Silakan pilih tanggal\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Please choose a date\": { \"v\": [\"日付を選択してください\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Please choose a date\": { \"v\": [\"날짜를 선택해주세요\"] } } }, { \"l\": \"lo\", \"t\": { \"Please choose a date\": { \"v\": [\"ກະລຸນາເລືອກວັນທີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Please choose a date\": { \"v\": [\"Pasirinkite datą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Please choose a date\": { \"v\": [\"Избери датум\"] } } }, { \"l\": \"mn\", \"t\": { \"Please choose a date\": { \"v\": [\"Огноо сонгоно уу\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Please choose a date\": { \"v\": [\"Kies een datum\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Please choose a date\": { \"v\": [\"Por favor, escolha uma data\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Please choose a date\": { \"v\": [\"Por favor, escolha uma data\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Please choose a date\": { \"v\": [\"Выберите дату\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Please choose a date\": { \"v\": [\"Молимо вас да изаберете датум\"] } } }, { \"l\": \"sv\", \"t\": { \"Please choose a date\": { \"v\": [\"Välj ett datum\"] } } }, { \"l\": \"tr\", \"t\": { \"Please choose a date\": { \"v\": [\"Lütfen bir tarih seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"Please choose a date\": { \"v\": [\"Виберіть дату\"] } } }, { \"l\": \"uz\", \"t\": { \"Please choose a date\": { \"v\": [\"Iltimos, sanani tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Please choose a date\": { \"v\": [\"請選擇日期\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Please choose a date\": { \"v\": [\"請選擇日期\"] } } }];\nconst t41 = [{ \"l\": \"ar\", \"t\": { \"Provider icon\": { \"v\": [\"أيقونة المزوّد\"] } } }, { \"l\": \"ast\", \"t\": { \"Provider icon\": { \"v\": [\"Iconu del fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Provider icon\": { \"v\": [\"Udbyder ikon\"] } } }, { \"l\": \"de\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"el\", \"t\": { \"Provider icon\": { \"v\": [\"Εικονίδιο παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Provider icon\": { \"v\": [\"Provider icon\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Provider icon\": { \"v\": [\"Teenusepakkuja ikoon\"] } } }, { \"l\": \"eu\", \"t\": { \"Provider icon\": { \"v\": [\"Hornitzailearen ikonoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Provider icon\": { \"v\": [\"آیکون ارائه دهنده\"] } } }, { \"l\": \"fi\", \"t\": { \"Provider icon\": { \"v\": [\"Palveluntarjoajan kuvake\"] } } }, { \"l\": \"fr\", \"t\": { \"Provider icon\": { \"v\": [\"Icône du fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Provider icon\": { \"v\": [\"Deilbhín soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Provider icon\": { \"v\": [\"Icona do provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Provider icon\": { \"v\": [\"סמל ספק\"] } } }, { \"l\": \"hr\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona pružatelja\"] } } }, { \"l\": \"hu\", \"t\": { \"Provider icon\": { \"v\": [\"Szolgáltató ikonja\"] } } }, { \"l\": \"id\", \"t\": { \"Provider icon\": { \"v\": [\"Ikon penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Provider icon\": { \"v\": [\"Táknmynd þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Provider icon\": { \"v\": [\"Icona del provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ko\", \"t\": { \"Provider icon\": { \"v\": [\"제공자 아이콘\"] } } }, { \"l\": \"lo\", \"t\": { \"Provider icon\": { \"v\": [\"ໄອຄອນຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Provider icon\": { \"v\": [\"Tiekėjo piktograma\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Provider icon\": { \"v\": [\"Икона на давател\"] } } }, { \"l\": \"mn\", \"t\": { \"Provider icon\": { \"v\": [\"Үйлчилгээ үзүүлэгчийн дүрс\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Provider icon\": { \"v\": [\"Leverandørikon\"] } } }, { \"l\": \"nl\", \"t\": { \"Provider icon\": { \"v\": [\"Provider-pictogram\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Provider icon\": { \"v\": [\"Dostawca ikony\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Provider icon\": { \"v\": [\"Provider pentru icon\"] } } }, { \"l\": \"ru\", \"t\": { \"Provider icon\": { \"v\": [\"Значок поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Provider icon\": { \"v\": [\"Ikonka poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Provider icon\": { \"v\": [\"Икона пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Provider icon\": { \"v\": [\"Leverantörsikon\"] } } }, { \"l\": \"tr\", \"t\": { \"Provider icon\": { \"v\": [\"Hizmet sağlayıcı simgesi\"] } } }, { \"l\": \"uk\", \"t\": { \"Provider icon\": { \"v\": [\"Піктограма постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Provider icon\": { \"v\": [\"Provayder belgisi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Provider icon\": { \"v\": [\"提供者图标\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }];\nconst t42 = [{ \"l\": \"ar\", \"t\": { \"Related team resources\": { \"v\": [\"موارد للفريق ذات صلة\"] }, \"View team\": { \"v\": [\"عرض الفريق\"] } } }, { \"l\": \"ast\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos rellacionaos colos equipos\"] }, \"View team\": { \"v\": [\"Ver l'equipu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Related team resources\": { \"v\": [\"Související prostředky kolektivu\"] }, \"View team\": { \"v\": [\"Zobrazit kolektiv\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterede teamressourcer\"] }, \"View team\": { \"v\": [\"Se teamet\"] } } }, { \"l\": \"de\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Related team resources\": { \"v\": [\"Σχετικοί πόροι ομάδας\"] }, \"View team\": { \"v\": [\"Προβολή ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Related team resources\": { \"v\": [\"Related team resources\"] }, \"View team\": { \"v\": [\"View team\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Related team resources\": { \"v\": [\"Tiimi seotud ressursid\"] }, \"View team\": { \"v\": [\"Vaata tiimi\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Related team resources\": { \"v\": [\"منابع تیمی مرتبط\"] }, \"View team\": { \"v\": [\"مشاهده گروه\"] } } }, { \"l\": \"fi\", \"t\": { \"Related team resources\": { \"v\": [\"Liittyvät tiimiresurssit\"] }, \"View team\": { \"v\": [\"Näytä tiimi\"] } } }, { \"l\": \"fr\", \"t\": { \"Related team resources\": { \"v\": [\"Ressources d'équipe associées\"] }, \"View team\": { \"v\": [\"Voir l'équipe\"] } } }, { \"l\": \"ga\", \"t\": { \"Related team resources\": { \"v\": [\"Acmhainní foirne gaolmhara\"] }, \"View team\": { \"v\": [\"Féach ar an bhfoireann\"] } } }, { \"l\": \"gl\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver o equipo\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Related team resources\": { \"v\": [\"Povezani timski resursi\"] }, \"View team\": { \"v\": [\"Prikaži tim\"] } } }, { \"l\": \"hu\", \"t\": { \"Related team resources\": { \"v\": [\"Kapcsolódó csapaterőforrások\"] }, \"View team\": { \"v\": [\"Csapat megtekintése\"] } } }, { \"l\": \"id\", \"t\": { \"Related team resources\": { \"v\": [\"Sumber daya team terkait\"] }, \"View team\": { \"v\": [\"Lihat team\"] } } }, { \"l\": \"is\", \"t\": { \"Related team resources\": { \"v\": [\"Tengd tilföng teymis\"] }, \"View team\": { \"v\": [\"Skoða teymi\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ko\", \"t\": { \"Related team resources\": { \"v\": [\"관련 팀 리소스\"] }, \"View team\": { \"v\": [\"팀 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Related team resources\": { \"v\": [\"ຊັບພະຍາກອນຂອງທີມທີ່ກ່ຽວຂ້ອງ\"] }, \"View team\": { \"v\": [\"ເບິ່ງທີມ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Related team resources\": { \"v\": [\"Susiję komandos ištekliai\"] }, \"View team\": { \"v\": [\"Peržiūrėti komandą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Related team resources\": { \"v\": [\"Поврзани ресурси на тимот\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"mn\", \"t\": { \"Related team resources\": { \"v\": [\"Багийн холбогдох нөөцүүд\"] }, \"View team\": { \"v\": [\"Багийг харах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterte lagressurser\"] }, \"View team\": { \"v\": [\"Se lag\"] } } }, { \"l\": \"nl\", \"t\": { \"Related team resources\": { \"v\": [\"Verwante teambronnen\"] }, \"View team\": { \"v\": [\"Team bekijken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Related team resources\": { \"v\": [\"Powiązane zasoby grupowe\"] }, \"View team\": { \"v\": [\"Zobacz grupę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipe relacionados\"] }, \"View team\": { \"v\": [\"Ver equipe\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos relacionados com a equipa\"] }, \"View team\": { \"v\": [\"Ver equipa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Related team resources\": { \"v\": [\"Связанные командные ресурсы\"] }, \"View team\": { \"v\": [\"Просмотр команды\"] } } }, { \"l\": \"sk\", \"t\": { \"Related team resources\": { \"v\": [\"Súvisiace tímové zdroje\"] }, \"View team\": { \"v\": [\"Zobraziť tím\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Related team resources\": { \"v\": [\"Повезани тимски ресурси\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"sv\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterade teamresurser\"] }, \"View team\": { \"v\": [\"Visa team\"] } } }, { \"l\": \"tr\", \"t\": { \"Related team resources\": { \"v\": [\"İlgili takım kaynakları\"] }, \"View team\": { \"v\": [\"Takımı görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Related team resources\": { \"v\": [\"Пов'язані ресурси команди\"] }, \"View team\": { \"v\": [\"Переглянути команду\"] } } }, { \"l\": \"uz\", \"t\": { \"Related team resources\": { \"v\": [\"Tegishli jamoa resurslari\"] }, \"View team\": { \"v\": [\"Jamoani ko'rish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Related team resources\": { \"v\": [\"相关团队资源\"] }, \"View team\": { \"v\": [\"查看团队\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"查看團隊\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"檢視團隊\"] } } }];\nconst t43 = [{ \"l\": \"ar\", \"t\": { \"Search\": { \"v\": [\"بحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"br\", \"t\": { \"Search\": { \"v\": [\"Klask\"] } } }, { \"l\": \"ca\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"cs\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"da\", \"t\": { \"Search\": { \"v\": [\"Søg\"] } } }, { \"l\": \"de\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"el\", \"t\": { \"Search\": { \"v\": [\"Αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search\": { \"v\": [\"Search\"] } } }, { \"l\": \"eo\", \"t\": { \"Search\": { \"v\": [\"Serĉi\"] } } }, { \"l\": \"es\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search\": { \"v\": [\"Otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Search\": { \"v\": [\"Bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Search\": { \"v\": [\"جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Search\": { \"v\": [\"Etsi\"] } } }, { \"l\": \"fr\", \"t\": { \"Search\": { \"v\": [\"Rechercher\"] } } }, { \"l\": \"ga\", \"t\": { \"Search\": { \"v\": [\"Cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Search\": { \"v\": [\"חיפוש\"] } } }, { \"l\": \"hr\", \"t\": { \"Search\": { \"v\": [\"Traži\"] } } }, { \"l\": \"hu\", \"t\": { \"Search\": { \"v\": [\"Keresés\"] } } }, { \"l\": \"id\", \"t\": { \"Search\": { \"v\": [\"Cari\"] } } }, { \"l\": \"is\", \"t\": { \"Search\": { \"v\": [\"Leita\"] } } }, { \"l\": \"it\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"ja\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ko\", \"t\": { \"Search\": { \"v\": [\"검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Search\": { \"v\": [\"ຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search\": { \"v\": [\"Ieškoti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search\": { \"v\": [\"Барај\"] } } }, { \"l\": \"mn\", \"t\": { \"Search\": { \"v\": [\"Хайх\"] } } }, { \"l\": \"my\", \"t\": { \"Search\": { \"v\": [\"ရှာဖွေရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Search\": { \"v\": [\"Søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Search\": { \"v\": [\"Zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search\": { \"v\": [\"Szukaj\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { \"Search\": { \"v\": [\"Căutare\"] } } }, { \"l\": \"ru\", \"t\": { \"Search\": { \"v\": [\"Поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Search\": { \"v\": [\"Hľadať\"] } } }, { \"l\": \"sl\", \"t\": { \"Search\": { \"v\": [\"Iskanje\"] } } }, { \"l\": \"sr\", \"t\": { \"Search\": { \"v\": [\"Претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Search\": { \"v\": [\"Sök\"] } } }, { \"l\": \"tr\", \"t\": { \"Search\": { \"v\": [\"Ara\"] } } }, { \"l\": \"uk\", \"t\": { \"Search\": { \"v\": [\"Пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Search\": { \"v\": [\"Qidiruv\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search\": { \"v\": [\"搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }];\nconst t44 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Search …\": { \"v\": [\"Hledat …\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Search …\": { \"v\": [\"Søg ...\"] } } }, { \"l\": \"de\", \"t\": { \"Search …\": { \"v\": [\"Suche …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search …\": { \"v\": [\"Suche …\"] } } }, { \"l\": \"el\", \"t\": { \"Search …\": { \"v\": [\"Αναζήτηση …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search …\": { \"v\": [\"Search …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Search …\": { \"v\": [\"Otsi…\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Search …\": { \"v\": [\"Rechercher…\"] } } }, { \"l\": \"ga\", \"t\": { \"Search …\": { \"v\": [\"Cuardaigh …\"] } } }, { \"l\": \"gl\", \"t\": { \"Search …\": { \"v\": [\"Buscar…\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Search …\": { \"v\": [\"Traži …\"] } } }, { \"l\": \"hu\", \"t\": { \"Search …\": { \"v\": [\"Keresés…\"] } } }, { \"l\": \"id\", \"t\": { \"Search …\": { \"v\": [\"Cari …\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Search …\": { \"v\": [\"検索…\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Search …\": { \"v\": [\"찾는 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Search …\": { \"v\": [\"ຄົ້ນຫາ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search …\": { \"v\": [\"Ieškoti …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search …\": { \"v\": [\"Барај…\"] } } }, { \"l\": \"mn\", \"t\": { \"Search …\": { \"v\": [\"Хайх …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Search …\": { \"v\": [\"Zoeken …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Search …\": { \"v\": [\"Pesquisar …\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Search …\": { \"v\": [\"Поиск …\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Search …\": { \"v\": [\"Претражи…\"] } } }, { \"l\": \"sv\", \"t\": { \"Search …\": { \"v\": [\"Sök …\"] } } }, { \"l\": \"tr\", \"t\": { \"Search …\": { \"v\": [\"Ara…\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Search …\": { \"v\": [\"Izlash...\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Search …\": { \"v\": [\"搜尋 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search …\": { \"v\": [\"搜尋......\"] } } }];\nconst t45 = [{ \"l\": \"ar\", \"t\": { \"Type to search time zone\": { \"v\": [\"أكتُب للبحث عن منطقة زمنية\"] } } }, { \"l\": \"ast\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar fusos horarios\"] }, \"Type to search time zone\": { \"v\": [\"Escribi pa buscar un fusu horariu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Type to search time zone\": { \"v\": [\"Escriviu per cercar la zona horària\"] } } }, { \"l\": \"cs\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhledat časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Psaním vyhledejte časovou zónu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhledat časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Psaním vyhledejte časovou zónu\"] } } }, { \"l\": \"da\", \"t\": { \"Search for time zone\": { \"v\": [\"Søg efter tidszone\"] }, \"Type to search time zone\": { \"v\": [\"Indtast for at søge efter tidszone\"] } } }, { \"l\": \"de\", \"t\": { \"Search for time zone\": { \"v\": [\"Nach Zeitzone suchen\"] }, \"Type to search time zone\": { \"v\": [\"Tippen, um eine Zeitzone zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search for time zone\": { \"v\": [\"Nach Zeitzone suchen\"] }, \"Type to search time zone\": { \"v\": [\"Tippen, um eine Zeitzone zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Type to search time zone\": { \"v\": [\"Πληκτρολογήστε για αναζήτηση ζώνης ώρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search for time zone\": { \"v\": [\"Search for time zone\"] }, \"Type to search time zone\": { \"v\": [\"Type to search time zone\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar huso horario\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar un huso horario\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar zona horaria\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar la zona horaria\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Type to search time zone\": { \"v\": [\"Escribe para buscar la zona horaria\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar zona horaria\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar la zona horaria\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search for time zone\": { \"v\": [\"Otsi ajavööndit\"] }, \"Type to search time zone\": { \"v\": [\"Ajavööndi otsimiseks kirjuta midagi\"] } } }, { \"l\": \"eu\", \"t\": { \"Type to search time zone\": { \"v\": [\"Idatzi ordu-zona bat bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { \"Search for time zone\": { \"v\": [\"جستجو برای منطقهٔ زمانی\"] }, \"Type to search time zone\": { \"v\": [\"برای جستجوی منطقه زمانی تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Search for time zone\": { \"v\": [\"Etsi aikavyöhykettä\"] }, \"Type to search time zone\": { \"v\": [\"Kirjoita etsiäksesi aikavyöhykettä\"] } } }, { \"l\": \"fr\", \"t\": { \"Search for time zone\": { \"v\": [\"Rechercher le fuseau horaire\"] }, \"Type to search time zone\": { \"v\": [\"Saisissez les premiers lettres pour rechercher un fuseau horaire\"] } } }, { \"l\": \"ga\", \"t\": { \"Search for time zone\": { \"v\": [\"Cuardaigh crios ama\"] }, \"Type to search time zone\": { \"v\": [\"Clóscríobh chun crios ama a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar por fuso horario\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar o fuso horario\"] } } }, { \"l\": \"he\", \"t\": { \"Type to search time zone\": { \"v\": [\"יש להקליד כדי לחפש אזור זמן\"] } } }, { \"l\": \"hr\", \"t\": { \"Search for time zone\": { \"v\": [\"Pretraži vremensku zonu\"] }, \"Type to search time zone\": { \"v\": [\"Upišite za pretraživanje vremenske zone\"] } } }, { \"l\": \"hu\", \"t\": { \"Search for time zone\": { \"v\": [\"Időzóna keresése\"] }, \"Type to search time zone\": { \"v\": [\"Gépeljen az időzóna kereséséhez\"] } } }, { \"l\": \"id\", \"t\": { \"Search for time zone\": { \"v\": [\"Cari zona waktu\"] }, \"Type to search time zone\": { \"v\": [\"Ketik untuk mencari zona waktu\"] } } }, { \"l\": \"is\", \"t\": { \"Search for time zone\": { \"v\": [\"Leita að tímabelti\"] }, \"Type to search time zone\": { \"v\": [\"Skrifaðu til að leita að tímabelti\"] } } }, { \"l\": \"it\", \"t\": { \"Search for time zone\": { \"v\": [\"Ricerca del fuso orario\"] }, \"Type to search time zone\": { \"v\": [\"Digita per cercare un fuso orario\"] } } }, { \"l\": \"ja\", \"t\": { \"Search for time zone\": { \"v\": [\"タイムゾーンを検索\"] }, \"Type to search time zone\": { \"v\": [\"タイムゾーン検索のため入力してください\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search for time zone\": { \"v\": [\"タイムゾーンを検索\"] }, \"Type to search time zone\": { \"v\": [\"タイムゾーン検索のため入力してください\"] } } }, { \"l\": \"ko\", \"t\": { \"Search for time zone\": { \"v\": [\"시간대 찾기\"] }, \"Type to search time zone\": { \"v\": [\"입력하여 시간대를 검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Search for time zone\": { \"v\": [\"ຄົ້ນຫາເຂດເວລາ\"] }, \"Type to search time zone\": { \"v\": [\"ພິມເພື່ອຄົ້ນຫາເຂດເວລາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search for time zone\": { \"v\": [\"Ieškoti laiko juostų\"] }, \"Type to search time zone\": { \"v\": [\"Įveskite, kad surastumėte laiko juostą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search for time zone\": { \"v\": [\"Барај временска зона\"] }, \"Type to search time zone\": { \"v\": [\"Напишете за да пребарате временска зона\"] } } }, { \"l\": \"mn\", \"t\": { \"Search for time zone\": { \"v\": [\"Цагийн бүс хайх\"] }, \"Type to search time zone\": { \"v\": [\"Цагийн бүс хайхын тулд бичнэ үү\"] } } }, { \"l\": \"my\", \"t\": { \"Type to search time zone\": { \"v\": [\"ဒေသစံတော်ချိန်များ ရှာဖွေရန် စာရိုက်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Search for time zone\": { \"v\": [\"Søk etter tidssone\"] }, \"Type to search time zone\": { \"v\": [\"Tast for å søke etter tidssone\"] } } }, { \"l\": \"nl\", \"t\": { \"Search for time zone\": { \"v\": [\"Zoeken naar tijdzone\"] }, \"Type to search time zone\": { \"v\": [\"Typ om een tijdzone te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search for time zone\": { \"v\": [\"Szukaj strefy czasowej\"] }, \"Type to search time zone\": { \"v\": [\"Wpisz, aby wyszukać strefę czasową\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search for time zone\": { \"v\": [\"Pesquisar fuso horário\"] }, \"Type to search time zone\": { \"v\": [\"Digite para pesquisar o fuso horário \"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Type to search time zone\": { \"v\": [\"Digite para pesquisar o fuso horário \"] } } }, { \"l\": \"ro\", \"t\": { \"Search for time zone\": { \"v\": [\"Căutare zonă de timp\"] }, \"Type to search time zone\": { \"v\": [\"Tastați pentru a căuta fusul orar\"] } } }, { \"l\": \"ru\", \"t\": { \"Search for time zone\": { \"v\": [\"Поиск часового пояса\"] }, \"Type to search time zone\": { \"v\": [\"Введите для поиска часового пояса\"] } } }, { \"l\": \"sk\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhľadať časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Začníte písať pre vyhľadávanie časovej zóny\"] } } }, { \"l\": \"sl\", \"t\": { \"Type to search time zone\": { \"v\": [\"Vpišite niz za iskanje časovnega pasu\"] } } }, { \"l\": \"sr\", \"t\": { \"Type to search time zone\": { \"v\": [\"Куцајте да претражите временске зоне\"] } } }, { \"l\": \"sv\", \"t\": { \"Search for time zone\": { \"v\": [\"Sök efter tidszon\"] }, \"Type to search time zone\": { \"v\": [\"Skriv för att välja tidszon\"] } } }, { \"l\": \"tr\", \"t\": { \"Search for time zone\": { \"v\": [\"Saat dilimi ara\"] }, \"Type to search time zone\": { \"v\": [\"Saat dilimi aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Type to search time zone\": { \"v\": [\"Введіть для пошуку часовий пояс\"] } } }, { \"l\": \"uz\", \"t\": { \"Search for time zone\": { \"v\": [\"Vaqt mintaqasini qidirish\"] }, \"Type to search time zone\": { \"v\": [\"Vaqt mintaqasini qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search for time zone\": { \"v\": [\"搜索时区\"] }, \"Type to search time zone\": { \"v\": [\"打字以搜索时区\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search for time zone\": { \"v\": [\"搜索時區\"] }, \"Type to search time zone\": { \"v\": [\"鍵入以搜索時區\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search for time zone\": { \"v\": [\"搜尋時區\"] }, \"Type to search time zone\": { \"v\": [\"輸入以搜尋時區\"] } } }];\nconst t46 = [{ \"l\": \"ar\", \"t\": { \"Select provider\": { \"v\": [\"اختر مزود\"] } } }, { \"l\": \"ast\", \"t\": { \"Select provider\": { \"v\": [\"Seleicionar el fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Select provider\": { \"v\": [\"Vælg udbyder\"] } } }, { \"l\": \"de\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"Select provider\": { \"v\": [\"Επιλογή παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Select provider\": { \"v\": [\"Select provider\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Select provider\": { \"v\": [\"Elija proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Select provider\": { \"v\": [\"Vali teenuspakkuja\"] } } }, { \"l\": \"eu\", \"t\": { \"Select provider\": { \"v\": [\"Hautatu hornitzailea\"] } } }, { \"l\": \"fa\", \"t\": { \"Select provider\": { \"v\": [\"ارائه دهنده را انتخاب کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Select provider\": { \"v\": [\"Valitse tarjoaja\"] } } }, { \"l\": \"fr\", \"t\": { \"Select provider\": { \"v\": [\"Sélectionner un fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Select provider\": { \"v\": [\"Roghnaigh soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione o provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Select provider\": { \"v\": [\"בחירת ספק\"] } } }, { \"l\": \"hr\", \"t\": { \"Select provider\": { \"v\": [\"Odaberi pružatelja\"] } } }, { \"l\": \"hu\", \"t\": { \"Select provider\": { \"v\": [\"Válasszon szolgáltatót\"] } } }, { \"l\": \"id\", \"t\": { \"Select provider\": { \"v\": [\"Pilih penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Select provider\": { \"v\": [\"Veldu þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Select provider\": { \"v\": [\"Selezionare il provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"Select provider\": { \"v\": [\"제공자 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"Select provider\": { \"v\": [\"ເລືອກຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Select provider\": { \"v\": [\"Pasirinkti tiekėją\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Select provider\": { \"v\": [\"Избери провајдер\"] } } }, { \"l\": \"mn\", \"t\": { \"Select provider\": { \"v\": [\"Үйлчилгээ үзүүлэгч сонгох\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Select provider\": { \"v\": [\"Velg leverandør\"] } } }, { \"l\": \"nl\", \"t\": { \"Select provider\": { \"v\": [\"Selecteer provider\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Select provider\": { \"v\": [\"Wybierz dostawcę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Select provider\": { \"v\": [\"Selecione provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Select provider\": { \"v\": [\"Selecionar fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Select provider\": { \"v\": [\"Selectați providerul\"] } } }, { \"l\": \"ru\", \"t\": { \"Select provider\": { \"v\": [\"Выбрать поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Select provider\": { \"v\": [\"Vybrať poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Select provider\": { \"v\": [\"Изаберите пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Select provider\": { \"v\": [\"Välj leverantör\"] } } }, { \"l\": \"tr\", \"t\": { \"Select provider\": { \"v\": [\"Hizmet sağlayıcı seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"Select provider\": { \"v\": [\"Виберіть постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Select provider\": { \"v\": [\"Provayderni tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Select provider\": { \"v\": [\"选择提供者\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Select provider\": { \"v\": [\"選擇提供者\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Select provider\": { \"v\": [\"選取提供者\"] } } }];\nconst t47 = [{ \"l\": \"ar\", \"t\": { \"Settings\": { \"v\": [\"الإعدادات\"] } } }, { \"l\": \"ast\", \"t\": { \"Settings\": { \"v\": [\"Configuración\"] } } }, { \"l\": \"br\", \"t\": { \"Settings\": { \"v\": [\"Arventennoù\"] } } }, { \"l\": \"ca\", \"t\": { \"Settings\": { \"v\": [\"Paràmetres\"] } } }, { \"l\": \"cs\", \"t\": { \"Settings\": { \"v\": [\"Nastavení\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Settings\": { \"v\": [\"Nastavení\"] } } }, { \"l\": \"da\", \"t\": { \"Settings\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Settings\": { \"v\": [\"Einstellungen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Settings\": { \"v\": [\"Einstellungen\"] } } }, { \"l\": \"el\", \"t\": { \"Settings\": { \"v\": [\"Ρυθμίσεις\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Settings\": { \"v\": [\"Settings\"] } } }, { \"l\": \"eo\", \"t\": { \"Settings\": { \"v\": [\"Agordo\"] } } }, { \"l\": \"es\", \"t\": { \"Settings\": { \"v\": [\"Ajustes\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Settings\": { \"v\": [\"Configuraciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Settings\": { \"v\": [\"Configuraciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Settings\": { \"v\": [\"Configuración\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Settings\": { \"v\": [\"Seadistused\"] } } }, { \"l\": \"eu\", \"t\": { \"Settings\": { \"v\": [\"Ezarpenak\"] } } }, { \"l\": \"fa\", \"t\": { \"Settings\": { \"v\": [\"تنظیمات\"] } } }, { \"l\": \"fi\", \"t\": { \"Settings\": { \"v\": [\"Asetukset\"] } } }, { \"l\": \"fr\", \"t\": { \"Settings\": { \"v\": [\"Paramètres\"] } } }, { \"l\": \"ga\", \"t\": { \"Settings\": { \"v\": [\"Socruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Settings\": { \"v\": [\"Axustes\"] } } }, { \"l\": \"he\", \"t\": { \"Settings\": { \"v\": [\"הגדרות\"] } } }, { \"l\": \"hr\", \"t\": { \"Settings\": { \"v\": [\"Postavke\"] } } }, { \"l\": \"hu\", \"t\": { \"Settings\": { \"v\": [\"Beállítások\"] } } }, { \"l\": \"id\", \"t\": { \"Settings\": { \"v\": [\"Pengaturan\"] } } }, { \"l\": \"is\", \"t\": { \"Settings\": { \"v\": [\"Stillingar\"] } } }, { \"l\": \"it\", \"t\": { \"Settings\": { \"v\": [\"Impostazioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"ko\", \"t\": { \"Settings\": { \"v\": [\"선택\"] } } }, { \"l\": \"lo\", \"t\": { \"Settings\": { \"v\": [\"ການຕັ້ງຄ່າ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Settings\": { \"v\": [\"Nustatymai\"] } } }, { \"l\": \"lv\", \"t\": { \"Settings\": { \"v\": [\"Iestatījumi\"] } } }, { \"l\": \"mk\", \"t\": { \"Settings\": { \"v\": [\"Параметри\"] } } }, { \"l\": \"mn\", \"t\": { \"Settings\": { \"v\": [\"Тохиргоо\"] } } }, { \"l\": \"my\", \"t\": { \"Settings\": { \"v\": [\"ချိန်ညှိချက်များ\"] } } }, { \"l\": \"nb\", \"t\": { \"Settings\": { \"v\": [\"Innstillinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Settings\": { \"v\": [\"Instellingen\"] } } }, { \"l\": \"oc\", \"t\": { \"Settings\": { \"v\": [\"Paramètres\"] } } }, { \"l\": \"pl\", \"t\": { \"Settings\": { \"v\": [\"Ustawienia\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Settings\": { \"v\": [\"Configurações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Settings\": { \"v\": [\"Definições\"] } } }, { \"l\": \"ro\", \"t\": { \"Settings\": { \"v\": [\"Setări\"] } } }, { \"l\": \"ru\", \"t\": { \"Settings\": { \"v\": [\"Параметры\"] } } }, { \"l\": \"sk\", \"t\": { \"Settings\": { \"v\": [\"Nastavenia\"] } } }, { \"l\": \"sl\", \"t\": { \"Settings\": { \"v\": [\"Nastavitve\"] } } }, { \"l\": \"sr\", \"t\": { \"Settings\": { \"v\": [\"Поставке\"] } } }, { \"l\": \"sv\", \"t\": { \"Settings\": { \"v\": [\"Inställningar\"] } } }, { \"l\": \"tr\", \"t\": { \"Settings\": { \"v\": [\"Ayarlar\"] } } }, { \"l\": \"uk\", \"t\": { \"Settings\": { \"v\": [\"Налаштування\"] } } }, { \"l\": \"uz\", \"t\": { \"Settings\": { \"v\": [\"Sozlamalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Settings\": { \"v\": [\"设置\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }];\nconst t48 = [{ \"l\": \"ar\", \"t\": { \"Settings navigation\": { \"v\": [\"إعدادات التّصفُّح\"] } } }, { \"l\": \"ast\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación pela configuración\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegació d'opcions\"] } } }, { \"l\": \"cs\", \"t\": { \"Settings navigation\": { \"v\": [\"Pohyb po nastavení\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Settings navigation\": { \"v\": [\"Pohyb po nastavení\"] } } }, { \"l\": \"da\", \"t\": { \"Settings navigation\": { \"v\": [\"Naviger i indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Settings navigation\": { \"v\": [\"Einstellungen für die Navigation\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Settings navigation\": { \"v\": [\"Einstellungen für die Navigation\"] } } }, { \"l\": \"el\", \"t\": { \"Settings navigation\": { \"v\": [\"Πλοήγηση ρυθμίσεων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Settings navigation\": { \"v\": [\"Settings navigation\"] } } }, { \"l\": \"eo\", \"t\": { \"Settings navigation\": { \"v\": [\"Agorda navigado\"] } } }, { \"l\": \"es\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de ajustes\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de configuraciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de configuraciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación por ajustes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Settings navigation\": { \"v\": [\"Liikumine seadistustes\"] } } }, { \"l\": \"eu\", \"t\": { \"Settings navigation\": { \"v\": [\"Nabigazio ezarpenak\"] } } }, { \"l\": \"fa\", \"t\": { \"Settings navigation\": { \"v\": [\"ناوبری تنظیمات\"] } } }, { \"l\": \"fi\", \"t\": { \"Settings navigation\": { \"v\": [\"Asetusten navigointi\"] } } }, { \"l\": \"fr\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigation dans les paramètres\"] } } }, { \"l\": \"ga\", \"t\": { \"Settings navigation\": { \"v\": [\"Nascleanúint socruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación polos axustes\"] } } }, { \"l\": \"he\", \"t\": { \"Settings navigation\": { \"v\": [\"ניווט בהגדרות\"] } } }, { \"l\": \"hr\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigacija postavki\"] } } }, { \"l\": \"hu\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigáció a beállításokban\"] } } }, { \"l\": \"id\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigasi pengaturan\"] } } }, { \"l\": \"is\", \"t\": { \"Settings navigation\": { \"v\": [\"Flakk um stillingar\"] } } }, { \"l\": \"it\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigazione delle impostazioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Settings navigation\": { \"v\": [\"ナビゲーション設定\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Settings navigation\": { \"v\": [\"ナビゲーション設定\"] } } }, { \"l\": \"ko\", \"t\": { \"Settings navigation\": { \"v\": [\"세팅 탐색\"] } } }, { \"l\": \"lo\", \"t\": { \"Settings navigation\": { \"v\": [\"ການນຳທາງການຕັ້ງຄ່າ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Settings navigation\": { \"v\": [\"Naršymas nustatymuose\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Settings navigation\": { \"v\": [\"Параметри за навигација\"] } } }, { \"l\": \"mn\", \"t\": { \"Settings navigation\": { \"v\": [\"Тохиргооны навигаци\"] } } }, { \"l\": \"my\", \"t\": { \"Settings navigation\": { \"v\": [\"ချိန်ညှိချက်အညွှန်း\"] } } }, { \"l\": \"nb\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigasjonsinstillinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Settings navigation\": { \"v\": [\"Instellingen navigatie\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Settings navigation\": { \"v\": [\"Ustawienia nawigacji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegação de configurações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegação de configurações\"] } } }, { \"l\": \"ro\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigare setări\"] } } }, { \"l\": \"ru\", \"t\": { \"Settings navigation\": { \"v\": [\"Навигация по настройкам\"] } } }, { \"l\": \"sk\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigácia v nastaveniach\"] } } }, { \"l\": \"sl\", \"t\": { \"Settings navigation\": { \"v\": [\"Krmarjenje nastavitev\"] } } }, { \"l\": \"sr\", \"t\": { \"Settings navigation\": { \"v\": [\"Кретање по подешавањима\"] } } }, { \"l\": \"sv\", \"t\": { \"Settings navigation\": { \"v\": [\"Inställningsmeny\"] } } }, { \"l\": \"tr\", \"t\": { \"Settings navigation\": { \"v\": [\"Gezinme ayarları\"] } } }, { \"l\": \"uk\", \"t\": { \"Settings navigation\": { \"v\": [\"Навігація у налаштуваннях\"] } } }, { \"l\": \"uz\", \"t\": { \"Settings navigation\": { \"v\": [\"Sozlamalar navigatsiyasi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Settings navigation\": { \"v\": [\"设置向导\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Settings navigation\": { \"v\": [\"設定值導覽\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Settings navigation\": { \"v\": [\"設定值導覽\"] } } }];\nconst t49 = [{ \"l\": \"ar\", \"t\": { \"Submit\": { \"v\": [\"إرسال\"] } } }, { \"l\": \"ast\", \"t\": { \"Submit\": { \"v\": [\"Unviar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Submit\": { \"v\": [\"Envia\"] } } }, { \"l\": \"cs\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"da\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"de\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"el\", \"t\": { \"Submit\": { \"v\": [\"Υποβολή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Submit\": { \"v\": [\"Submit\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Submit\": { \"v\": [\"Saada\"] } } }, { \"l\": \"eu\", \"t\": { \"Submit\": { \"v\": [\"Bidali\"] } } }, { \"l\": \"fa\", \"t\": { \"Submit\": { \"v\": [\"ارسال\"] } } }, { \"l\": \"fi\", \"t\": { \"Submit\": { \"v\": [\"Lähetä\"] } } }, { \"l\": \"fr\", \"t\": { \"Submit\": { \"v\": [\"Valider\"] } } }, { \"l\": \"ga\", \"t\": { \"Submit\": { \"v\": [\"Cuir isteach\"] } } }, { \"l\": \"gl\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"he\", \"t\": { \"Submit\": { \"v\": [\"הגשה\"] } } }, { \"l\": \"hr\", \"t\": { \"Submit\": { \"v\": [\"Pošalji\"] } } }, { \"l\": \"hu\", \"t\": { \"Submit\": { \"v\": [\"Beküldés\"] } } }, { \"l\": \"id\", \"t\": { \"Submit\": { \"v\": [\"Kirimkan\"] } } }, { \"l\": \"is\", \"t\": { \"Submit\": { \"v\": [\"Senda inn\"] } } }, { \"l\": \"it\", \"t\": { \"Submit\": { \"v\": [\"Invia\"] } } }, { \"l\": \"ja\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ko\", \"t\": { \"Submit\": { \"v\": [\"제출\"] } } }, { \"l\": \"lo\", \"t\": { \"Submit\": { \"v\": [\"ສົ່ງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Submit\": { \"v\": [\"Pateikti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Submit\": { \"v\": [\"Испрати\"] } } }, { \"l\": \"mn\", \"t\": { \"Submit\": { \"v\": [\"Илгээх\"] } } }, { \"l\": \"my\", \"t\": { \"Submit\": { \"v\": [\"တင်သွင်းရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"nl\", \"t\": { \"Submit\": { \"v\": [\"Indienen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Submit\": { \"v\": [\"Wyślij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Submit\": { \"v\": [\"Submeter\"] } } }, { \"l\": \"ro\", \"t\": { \"Submit\": { \"v\": [\"Trimiteți\"] } } }, { \"l\": \"ru\", \"t\": { \"Submit\": { \"v\": [\"Утвердить\"] } } }, { \"l\": \"sk\", \"t\": { \"Submit\": { \"v\": [\"Odoslať\"] } } }, { \"l\": \"sl\", \"t\": { \"Submit\": { \"v\": [\"Pošlji\"] } } }, { \"l\": \"sr\", \"t\": { \"Submit\": { \"v\": [\"Поднеси\"] } } }, { \"l\": \"sv\", \"t\": { \"Submit\": { \"v\": [\"Skicka\"] } } }, { \"l\": \"tr\", \"t\": { \"Submit\": { \"v\": [\"Gönder\"] } } }, { \"l\": \"uk\", \"t\": { \"Submit\": { \"v\": [\"Надіслати\"] } } }, { \"l\": \"uz\", \"t\": { \"Submit\": { \"v\": [\"Yuborish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Submit\": { \"v\": [\"遞交\"] } } }];\nconst t50 = [{ \"l\": \"ar\", \"t\": { \"Unable to search the group\": { \"v\": [\"تعذّر البحث في المجموعة\"] } } }, { \"l\": \"ast\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nun ye posible buscar el grupu\"] } } }, { \"l\": \"br\", \"t\": { \"Unable to search the group\": { \"v\": [\"Dibosupl eo klask ar strollad\"] } } }, { \"l\": \"ca\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es pot cercar el grup\"] } } }, { \"l\": \"cs\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"da\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan ikke søge på denne gruppe\"] } } }, { \"l\": \"de\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"el\", \"t\": { \"Unable to search the group\": { \"v\": [\"Δεν είναι δυνατή η αναζήτηση της ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Unable to search the group\": { \"v\": [\"Unable to search the group\"] } } }, { \"l\": \"eo\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ne eblas serĉi en la grupo\"] } } }, { \"l\": \"es\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es posible buscar en el grupo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar el grupo\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar en el grupo\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Unable to search the group\": { \"v\": [\"No fue posible buscar en el grupo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Gruppi ei ole võimalik otsida\"] } } }, { \"l\": \"eu\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ezin izan da taldea bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Unable to search the group\": { \"v\": [\"امکان جستجوی گروه وجود ندارد\"] } } }, { \"l\": \"fi\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ryhmää ei voi hakea\"] } } }, { \"l\": \"fr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossible de chercher le groupe\"] } } }, { \"l\": \"ga\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ní féidir an grúpa a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Non foi posíbel buscar o grupo\"] } } }, { \"l\": \"he\", \"t\": { \"Unable to search the group\": { \"v\": [\"לא ניתן לחפש בקבוצה\"] } } }, { \"l\": \"hr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nije moguće pretražiti grupu\"] } } }, { \"l\": \"hu\", \"t\": { \"Unable to search the group\": { \"v\": [\"A csoport nem kereshető\"] } } }, { \"l\": \"id\", \"t\": { \"Unable to search the group\": { \"v\": [\"Tidak dapat mencari dalam grup\"] } } }, { \"l\": \"is\", \"t\": { \"Unable to search the group\": { \"v\": [\"Get ekki leitað í hópnum\"] } } }, { \"l\": \"it\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossibile cercare il gruppo\"] } } }, { \"l\": \"ja\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ko\", \"t\": { \"Unable to search the group\": { \"v\": [\"그룹을 검색할 수 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"Unable to search the group\": { \"v\": [\"ບໍ່ສາມາດຄົ້ນຫາກຸ່ມໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nepavyko atlikti paiešką grupėje\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможе да се пронајде групата\"] } } }, { \"l\": \"mn\", \"t\": { \"Unable to search the group\": { \"v\": [\"Бүлгийг хайж чадсангүй\"] } } }, { \"l\": \"my\", \"t\": { \"Unable to search the group\": { \"v\": [\"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunne ikke søke i gruppen\"] } } }, { \"l\": \"nl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan niet zoeken in de groep\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nie można przeszukać grupy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não foi possível pesquisar o grupo\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não é possível pesquisar o grupo\"] } } }, { \"l\": \"ro\", \"t\": { \"Unable to search the group\": { \"v\": [\"Imposibilitatea de a căuta în grup\"] } } }, { \"l\": \"ru\", \"t\": { \"Unable to search the group\": { \"v\": [\"Невозможно найти группу\"] } } }, { \"l\": \"sk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Skupinu sa nepodarilo nájsť\"] } } }, { \"l\": \"sl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ni mogoče iskati po skupini\"] } } }, { \"l\": \"sr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Група не може да се претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunde inte söka i gruppen\"] } } }, { \"l\": \"tr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Grupta arama yapılamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможливо шукати в групі\"] } } }, { \"l\": \"uz\", \"t\": { \"Unable to search the group\": { \"v\": [\"Guruhni qidirish imkonsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Unable to search the group\": { \"v\": [\"无法搜索分组\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }];\nconst t51 = [{ \"l\": \"ar\", \"t\": { \"Undo changes\": { \"v\": [\"تراجَع عن التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Undo changes\": { \"v\": [\"Desfés els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"da\", \"t\": { \"Undo changes\": { \"v\": [\"Fortryd ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"el\", \"t\": { \"Undo changes\": { \"v\": [\"Αναίρεση Αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Undo changes\": { \"v\": [\"Undo changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Undo changes\": { \"v\": [\"Pööra muudatused tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"Undo changes\": { \"v\": [\"Aldaketak desegin\"] } } }, { \"l\": \"fa\", \"t\": { \"Undo changes\": { \"v\": [\"لغو تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Undo changes\": { \"v\": [\"Kumoa muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Undo changes\": { \"v\": [\"Annuler les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Undo changes\": { \"v\": [\"Cealaigh athruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Undo changes\": { \"v\": [\"ביטול שינויים\"] } } }, { \"l\": \"hr\", \"t\": { \"Undo changes\": { \"v\": [\"Poništi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Undo changes\": { \"v\": [\"Változtatások visszavonása\"] } } }, { \"l\": \"id\", \"t\": { \"Undo changes\": { \"v\": [\"Urungkan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Undo changes\": { \"v\": [\"Afturkalla breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Undo changes\": { \"v\": [\"Cancella i cambiamenti\"] } } }, { \"l\": \"ja\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ko\", \"t\": { \"Undo changes\": { \"v\": [\"변경 되돌리기\"] } } }, { \"l\": \"lo\", \"t\": { \"Undo changes\": { \"v\": [\"ຍ້ອນຄືນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Undo changes\": { \"v\": [\"Atšaukti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Undo changes\": { \"v\": [\"Врати ги промените\"] } } }, { \"l\": \"mn\", \"t\": { \"Undo changes\": { \"v\": [\"Өөрчлөлтийг буцаах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Undo changes\": { \"v\": [\"Tilbakestill endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Undo changes\": { \"v\": [\"Wijzigingen ongedaan maken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Undo changes\": { \"v\": [\"Cofnij zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Undo changes\": { \"v\": [\"Desfazer modificações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Undo changes\": { \"v\": [\"Anular alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Undo changes\": { \"v\": [\"Anularea modificărilor\"] } } }, { \"l\": \"ru\", \"t\": { \"Undo changes\": { \"v\": [\"Отменить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Undo changes\": { \"v\": [\"Vrátiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Undo changes\": { \"v\": [\"Razveljavi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Undo changes\": { \"v\": [\"Поништи измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Undo changes\": { \"v\": [\"Ångra ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Undo changes\": { \"v\": [\"Değişiklikleri geri al\"] } } }, { \"l\": \"uk\", \"t\": { \"Undo changes\": { \"v\": [\"Скасувати зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Undo changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Undo changes\": { \"v\": [\"撤销更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Undo changes\": { \"v\": [\"取消更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Undo changes\": { \"v\": [\"還原變更\"] } } }];\nconst t52 = [{ \"l\": \"ar\", \"t\": { \"User status: {status}\": { \"v\": [\"حالة المستخدِم: {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"User status: {status}\": { \"v\": [\"Estáu del usuariu: {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav uživatele: {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav uživatele: {status}\"] } } }, { \"l\": \"da\", \"t\": { \"User status: {status}\": { \"v\": [\"Brugerstatus: {status}\"] } } }, { \"l\": \"de\", \"t\": { \"User status: {status}\": { \"v\": [\"Benutzerstatus: {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"User status: {status}\": { \"v\": [\"Benutzerstatus: {status}\"] } } }, { \"l\": \"el\", \"t\": { \"User status: {status}\": { \"v\": [\"Κατάσταση χρήστη: {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"User status: {status}\": { \"v\": [\"User status: {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"User status: {status}\": { \"v\": [\"Estatus del usuario: {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado del usuario: {status}\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado del usuario: {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"User status: {status}\": { \"v\": [\"Kasutaja olek: {status}\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"User status: {status}\": { \"v\": [\"وضعیت کاربر: {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"User status: {status}\": { \"v\": [\"Käyttäjän tila: {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"User status: {status}\": { \"v\": [\"Statut de l'utilisateur : {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"User status: {status}\": { \"v\": [\"Stádas úsáideora: {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado do usuario: {status}\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"User status: {status}\": { \"v\": [\"Status korisnika: {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"User status: {status}\": { \"v\": [\"Felhasználó állapota: {status}\"] } } }, { \"l\": \"id\", \"t\": { \"User status: {status}\": { \"v\": [\"Status pengguna: {status}\"] } } }, { \"l\": \"is\", \"t\": { \"User status: {status}\": { \"v\": [\"Staða notanda: {status}\"] } } }, { \"l\": \"it\", \"t\": { \"User status: {status}\": { \"v\": [\"Stato dell'utente: {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"User status: {status}\": { \"v\": [\"ユーザのステータス: {status}\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"User status: {status}\": { \"v\": [\"ユーザのステータス: {status}\"] } } }, { \"l\": \"ko\", \"t\": { \"User status: {status}\": { \"v\": [\"사용자 상태: {status}\"] } } }, { \"l\": \"lo\", \"t\": { \"User status: {status}\": { \"v\": [\"ສະຖານະຜູ້ໃຊ້: {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"User status: {status}\": { \"v\": [\"Naudotojo būsena: {status}\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус: {status}\"] } } }, { \"l\": \"mn\", \"t\": { \"User status: {status}\": { \"v\": [\"Хэрэглэгчийн төлөв: {status}\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"User status: {status}\": { \"v\": [\"Brukerstatus: {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"User status: {status}\": { \"v\": [\"Gebruikersstatus: {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"User status: {status}\": { \"v\": [\"Status użytkownika: {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"User status: {status}\": { \"v\": [\"Status do usuário: {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado do utilizador: {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"User status: {status}\": { \"v\": [\"Status utilizator: {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус пользователя: {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav užívateľa: {status}\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус корисника: {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"User status: {status}\": { \"v\": [\"Användarstatus: {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"User status: {status}\": { \"v\": [\"Kullanıcı durumu: {status}\"] } } }, { \"l\": \"uk\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус користувача: {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"User status: {status}\": { \"v\": [\"Foydalanuvchi holati: {status}\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"User status: {status}\": { \"v\": [\"用户状态:{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"User status: {status}\": { \"v\": [\"用戶狀態:{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"User status: {status}\": { \"v\": [\"使用者狀態:{status}\"] } } }];\nexport {\n t32 as $,\n t19 as A,\n t47 as B,\n t44 as C,\n t36 as D,\n t26 as E,\n t4 as F,\n t27 as G,\n t30 as H,\n t48 as I,\n t34 as J,\n n as K,\n t28 as L,\n t6 as M,\n t21 as N,\n t23 as O,\n t20 as P,\n t52 as Q,\n t11 as R,\n t38 as S,\n t42 as T,\n t9 as U,\n t15 as V,\n t8 as W,\n t46 as X,\n t41 as Y,\n t24 as Z,\n t25 as _,\n t as a,\n t12 as a0,\n t51 as b,\n t18 as c,\n t2 as d,\n t22 as e,\n t33 as f,\n t17 as g,\n t45 as h,\n t50 as i,\n t0 as j,\n t14 as k,\n t49 as l,\n t10 as m,\n t29 as n,\n t7 as o,\n t31 as p,\n t43 as q,\n register as r,\n t37 as s,\n t3 as t,\n t16 as u,\n t5 as v,\n t1 as w,\n t40 as x,\n t13 as y,\n t35 as z\n};\n//# sourceMappingURL=_l10n-wdIzZwir.mjs.map\n","import { d as mdiCheck, e as mdiContentCopy } from \"./mdi-CpchYUUV.mjs\";\nimport { ref, computed, toValue } from \"vue\";\nimport { r as register, e as t22, a as t } from \"./_l10n-wdIzZwir.mjs\";\nregister(t22);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst DELAY = 2e3;\nfunction useCopy(content) {\n const isCopied = ref(false);\n const icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy);\n const altText = computed(() => isCopied.value ? t(\"Copied\") : t(\"Copy to clipboard\"));\n async function copy() {\n if (isCopied.value) {\n return;\n }\n const value = toValue(content);\n try {\n await navigator.clipboard.writeText(value);\n } catch {\n prompt(\"\", value);\n }\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, DELAY);\n }\n return {\n isCopied,\n copy,\n icon,\n altText\n };\n}\nexport {\n useCopy as u\n};\n//# sourceMappingURL=useCopy-6F-qWHq0.mjs.map\n","import { defineComponent, openBlock, createBlock, unref, createSlots, withCtx, createVNode, createTextVNode, toDisplayString, createElementVNode, renderSlot } from \"vue\";\nimport { whenever } from \"@vueuse/core\";\nimport { N as NcFormBoxButton } from \"./NcFormBoxButton-G_PkUiQy.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { u as useCopy } from \"./useCopy-6F-qWHq0.mjs\";\nconst _hoisted_1 = { class: \"hidden-visually\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxCopyButton\",\n props: {\n label: { default: () => void 0 },\n value: {},\n disabled: { type: Boolean, default: false }\n },\n emits: [\"copy\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const { isCopied, copy, icon, altText } = useCopy(() => __props.value);\n whenever(isCopied, () => emit(\"copy\"));\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxButton, {\n disabled: __props.disabled,\n invertedAccent: \"\",\n onClick: unref(copy)\n }, createSlots({\n description: withCtx(() => [\n createTextVNode(toDisplayString(__props.value), 1)\n ]),\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(icon),\n inline: \"\"\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n _ctx.$slots.default || __props.label ? {\n name: \"default\",\n fn: withCtx(() => [\n createElementVNode(\"span\", _hoisted_1, toDisplayString(unref(altText)), 1),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"disabled\", \"onClick\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs.map\n","import '../assets/NcIconToggleSwitch-zUXkaJHv.css';\nimport { defineComponent, useCssVars, computed, openBlock, createBlock, normalizeClass } from \"vue\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst svg = `\n\t\n\t\n`;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconToggleSwitch\",\n props: {\n checked: { type: Boolean },\n size: { default: 34 },\n inline: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v6bd152af\": color.value,\n \"v16fd8ca9\": cx.value\n }));\n const color = computed(() => __props.checked ? \"var(--color-primary-element)\" : \"var(--color-text-maxcontrast)\");\n const cx = computed(() => __props.checked ? \"calc(17 / 24 * 100%)\" : \"calc(7 / 24 * 100%)\");\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcIconSvgWrapper, {\n class: normalizeClass(_ctx.$style.iconToggleSwitch),\n svg,\n size: __props.size,\n inline: __props.inline\n }, null, 8, [\"class\", \"size\", \"inline\"]);\n };\n }\n});\nconst iconToggleSwitch = \"_iconToggleSwitch_IKWaj\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_63AMQ\",\n iconToggleSwitch\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcIconToggleSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcIconToggleSwitch as N\n};\n//# sourceMappingURL=NcIconToggleSwitch-CRvGt4su.mjs.map\n","import '../assets/NcFormBoxSwitch-NCjook_Z.css';\nimport { defineComponent, useModel, watch, openBlock, createBlock, unref, createSlots, withCtx, withDirectives, createElementVNode, normalizeClass, vModelCheckbox, createVNode, renderSlot, createTextVNode, toDisplayString, mergeModels } from \"vue\";\nimport { N as NcFormBoxItem } from \"./NcFormBoxItem-Cm8aZaVJ.mjs\";\nimport { N as NcIconToggleSwitch } from \"./NcIconToggleSwitch-CRvGt4su.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\", \"aria-describedby\", \"disabled\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxSwitch\",\n props: /* @__PURE__ */ mergeModels({\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n disabled: { type: Boolean, default: false }\n }, {\n \"modelValue\": { type: Boolean, ...{ required: true } },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"enable\", \"disable\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const inputId = createElementId();\n watch(modelValue, () => {\n if (modelValue.value) {\n emit(\"enable\");\n } else {\n emit(\"disable\");\n }\n }, {\n // defineModel emits update:modelValue synchronously\n // Watching it synchronously to emit the enable/disable events together with the update:modelValue event\n flush: \"sync\"\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxItem, {\n tag: \"label\",\n for: unref(inputId)\n }, createSlots({\n icon: withCtx(({ descriptionId }) => [\n withDirectives(createElementVNode(\"input\", {\n id: unref(inputId),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: normalizeClass(_ctx.$style.formBoxSwitch__input),\n type: \"checkbox\",\n role: \"switch\",\n \"aria-describedby\": descriptionId,\n disabled: __props.disabled\n }, null, 10, _hoisted_1), [\n [vModelCheckbox, modelValue.value]\n ]),\n createVNode(NcIconToggleSwitch, {\n checked: modelValue.value,\n inline: \"\"\n }, null, 8, [\"checked\"])\n ]),\n _: 2\n }, [\n _ctx.$slots.default || __props.label ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots.description || __props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"for\"]);\n };\n }\n});\nconst formBoxSwitch__input = \"_formBoxSwitch__input_n8432\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_v0XYD\",\n formBoxSwitch__input\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxSwitch as N\n};\n//# sourceMappingURL=NcFormBoxSwitch-DSXiQcnq.mjs.map\n","import '../assets/NcFormGroup-eh8-PBGB.css';\nimport { defineComponent, useSlots, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-describedby\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormGroup\",\n props: {\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n hideLabel: { type: Boolean, default: false },\n hideDescription: { type: Boolean, default: false },\n noGap: { type: Boolean, default: false }\n },\n setup(__props) {\n const slots = useSlots();\n const id = `nc-form-group-${createElementId()}`;\n const descriptionId = `${id}-description`;\n const hasDescription = () => !!__props.description || !!slots.description;\n const getDescriptionId = () => hasDescription() ? descriptionId : void 0;\n const hasContentOnly = () => __props.hideLabel && (!hasDescription() || __props.hideDescription);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"fieldset\", {\n class: normalizeClass([_ctx.$style.formGroup, { [_ctx.$style.formGroup_noGap]: __props.noGap }]),\n \"aria-describedby\": getDescriptionId()\n }, [\n createElementVNode(\"legend\", {\n class: normalizeClass([_ctx.$style.formGroup__label, { \"hidden-visually\": __props.hideLabel }])\n }, [\n renderSlot(_ctx.$slots, \"label\", {}, () => [\n createTextVNode(toDisplayString(__props.label || \"⚠️ Missing label\"), 1)\n ])\n ], 2),\n hasDescription() ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: descriptionId,\n class: normalizeClass([_ctx.$style.formGroup__description, { \"hidden-visually\": __props.hideDescription }])\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ], 2)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([_ctx.$style.formGroup__content, { [_ctx.$style.formGroup__content_only]: hasContentOnly() }])\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ], 10, _hoisted_1);\n };\n }\n});\nconst formGroup = \"_formGroup_P4ub1\";\nconst formGroup_noGap = \"_formGroup_noGap_I25Tm\";\nconst formGroup__label = \"_formGroup__label_dvGhm\";\nconst formGroup__description = \"_formGroup__description_rqVc0\";\nconst formGroup__content = \"_formGroup__content_fnqsg\";\nconst formGroup__content_only = \"_formGroup__content_only_G-Ivq\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_2NWOj\",\n formGroup,\n formGroup_noGap,\n formGroup__label,\n formGroup__description,\n formGroup__content,\n formGroup__content_only\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormGroup as N\n};\n//# sourceMappingURL=NcFormGroup-N7qIFAwN.mjs.map\n","\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n","\n\n\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifier, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","import major from \"semver/functions/major.js\";\nimport valid from \"semver/functions/valid.js\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h) => h !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h) => {\n try {\n ;\n h(event[0]);\n } catch (e) {\n console.error(\"could not invoke event listener\", e);\n }\n });\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction subscribe(name, handler) {\n getBus().subscribe(name, handler);\n}\nfunction unsubscribe(name, handler) {\n getBus().unsubscribe(name, handler);\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\nexport {\n ProxyBus,\n SimpleBus,\n emit,\n subscribe,\n unsubscribe\n};\n//# sourceMappingURL=index.mjs.map\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport default class ScopedStorage {\n static GLOBAL_SCOPE_VOLATILE = 'nextcloud_vol';\n static GLOBAL_SCOPE_PERSISTENT = 'nextcloud_per';\n scope;\n wrapped;\n constructor(scope, wrapped, persistent) {\n this.scope = `${persistent ? ScopedStorage.GLOBAL_SCOPE_PERSISTENT : ScopedStorage.GLOBAL_SCOPE_VOLATILE}_${btoa(scope)}_`;\n this.wrapped = wrapped;\n }\n scopeKey(key) {\n return `${this.scope}${key}`;\n }\n setItem(key, value) {\n this.wrapped.setItem(this.scopeKey(key), value);\n }\n getItem(key) {\n return this.wrapped.getItem(this.scopeKey(key));\n }\n removeItem(key) {\n this.wrapped.removeItem(this.scopeKey(key));\n }\n clear() {\n Object.keys(this.wrapped)\n .filter((key) => key.startsWith(this.scope))\n .map(this.wrapped.removeItem.bind(this.wrapped));\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport ScopedStorage from \"./ScopedStorage.js\";\nexport default class StorageBuilder {\n appId;\n persisted = false;\n clearedOnLogout = false;\n constructor(appId) {\n this.appId = appId;\n }\n persist(persist = true) {\n this.persisted = persist;\n return this;\n }\n clearOnLogout(clear = true) {\n this.clearedOnLogout = clear;\n return this;\n }\n build() {\n return new ScopedStorage(this.appId, this.persisted ? window.localStorage : window.sessionStorage, !this.clearedOnLogout);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport ScopedStorage from \"./ScopedStorage.js\";\nimport StorageBuilder from \"./StorageBuilder.js\";\n/**\n * Get the storage builder for an app\n *\n * @param appId App ID to scope storage\n */\nexport function getBuilder(appId) {\n return new StorageBuilder(appId);\n}\n/**\n * Clear values from storage\n *\n * @param storage The storage to clear\n * @param pred Callback to check if value should be cleared\n */\nfunction clearStorage(storage, pred) {\n Object.keys(storage)\n .filter((k) => pred ? pred(k) : true)\n .map(storage.removeItem.bind(storage));\n}\n/**\n * Clear all values from all storages\n */\nexport function clearAll() {\n const storages = [\n window.sessionStorage,\n window.localStorage,\n ];\n storages.map((s) => clearStorage(s));\n}\n/**\n * Clear ony non persistent values\n */\nexport function clearNonPersistent() {\n const storages = [\n window.sessionStorage,\n window.localStorage,\n ];\n storages.map((s) => clearStorage(s, (k) => !k.startsWith(ScopedStorage.GLOBAL_SCOPE_PERSISTENT)));\n}\n","import { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\n_subscribeToTokenUpdates();\nfunction getRequestToken() {\n if (globalThis._nc_auth_requestToken) {\n return globalThis._nc_auth_requestToken;\n }\n if (globalThis.document) {\n return document.head.dataset.requesttoken ?? null;\n }\n return null;\n}\nfunction setRequestToken(token) {\n if (!token || typeof token !== \"string\") {\n throw new Error(\"Invalid CSRF token given\", { cause: { token } });\n }\n if (globalThis._nc_auth_requestToken === token) {\n return;\n }\n globalThis._nc_auth_requestToken = token;\n if (globalThis.document) {\n document.head.dataset.requesttoken = token;\n }\n emit(\"csrf-token-update\", { token, _internal: true });\n}\nasync function fetchRequestToken() {\n const url = generateUrl(\"/csrftoken\");\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\"Could not fetch CSRF token from API\", { cause: response });\n }\n try {\n const { token } = await response.json();\n setRequestToken(token);\n return token;\n } catch (error) {\n throw new Error(\"Could not parse CSRF token from API response\", { cause: error });\n }\n}\nfunction onRequestTokenUpdate(observer) {\n const wrapper = async ({ token }) => {\n try {\n observer(token);\n } catch (error) {\n console.error(\"Error updating CSRF token observer\", error);\n }\n };\n subscribe(\"csrf-token-update\", wrapper);\n return () => unsubscribe(\"csrf-token-update\", wrapper);\n}\nfunction _subscribeToTokenUpdates() {\n subscribe(\"csrf-token-update\", ({ token, _internal }) => {\n if (!_internal) {\n setRequestToken(token);\n }\n });\n}\nfunction getCSPNonce() {\n const meta = document?.querySelector('meta[name=\"csp-nonce\"]');\n if (!meta) {\n const token = getRequestToken();\n return token ? btoa(token) : void 0;\n }\n return meta.nonce;\n}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nconst browserStorage = getBuilder(\"public\").persist().build();\nclass GuestUser {\n _displayName;\n uid;\n isAdmin;\n constructor() {\n if (!browserStorage.getItem(\"guestUid\")) {\n browserStorage.setItem(\"guestUid\", randomUUID());\n }\n this._displayName = browserStorage.getItem(\"guestNickname\") || \"\";\n this.uid = browserStorage.getItem(\"guestUid\") || randomUUID();\n this.isAdmin = false;\n subscribe(\"user:info:changed\", (guest) => {\n this._displayName = guest.displayName;\n browserStorage.setItem(\"guestNickname\", guest.displayName || \"\");\n });\n }\n get displayName() {\n return this._displayName;\n }\n set displayName(displayName) {\n this._displayName = displayName;\n browserStorage.setItem(\"guestNickname\", displayName);\n emit(\"user:info:changed\", this);\n }\n}\nlet currentUser$1;\nfunction getGuestUser() {\n if (!currentUser$1) {\n currentUser$1 = new GuestUser();\n }\n return currentUser$1;\n}\nfunction getGuestNickname() {\n return getGuestUser()?.displayName || null;\n}\nfunction setGuestNickname(nickname) {\n if (!nickname || nickname.trim().length === 0) {\n throw new Error(\"Nickname cannot be empty\");\n }\n getGuestUser().displayName = nickname;\n}\nfunction randomUUID() {\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID();\n }\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n}\nlet currentUser;\nfunction getAttribute(el, attribute) {\n if (el) {\n return el.getAttribute(attribute);\n }\n return null;\n}\nfunction getCurrentUser() {\n if (currentUser !== void 0) {\n return currentUser;\n }\n const head = document?.getElementsByTagName(\"head\")[0];\n if (!head) {\n return null;\n }\n const uid = getAttribute(head, \"data-user\");\n if (uid === null) {\n currentUser = null;\n return currentUser;\n }\n currentUser = {\n uid,\n displayName: getAttribute(head, \"data-user-displayname\"),\n isAdmin: !!window._oc_isadmin\n };\n return currentUser;\n}\nexport {\n fetchRequestToken,\n getCSPNonce,\n getCurrentUser,\n getGuestNickname,\n getGuestUser,\n getRequestToken,\n onRequestTokenUpdate,\n setGuestNickname,\n setRequestToken\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Walk the prototype chain (excluding the shared Object.prototype) looking for\n * an own `prop`. This distinguishes genuine own/inherited members — including\n * class accessors and template prototypes — from members injected via\n * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which\n * live on Object.prototype itself and are therefore never matched.\n *\n * @param {*} thing The value whose chain to inspect\n * @param {string|symbol} prop The property key to look for\n *\n * @returns {boolean} True when `prop` is owned below Object.prototype\n */\nconst hasOwnInPrototypeChain = (thing, prop) => {\n let obj = thing;\n const seen = [];\n\n while (obj != null && obj !== Object.prototype) {\n if (seen.indexOf(obj) !== -1) {\n return false;\n }\n seen.push(obj);\n\n if (hasOwnProperty(obj, prop)) {\n return true;\n }\n obj = getPrototypeOf(obj);\n }\n return false;\n};\n\n/**\n * Read `obj[prop]` only when it is safe from Object.prototype pollution. Own\n * properties and members inherited from a non-Object.prototype source (a class\n * instance or template object) are honored; a value reachable only through a\n * polluted Object.prototype is ignored and `undefined` is returned.\n *\n * @param {*} obj The source object\n * @param {string|symbol} prop The property key to read\n *\n * @returns {*} The resolved value, or undefined when unsafe/absent\n */\nconst getSafeProp = (obj, prop) =>\n obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (!isObject(val)) {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n getPrototypeOf(prototype) === null) &&\n // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or\n // Symbol.iterator as evidence the value is a tagged/iterable type rather\n // than a plain object, while ignoring keys injected onto Object.prototype.\n !hasOwnInPrototypeChain(val, toStringTag) &&\n !hasOwnInPrototypeChain(val, iterator)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n // findKey lowercases the key, so caseless lookup only applies to strings —\n // symbol keys are identity-matched.\n const targetKey = (caseless && typeof key === 'string' && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n const source = objs[i];\n if (!source || isBuffer(source)) {\n continue;\n }\n\n forEach(source, assignValue);\n\n if (typeof source !== 'object' || isArray(source)) {\n continue;\n }\n\n const symbols = Object.getOwnPropertySymbols(source);\n for (let j = 0; j < symbols.length; j++) {\n const symbol = symbols[j];\n if (propertyIsEnumerable.call(source, symbol)) {\n assignValue(source[symbol], symbol);\n }\n }\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\nconst { propertyIsEnumerable } = Object.prototype;\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n/**\n * Determine if a value is iterable via an iterator that is NOT sourced solely\n * from a polluted Object.prototype. Use this instead of `isIterable` whenever\n * the iterable comes from untrusted input (e.g. user-supplied header sources),\n * so `Object.prototype[Symbol.iterator] = ...` cannot turn an ordinary object\n * into an attacker-controlled entries iterator.\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value has a non-polluted iterator\n */\nconst isSafeIterable = (thing) =>\n thing != null && hasOwnInPrototypeChain(thing, iterator) && isIterable(thing);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n hasOwnInPrototypeChain,\n getSafeProp,\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n isSafeIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n return;\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isSafeIterable(header)) {\n let obj = Object.create(null),\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw new TypeError('Object iterator must return a key-value pair');\n }\n\n key = entry[0];\n\n if (utils.hasOwnProp(obj, key)) {\n dest = obj[key];\n obj[key] = utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]];\n } else {\n obj[key] = entry[1];\n }\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n // Match native `Error` `cause` semantics: non-enumerable. The wrapped\n // error often carries circular internals (sockets, requests, agents), so\n // an enumerable `cause` makes structured loggers (pino/winston) and any\n // own-property walk throw \"Converting circular structure to JSON\".\n // Regression from #6982; see #7205. `__proto__: null` mirrors the\n // `message` descriptor below (prototype-pollution-safe descriptor).\n Object.defineProperty(axiosError, 'cause', {\n __proto__: null,\n value: error,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n// Default nesting limit shared with the inverse transform (formDataToJSON) so\n// the FormData <-> JSON round-trip stays symmetric.\nexport const DEFAULT_FORM_DATA_MAX_DEPTH = 100;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n const stack = [];\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n if (useBlob && typeof _Blob === 'function') {\n return new _Blob([value]);\n }\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(value);\n }\n throw new AxiosError('Blob is not supported. Use a Buffer instead.', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return value;\n }\n\n function throwIfMaxDepthExceeded(depth) {\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n }\n\n function stringifyWithDepthLimit(value, depth) {\n if (maxDepth === Infinity) {\n return JSON.stringify(value);\n }\n\n const ancestors = [];\n\n return JSON.stringify(value, function limitDepth(_key, currentValue) {\n if (!utils.isObject(currentValue)) {\n return currentValue;\n }\n\n while (ancestors.length && ancestors[ancestors.length - 1] !== this) {\n ancestors.pop();\n }\n\n ancestors.push(currentValue);\n throwIfMaxDepthExceeded(depth + ancestors.length - 1);\n\n return currentValue;\n });\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = stringifyWithDepthLimit(value, 1);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n throwIfMaxDepthExceeded(depth);\n\n if (stack.indexOf(value) !== -1) {\n throw new Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? (value) => encoder.call(this, value, encode)\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from './AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n url = url || '';\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n // Read serializer options pollution-safely: own properties and methods on a\n // class/template prototype are honored, but values injected onto a polluted\n // Object.prototype are ignored.\n const _encode = utils.getSafeProp(_options, 'encode') || encode;\n const serializeFn = utils.getSafeProp(_options, 'serialize');\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n advertiseZstdAcceptEncoding: false,\n validateStatusUndefinedResolves: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport { DEFAULT_FORM_DATA_MAX_DEPTH } from './toFormData.js';\n\nconst MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;\n\nfunction throwIfDepthExceeded(index) {\n if (index > MAX_DEPTH) {\n throw new AxiosError(\n 'FormData field is too deeply nested (' + index + ' levels). Max depth: ' + MAX_DEPTH,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n const path = [];\n const pattern = /\\w+|\\[(\\w*)]/g;\n let match;\n\n while ((match = pattern.exec(name)) !== null) {\n throwIfDepthExceeded(path.length);\n path.push(match[0] === '[]' ? '' : match[1] || match[0]);\n }\n\n return path;\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n throwIfDepthExceeded(index);\n\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n try {\n return decodeURIComponent(cookie.slice(eq + 1));\n } catch (e) {\n return cookie.slice(eq + 1);\n }\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\nconst malformedHttpProtocol = /^https?:(?!\\/\\/)/i;\nconst httpProtocolControlCharacters = /[\\t\\n\\r]/g;\n\nfunction stripLeadingC0ControlOrSpace(url) {\n let i = 0;\n while (i < url.length && url.charCodeAt(i) <= 0x20) {\n i++;\n }\n return url.slice(i);\n}\n\nfunction normalizeURLForProtocolCheck(url) {\n return stripLeadingC0ControlOrSpace(url).replace(httpProtocolControlCharacters, '');\n}\n\nfunction assertValidHttpProtocolURL(url, config) {\n if (typeof url === 'string' && malformedHttpProtocol.test(normalizeURLForProtocolCheck(url))) {\n throw new AxiosError(\n 'Invalid URL: missing \"//\" after protocol',\n AxiosError.ERR_INVALID_URL,\n config\n );\n }\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) {\n assertValidHttpProtocolURL(requestedURL, config);\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n assertValidHttpProtocolURL(baseURL, config);\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config1 = config1 || {};\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n function getMergedTransitionalOption(prop) {\n const transitional2 = utils.hasOwnProp(config2, 'transitional') ? config2.transitional : undefined;\n\n if (!utils.isUndefined(transitional2)) {\n if (utils.isPlainObject(transitional2)) {\n if (utils.hasOwnProp(transitional2, prop)) {\n return transitional2[prop];\n }\n } else {\n return undefined;\n }\n }\n\n const transitional1 = utils.hasOwnProp(config1, 'transitional') ? config1.transitional : undefined;\n\n if (utils.isPlainObject(transitional1) && utils.hasOwnProp(transitional1, prop)) {\n return transitional1[prop];\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n if (\n utils.hasOwnProp(config2, 'validateStatus') &&\n utils.isUndefined(config2.validateStatus) &&\n getMergedTransitionalOption('validateStatusUndefinedResolves') === false\n ) {\n if (utils.hasOwnProp(config1, 'validateStatus')) {\n config.validateStatus = getMergedValue(undefined, config1.validateStatus);\n } else {\n delete config.validateStatus;\n }\n }\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders || {}).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nfunction resolveConfig(config) {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls, newConfig),\n own('params'),\n own('paramsSerializer')\n );\n\n // HTTP basic authentication\n if (auth) {\n const username = utils.getSafeProp(auth, 'username') || '';\n const password = utils.getSafeProp(auth, 'password') || '';\n\n try {\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(username + ':' + (password ? encodeUTF8(password) : ''))\n );\n } catch (e) {\n throw AxiosError.from(e, AxiosError.ERR_BAD_OPTION_VALUE, config);\n }\n }\n\n if (utils.isFormData(data)) {\n if (\n platform.hasStandardBrowserEnv ||\n platform.hasStandardBrowserWebWorkerEnv ||\n utils.isReactNative(data)\n ) {\n headers.setContentType(undefined); // browser/web worker/RN handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\nexport default resolveConfig;\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n done();\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort, { once: true }));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: compute the exact percent-decoded UTF-8 byte length.\n *\n * @param {string} url\n * @returns {number}\n */\nconst isHexDigit = (charCode) =>\n (charCode >= 48 && charCode <= 57) ||\n (charCode >= 65 && charCode <= 70) ||\n (charCode >= 97 && charCode <= 102);\n\nconst isPercentEncodedByte = (str, i, len) =>\n i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));\n\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex = isHexDigit(a) && isHexDigit(b);\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Valid %XX triplets count as one decoded byte; this matches the bytes that\n // decodeURIComponent(body) would produce before Buffer re-encodes the string.\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {\n bytes += 1;\n i += 2;\n } else if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","export const VERSION = \"1.18.1\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\n// Node's WHATWG URL parser returns `username` and `password` percent-encoded.\n// Decode before composing the `auth` option so credentials such as\n// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the\n// original value for malformed input so a bad encoding never throws.\nconst decodeURIComponentSafe = (value) => {\n if (!utils.isString(value)) {\n return value;\n }\n\n try {\n return decodeURIComponent(value);\n } catch (error) {\n return value;\n }\n};\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst maybeWithAuthCredentials = (url) => {\n const protocolIndex = url.indexOf('://');\n let urlToCheck = url;\n if (protocolIndex !== -1) {\n urlToCheck = urlToCheck.slice(protocolIndex + 3);\n }\n return urlToCheck.includes('@') || urlToCheck.includes(':');\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n // AxiosError we raise while the request body is being streamed. Captured\n // by identity so the catch block can surface it directly, regardless of\n // how the runtime wraps the resulting fetch rejection (undici exposes it\n // as `err.cause`; some browsers drop the original error entirely).\n let pendingBodyError = null;\n\n const maxBodyLengthError = () =>\n new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n\n try {\n // HTTP basic authentication\n let auth = undefined;\n const configAuth = own('auth');\n\n if (configAuth) {\n const username = utils.getSafeProp(configAuth, 'username') || '';\n const password = utils.getSafeProp(configAuth, 'password') || '';\n auth = {\n username,\n password\n };\n }\n\n if (maybeWithAuthCredentials(url)) {\n const parsedURL = new URL(url, platform.origin);\n\n if (!auth && (parsedURL.username || parsedURL.password)) {\n const urlUsername = decodeURIComponentSafe(parsedURL.username);\n const urlPassword = decodeURIComponentSafe(parsedURL.password);\n auth = {\n username: urlUsername,\n password: urlPassword\n };\n }\n\n if (parsedURL.username || parsedURL.password) {\n parsedURL.username = '';\n parsedURL.password = '';\n url = parsedURL.href;\n }\n }\n\n if (auth) {\n headers.delete('authorization');\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(encodeUTF8((auth.username || '') + ':' + (auth.password || '')))\n );\n }\n\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against known-size bodies before dispatch using\n // the body's *actual* size — never a caller-declared Content-Length,\n // which could under-report to slip an oversized body past the check.\n // Unknown-size streams return undefined here and are counted per-chunk\n // below as fetch consumes them.\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await getBodyLength(data);\n if (typeof outboundLength === 'number' && isFinite(outboundLength)) {\n requestContentLength = outboundLength;\n if (outboundLength > maxBodyLength) {\n throw maxBodyLengthError();\n }\n }\n }\n\n // A streamed body under maxBodyLength must be counted as fetch consumes\n // it; its size is never trusted from a caller-declared Content-Length.\n const mustEnforceStreamBody =\n hasMaxBodyLength && (utils.isReadableStream(data) || utils.isStream(data));\n\n const trackRequestStream = (stream, onProgress, flush) =>\n trackStream(\n stream,\n DEFAULT_CHUNK_SIZE,\n (loadedBytes) => {\n if (hasMaxBodyLength && loadedBytes > maxBodyLength) {\n throw (pendingBodyError = maxBodyLengthError());\n }\n onProgress && onProgress(loadedBytes);\n },\n flush\n );\n\n if (\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (onUploadProgress || mustEnforceStreamBody)\n ) {\n requestContentLength =\n requestContentLength == null ? await resolveBodyLength(headers, data) : requestContentLength;\n\n // A declared length of 0 is only trusted to skip the wrap when we are\n // not enforcing a stream limit (which must not rely on that header).\n if (requestContentLength !== 0 || mustEnforceStreamBody) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] =\n (onUploadProgress &&\n progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n )) ||\n [];\n\n data = trackRequestStream(_request.body, onProgress, flush);\n }\n }\n } else if (\n mustEnforceStreamBody &&\n !isRequestSupported &&\n isReadableStreamSupported &&\n method !== 'get' &&\n method !== 'head'\n ) {\n data = trackRequestStream(data);\n } else if (\n mustEnforceStreamBody &&\n isRequestSupported &&\n !supportsRequestStream &&\n method !== 'get' &&\n method !== 'head'\n ) {\n throw new AxiosError(\n 'Stream request bodies are not supported by the current fetch implementation',\n AxiosError.ERR_NOT_SUPPORT,\n config,\n request\n );\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const responseHeaders = AxiosHeaders.from(response.headers);\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n if (err !== canceledError) {\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(canceledError, 'cause', {\n __proto__: null,\n value: err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n }\n throw canceledError;\n }\n\n // Surface a maxBodyLength violation we raised while the request body was\n // being streamed. Matching by identity (rather than reading\n // `err.cause.isAxiosError`) keeps the error deterministic across runtimes\n // and avoids both prototype-pollution reads and mis-attributing a foreign\n // AxiosError that merely happened to land in `err.cause`.\n if (pendingBodyError) {\n request && !pendingBodyError.request && (pendingBodyError.request = request);\n throw pendingBodyError;\n }\n\n // Re-throw AxiosErrors we raised synchronously (data: URL / content-length\n // pre-checks, response size enforcement) without re-wrapping them.\n if (err instanceof AxiosError) {\n request && !err.request && (err.request = request);\n throw err;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n const networkError = new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n );\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(networkError, 'cause', {\n __proto__: null,\n value: err.cause || err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n throw networkError;\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n AxiosError.ERR_NOT_SUPPORT\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object' || options === null) {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n advertiseZstdAcceptEncoding: validators.transitional(validators.boolean),\n validateStatusUndefinedResolves: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls, config);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: config && utils.hasOwnProp(config, 'data') ? config.data : undefined,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n create,\n} = axios;\n\nexport {\n axios as default,\n create,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\n","/*!\n * SPDX-License-Identifier: GPL-3.0-or-later\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n */\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth';\nimport Axios from 'axios';\n/**\n * Get an Axios instance with default Nextcloud headers and CSRF token handling.\n */\nexport function getCancelableClient() {\n const client = Axios.create({\n headers: {\n requesttoken: getRequestToken() ?? '',\n 'X-Requested-With': 'XMLHttpRequest',\n },\n });\n onRequestTokenUpdate((token) => {\n client.defaults.headers.requesttoken = token;\n });\n return Object.assign(client, {\n CancelToken: Axios.CancelToken,\n isCancel: Axios.isCancel,\n });\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { fetchRequestToken } from '@nextcloud/auth';\nimport { isAxiosError } from 'axios';\nconst RETRY_KEY = '_nextcloudCsrfTokenReloaded';\n/**\n * Handle CSRF token errors in Axios requests.\n *\n * @param axios - The axios instance the interceptor is attached to\n */\nexport function onCsrfTokenError(axios) {\n return async (error) => {\n if (!isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n if (config\n && !(RETRY_KEY in config)\n && response?.status === 412\n && response?.data?.message === 'CSRF check failed') {\n console.warn(`Request to ${responseURL} failed because of a CSRF mismatch. Fetching a new token.`);\n const token = await fetchRequestToken();\n axios.defaults.headers.requesttoken = token;\n return axios({\n ...config,\n [RETRY_KEY]: true,\n headers: {\n ...config.headers,\n requesttoken: token,\n },\n });\n }\n throw error;\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { isAxiosError } from 'axios';\nconst RETRY_DELAY_KEY = '_nextcloudMaintenanceModeRetryDelay';\n/**\n * Handles Nextcloud maintenance mode errors in Axios requests.\n *\n * @param axios - The current Axios instance\n */\nexport function onMaintenanceModeError(axios) {\n return async (error) => {\n if (!isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n const headers = response?.headers;\n let retryDelay = config?.[RETRY_DELAY_KEY] ?? 1;\n /**\n * Retry requests if they failed due to maintenance mode\n *\n * The delay is exponential. It starts at 2s and then doubles\n * until a final retry after 32s. This results in roughly 1m of\n * retries until we give up and throw the axios error towards\n * the caller.\n */\n if (status === 503\n && headers?.['x-nextcloud-maintenance-mode'] === '1'\n && config?.retryIfMaintenanceMode) {\n retryDelay *= 2;\n if (retryDelay > 32) {\n console.error('Retry delay exceeded one minute, giving up.', { responseURL });\n throw error;\n }\n console.warn(`Request to ${responseURL} failed because of maintenance mode. Retrying in ${retryDelay}s`);\n await new Promise((resolve) => {\n setTimeout(resolve, retryDelay * 1000);\n });\n return axios({\n ...config,\n [RETRY_DELAY_KEY]: retryDelay,\n });\n }\n throw error;\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { isAxiosError } from 'axios';\n/**\n * Axios response interceptor onError callback.\n * This interceptor checks if the response failed because of a expired user session\n * and if enabled it will cause a redirect to the login.\n *\n * @param error - The response error\n */\nexport async function onNotLoggedInError(error) {\n if (isAxiosError(error)) {\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n if (status === 401\n && response?.data?.message === 'Current user is not logged in'\n && config?.reloadExpiredSession\n && globalThis.location?.reload) {\n console.error(`Request to ${responseURL} failed because the user session expired. Reloading the page …`);\n if (globalThis.OC?.reload) {\n globalThis.OC.reload();\n }\n else {\n globalThis.location.reload();\n }\n }\n }\n throw error;\n}\n","/**\n * SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { getCancelableClient } from \"./client.js\";\nimport { onCsrfTokenError } from \"./interceptors/csrf-token.js\";\nimport { onMaintenanceModeError } from \"./interceptors/maintenance-mode.js\";\nimport { onNotLoggedInError } from \"./interceptors/not-logged-in.js\";\nconst cancelableClient = getCancelableClient();\ncancelableClient.interceptors.response.use((r) => r, onCsrfTokenError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onMaintenanceModeError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onNotLoggedInError);\nexport { isAxiosError, isCancel } from 'axios';\nexport default cancelableClient;\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { onUnmounted, ref } from 'vue'\n\nexport interface ThermalZone {\n\tzone: string\n\ttype: string\n\ttemp: number\n}\n\nexport interface LiveData {\n\tcpu: { load: number[] | false }\n\tmemory: { total: number, free: number, swap_total: number, swap_free: number }\n\tservertime: string\n\tuptime: string\n\tthermalzones: ThermalZone[]\n}\n\nexport function useLiveData() {\n\tconst data = ref(null)\n\tconst tick = ref(0)\n\n\tlet timeoutId: ReturnType | null = null\n\tlet stopped = false\n\n\tasync function poll() {\n\t\ttry {\n\t\t\tconst response = await axios.get(generateUrl('/apps/serverinfo/update'))\n\t\t\tdata.value = response.data\n\t\t\ttick.value++\n\t\t} catch {\n\t\t\t// Keep previous values on error\n\t\t} finally {\n\t\t\tif (!stopped) {\n\t\t\t\ttimeoutId = setTimeout(poll, 2000)\n\t\t\t}\n\t\t}\n\t}\n\n\ttimeoutId = setTimeout(poll, 0)\n\n\tonUnmounted(() => {\n\t\tstopped = true\n\t\tif (timeoutId !== null) {\n\t\t\tclearTimeout(timeoutId)\n\t\t\ttimeoutId = null\n\t\t}\n\t})\n\n\treturn { data, tick }\n}\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { ref } from 'vue'\n\nexport interface StaticData {\n\thostname: string\n\tosname: string\n\tcpu: { name: string, threads: number }\n\tdiskinfo: Array<{ device: string, fs: string, used: number, available: number, percent: string, mount: string }>\n\tnetworkinfo: { hostname: string, gateway: string, dns: string }\n\tnetworkinterfaces: Array<{\n\t\tname: string\n\t\tup: boolean\n\t\tipv4: string[]\n\t\tipv6: string[]\n\t\tmac: string\n\t\tspeed: string\n\t\tduplex: string\n\t\tloopback: boolean\n\t}>\n\tocs: string\n\tstorage: { num_files: number, num_storages: number, num_users: number }\n\tshares: {\n\t\tnum_shares: number\n\t\tnum_shares_user: number\n\t\tnum_shares_groups: number\n\t\tnum_shares_link: number\n\t\tnum_shares_mail: number\n\t\tnum_fed_shares_sent: number\n\t\tnum_fed_shares_received: number\n\t\tnum_shares_room: number\n\t}\n\tphp: {\n\t\tversion: string\n\t\tmemory_limit: number\n\t\tmax_execution_time: number\n\t\tupload_max_filesize: number\n\t\topcache_revalidate_freq: number\n\t\textensions: string[] | null\n\t}\n\tfpm: Record | false\n\tdatabase: { type: string, version: string, size: number }\n\tactiveUsers: { last1hour: number, last24hours: number, last7days: number, last1month: number }\n\tfreeSpace: number | null\n\tmemTotal: number\n\tphpinfo: boolean\n\tphpinfoUrl: string\n}\n\nexport function useStaticData() {\n\tconst data = ref(null)\n\tconst loading = ref(true)\n\tconst error = ref(false)\n\n\tasync function load() {\n\t\ttry {\n\t\t\tconst response = await axios.get(generateUrl('/apps/serverinfo/data'))\n\t\t\tdata.value = response.data\n\t\t} catch {\n\t\t\terror.value = true\n\t\t} finally {\n\t\t\tloading.value = false\n\t\t}\n\t}\n\n\tload()\n\n\treturn { data, loading, error }\n}\n","\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport SettingsAdmin from './views/SettingsAdmin.vue'\n\nimport './main.css'\n\ncreateApp(SettingsAdmin).mount('#serverinfo-settings')\n"],"names":["global","makeMap","str","map","key","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","writable","looseToNumber","n","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","a","b","equal","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","normalizeCssVarValue","activeEffectScope","EffectScope","detached","l","currentEffectScope","current","fromParent","last","getCurrentScope","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","next","error","err","head","tail","prev","removeDep","refreshComputed","computed","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","e","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","getDepFromReactive","object","depMap","reactiveReadArray","array","raw","toReactive","shallowReadArray","toRaw","toWrapped","isReadonly","toReadonly","isReactive","arrayInstrumentations","iterator","args","x","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self","method","wrapValue","iter","isShallow","result","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","index","wrapInitialAccumulator","acc","isNonTrackableKeys","builtInSymbols","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","readonly","MutableReactiveHandler","isArrayWithIntegerKey","isOldValueReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","done","createReadonlyMethod","createInstrumentations","shallow","instrumentations","rawKey","has","callback","observed","proto","rawValue","valueToAdd","get","hadItems","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","reactive","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isProxy","markRaw","r","ref","createRef","shallowRef","RefImpl","useDirectValue","unref","ref2","toValue","source","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","set","newVal","customRef","ObjectRefImpl","_object","_defaultValue","nestedRef","GetterRefImpl","_getter","toRef","defaultValue","propertyToRef","ComputedRefImpl","setter","isSSR","getterOrOptions","debugOptions","getter","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","failSilently","owner","cleanups","watch","cb","options","immediate","deep","once","scheduler","augmentJob","call","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","s","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","flushPostFlushCbs","deduped","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","withDirectives","vnode","directives","getComponentPublicInstance","bindings","dir","modifiers","invokeDirectiveHook","prevVNode","oldBindings","binding","hook","provide","currentInstance","provides","parentProvides","inject","treatDefaultAsFactory","getCurrentInstance","currentApp","ssrContextKey","useSSRContext","watchSyncEffect","doWatch","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","watchStopHandle","isPre","queuePostRenderEffect","isFirstRun","watch$1","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","path","segments","TeleportEndKey","isTeleport","leaveCbKey","setTransitionHooks","hooks","defineComponent","extraOptions","markAsyncBoundary","isTemplateRefKey","refs","desc","pendingSetRefMap","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","isAsyncWrapper","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","canSetRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","pendingSetRef","isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","createHook","lifecycle","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","component","resolveAsset","warnMissing","maybeSelfReference","Component","selfName","getComponentName","resolve","registry","renderList","renderItem","cached","sourceIsArray","sourceIsReactiveArray","isReadonlySource","keys","createSlots","slots","dynamicSlots","slot","j","renderSlot","props","fallback","noSlotted","hasProps","openBlock","createBlock","Fragment","createVNode","validSlotContent","ensureValidVNode","slotKey","rendered","vnodes","child","isVNode","Comment","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","state","PublicInstanceProxyHandlers","data","accessCache","appContext","shouldCacheAccess","publicGetter","cssModule","globalProperties","cssModules","descriptor","useSlots","getContext","calledFunctionName","createSetupContext","normalizePropsOrEmits","mergeModels","applyOptions","callHook","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","resolveInjections","methodHandler","opt","createWatcher","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","h","handler","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","namespace","lastApp","useModel","camelizedName","hyphenatedName","getModelModifiers","localValue","prevSetValue","prevEmittedValue","propValue","emittedValue","rawProps","i2","modelName","emit","event","rawArgs","handlerName","onceHandler","mixinEmitsCache","normalizeEmitsOptions","comp","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","renderComponentRoot","withProxy","propsOptions","attrs","renderCache","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","root","shapeFlag","filterModelListeners","cloneVNode","shouldUpdateComponent","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","hasPropValueChanged","emitsOptions","nextKeys","nextProp","prevProp","updateHOCHostEl","parent","suspense","internalObjectProto","createInternalObject","isInternalObject","initProps","isStateful","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","mixinPropsCache","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","children","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","slotScopeIds","isSameVNodeType","getNextHostNode","unmount","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","nextSibling","removeStaticNode","mountElement","customElement","patchElement","vnodeHook","transition","dirs","mountChildren","resolveChildrenNamespace","setScopeId","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","subTree","isSuspense","parentVNode","cloneIfMounted","dynamicChildren","oldProps","newProps","toggleRecurse","patchBlockChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","placeholder","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","update","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","anchorVNode","resolveAsyncComponentPlaceholder","move","moveType","leave","delayLeave","afterLeave","remove2","performLeave","wasLeaving","doRemove","cacheIndex","memo","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","shouldInvalidateMemo","removeFragment","performRemove","bum","um","invalidateMount","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","anchorVnode","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","style","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","internalSetCurrentInstance","setInSSRSetupState","g","registerGlobalSetter","setters","unsetCurrentInstance","setupResult","setupStatefulComponent","setup","setupContext","isAsyncSetup","resolvedResult","handleSetupResult","finishComponentSetup","skipOptions","attrsProxyHandlers","includeInferred","computed$1","propsOrChildren","policy","tt","unsafeToTrustedHTML","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","node","selector","content","before","template","wrapper","vtcKey","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","setVarsOnNode","setVars","setVarsOnVNode","ob","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","shouldPreserveTextareaResizeStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","attrName","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","originalStop","handlers","isNativeOn","patchProp","shouldSetAsProp","shouldSetAsPropForVueCE","camelize$1","useCssModule","modules","getModelAssigner","assignKey","vModelCheckbox","_","modelValue","elementValue","getValue","checked","assign","found","filtered","getCheckboxValue","setChecked","rendererOptions","renderer","ensureRenderer","createApp","mount","containerOrSelector","normalizeContainer","resolveRootNamespace","_generateUrlPath","url","params","allOptions","_build","generateUrl","baseOrRootURL","getRootUrl","webroot","pos","_arrayLikeToArray","_arrayWithHoles","_iterableToArrayLimit","t","f","o","_nonIterableRest","_slicedToArray","_unsupportedIterableToArray","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","construct","func","_len","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","arrayIsArray","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","numberToString","booleanToString","bigintToString","symbolToString","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","_len3","_key3","_len4","_key4","addToSet","transformCaseFunc","element","lcElement","cleanArray","clone","newObject","_ref2","_ref3","property","stringifyValue","valueAsRecord","valueToString","lookupGetter","stringified","fallbackValue","isRegex","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","_resolveSetOption","cfg","createDOMPurify","window","DOMPurify","document","originalDocument","currentScript","HTMLTemplateElement","Node","Element","NodeFilter","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","trustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicy","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","_createTrustedScriptURL","_getDefaultTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","MUSTACHE_EXPR$1","ERB_EXPR$1","TMPLIT_EXPR$1","DATA_ATTR$1","ARIA_ATTR$1","IS_SCRIPT_OR_DATA$1","ATTR_WHITESPACE$1","CUSTOM_ELEMENT$1","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","customElementHandling","previousTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkSvgNamespace","tagName","parentTagName","_checkMathMlNamespace","_checkHtmlNamespace","_checkValidNamespace","_forceRemove","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","attributes","attribute","_removeAttribute","_stripDisallowedAttributes","stack","_neutralizePatchLinkage","nodeType","lcTag","_initDocument","dirty","leadingWhitespace","matches","dirtyPayload","body","_createNodeIterator","_stripTemplateExpressions","_scrubTemplateExpressions2","_node$querySelectorAl","walker","currentNode","templates","tmpl","_isDocumentFragment","_isClobbered","realTagName","_isNode","_executeHooks","_isUnsafeNode","_sanitizeDisallowedNode","_isBasicCustomElement","parentNode","childCount","hoisted","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_sanitizeElements","removed","_isValidAttribute","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","namespaceURI","_setAttributeValue","_sanitizeAttributes","hookEvent","attr","attrValue","initValue","_sanitizeShadowDOM2","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","isElement","rootName","sr","importedNode","returnNode","inPlace","nn","walkRoot","nodeIterator","entry","serializedHTML","entryPoint","hookFunction","purify","matchHtmlRegExp","escapeHtml_1","escapeHtml","string","match","escape","lastIndex","getLanguage","getAppTranslations","appId","number","translate","placeholdersOrNumber","optionsOrNumber","identity","optSanitize","optEscape","escapeHTML","isValidReplacement","text2","vars2","number2","replacement","translation","translatePlural","textSingular","textPlural","identifier","bundle","plural","getPlural","language","_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","_hoisted_1","_createBlock","_resolveDynamicComponent","__props","_createTextVNode","percentageOfAllUsers","count","percentage","SectionHeading","AccountGroup","_unref","_hoisted_2","_hoisted_4","_hoisted_5","_toDisplayString","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","round","lim","p2b","n2b","b2n","n2p","map$1","hex","h1","h2","eq","isShort","hexParse","alpha","hexString","HUE_RE","hsl2rgbn","k","hsv2rgbn","hwb2rgbn","w","rgb","hueValue","d","max","rgb2hsl","min","calln","hsl2rgb","hwb2rgb","hsv2rgb","hue","hueParse","p1","p2","rotate","deg","hslString","names$1","unpack","unpacked","tkeys","ok","nk","names","nameParse","RGB_RE","rgbParse","rgbString","interpolate","rgb1","rgb2","modHSL","ratio","fromObject","input","functionParse","Color","color","weight","w2","w1","noop","isNullOrUndef","isNumberFinite","finiteOrDefault","valueOrDefault","toPercentage","dimension","toDimension","each","loopable","reverse","_elementsEqual","a0","a1","ilen","v0","v1","klen","isValidKey","_merger","tval","sval","merge","sources","merger","mergeIf","_mergerIf","keyResolvers","_splitKey","parts","part","_getKeyResolver","resolveObjectKey","_capitalize","defined","setsEqual","_isClickEvent","PI","TAU","PITAU","INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","almostEquals","y","epsilon","niceNum","range","roundedRange","niceRange","fraction","_factorize","sqrt","isNonPrimitive","isNumber","almostWhole","rounded","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","_lookup","table","cmp","hi","lo","mid","_lookupByKey","ti","_rlookupByKey","_filterBetween","arrayEvents","listenArrayEvents","listener","unlistenArrayEvents","stub","listeners","_arrayUnique","items","requestAnimFrame","throttled","argsToUse","ticking","debounce","delay","timeout","_toLeftRightCenter","align","_alignStartEnd","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","iScale","vScale","_parsed","spanGaps","axis","minDefined","maxDefined","distanceToDefinedLo","point","distanceToDefinedHi","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","changed","atEdge","elasticIn","elasticOut","effects","isPatternOrGradient","getHoverColor","numbers","colors","applyAnimationsDefaults","defaults","applyLayoutsDefaults","intlCache","getNumberFormat","locale","cacheKey","formatter","formatNumber","num","formatters","tickValue","ticks","notation","delta","maxTick","calculateDelta","logDelta","numDecimal","Ticks","applyScaleDefaults","overrides","descriptors","getScope$1","Defaults","_descriptors","_appliers","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","appliers","toFontString","font","_measureText","gc","longest","textWidth","_alignPixel","chart","pixel","width","devicePixelRatio","halfWidth","clearCanvas","canvas","drawPoint","drawPointLegend","xOffset","yOffset","size","cornerRadius","xOffsetW","yOffsetW","rotation","radius","rad","_isPointInArea","area","margin","clipArea","unclipArea","_steppedLineTo","previous","flip","mode","midpoint","_bezierCurveTo","setRenderOpts","opts","decorateText","line","metrics","left","right","top","bottom","yDecoration","drawBackdrop","oldColor","renderText","lines","stroke","addRoundedRectPath","rect","LINE_HEIGHT","FONT_STYLE","toLineHeight","numberOrZero","_readValueToProps","objProps","read","toTRBL","toTRBLCorners","toPadding","toFont","inputs","info","_addGrace","minmax","grace","beginAtZero","change","keepZero","add","createContext","parentContext","_createResolver","scopes","rootScopes","getTarget","finalRootScopes","_resolve","_cached","_resolveWithPrefixes","getKeysFromAllScopes","storage","_attachContext","subProxy","descriptorDefaults","_resolveWithContext","_scriptable","_indexable","_allKeys","readKey","prefix","needsSubResolver","_proxy","_context","_subProxy","_resolveScriptable","_resolveArray","_stack","createSubResolver","isIndexable","resolver","resolveFallback","getScope","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","EPSILON","getPoint","getValueAxis","indexAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","pointsLen","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointAfter","monotoneCompute","valueAxis","pointBefore","iPixel","vPixel","splineCurveMonotone","slopeDelta","capControlPoint","pt","capBezierPoints","inArea","inAreaPrev","inAreaNext","_updateBezierControlPoints","loop","controlPoints","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","getStyle","positions","getPositionedStyle","styles","useOffsetPos","getCanvasPosition","touches","offsetX","offsetY","box","getRelativePosition","currentDevicePixelRatio","borderBox","paddings","borders","height","getContainerSize","maxWidth","maxHeight","containerStyle","containerBorder","containerPadding","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","containerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","supportsEventListenerOptions","passiveSupported","readUsedSize","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","getRightToLeftAdapter","rectX","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","rtl","overrideTextDirection","direction","original","restoreTextDirection","propertyFn","normalizeSegment","getSegment","segment","bounds","startBound","endBound","between","normalize","_boundSegment","compare","inside","subStart","startIsBefore","endIsBefore","shouldStart","shouldStop","_boundSegments","findStartAndEnd","solidSegments","_computeSegments","segmentOptions","splitByStyles","completeLoop","doSplitByStyles","chartContext","baseStyle","readStyle","datasetIndex","addStyle","st","styleChanged","getSizeForArea","scale","chartArea","field","getDatasetArea","getDatasetClipArea","clip","Animator","anims","date","callbacks","numSteps","remaining","draw","charts","animator","transparent","interpolators","factor","c0","Animation","currentValue","elapsed","remain","duration","promises","rej","Animations","config","animationOptions","animatedProps","option","newOptions","resolveTargetOptions","animations","awaitAll","running","animation","properties","anim","scaleClip","allowedOverflow","defaultClip","toClip","getSortedDatasetIndices","filterVisible","metasets","applyStack","dsIndex","singleMode","otherValue","convertObjectDataToArray","iAxisKey","vAxisKey","adata","isStacked","stacked","getStackKey","indexScale","valueScale","getUserBounds","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","positive","updateStacks","controller","parsed","iAxis","vAxis","itemStacks","visualValues","getFirstScaleId","scales","createDatasetContext","createDataContext","clearStacks","isDirectUpdateMode","cloneIfNotShared","shared","createStack","canStack","DatasetController","dataset","chooseId","xid","yid","rid","iid","vid","scaleID","_data","resetNewElements","stackChanged","oldStacked","scopeKeys","_stacked","sorted","isNotInOrderComparedToPrev","labels","singleScale","xAxisKey","yAxisKey","parsedValue","otherScale","otherMin","otherMax","_skip","elements","active","drawActiveElementsOnTop","elementType","sharing","sharedOptions","firstOpts","previouslySharedOptions","includeOptions","arg1","arg2","numMeta","numData","newCount","getRatioAndOffset","circumference","cutout","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","DoughnutController","pointStyle","textAlign","useBorderRadius","borderRadius","label","legendItem","legend","arcs","spacing","maxSize","chartWeight","maxRadius","outerRadius","innerRadius","radiusLength","animationOpts","centerX","centerY","animateScale","arc","metaData","total","ringWeightOffset","LineController","_dataset","maxGapLength","directUpdate","pointsCount","prevParsed","nullData","border","lastPoint","abstract","DateAdapterBase","members","adapters","binarySearch","metaset","intersect","_sorted","lookupMethod","evaluateInteractionItems","position","getDistanceMetricForAxis","useX","useY","deltaX","deltaY","getIntersectItems","useFinalPosition","includeInvisible","getNearestRadialItems","evaluationFunc","getNearestCartesianItems","distanceMetric","minDistance","inRange","center","distance","getNearestItems","getAxisItems","rangeMethod","intersectsItem","Interaction","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","wrapBoxes","boxes","layoutBoxes","stackWeight","buildStacks","layouts","setLayoutDims","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","buildLayoutBoxes","centerHorizontal","centerVertical","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","newWidth","newHeight","widthChanged","heightChanged","handleMaxPadding","updatePos","getMargins","horizontal","marginForPositions","fitBoxes","refitBoxes","refit","same","other","setBoxDims","placeBoxes","userPadding","layoutItem","minPadding","padding","availableWidth","availableHeight","verticalBoxes","horizontalBoxes","visibleVerticalBoxCount","BasePlatform","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","isNullOrEmpty","initCanvas","renderHeight","renderWidth","displayWidth","displayHeight","eventListenerOptions","addListener","removeListener","fromNativeEvent","nodeListContains","nodeList","createAttachObserver","observer","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","resize","listenDevicePixelRatioChanges","unlistenDevicePixelRatioChanges","createResizeObserver","releaseObserver","createProxyAndListen","DomPlatform","initial","proxies","_detectPlatform","Element$1","final","autoSkip","tickOpts","determinedMaxTicks","determineMaxTicks","ticksLimit","majorIndices","getMajorIndices","numMajorIndices","first","newTicks","skipMajors","calculateSpacing","avgMajorSpacing","skip","offset","tickLength","maxScale","maxChart","evenMajorSpacing","getEvenSpacing","factors","majorStart","majorEnd","length","diff","reverseAlign","offsetFromEdge","edge","getTicksLimit","ticksLength","maxTicksLimit","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","garbageCollect","caches","gcLen","getTickMarkLength","getTitleHeight","createScaleContext","createTickContext","tick","titleAlign","titleArgs","titleX","titleY","positionAxisID","Scale","_userMin","_userMax","_suggestedMin","_suggestedMax","metas","sampleSize","samplingEnabled","reversePixels","startPixel","endPixel","numTicks","minRotation","maxRotation","labelRotation","tickWidth","maxLabelDiagonal","labelSizes","maxLabelWidth","maxLabelHeight","minSize","titleOpts","gridOpts","display","isHorizontal","titleHeight","widest","highest","tickPadding","angleRadians","cos","sin","labelHeight","labelWidth","isRotated","labelsBelowTicks","offsetLeft","offsetRight","paddingLeft","paddingRight","paddingTop","paddingBottom","widths","heights","widestLabelSize","highestLabelSize","jlen","tickFont","fontString","lineHeight","nestedLabel","valueAt","idx","decimal","optionTicks","rot","grid","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","limit","step","optsAtIndex","optsAtIndexBorder","lineWidth","lineColor","borderDash","borderDashOffset","tickColor","tickBorderDash","tickBorderDashOffset","crossAlign","mirror","tickAndPadding","hTickAndPadding","lineCount","textOffset","textBaseline","halfCount","strokeColor","strokeWidth","tickTextAlign","backdrop","labelPadding","backgroundColor","drawLine","lastLineWidth","renderTextOptions","title","tz","gz","bz","axisID","fontSize","TypedRegistry","override","parentScope","isIChartComponent","registerDefaults","itemDefaults","routeDefaults","routes","propertyParts","sourceName","sourceScope","Registry","typedRegistry","reg","itemReg","camelMethod","PluginService","filter","all","plugins","allPlugins","createDescriptors","previousDescriptors","localIds","getOpts","pluginOpts","getIndexAxis","datasetDefaults","getAxisFromDefaultScaleID","getDefaultScaleIDFromAxis","idMatchesAxis","axisFromPosition","determineAxis","scaleOptions","getAxisFromDataset","retrieveAxisFromDatasets","boundDs","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","scaleConf","defaultId","defaultScaleOptions","defaultID","initOptions","initData","initConfig","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","datasetType","mainScope","resetCache","_scopeCache","keyLists","subPrefixes","getResolver","needContext","subResolver","resolverCache","hasFunction","isScriptable","scriptable","indexable","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","onAnimationsComplete","onAnimationProgress","getCanvas","instances","getChart","moveNumericKeys","intKey","determineLastEvent","lastEvent","inChartArea","isClick","Chart$1","invalidatePlugins","userConfig","initialCanvas","existingChart","maintainAspectRatio","_aspectRatio","newSize","newRatio","scalesOptions","axisOptions","scaleOpts","isRadial","scaleType","scaleClass","hasUpdated","datasets","newControllers","ControllerClass","datasetElementType","dataElementType","animsDisabled","_active","_lastEvent","existingEvents","newEvents","_hiddenIndices","changes","_dataChanges","datasetCount","makeSet","changeSet","noArea","layers","visible","dataIndex","platform","_add","_remove","attached","enabled","activeElements","lastActive","pluginId","replay","hoverOptions","eventFilter","Chart","clipSelf","borderWidth","borderJoinStyle","outerAngleClip","innerAngleClip","clipWidth","clipArc","pixelMargin","angleMargin","toRadiusCorners","parseBorderRadius$1","angleDelta","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","rThetaToXY","theta","pathArc","circular","innerR","spacingOffset","noSpacingInnerRadius","noSpacingOuterRadius","avNogSpacingRadius","adjustedAngle","beta","angleOffset","outerStart","outerEnd","innerStart","innerEnd","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","outerMidAdjustedAngle","pCenter","p4","innerMidAdjustedAngle","p8","outerStartX","outerStartY","outerEndX","outerEndY","drawArc","fullCircles","drawBorder","inner","ArcElement","chartX","chartY","rAdjust","_circumference","nonZeroBetween","betweenAngles","withinRadius","halfAngle","halfRadius","fix","radiusOffset","lineTo","getLineMethod","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","fastPathSegment","avgX","countX","prevX","lastY","pointIndex","drawX","truncX","_getSegmentMethod","_getInterpolationMethod","strokePathWithCache","strokePathDirect","segmentMethod","usePath2D","LineElement","_interpolate","interpolated","inRange$1","PointElement","mouseX","mouseY","_segments","tpoints","_findSegmentEnd","_getBounds","targetSegments","tgt","subBounds","fillSources","fillSource","_getEdge","_pointsFromSegments","boundary","linePoints","_createBoundaryLine","_loop","_shouldApplyFill","_resolveTarget","propagate","fill","visited","_decodeFill","parseFillOption","decodeTargetIndex","firstCh","_getTargetPixel","_getTargetValue","startValue","fillOption","_buildStackLine","sourcePoints","linesBelow","getLinesBelow","addPointsBelow","below","sourcePoint","postponed","findPoint","pointValue","firstValue","lastValue","simpleArc","_getTarget","getLineByIndex","computeBoundary","computeCircularBoundary","computeLinearBoundary","_drawfill","lineOpts","above","doFill","fillColor","clipVertical","clipHorizontal","clipY","lineLoop","clipX","src","notShape","clipBounds","interpolatedLineTo","targetLoop","interpolatedPoint","_args","positioners","xSet","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getTooltipSize","tooltip","footer","boxWidth","boxHeight","bodyFont","titleFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","bodyLineHeight","widthPadding","maxLineWidth","determineYAlign","doesNotFitWithAlign","xAlign","caret","determineXAlign","yAlign","chartWidth","determineAlignment","alignX","alignY","paddingAndSize","getBackgroundPoint","alignment","caretSize","caretPadding","topLeft","topRight","bottomLeft","bottomRight","getAlignedX","getBeforeAfterBodyLines","createTooltipContext","tooltipItems","overrideCallbacks","defaultCallbacks","labelCount","tooltipItem","invokeCallbackWithFallback","Tooltip","beforeTitle","afterTitle","bodyItems","scoped","beforeFooter","afterFooter","labelColors","labelPointStyles","labelTextColors","positionAndSize","backgroundPoint","tooltipPoint","caretPosition","ptX","ptY","x3","y3","titleSpacing","rtlHelper","labelColor","labelPointStyle","colorX","rtlColorX","yOffSet","colorY","drawOptions","outerX","innerX","bodySpacing","bodyAlign","displayColors","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","tooltipSize","animX","animY","opacity","hasTooltipContent","positionChanged","caretX","caretY","plugin_tooltip","addIfString","addedLabels","findOrAddLabel","_getLabelForValue","CategoryScale","added","generateTicks$1","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","unit","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","decimalPlaces","relativeLabelSize","LinearScaleBase","setMin","setMax","minSign","maxSign","stepSize","numericGeneratorOptions","LinearScale","INTERVALS","UNITS","sorter","parse","adapter","parser","isoWeekday","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","addTick","time","timestamps","timestamp","setMajorTicks","majorUnit","major","ticksFromTimestamps","TimeScale","_applyBounds","timeOpts","minor","weekday","hasWeekday","format","formats","fmt","minorFormat","majorFormat","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","displayFormats","exampleLabel","prevSource","nextSource","prevTarget","nextTarget","span","TimeSeriesScale","curr","CommonProps","A11yProps","Props","compatProps","toRawIfProxy","cloneProxy","setOptions","nextOptions","setLabels","currentData","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","cloneData","nextData","param","canvasRef","chartRef","renderChart","clonedData","proxiedData","destroyChart","param1","nextOptionsProxy","nextDataProxy","prevOptionsProxy","prevDataProxy","shouldUpdate","prevOptions","prevLabels","prevDatasets","createTypedChart","registerables","reforwardRef","Line","formatMegabytes","mb","units","withAlpha","formatBytes","bytes","cssColor","primaryColor","MAX_POINTS","Filler","passiveColor","datasetStyle","chartData","chartOptions","footerText","pct","load","cpuload","Chip","Database","canvasRefs","diskName","device","chartLabel","disk","shortPercent","percent","centerLabel","usedColor","availableColor","Harddisk","_Fragment","_renderList","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","hasMemory","hasSwap","ramDataset","swapDataset","maxGB","memText","used","swapText","memTotalGB","swapTotalGB","memUsageGB","ramData","swapUsageGB","swapData","Memory","NC_FORM_BOX_CONTEXT_KEY","useNcFormBox","_export_sfc","sfc","ncFormBox","ncFormBox_row","ncFormBox__item","ncFormBox_col","style0","NcFormBox","whenever","ov","onInvalidate","mdiArrowTopRight","mdiCheck","mdiContentCopy","mdiOpenInNew","createElementId","majorVersion","isLegacy","formBoxItemClass","descriptionId","hasDescription","createElementVNode","formBoxItem","formBoxItem__description","formBoxItem_legacy","formBoxItem_inverted","formBoxItem__element","formBoxItem__content","formBoxItem__icon","NcFormBoxItem","iconSize","cleanSvg","svgDocument","NcIconSvgWrapper","routerKey","buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","output","extraBytes","maxChunkLength","len2","ieee754","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","exports","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","createBuffer","buf","encodingOrOffset","allocUnsafe","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","assertSize","alloc","encoding","actual","fromArrayLike","arrayView","copy","byteOffset","numberIsNaN","list","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","out","hexSliceLookupTable","newBuf","checkOffset","ext","noAssert","mul","defineBigIntMethod","validateNumber","boundsError","checkInt","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","msg","received","addNumericalSeparator","checkBounds","INVALID_BASE64_RE","base64clean","leadSurrogate","byteArray","dst","alphabet","i16","BufferBigIntNotDefined","useButtonLink","hasVueRouterContext","isLink","isHyperLink","isRouterLink","isButton","icon","formBoxButton","NcFormBoxButton","GettextWrapper","pluralFunction","dict","msgid","msgidPlural","msgstr","placeholders","singular","GettextBuilder","getGettextBuilder","gettext","chunks","chunk","translations","decompressed","t22","DELAY","useCopy","isCopied","altText","__emit","cx","iconToggleSwitch","NcIconToggleSwitch","inputId","formBoxSwitch__input","NcFormBoxSwitch","getDescriptionId","hasContentOnly","formGroup","formGroup_noGap","formGroup__label","formGroup__description","formGroup__content","formGroup__content_only","NcFormGroup","TOKEN_HEADER","suggestedToken","byte","formatJson","skipApps","skipUpdate","endpointUrl","Connection","NcFormBoxCopyButton","Lan","iface","Puzzle","LanguagePhp","Cogs","_hoisted_21","ShareVariant","Monitor","Thermometer","zone","getDefaultExportFromCjs","browser","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","Item","browserExports","process$1","debug_1","define_process_env_default","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","constants","require$$0","debug","require$$1","module","re","safeRe","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","token","createToken","isGlobal","safe","looseOption","emptyOpts","parseOptions_1","numeric","compareIdentifiers","anum","bnum","require$$2","parseOptions","require$$3","require$$4","SemVer","release","identifierBase","prerelease","semver","major_1","loose","throwErrors","er","valid_1","ProxyBus","bus2","valid","SimpleBus","bus","getBus","subscribe","unsubscribe","ScopedStorage","wrapped","persistent","StorageBuilder","persist","clear","getBuilder","_subscribeToTokenUpdates","getRequestToken","setRequestToken","fetchRequestToken","response","onRequestTokenUpdate","_internal","bind","toString","toStringTag","hasOwnInPrototypeChain","thing","getSafeProp","kindOf","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","prototype","isEmptyObject","isFile","isReactNativeBlob","isReactNative","formData","isBlob","isFileList","isStream","G","FormDataCtor","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","allOwnKeys","findKey","_global","isContextDefined","objs","caseless","skipUndefined","assignValue","targetKey","symbols","symbol","propertyIsEnumerable","stripBOM","inherits","constructor","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","toArray","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","isHTMLForm","toCamelCase","isRegExp","reduceDescriptors","reducer","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","isSpecCompliantForm","toJSONObject","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","asap","isIterable","isSafeIterable","utils$1","ignoreDuplicateOf","utils","parseHeaders","rawHeaders","trimSPorHTAB","INVALID_UNICODE_HEADER_VALUE_CHARS","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","sanitizeHeaderValue","sanitizeByteStringHeaderValue","toByteStringHeaderObject","headers","byteStringHeaders","header","$internals","normalizeHeader","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","matcher","deleted","deleteHeader","targets","asStrings","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","REDACTED","hasOwnOrPrototypeToJSON","redactConfig","redactKeys","lowerKeys","AxiosError","request","customProps","axiosError","message","serializedConfig","httpAdapter","DEFAULT_FORM_DATA_MAX_DEPTH","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","metaTokens","visitor","defaultVisitor","indexes","_Blob","maxDepth","useBlob","convertValue","throwIfMaxDepthExceeded","stringifyWithDepthLimit","ancestors","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","_options","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","toURLEncodedForm","helpers","MAX_DEPTH","throwIfDepthExceeded","parsePropPath","pattern","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","own","stringifySafely","contentType","hasJSONContentType","isObjectPayload","formSerializer","env","_FormData","transitional","forcedJSONParsing","responseType","JSONRequested","strictJSONParsing","status","transformData","isCancel","settle","reject","validateStatus","parseProtocol","speedometer","samplesCount","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","threshold","lastArgs","timer","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","rawLoaded","loaded","progressBytes","rate","progressEventDecorator","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","malformedHttpProtocol","httpProtocolControlCharacters","stripLeadingC0ControlOrSpace","normalizeURLForProtocolCheck","assertValidHttpProtocolURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","getMergedTransitionalOption","transitional2","transitional1","mergeDirectKeys","mergeMap","configValue","FORM_DATA_CONTENT_HEADERS","setFormDataHeaders","formHeaders","encodeUTF8","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","username","password","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","timeoutErrorMessage","cancel","CanceledError","protocol","composeSignals","signals","aborted","onabort","reason","signal","streamChunk","chunkSize","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","isHexDigit","charCode","isPercentEncodedByte","estimateDataURLDecodedBytes","comma","effectiveLen","pad","tailIsPct3D","VERSION","DEFAULT_CHUNK_SIZE","decodeURIComponentSafe","test","maybeWithAuthCredentials","protocolIndex","urlToCheck","globalObject","ReadableStream","TextEncoder","envFetch","Request","Response","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","getBodyLength","resolveBodyLength","cancelToken","withCredentials","fetchOptions","maxContentLength","maxBodyLength","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","requestContentLength","pendingBodyError","maxBodyLengthError","configAuth","parsedURL","urlUsername","urlPassword","outboundLength","mustEnforceStreamBody","trackRequestStream","_request","contentTypeHeader","isCredentialsSupported","resolvedOptions","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","responseData","materializedSize","canceledError","networkError","seedCache","getFetch","fetch","seeds","seed","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","getAdapter","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","validators","deprecatedWarnings","validator","formatMessage","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","abort","spread","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","axios","Cancel","formToJSON","getCancelableClient","client","RETRY_KEY","onCsrfTokenError","responseURL","RETRY_DELAY_KEY","onMaintenanceModeError","retryDelay","onNotLoggedInError","cancelableClient","useLiveData","timeoutId","stopped","poll","useStaticData","loading","staticData","liveData","SystemSection","ThermalSection","SectionSkeleton","CpuChartSection","MemoryChartSection","DiskSection","NetworkSection","ActiveUsersSection","SharesSection","PhpSection","DatabaseSection","PhpExtensionsSection","MonitoringSection","SettingsAdmin"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,12,13,14,15,16,19,21,23,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,48,50,51,54,56,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131]} \ No newline at end of file diff --git a/js/serverinfo-main.mjs.map.license b/js/serverinfo-main.mjs.map.license index 9c1e57d4..a8d0eb38 100644 --- a/js/serverinfo-main.mjs.map.license +++ b/js/serverinfo-main.mjs.map.license @@ -3,8 +3,10 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: ISC SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: Anthony Fu SPDX-FileCopyrightText: David Myers SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 (https://cure53.de/) +SPDX-FileCopyrightText: Eduardo San Martin Morote SPDX-FileCopyrightText: Evan You SPDX-FileCopyrightText: GitHub Inc. SPDX-FileCopyrightText: Jakub Juszczak @@ -38,6 +40,9 @@ This file is generated from multiple sources. Included packages: - @nextcloud/router - version: 3.1.0 - license: GPL-3.0-or-later +- @nextcloud/vue + - version: 9.9.0 + - license: AGPL-3.0-or-later - @vitejs/plugin-vue - version: 6.0.7 - license: MIT @@ -53,6 +58,9 @@ This file is generated from multiple sources. Included packages: - @vue/shared - version: 3.5.35 - license: MIT +- @vueuse/shared + - version: 14.4.0 + - license: MIT - axios - version: 1.18.1 - license: MIT @@ -83,3 +91,6 @@ This file is generated from multiple sources. Included packages: - vue-material-design-icons - version: 5.3.1 - license: MIT +- vue-router + - version: 5.2.0 + - license: MIT diff --git a/package-lock.json b/package-lock.json index 66de461a..ffa7725f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@nextcloud/axios": "^2.6.0", "@nextcloud/l10n": "^3.4.1", "@nextcloud/router": "^3.1.0", + "@nextcloud/vue": "^9.9.0", "chart.js": "^4.0.0", "vue": "^3.5.16", "vue-chartjs": "^5.3.3", @@ -27,6 +28,69 @@ "npm": "^11.0.0" } }, + "node_modules/@babel/generator": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0.tgz", + "integrity": "sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/jsesc": "^2.5.0", + "jsesc": "^3.0.2" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@babel/generator/node_modules/@babel/helper-string-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0.tgz", + "integrity": "sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==", + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@babel/generator/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.4.tgz", + "integrity": "sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==", + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@babel/generator/node_modules/@babel/parser": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.4.tgz", + "integrity": "sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==", + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@babel/generator/node_modules/@babel/types": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.4.tgz", + "integrity": "sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0", + "@babel/helper-validator-identifier": "^8.0.4" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, "node_modules/@babel/helper-string-parser": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", @@ -60,6 +124,15 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/types": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", @@ -73,6 +146,41 @@ "node": ">=6.9.0" } }, + "node_modules/@buttercup/fetch": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@buttercup/fetch/-/fetch-0.2.1.tgz", + "integrity": "sha512-sCgECOx8wiqY8NN1xN22BqqKzXYIG2AicNLlakOAI4f0WgyLVUbAigMf8CZhBtJxdudTcB1gD5lciqi44jwJvg==", + "license": "MIT", + "optional": true, + "optionalDependencies": { + "node-fetch": "^3.3.0" + } + }, + "node_modules/@ckpack/vue-color": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@ckpack/vue-color/-/vue-color-1.6.0.tgz", + "integrity": "sha512-b9kFTKhYbNArfgP1lmnaVm0VNsWdZjqIbyHUYry7mZ+E7JeTQclbjq1+2xWn0SE3wzqRYlXmAVjECPOgteWmMQ==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.6.0", + "material-colors": "^1.2.6" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/@es-joy/jsdoccomment": { "version": "0.86.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.86.0.tgz", @@ -611,7 +719,6 @@ "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@eslint/object-schema": "^3.0.5", "debug": "^4.3.1", @@ -627,7 +734,6 @@ "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@eslint/core": "^1.2.1" }, @@ -691,7 +797,6 @@ "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" } @@ -710,13 +815,47 @@ "node": "^20.19.0 || ^22.13.0 || >=24" } }, + "node_modules/@file-type/xml": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@file-type/xml/-/xml-0.4.4.tgz", + "integrity": "sha512-NhCyXoHlVZ8TqM476hyzwGJ24+D5IPSaZhmrPj7qXnEVb3q6jrFzA3mM9TBpknKSI9EuQeGTKRg2DXGUwvBBoQ==", + "license": "MIT", + "dependencies": { + "sax": "^1.4.1", + "strtok3": "^10.3.4" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", + "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.12" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.8.0.tgz", + "integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.8.0", + "@floating-ui/utils": "^0.2.12" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", + "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", + "license": "MIT" + }, "node_modules/@humanfs/core": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@humanfs/types": "^0.15.0" }, @@ -730,7 +869,6 @@ "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@humanfs/core": "^0.19.2", "@humanfs/types": "^0.15.0", @@ -746,7 +884,6 @@ "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=18.18.0" } @@ -757,7 +894,6 @@ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=12.22" }, @@ -782,7 +918,6 @@ "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=18.18" }, @@ -791,12 +926,51 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/@kurkle/color": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", @@ -977,6 +1151,18 @@ "browserslist": "^4.26.3" } }, + "node_modules/@nextcloud/capabilities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@nextcloud/capabilities/-/capabilities-1.2.1.tgz", + "integrity": "sha512-snZ0/910zzwN6PDsIlx2Uvktr1S5x0ClhDUnfPlCj7ntNvECzuVHNY5wzby22LIkc+9ZjaDKtCwuCt2ye+9p/Q==", + "license": "GPL-3.0-or-later", + "dependencies": { + "@nextcloud/initial-state": "^3.0.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, "node_modules/@nextcloud/eslint-config": { "version": "9.0.0-rc.9", "resolved": "https://registry.npmjs.org/@nextcloud/eslint-config/-/eslint-config-9.0.0-rc.9.tgz", @@ -1018,6 +1204,77 @@ "node": "^20 || ^22 || ^24" } }, + "node_modules/@nextcloud/files": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-4.0.0.tgz", + "integrity": "sha512-TmecnZIS+PGWGtRh7RpGEboCT4K6iTbHULUcfR6hs3eEzjDVsCc1Ldf8popGY/70lbpdlfYle8xbXnPIo3qaXA==", + "license": "AGPL-3.0-or-later", + "optional": true, + "dependencies": { + "@nextcloud/auth": "^2.5.3", + "@nextcloud/capabilities": "^1.2.1", + "@nextcloud/l10n": "^3.4.1", + "@nextcloud/logger": "^3.0.3", + "@nextcloud/paths": "^3.0.0", + "@nextcloud/router": "^3.1.0", + "@nextcloud/sharing": "^0.3.0", + "is-svg": "^6.1.0", + "typescript-event-target": "^1.1.2", + "webdav": "^5.9.0" + }, + "engines": { + "node": "^24.0.0" + } + }, + "node_modules/@nextcloud/files/node_modules/@nextcloud/files": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.12.2.tgz", + "integrity": "sha512-vBo8tf3Xh6efiF8CrEo3pKj9AtvAF6RdDGO1XKL65IxV8+UUd9Uxl2lUExHlzoDRRczCqfGfaWfRRaFhYqce5Q==", + "license": "AGPL-3.0-or-later", + "optional": true, + "dependencies": { + "@nextcloud/auth": "^2.5.3", + "@nextcloud/capabilities": "^1.2.1", + "@nextcloud/l10n": "^3.4.1", + "@nextcloud/logger": "^3.0.3", + "@nextcloud/paths": "^3.0.0", + "@nextcloud/router": "^3.1.0", + "@nextcloud/sharing": "^0.3.0", + "cancelable-promise": "^4.3.1", + "is-svg": "^6.1.0", + "typescript-event-target": "^1.1.1", + "webdav": "^5.8.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, + "node_modules/@nextcloud/files/node_modules/@nextcloud/sharing": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@nextcloud/sharing/-/sharing-0.3.0.tgz", + "integrity": "sha512-kV7qeUZvd1fTKeFyH+W5Qq5rNOqG9rLATZM3U9MBxWXHJs3OxMqYQb8UQ3NYONzsX3zDGJmdQECIGHm1ei2sCA==", + "license": "GPL-3.0-or-later", + "optional": true, + "dependencies": { + "@nextcloud/initial-state": "^3.0.0", + "is-svg": "^6.1.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + }, + "optionalDependencies": { + "@nextcloud/files": "^3.12.0" + } + }, + "node_modules/@nextcloud/initial-state": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@nextcloud/initial-state/-/initial-state-3.0.0.tgz", + "integrity": "sha512-cV+HBdkQJGm8FxkBI5rFT/FbMNWNBvpbj6OPrg4Ae4YOOsQ15CL8InPOAw1t4XkOkQK2NEdUGQLVUz/19wXbdQ==", + "license": "GPL-3.0-or-later", + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, "node_modules/@nextcloud/l10n": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/@nextcloud/l10n/-/l10n-3.4.1.tgz", @@ -1034,6 +1291,28 @@ "node": "^20 || ^22 || ^24" } }, + "node_modules/@nextcloud/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@nextcloud/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-TcbVRL4/O5ffI1RXFmQAFD3gwwT15AAdr1770x+RNqVvfBdoGVyhzOwCIyA5Vfc3fA1iJXFa+rE6buJZSoqlcw==", + "license": "GPL-3.0-or-later", + "dependencies": { + "@nextcloud/auth": "^2.5.3" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, + "node_modules/@nextcloud/paths": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@nextcloud/paths/-/paths-3.1.0.tgz", + "integrity": "sha512-vtFYA/kthaUDzu6KejTOL1OwnOy7/yynq5zdB/UBpYacAWjUX5Ddh4OMWx3rEavkBJ9/QGhrFryNJLjNfe8OQA==", + "license": "GPL-3.0-or-later", + "optional": true, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, "node_modules/@nextcloud/router": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@nextcloud/router/-/router-3.1.0.tgz", @@ -1046,6 +1325,22 @@ "node": "^20.0.0 || ^22.0.0 || ^24.0.0" } }, + "node_modules/@nextcloud/sharing": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@nextcloud/sharing/-/sharing-0.4.0.tgz", + "integrity": "sha512-1hUNyc7uJdBpnimOnEshJjEtAPAjzDYVl6qmWqF5ZxoN9wOvbExw0QjX3xFIbHbX2dmvbRNLBj0RzLzipmZyeg==", + "license": "GPL-3.0-or-later", + "dependencies": { + "@nextcloud/initial-state": "^3.0.0", + "is-svg": "^6.1.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + }, + "optionalDependencies": { + "@nextcloud/files": "^3.12.2 || ^4.0.0" + } + }, "node_modules/@nextcloud/typings": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/@nextcloud/typings/-/typings-1.10.0.tgz", @@ -1087,11 +1382,78 @@ "vite": "^7.3.6" } }, + "node_modules/@nextcloud/vue": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-9.9.0.tgz", + "integrity": "sha512-TmKnBWp6Aiw+cm+WamwX5cMkhkpJqLSUKrTUB5I5Y9RDt2S0TUlwRaTe9vltBIV3qmKParhpZQ3/ewWHgEQlrQ==", + "license": "AGPL-3.0-or-later", + "dependencies": { + "@ckpack/vue-color": "^1.6.0", + "@floating-ui/dom": "^1.8.0", + "@nextcloud/auth": "^2.6.0", + "@nextcloud/axios": "^2.6.0", + "@nextcloud/browser-storage": "^0.5.0", + "@nextcloud/capabilities": "^1.2.1", + "@nextcloud/event-bus": "^3.3.3", + "@nextcloud/initial-state": "^3.0.0", + "@nextcloud/l10n": "^3.4.1", + "@nextcloud/logger": "^3.0.3", + "@nextcloud/router": "^3.1.0", + "@nextcloud/sharing": "^0.4.0", + "@nextcloud/vue-select": "^4.1.0", + "@vuepic/vue-datepicker": "^11.0.3", + "@vueuse/components": "^14.3.0", + "@vueuse/core": "^14.3.0", + "blurhash": "^2.0.5", + "clone": "^2.1.2", + "debounce": "^3.0.0", + "dompurify": "^3.4.12", + "emoji-mart-vue-fast": "^15.0.5", + "escape-html": "^1.0.3", + "floating-vue": "^5.2.2", + "focus-trap": "^8.2.2", + "linkifyjs": "^4.3.3", + "mdast-util-to-string": "^4.0.0", + "p-queue": "^9.3.1", + "rehype-external-links": "^3.0.0", + "rehype-highlight": "^7.0.2", + "rehype-react": "^8.0.0", + "remark-breaks": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.2", + "remark-unlink-protocols": "^1.0.0", + "splitpanes": "^4.0.4", + "striptags": "^3.2.0", + "tabbable": "^6.4.0", + "tributejs": "^5.1.3", + "ts-md5": "^2.0.1", + "unified": "^11.0.5", + "unist-builder": "^4.0.0", + "unist-util-visit-parents": "^6.0.2", + "vue": "^3.5.18", + "vue-router": "^5.1.0" + }, + "engines": { + "node": "^20.11.0 || ^22 || ^24" + } + }, + "node_modules/@nextcloud/vue-select": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@nextcloud/vue-select/-/vue-select-4.1.0.tgz", + "integrity": "sha512-jQIu4XuUAuJr6qL/IKa63h3Vv/4OrP9latl2E6kqtffwLBV+qMSU4Gm+vsOfyqBbBSY4i3eeMfdyJi14O1Yqbg==", + "license": "MIT", + "engines": { + "node": "^22 || ^24" + }, + "peerDependencies": { + "vue": "^3" + } + }, "node_modules/@nodable/entities": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.1.tgz", "integrity": "sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==", - "dev": true, + "devOptional": true, "funding": [ { "type": "github", @@ -1108,7 +1470,6 @@ "hasInstallScript": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "detect-libc": "^2.0.3", "is-glob": "^4.0.3", @@ -1151,7 +1512,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1173,7 +1533,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1195,7 +1554,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1217,7 +1575,6 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1239,7 +1596,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1261,7 +1617,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1283,7 +1638,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1305,7 +1659,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1327,7 +1680,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1349,7 +1701,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1371,7 +1722,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1393,7 +1743,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1415,7 +1764,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1511,8 +1859,7 @@ "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-android-arm64": { "version": "4.61.0", @@ -1526,8 +1873,7 @@ "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.61.0", @@ -1541,8 +1887,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-darwin-x64": { "version": "4.61.0", @@ -1556,8 +1901,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-freebsd-arm64": { "version": "4.61.0", @@ -1571,8 +1915,7 @@ "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-freebsd-x64": { "version": "4.61.0", @@ -1586,8 +1929,7 @@ "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.61.0", @@ -1601,8 +1943,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.61.0", @@ -1616,8 +1957,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.61.0", @@ -1631,8 +1971,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.61.0", @@ -1646,8 +1985,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { "version": "4.61.0", @@ -1661,8 +1999,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { "version": "4.61.0", @@ -1676,8 +2013,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { "version": "4.61.0", @@ -1691,8 +2027,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { "version": "4.61.0", @@ -1706,8 +2041,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.61.0", @@ -1721,8 +2055,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { "version": "4.61.0", @@ -1736,8 +2069,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { "version": "4.61.0", @@ -1751,8 +2083,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.61.0", @@ -1766,8 +2097,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.61.0", @@ -1781,8 +2111,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-openbsd-x64": { "version": "4.61.0", @@ -1796,8 +2125,7 @@ "optional": true, "os": [ "openbsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-openharmony-arm64": { "version": "4.61.0", @@ -1811,8 +2139,7 @@ "optional": true, "os": [ "openharmony" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.61.0", @@ -1826,8 +2153,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { "version": "4.61.0", @@ -1841,8 +2167,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { "version": "4.61.0", @@ -1856,8 +2181,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.61.0", @@ -1871,8 +2195,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rushstack/node-core-library": { "version": "5.23.1", @@ -1905,6 +2228,7 @@ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -2029,6 +2353,7 @@ "integrity": "sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/types": "^8.56.0", @@ -2044,6 +2369,12 @@ "eslint": "^9.0.0 || ^10.0.0" } }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "license": "MIT" + }, "node_modules/@types/argparse": { "version": "1.0.38", "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", @@ -2051,6 +2382,15 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/escape-html": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@types/escape-html/-/escape-html-1.0.4.tgz", @@ -2062,26 +2402,32 @@ "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "dev": true, "license": "MIT" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "*" } }, + "node_modules/@types/hast": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", + "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/jquery": { "version": "3.5.16", "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz", @@ -2091,6 +2437,12 @@ "@types/sizzle": "*" } }, + "node_modules/@types/jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==", + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -2098,6 +2450,21 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, "node_modules/@types/semver": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", @@ -2117,7 +2484,19 @@ "license": "MIT", "optional": true }, - "node_modules/@typescript-eslint/eslint-plugin": { + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.60.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.60.1.tgz", "integrity": "sha512-JQ4S5GB0tfjO8BuJ4fcX+HodkzJjYBV+7OJ+wLygaX7OGQ7FudyHL4NSCA6ob+w3Yn+5MkKIozOwQhXeM7opVg==", @@ -2162,6 +2541,7 @@ "integrity": "sha512-A0M6ua6H252bVjPvvtSgl2QA4+ET9S5Mtkb2GDyTxIhH/C4qDItT7RQNO5PhMC6NXGYXOR9dIalcDDgBKT7oFA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.60.1", "@typescript-eslint/types": "8.60.1", @@ -2360,6 +2740,12 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.3.tgz", + "integrity": "sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==", + "license": "ISC" + }, "node_modules/@vitejs/plugin-vue": { "version": "6.0.7", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.7.tgz", @@ -2406,6 +2792,33 @@ "vscode-uri": "^3.0.8" } }, + "node_modules/@vue-macros/common": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-3.1.4.tgz", + "integrity": "sha512-/5Fv+6DgIcM9ajY05ZmKBv+LMX1M9A0X+IUwDRVdt67ciw8OV9bvG2r34p3RiEadlsQybjhKPRKNXDC8Bp23cw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-sfc": "^3.5.22", + "ast-kit": "^2.1.2", + "local-pkg": "^1.1.2", + "magic-string-ast": "^1.0.2", + "unplugin-utils": "^0.3.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/vue-macros" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.2.25" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + } + }, "node_modules/@vue/compiler-core": { "version": "3.5.35", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.35.tgz", @@ -2467,6 +2880,33 @@ "he": "^1.2.0" } }, + "node_modules/@vue/devtools-api": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-8.2.1.tgz", + "integrity": "sha512-6u4vXBlIBAC1wMplIZgpyPn7uh/s4Bf6F5bMzvLv+EdJ0aHs/+4B7Ygv864EStQSjRbsRzTko/kUG1A1IejQ3A==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^8.2.1" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.2.1.tgz", + "integrity": "sha512-FIGIuq3AWReEpbAHY/cRGeHDfI0qOb8OCQ3YjbEAX04uaxIDbGc9rhkbVcG7rnfHPXE3RsU5KrWOu9V/okd8AQ==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^8.2.1", + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "perfect-debounce": "^2.0.0" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.2.1.tgz", + "integrity": "sha512-Fkac7lUdGReh6pVOi3AYPRGe82LQqRmAfThW7RRligOAP0ZA/Z1z9XLHDM9dv34pV2HRc79DK8uKPeG2fLnA/g==", + "license": "MIT" + }, "node_modules/@vue/language-core": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.0.tgz", @@ -2575,12 +3015,78 @@ "integrity": "sha512-zSbjL7gRXwks2ZQLRGCajBtBXEOXW9Ddhn/HvSdrGkE2dqGnumzW8XtusRrxrE9LvqtiqDXQ+A60Hp6mvdYxfA==", "license": "MIT" }, + "node_modules/@vuepic/vue-datepicker": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@vuepic/vue-datepicker/-/vue-datepicker-11.0.3.tgz", + "integrity": "sha512-sb2adwqwK2PizLQOpxCYps2SwhVT6/ic2HMIOqHJXuYa6iAJZWGL5YVlS7O4aW+sk6ZyxlDURLO7kDZPL4HB/w==", + "license": "MIT", + "dependencies": { + "date-fns": "^4.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "vue": ">=3.3.0" + } + }, + "node_modules/@vueuse/components": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/components/-/components-14.4.0.tgz", + "integrity": "sha512-USgxljmrGUTjtMJcOCbjU7SlRP6K1i5inM6JgMD8bOBn/oL4dK0XYTtNfWyuo0FgUhtCftIKXi+4vJ8ml+tmqw==", + "license": "MIT", + "dependencies": { + "@vueuse/core": "14.4.0", + "@vueuse/shared": "14.4.0" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/core": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-14.4.0.tgz", + "integrity": "sha512-X4WHz1HlCzCBoYXesUkifzzWBAcZgXG8Fi5iNPQg/epdzOB3gu8Fawj3hvuwYR1nGcXGnvxwYYcUC/71++svtQ==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "14.4.0", + "@vueuse/shared": "14.4.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.4.0.tgz", + "integrity": "sha512-swx/255R6JyHZFJhx845iz5CRWDZdCfvkZOpACWc5+c5WHcG24mv8gUT1WIdFQaHt6dq79rvILd9QnCWiyVm9g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-14.4.0.tgz", + "integrity": "sha512-JRgY90Sz8DDtPMsaDflvPMp9xYk69JZAmbuDvAquUVXKr2gEjqtzGNTTthLfckH0BzBqvnu31gb4a8TGLRe79g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, "node_modules/acorn": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2616,7 +3122,6 @@ "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2740,6 +3245,39 @@ "util": "^0.12.5" } }, + "node_modules/ast-kit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-2.2.0.tgz", + "integrity": "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "pathe": "^2.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-walker-scope": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.9.0.tgz", + "integrity": "sha512-IJdzo2vLiElBxKzwS36VsCue/62d6IdWjnPB2v3nuPKeWGynp6FF/CYoLa5i/3jXH/z97ZDdsXz6abpgM6w07A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@babel/types": "^7.29.0", + "ast-kit": "^2.2.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -2774,6 +3312,16 @@ "proxy-from-env": "^2.1.0" } }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/balanced-match": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", @@ -2784,6 +3332,13 @@ "node": "18 || 20 || >=22" } }, + "node_modules/base-64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", + "license": "MIT", + "optional": true + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -2818,6 +3373,21 @@ "node": ">=6.0.0" } }, + "node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/blurhash": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.5.tgz", + "integrity": "sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==", + "license": "MIT" + }, "node_modules/bn.js": { "version": "5.2.5", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.5.tgz", @@ -3015,6 +3585,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", @@ -3087,6 +3658,13 @@ "dev": true, "license": "MIT" }, + "node_modules/byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/byte-length/-/byte-length-1.0.2.tgz", + "integrity": "sha512-ovBpjmsgd/teRmgcPh23d4gJvxDoXtAzEL9xTfMU8Yc2kqCDb7L9jAG0XHl1nzuGl+h3ebCIF1i62UFyA9V/2Q==", + "license": "MIT", + "optional": true + }, "node_modules/call-bind": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", @@ -3136,6 +3714,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/cancelable-promise": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/cancelable-promise/-/cancelable-promise-4.3.1.tgz", + "integrity": "sha512-A/8PwLk/T7IJDfUdQ68NR24QHa8rIlnN/stiJEBo6dmVUkD4K14LswG0w3VwdeK/o7qOwRUR1k2MhK5Rpy2m7A==", + "license": "MIT", + "optional": true + }, "node_modules/caniuse-lite": { "version": "1.0.30001793", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", @@ -3157,11 +3742,72 @@ ], "license": "CC-BY-4.0" }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": "*" + } + }, "node_modules/chart.js": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz", "integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==", "license": "MIT", + "peer": true, "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -3173,9 +3819,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", - "dev": true, "license": "MIT", - "peer": true, "dependencies": { "readdirp": "^5.0.0" }, @@ -3201,6 +3845,15 @@ "node": ">= 0.10" } }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -3213,6 +3866,16 @@ "node": ">= 0.8" } }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/comment-parser": { "version": "1.4.6", "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.6.tgz", @@ -3241,7 +3904,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", - "dev": true, "license": "MIT" }, "node_modules/console-browserify": { @@ -3257,6 +3919,20 @@ "dev": true, "license": "MIT" }, + "node_modules/core-js": { + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.50.0.tgz", + "integrity": "sha512-BRWgOLKkFeCgRudR6zrs8p9XJZcE14grzKMMssoYrk6krtuEZ7MTKPIY5RzOnqsEKIR9kst7wNzphttraT+Yqw==", + "hasInstallScript": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/core-js-compat": { "version": "3.49.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", @@ -3338,7 +4014,6 @@ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3348,6 +4023,16 @@ "node": ">= 8" } }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": "*" + } + }, "node_modules/crypto-browserify": { "version": "3.12.1", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", @@ -3394,6 +4079,26 @@ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "license": "MIT" }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/date-fns": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", @@ -3401,6 +4106,18 @@ "dev": true, "license": "MIT" }, + "node_modules/debounce": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-3.0.0.tgz", + "integrity": "sha512-64byRbF0/AirwbuHqB3/ZpMG9/nckDa6ZA0yd6UnaQNwbbemCOwvz2sL5sjXLHhZHADyiwLm0M5qMhltUUx+TA==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -3418,13 +4135,25 @@ } } }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/define-data-property": { "version": "1.1.4", @@ -3471,6 +4200,15 @@ "node": ">=0.4.0" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/des.js": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", @@ -3502,7 +4240,6 @@ "dev": true, "license": "Apache-2.0", "optional": true, - "peer": true, "engines": { "node": ">=8" } @@ -3520,6 +4257,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/diff": { "version": "8.0.4", "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", @@ -3615,6 +4365,19 @@ "dev": true, "license": "MIT" }, + "node_modules/emoji-mart-vue-fast": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/emoji-mart-vue-fast/-/emoji-mart-vue-fast-15.0.5.tgz", + "integrity": "sha512-wnxLor8ggpqshoOPwIc33MdOC3A1XFeDLgUwYLPtNPL8VeAtXJAVrnFq1CN5PeCYAFoLo4IufHQZ9CfHD4IZiw==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.18.6", + "core-js": "^3.23.5" + }, + "peerDependencies": { + "vue": ">2.0.0" + } + }, "node_modules/entities": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", @@ -3676,9 +4439,10 @@ "version": "0.25.12", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", - "dev": true, + "devOptional": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -3944,7 +4708,6 @@ "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@types/esrecurse": "^4.3.1", "@types/estree": "^1.0.8", @@ -3977,7 +4740,6 @@ "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@eslint/core": "^1.2.1", "levn": "^0.4.1" @@ -3992,7 +4754,6 @@ "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" }, @@ -4006,7 +4767,6 @@ "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "acorn": "^8.16.0", "acorn-jsx": "^5.3.2", @@ -4056,7 +4816,6 @@ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -4085,6 +4844,16 @@ "@types/estree-jsx": ">=1.0.5" } }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -4097,11 +4866,16 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -4127,7 +4901,12 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", - "dev": true, + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, "node_modules/fast-deep-equal": { @@ -4142,16 +4921,14 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/fast-uri": { "version": "3.1.5", @@ -4174,7 +4951,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.2.0.tgz", "integrity": "sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==", - "dev": true, + "devOptional": true, "funding": [ { "type": "github", @@ -4191,7 +4968,7 @@ "version": "5.8.0", "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.8.0.tgz", "integrity": "sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==", - "dev": true, + "devOptional": true, "funding": [ { "type": "github", @@ -4214,7 +4991,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -4228,13 +5004,36 @@ } } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "flat-cache": "^4.0.0" }, @@ -4265,7 +5064,6 @@ "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -4279,8 +5077,44 @@ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" + }, + "node_modules/floating-vue": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/floating-vue/-/floating-vue-5.2.2.tgz", + "integrity": "sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "~1.1.1", + "vue-resize": "^2.0.0-alpha.1" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.0", + "vue": "^3.2.0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/floating-vue/node_modules/@floating-ui/dom": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz", + "integrity": "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.1.0" + } + }, + "node_modules/focus-trap": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-8.2.2.tgz", + "integrity": "sha512-qV0g8hRYBqgACcFOH3f9wXc4zPKhr/0z9RI2a6ZijZ72EeBi4g8oBy8zAWuUR1TsMpOzwpUMFvjdasrC41Joug==", + "license": "MIT", + "dependencies": { + "tabbable": "^6.5.0" + } }, "node_modules/follow-redirects": { "version": "1.16.0", @@ -4334,6 +5168,19 @@ "node": ">= 6" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "optional": true, + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/fs-extra": { "version": "11.3.5", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.5.tgz", @@ -4360,7 +5207,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } @@ -4437,7 +5283,6 @@ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -4564,6 +5409,75 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -4574,6 +5488,15 @@ "he": "bin/he" } }, + "node_modules/highlight.js": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -4586,6 +5509,19 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/hot-patcher": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hot-patcher/-/hot-patcher-2.0.1.tgz", + "integrity": "sha512-ECg1JFG0YzehicQaogenlcs2qg6WsXQsxtnbr1i696u5tLUjtJdQAh0u2g0Q5YV45f263Ta1GnUJsc8WIfJf4Q==", + "license": "MIT", + "optional": true + }, "node_modules/html-entities": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", @@ -4650,7 +5586,6 @@ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 4" } @@ -4660,8 +5595,7 @@ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/import-lazy": { "version": "4.0.0", @@ -4679,7 +5613,6 @@ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.8.19" } @@ -4691,6 +5624,48 @@ "dev": true, "license": "ISC" }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, + "node_modules/is-absolute-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", + "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-arguments": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", @@ -4708,6 +5683,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT", + "optional": true + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -4737,13 +5719,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -4774,7 +5765,6 @@ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -4782,6 +5772,16 @@ "node": ">=0.10.0" } }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -4803,7 +5803,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -4831,6 +5830,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-svg": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-6.1.0.tgz", + "integrity": "sha512-i7YPdvYuSCYcaLQrKwt8cvKTlwHcdA6Hp8N9SO3Q5jIzo8x6kH3N47W0BvPP7NdxVBmIHx7X9DK36czYYW7lHg==", + "license": "MIT", + "dependencies": { + "@file-type/xml": "^0.4.3" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", @@ -4859,8 +5873,7 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/isomorphic-timers-promises": { "version": "1.0.1", @@ -4889,29 +5902,50 @@ "node": ">=20.0.0" } }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "license": "MIT", - "peer": true + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, "node_modules/jsonfile": { "version": "6.2.1", @@ -4932,7 +5966,6 @@ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "json-buffer": "3.0.1" } @@ -4944,6 +5977,13 @@ "dev": true, "license": "MIT" }, + "node_modules/layerr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/layerr/-/layerr-3.0.0.tgz", + "integrity": "sha512-tv754Ki2dXpPVApOrjTyRo4/QegVb9eVFq4mjqp4+NM5NaX7syQvN5BBNfV/ZpAHCEHV24XdUVrBAoka4jt3pA==", + "license": "MIT", + "optional": true + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4958,11 +5998,16 @@ "node": ">= 0.8.0" } }, + "node_modules/linkifyjs": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.3.tgz", + "integrity": "sha512-P8aEP5U/D1/IlTY2OeYsErdwh9bGuLE30NcXtKEjgdHcahveQoQwM2yZNsioQHsWFz0P7KKudisbrzCgR0sDHg==", + "license": "MIT" + }, "node_modules/local-pkg": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.2.1.tgz", "integrity": "sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==", - "dev": true, "license": "MIT", "dependencies": { "mlly": "^1.7.4", @@ -4999,6 +6044,31 @@ "dev": true, "license": "MIT" }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lowlight": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-3.3.0.tgz", + "integrity": "sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.0.0", + "highlight.js": "~11.11.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", @@ -5008,6 +6078,27 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/magic-string-ast": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-1.0.3.tgz", + "integrity": "sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==", + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.19" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/material-colors": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==", + "license": "ISC" + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -5017,6 +6108,18 @@ "node": ">= 0.4" } }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -5029,44 +6132,695 @@ "safe-buffer": "^5.1.2" } }, - "node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", - "dev": true, + "node_modules/mdast-squeeze-paragraphs": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-6.0.0.tgz", + "integrity": "sha512-6NDbJPTg0M0Ye+TlYwX1KJ1LFbp515P2immRJyJQhc9Na9cetHzSoHNYIQcXpANEAP1sm9yd/CTZU2uHqR5A+w==", "license": "MIT", - "engines": { - "node": ">=18" + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-visit": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", "license": "MIT", "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, - "bin": { - "miller-rabin": "bin/miller-rabin" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.5", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", - "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-newline-to-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-newline-to-break/-/mdast-util-newline-to-break-2.0.0.tgz", + "integrity": "sha512-MbgeFca0hLYIEx/2zGsszCSEJJ1JSCdiY5xQxRcLDDGa8EPvlLPupJ4DSajbMPAnC0je8jfb9TiUATnxxrHUog==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-find-and-replace": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -5118,7 +6872,6 @@ "version": "1.8.2", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", - "dev": true, "license": "MIT", "dependencies": { "acorn": "^8.16.0", @@ -5131,14 +6884,12 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", - "dev": true, "license": "MIT" }, "node_modules/mlly/node_modules/pkg-types": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", - "dev": true, "license": "MIT", "dependencies": { "confbox": "^0.1.8", @@ -5166,7 +6917,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true, "license": "MIT" }, "node_modules/nanoid": { @@ -5204,14 +6954,60 @@ "node": ">=18" } }, + "node_modules/nested-property": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nested-property/-/nested-property-4.0.0.tgz", + "integrity": "sha512-yFehXNWRs4cM0+dz7QxCd06hTbWbSkV0ISsqBfkntU6TOY4Qm3Q88fRRLOddkGh2Qq6dZvnKVAahfhjcUvLnyA==", + "license": "MIT", + "optional": true + }, "node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, "license": "MIT", + "optional": true + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", "optional": true, - "peer": true + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "optional": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } }, "node_modules/node-releases": { "version": "2.0.47", @@ -5269,6 +7065,12 @@ "dev": true, "license": "MIT" }, + "node_modules/nostics": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/nostics/-/nostics-1.2.0.tgz", + "integrity": "sha512-FGqEfhQjrvo1lL8KFifdTQiNwwQHJxC1jtYE1Rc54qF/jxONUNL+kC9gS1krX8Q65PgrQ5fCqH/I4NhWBvdSqg==", + "license": "MIT" + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -5356,7 +7158,6 @@ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -5408,6 +7209,34 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-queue": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.3.tgz", + "integrity": "sha512-NXAOdnEe5FsZJfT4oK84lE1Y5cFFdWlRuOo5tww8DyNMxyRXwn39fIkUtNLKppcPC+UYU/bXujNCUGDv01y7CA==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.4", + "p-timeout": "^7.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", + "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/package-name-regex": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.6.tgz", @@ -5445,6 +7274,31 @@ "node": ">= 0.10" } }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, "node_modules/parse-imports-exports": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz", @@ -5483,7 +7337,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz", "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==", - "dev": true, + "devOptional": true, "funding": [ { "type": "github", @@ -5501,7 +7355,6 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -5513,11 +7366,17 @@ "dev": true, "license": "MIT" }, + "node_modules/path-posix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-posix/-/path-posix-1.0.0.tgz", + "integrity": "sha512-1gJ0WpNIiYcQydgg3Ed8KzvIqTsDpNwq+cjBCssvBtuTWjEqY1AW+i+OepiEMqDCzyro9B2sLAe4RBPajMYFiA==", + "license": "ISC", + "optional": true + }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, "license": "MIT" }, "node_modules/pbkdf2": { @@ -5538,6 +7397,12 @@ "node": ">= 0.10" } }, + "node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -5545,10 +7410,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "license": "MIT", "engines": { "node": ">=12" @@ -5574,7 +7438,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.1.tgz", "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==", - "dev": true, "license": "MIT", "dependencies": { "confbox": "^0.2.4", @@ -5661,6 +7524,16 @@ "dev": true, "license": "MIT" }, + "node_modules/property-information": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", + "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/proxy-from-env": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", @@ -5698,7 +7571,6 @@ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -5724,7 +7596,6 @@ "version": "0.2.11", "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", - "dev": true, "funding": [ { "type": "individual", @@ -5746,6 +7617,13 @@ "node": ">=0.4.x" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT", + "optional": true + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -5786,9 +7664,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", - "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 20.19.0" }, @@ -5797,6 +7673,115 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/rehype-external-links": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", + "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-is-element": "^3.0.0", + "is-absolute-url": "^4.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-highlight": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rehype-highlight/-/rehype-highlight-7.0.2.tgz", + "integrity": "sha512-k158pK7wdC2qL3M5NcZROZ2tR/l7zOzjxXd5VGdcfIyoijjQqpHd3JKtYSBDpDZ38UI2WJWuFAtkMDxmx5kstA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-text": "^4.0.0", + "lowlight": "^3.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-react": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/rehype-react/-/rehype-react-8.0.0.tgz", + "integrity": "sha512-vzo0YxYbB2HE+36+9HWXVdxNoNDubx63r5LBzpxBGVWM8s9mdnMdbmuJBAX6TTyuGdZjZix6qU3GcSuKCIWivw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-breaks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-breaks/-/remark-breaks-4.0.0.tgz", + "integrity": "sha512-IjEjJOkH4FuJvHZVIW0QCDWxcG96kCq7An/KVH2NfJe6rKZU2AsHeB3OEjPNRxi4QC34Xdx7I2KGYn6IpT7gxQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-newline-to-break": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-unlink-protocols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/remark-unlink-protocols/-/remark-unlink-protocols-1.0.0.tgz", + "integrity": "sha512-5j/F28jhFmxeyz8nuJYYIWdR4nNpKWZ8A+tVwnK/0pq7Rjue33CINEYSckSq2PZvedhKUwbn08qyiuGoPLBung==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-squeeze-paragraphs": "^6.0.0", + "unist-util-visit": "^5.0.0" + } + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -5807,6 +7792,13 @@ "node": ">=0.10.0" } }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT", + "optional": true + }, "node_modules/reserved-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/reserved-identifiers/-/reserved-identifiers-1.2.0.tgz", @@ -5923,7 +7915,7 @@ "version": "4.61.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.61.0.tgz", "integrity": "sha512-T9mWdbWfQtp0B5lv/HX+wrhYsmXRlcWnXXmJbXqKJhlRaoS6KMhq0gpyzW4UJfclcxrEdLnTgjT2NjruLONu0g==", - "dev": true, + "devOptional": true, "license": "MIT", "peer": true, "dependencies": { @@ -6117,6 +8109,21 @@ "@parcel/watcher": "^2.4.1" } }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "license": "MIT" + }, "node_modules/semver": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", @@ -6181,7 +8188,6 @@ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -6195,7 +8201,6 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -6324,6 +8329,16 @@ "node": ">=0.10.0" } }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/spdx-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", @@ -6423,6 +8438,18 @@ "spdx-license-ids": "^3.0.0" } }, + "node_modules/splitpanes": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/splitpanes/-/splitpanes-4.1.2.tgz", + "integrity": "sha512-frNchoCv7w0nMQEuaDGgMGMU6jv3NhN6bBGQVfCNgwJdVcYaRmi1dwYDjp7SifAoUFdiQjBRB254LJNidzo15Q==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antoniandre" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -6474,11 +8501,31 @@ "node": ">=0.6.19" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/striptags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/striptags/-/striptags-3.2.0.tgz", + "integrity": "sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==", + "license": "MIT" + }, "node_modules/strnum": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.3.0.tgz", "integrity": "sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==", - "dev": true, + "devOptional": true, "funding": [ { "type": "github", @@ -6487,6 +8534,40 @@ ], "license": "MIT" }, + "node_modules/strtok3": { + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.5.tgz", + "integrity": "sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -6516,6 +8597,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tabbable": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.5.0.tgz", + "integrity": "sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==", + "license": "MIT" + }, "node_modules/timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", @@ -6533,7 +8620,6 @@ "version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", @@ -6578,6 +8664,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tributejs": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/tributejs/-/tributejs-5.1.3.tgz", + "integrity": "sha512-B5CXihaVzXw+1UHhNFyAwUTMDk1EfoLP5Tj1VhD9yybZ1I8DZJEv8tZ1l0RJo0t0tk9ZhR8eG5tEsaCvRigmdQ==", + "license": "MIT" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/ts-api-utils": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", @@ -6591,6 +8703,15 @@ "typescript": ">=4.8.4" } }, + "node_modules/ts-md5": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-md5/-/ts-md5-2.0.1.tgz", + "integrity": "sha512-yF35FCoEOFBzOclSkMNEUbFQZuv89KEQ+5Xz03HrMSGUGB1+r+El+JiGOFwsP4p9RFNzwlrydYoTLvPOuICl9w==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", @@ -6618,60 +8739,180 @@ "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "devOptional": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.60.1.tgz", + "integrity": "sha512-6m5hkkRAp8lKvhVpcprAIn5KkehQEh+47oHH2VGnExEh7dhNxXlg6GPAOIu6TxbVQxhebrJDvjl3020ooiWCMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.60.1", + "@typescript-eslint/parser": "8.60.1", + "@typescript-eslint/typescript-estree": "8.60.1", + "@typescript-eslint/utils": "8.60.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/typescript-event-target": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/typescript-event-target/-/typescript-event-target-1.1.2.tgz", + "integrity": "sha512-TvkrTUpv7gCPlcnSoEwUVUBwsdheKm+HF5u2tPAKubkIGMfovdSizCTaZRY/NhR8+Ijy8iZZUapbVQAsNrkFrw==", + "license": "MIT", + "optional": true + }, + "node_modules/ufo": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-builder": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-4.0.0.tgz", + "integrity": "sha512-wmRFnH+BLpZnTKpc5L7O67Kac89s9HMrtELpnNaE6TAobq5DTZZs5YaTQfAZBA9bFPECx2uVAPO31c+GVug8mg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/typescript": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", - "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", - "devOptional": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, - "engines": { - "node": ">=14.17" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/typescript-eslint": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.60.1.tgz", - "integrity": "sha512-6m5hkkRAp8lKvhVpcprAIn5KkehQEh+47oHH2VGnExEh7dhNxXlg6GPAOIu6TxbVQxhebrJDvjl3020ooiWCMA==", - "dev": true, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.60.1", - "@typescript-eslint/parser": "8.60.1", - "@typescript-eslint/typescript-estree": "8.60.1", - "@typescript-eslint/utils": "8.60.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" + "url": "https://opencollective.com/unified" } }, - "node_modules/ufo": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", - "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", - "dev": true, - "license": "MIT" - }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -6682,6 +8923,76 @@ "node": ">= 10.0.0" } }, + "node_modules/unplugin": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.3.0.tgz", + "integrity": "sha512-qa66K+crbfyE6JK10GjvbJeRrOsuC/JpbnHctfyp/i4oBTxWOzJfRZyDiOk1PtErMFRu8JhsU/wPvOdBNWe5Rg==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "picomatch": "^4.0.4", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@farmfe/core": "*", + "@rspack/core": "*", + "bun-types-no-globals": "*", + "esbuild": "*", + "rolldown": "*", + "rollup": "*", + "unloader": "*", + "vite": "*", + "webpack": "*" + }, + "peerDependenciesMeta": { + "@farmfe/core": { + "optional": true + }, + "@rspack/core": { + "optional": true + }, + "bun-types-no-globals": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "rolldown": { + "optional": true + }, + "rollup": { + "optional": true + }, + "unloader": { + "optional": true + }, + "vite": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/unplugin-utils": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.2.tgz", + "integrity": "sha512-xVToRh2CTmLk2HnEG7ac4rl1MJTT3RFkpS8B++/SnB0kXvuaavD+n3m/vrzyWQOdJNSZQACnbz01pnppbwV5BA==", + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, "node_modules/update-browserslist-db": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", @@ -6719,7 +9030,6 @@ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -6738,6 +9048,27 @@ "node": ">= 0.4" } }, + "node_modules/url-join": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", + "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", + "license": "MIT", + "optional": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/url/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -6766,11 +9097,39 @@ "dev": true, "license": "MIT" }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vite": { "version": "7.3.6", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", - "dev": true, + "devOptional": true, "license": "MIT", "peer": true, "dependencies": { @@ -6909,7 +9268,6 @@ "os": [ "aix" ], - "peer": true, "engines": { "node": ">=18" } @@ -6927,7 +9285,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -6945,7 +9302,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -6963,7 +9319,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -6981,7 +9336,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=18" } @@ -6999,7 +9353,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=18" } @@ -7017,7 +9370,6 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -7035,7 +9387,6 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -7053,7 +9404,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -7071,7 +9421,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -7089,7 +9438,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -7107,7 +9455,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -7125,7 +9472,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -7143,7 +9489,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -7161,7 +9506,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -7179,7 +9523,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -7197,7 +9540,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -7215,7 +9557,6 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -7233,7 +9574,6 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -7251,7 +9591,6 @@ "os": [ "openbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -7269,7 +9608,6 @@ "os": [ "openbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -7287,7 +9625,6 @@ "os": [ "openharmony" ], - "peer": true, "engines": { "node": ">=18" } @@ -7305,7 +9642,6 @@ "os": [ "sunos" ], - "peer": true, "engines": { "node": ">=18" } @@ -7323,7 +9659,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -7341,7 +9676,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -7359,7 +9693,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -7368,10 +9701,9 @@ "version": "0.28.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", - "dev": true, + "devOptional": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -7426,6 +9758,7 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.35.tgz", "integrity": "sha512-cx89fnr+0kVGHiNFG6y6s0bdjypJRFNZn6x3WPstNdQR1bi1mbB7h4v5IBGTsPJU3nK1+0Iqj3Zf+hZWMieR4Q==", "license": "MIT", + "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.35", "@vue/compiler-sfc": "3.5.35", @@ -7483,13 +9816,159 @@ "integrity": "sha512-6UNEyhlTzlCeT8ZeX5WbpUGFTTPSbOoTQeoASTv7X4Ylh0pe8vltj+36VMK56KM0gG8EQVoMK/Qw/6evalg8lA==", "license": "MIT" }, + "node_modules/vue-resize": { + "version": "2.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz", + "integrity": "sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.2.0.tgz", + "integrity": "sha512-QAC5i0LEb1GLG0LXDQmHu8L7FX12j0KwU/JTKmLQUJMrn04gQdKP6Du+p0QwpHb3iy71vBlqnHQ8WAfOSAWhqw==", + "license": "MIT", + "dependencies": { + "@babel/generator": "^8.0.0", + "@vue-macros/common": "^3.1.3", + "@vue/devtools-api": "^8.1.5", + "ast-walker-scope": "^0.9.0", + "chokidar": "^5.0.0", + "json5": "^2.2.3", + "local-pkg": "^1.2.1", + "magic-string": "^0.30.21", + "mlly": "^1.8.2", + "muggle-string": "^0.4.1", + "nostics": "^1.1.4", + "pathe": "^2.0.3", + "picomatch": "^4.0.5", + "scule": "^1.3.0", + "tinyglobby": "^0.2.17", + "unplugin": "^3.3.0", + "unplugin-utils": "^0.3.2", + "yaml": "^2.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@pinia/colada": ">=0.21.2", + "@vue/compiler-sfc": "^3.5.34 || ^4.0.0", + "pinia": "^3.0.4 || ^4.0.2", + "vite": "^7.3.0 || ^8.0.0", + "vue": "^3.5.34 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@pinia/colada": { + "optional": true + }, + "@vue/compiler-sfc": { + "optional": true + }, + "pinia": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webdav": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webdav/-/webdav-5.10.0.tgz", + "integrity": "sha512-fVPuRLtcduVGvSO7Tn/6TQCzIvI/g6BO/+xPRctCvi/GytYpjn4czxWbh4HsArsdom9qz9BI63k9/v2HBUui1A==", + "license": "MIT", + "optional": true, + "dependencies": { + "@buttercup/fetch": "^0.2.1", + "base-64": "^1.0.0", + "byte-length": "^1.0.2", + "entities": "^6.0.1", + "fast-xml-parser": "^5.7.2", + "hot-patcher": "^2.0.1", + "layerr": "^3.0.0", + "md5": "^2.3.0", + "minimatch": "^9.0.9", + "nested-property": "^4.0.0", + "node-fetch": "^3.3.2", + "path-posix": "^1.0.0", + "url-join": "^5.0.0", + "url-parse": "^1.5.10" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/webdav/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT", + "optional": true + }, + "node_modules/webdav/node_modules/brace-expansion": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==", + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/webdav/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "optional": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/webdav/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "license": "MIT" + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -7528,7 +10007,6 @@ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -7547,7 +10025,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/xml-naming/-/xml-naming-0.1.0.tgz", "integrity": "sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==", - "dev": true, + "devOptional": true, "funding": [ { "type": "github", @@ -7569,6 +10047,21 @@ "node": ">=0.4" } }, + "node_modules/yaml": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -7581,6 +10074,16 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/package.json b/package.json index 199f1fe8..62745f1a 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "@nextcloud/axios": "^2.6.0", "@nextcloud/l10n": "^3.4.1", "@nextcloud/router": "^3.1.0", + "@nextcloud/vue": "^9.9.0", "chart.js": "^4.0.0", "vue": "^3.5.16", "vue-chartjs": "^5.3.3", diff --git a/src/components/ActiveUsersSection.vue b/src/components/ActiveUsersSection.vue index f1577e46..32eed219 100644 --- a/src/components/ActiveUsersSection.vue +++ b/src/components/ActiveUsersSection.vue @@ -4,38 +4,28 @@ -->